Train signal sighting test line of sight Dynamo

Hi everyone,

I’m working on a train signal sighting test in Civil 3D 2025 and need help refining my workflow.

I have 3D data of the rail corridor, including blocks for signal lights and bridges. I’ve started building a Dynamo script (about 20% is done) to test whether a train driver positioned at a known coordinate XYZ, can see the signal ahead.

I’m currently stuck on how to check if any geometry (bridges, terrain, etc.) obstructs the line of sight between the two points.

Would this visibility check be more efficient using Dynamo + Python, or should I consider AutoLISP or .NET (C#) for better performance? Any sample scripts, methods, or direction for handling ray intersection / visibility analysis in Civil 3D would be greatly appreciated.

Goal:
Automate a process that determines whether each signal light is visible or obstructed from the driver’s location, checking visibility at 1-meter intervals along the entire corridor, and exporting results to Excel (e.g., “Yes / No / Yes” for each signal).

Thanks in advance

1 Like

If you have all the geometry, VASA is a good place to start.

That said, you can also use nodes to draw a line from the eye point to the signal and test if it intersects any existing point. Likely this means you’d need to draw a lot of lines though.

The benefit with the VASA method is you can run the reverse - get all voxels which are within a line of site from the sign and confirm that all eye points are in the list of visible voxels as the initial test. More info on VASA here: https://m.youtube.com/watch?v=cmlV-tdEkGA

1 Like

Thanks for the input, Jacob. My thought about drawing lines from the nodes is how we can direct those lines toward the nine signal lights, since at each 1-meter interval the angle will be completely different. I hope that makes sense.

Line.ByStartPointEndPoint(meterIntervals, signPoint)

1 Like

look up ‘isovist’

I believe there are some Dynamo packages for this. Definitely in grasshopper.

Someone has done the hard work for you- you should have to go back to first principles by drawing lines etc

The VASA package can replace the isovosts with a view study - either full dome, cone, or frame.

It’s also great for path finding (2D or 3D), terrain analysis, and schematic cut/fill calculations.