How to Automatically Add Labels for Intersecting Alignments (Side Roads) to a Profile View Using Dynamo?

Hi everyone,

I’m learning Dynamo in Civil 3D and trying to understand how to automate labeling the intersection points of side alignments (intersecting alignments) on the main alignment’s Profile View. For example, adding vertical lines, markers, and labels showing the side alignment name, station, and elevation at the crossing point.

The manual “Add Crossings to Profile View” command works well, but I’d like to explore automating it with Dynamo, especially in Civil 3D 2025 or later (where new labeling nodes like ProfileViewStationElevationLabel and ProfileViewDepthLabel are available).

My planned approach:

  • Get a list of side alignments.

  • Find intersection points with the main alignment (using Geometry.Intersect or Alignment.IntersectWith nodes).

  • Extract the station on the main alignment (using Alignment.StationAtPoint).

  • Calculate the elevation (from the side profile if available, or from a surface).

  • Add Station/Elevation labels (or General Note labels for custom text like “Side Road: [Name] - Station [X]”).

Does anyone have a sample script, Dynamo graph, or step-by-step guidance for this? Would the Camber package help, or are the built-in nodes sufficient?

Thanks for any tips – this is purely for learning Dynamo workflows!

Hi,

Short answer is sadly that you can’t do it using Projection objects as Projection object creation is not exposed in the API. This is something I have been asking for for years now:

As a workaround you can create static objects by determining station and elevation and create static objects, like text/mtext/block reference at the corresponding locations in the profile view, but you have to do it every time something changes.

2 Likes