InstantOn…

"/>

A Matter of Expressions

Tags expressions, Label Style, Style Management, Style Import, customization, reference

In the Jump Platform's InstantOn products, we intentionally try and keep the use of Expressions in the Styles as small as practically possible. This has to do with a practical Civil 3D Style Maintenance problem NOT the potential usefulness of Expressions in More complex Label Styles.

After all, most of our InstantOn Basic customers don't want day-to-day problems with their newer AutoCAD Civil 3D users. If you'll pardon the expression, we do take the gloves off in The Jump Kit 4 AutoCAD Civil 3D.

More Expression is Possible 

In our Jump Kit products, we DO employ some niffty Expressions to do some very useful stuff - like arrange Assembly labels in Section Views based on standardized scaling parameters. You can do that? You Betcha!

Section View Labels By Expression

Expression based Civil 3D Label Style tools can save you a TON of production project man-hours when they are well-designed and constructed.
Integrated functionality and consistent behaviors across multiple View and Plan scales also generate big time savings. Expressions help get that done.

Arrangements Across Multiple Views

As a side note for you new Sub Assembly Composer (SAC) users. The Assembly Label values shown here come from a Code Set Style built from the default Civil 3D codeset file.

Express the Rules

You do have to pay attention to rules that govern the creation of named Expressions and moving them around in AutoCAD Civil 3D.

A Problem of Expressions 

AutoCAD Civil 3D can be pretty unforgiving about keeping your Expressions together and working when Styles are dragged and dropped from drawing A to another - drawing B. 

Expressions are something WE create in a drawing.

An Expression that works like Superman in drawing A may eats some Kryptonite and die as it enters drawing B. This happens because another named Expression or "symbol" used in your expression exists in drawing A but DOES NOT yet exist in drawing B.
Civil 3D cannot create a reference what is not in there already. The unknown reference issue will convert your Expression's name into a GUID reference string. That results in a broken Expression and your Labels that reference the Expression also die a cruel and untimely death.

AutoCAD Civil 3D 2012 is also nasty about NOT copying Expressions that do not "appear" to be used in any of the Label Styles you are currently coping over. I suppose someone thought it would be good to check for Expression usuage before allowing the Expression to be copied. But the new 2012 release doesn't appear to check deeply enough. Civil 3D does not look into the Styles you are copying for references to indirectly referenced Expressions (Symbols). This is Not Good. 

The AutoCAD Civil 3D Import Styles tool isn't any better about preserving Expression "integrity". In fact, you should note that Expressions are expressly NOT listed in the 2012 Style Import tree or supported by the tool. 
The "symbols" in the Expression - (this is the stuff contained in curly braces {My Station Value}- which is actually your expression name) can be all too easily corrupted by this "unknown named reference" fact of life.

The trick I explain below can help you get around this current Style Import tool limitation. 

Please note: Expression destruction CANNOT happen for Civil 3D's internally defined and named Symbols. Those are self-contained in each Civil 3D Feature's actual code. The formal names of these may change from release to release however. That can create an occassional upgrade issue with Label Styles that reference them, but you usually have to skip releases with a drawing or template upgrade to run into that sort of weirdness. 

The expression conversion to GUID MAY happen to your own created named Expressions unless you are careful and take some relatively simple steps to protect your Expresssions.

The Self-Reference Label

If you want to use Expressions, and particularlly Expressions the refer to other named Expressions, make sure that you always define one special Label Style that employs references to ALL of your custom Expression in an actual label.

This is a simple process. Create a Label style that has a Text component. Make sure that EVERY Expression you want to preserve is a part of that Text component's text value. In the Label Style Composer, add every Expression you create to the text value of that special Label Style.

An Ugly Duck Becomes a Black Swan

Yes. You will get an ugly label, but this ugly duckling label value will beautifully force Civil 3D to move all your Expressions around with it. Since all the Expression are ALWAYS in there, Civil 3D will not overwrite potentially missing Symbol values (your custom named expressions) to GUID values in your other Label Styles that use them. This list of Expressions in the Text value makes a Self-Referencing label.

Always Import Expression Style 

That is a beautiful Black Swan of a label style. It is both Highly Improbable and pretty useful from anyone's perspective.
Maybe it's even a bit of  an "innovative" trick. What do you think?

+ALWAYS IMPORT

In the Jump Platform we alwys call this Style something like "+ALWAYS IMPORT" to give Jump product users a pretty decent chance at not blowing it if they employ the manual drag and drop Style copy method or the new Civil 3D 2012 Style Import tool to copy new Civil 3D Styles into drawings or templates.

Speaking of access to More Styles, you might want to get yourself a copy of Jump Kit too. It will save you a bunch of work, time, and effort since we do a lot of this kind of Label Style prototyping and consistency checking for you.

Jump Kit contains thousands and thousands of Civil 3D Styles and Sets built around the best of the best of national standards. It allows you to construct customized Civil 3D templates in minutes from it's vast library of field-tested Styles held in ByFeature resource drawings. You'll also get a raft of prototype and standardized Label Styles that employ parameter-based Expressions all set up and working for you.

We do that so you can...

Go Ahead and Express Yourself

Just Jump