SOFTWARE SOLUTIONS FOR CIVIL ENGINEERING

Civil Fast Forward

THE OFFICIAL CADMAGIS BLOG

Major section grade break Labels with a Percent Controller

If you want to add grade break labels to the major section grade only (where the difference is greater than 1%) you can add labels with an offset and an elevation to hundreds of crosses sections for a surface and change a percent controller globally in Autodesk Civil 3D.

Using this method you can do it fast and easily:

1. Select the Section node from Toolspace,

2. Choose the Grade Break node from Label Styles,

3. Create a new Expression and give it a meaningful name e.g. myPercentControl,

– Set the value 0.01 which is equal 1%

4. Create a new Expression and give it a meaningful name e.g. TextHigh,

– Set the value 0.002 which is equal 2mm

5. Create a new Expression and give it a meaningful name e.g. LineLength,

– Set the value 0.01 which is equal 10mm

6. Create a new Expression and give it a meaningful name e.g. ValueInv,

– Set the value 0.00000000001 which is equal almost 0

7. Create a new Expression and give it a meaningful name e.g. myGradeChange,

– Set the Expression and choose Format result as: Percent

 

IF(
({Distance from Centerline}<={Left Length}),{Section Grade Out},
(IF(
({Distance from Centerline}>={Right Length}),{Section Grade In},
{Section Grade Change})))

 

8. Create a new Expression and give it a meaningful name e.g. myLineVis,

– Set the Expression

IF(
({Distance from Centerline}<={Left Length})|
({Distance from Centerline}>={Right Length}),LineLength,
IF(
ABS(myGradeChange)>{ myPercentControl},LineLength,ValueInv))

 

 

9. Create a new Expression and give it a meaningful name e.g. myTextVis,

– Set the Expression

IF(
({Distance from Centerline}<={Left Length})|
({Distance from Centerline}>={Right Length}),TextHigh,
IF(
ABS(myGradeChange)>{ myPercentControl},TextHigh,ValueInv))

10. Now create a new label and call it e.g. myPercentSectionOffsetElevation,

11. Delete all the existing elements and add your new line element

– Name = LineElement
– Start point anchor point = Anchor Grade Break
– Length = myLineVis
– Angle = 90.0000(d)

12. Add a new Text element,

– Name = TextElement
– Anchor Componet = LineElement
– Anchor Point = End
– Text Height = myTextVis
– Attachment = Middle left
– Gap = 0

– Contents –

OFF:<[Offset from Centerline(Um|P2|RN|AP|GC|UN|Sn|OF)]> ELEV:<[Section Elevation(Um|P2|RN|AP|GC|UN|Sn|OF)]>

(Optionally to see how it works you can also add):

DIFF: <[myGradeChange(FP|P2|RN|AP|Sn|OF)]>

13. Choose Edit Section Labels and Select a Section,

14. Choose from Type: Grade Breaks and from Section Grade Break Label Style: myPercentSectionOffsetElevation,

15. Change Weeding to the value = 0

16. You can also use the Stagger Labels option and set it as Stagger both with the following values:

Stagger line1 height = 6.00mm and Stagger line2 height = 3.00mm

17. Click the OK button,

18. You will see the final result:

19. Now you can control globally the values: TextHigh and LineLength
You can also control globally your decision value myPercentControler and change the frequency labels to control the percent value e.g. 2%

20. At last if you do NOT want to show the values at LeftLength and RightLength you can change the expression in myLineVis to:

IF(
({Distance from Centerline}<={Left Length})|
({Distance from Centerline}>={Right Length}), ValueInv,
IF(
ABS(myGradeChange)>{ myPercentControl},LineLength,ValueInv))

21. And also for the same reason you can change the expression in myTextVis to:

IF(
({Distance from Centerline}<={Left Length})|
({Distance from Centerline}>={Right Length}), ValueInv,
IF(
ABS(myGradeChange)>{ myPercentControl},TextHigh,ValueInv))