In Civil 3D is het mogelijk om Expressions te maken die gebruikt kunnen worden in Labels. Expressions zijn wiskundige functies die een waarde retourneren. Deze waarden kunnen in tekstcomponenten van Labels worden verwerkt zodat eigen waarden getoond kunnen worden in plaats van alleen objecteigenschappen, je kunt bijvoorbeeld oppervlakten afronden voordat je ze laat zien. Maar deze Expressions kunnen ook worden gebruikt in de instellingsvelden van de labelcomponenten, o.a. de teksthoogte.

Uitgaande van bovenstaand voorbeeld, Spot Elevations on Grid, dan worden labels getoond op een grid. Linksonder van de lijn zijn de waarden negatief en rechtsboven positief. Als je de negatieve labels niet wilt tonen (automatisch dus, niet door handmatig te verwijderen) dan kun je de labels plaatsen met een teksthoogte van 0. Wil je ze wel zien dan hebben ze een teksthoogte van 2mm nodig (is 0.002).

Maak daarvoor een Expression aan in de Toolspace, tabblad Settings, onderdeel Surfaces > Label Style > Spot Elevation. In de Expression zet je een wiskundige functie IF. Door middel van komma’s kunnen twee waarden worden geretourneerd, namelijk als de IF-constructie waar is en als de IF-constructie niet waar is.

Dus:

 IF (Surface Elevation < 0 , WAAR , NIET WAAR). 

De waarde die terug komt bij WAAR is 0, en de waarde die terug komt bij NIET WAAR is 0.002. Ga nu de Label Style wijzigen in de Composer.

In het veld Text Height selecteer je de net gemaakte Expression. Elke Label die nu geplaatst wordt met deze Label Style, zal de Expression laten berekenen om te zien of de teksthoogte 0 of 0.002 wordt. En dan ziet eerder getoond veld met Labels er opeens zo uit:

Je kunt ook een Expression aanmaken die alleen hele grote positieve of hele grote negatieve waarden toont. Bijvoorbeeld alleen de hoogten groter dan 5m en kleiner dan -5m. Maak daarvoor een nieuwe Expression aan:

En hier wordt de formule die beoordeeld wordt in de IF-constructie: (Absolute Surface Elevation kleiner dan 5). Absoluut is een wiskundige functie die alleen positieve waarden geeft. Dus -5 wordt 5.

Nu worden alleen de labels linksonder en rechtsboven getoond omdat deze groter dan 5m of kleiner dan -5m zijn.

Expressions hebben beperkingen maar met een beetje handigheid kun je hele leuke dingen doen in Civil 3D. Bijvoorbeeld perceeloppervlakken automatisch afronden op 10m² zoals in onderstaand voorbeeld. Hoe je dit doet mag je zelf verzinnen, maar het is met een Expression gedaan.