Separation Civil 3d rail solids

I am looking for a solution for dividing rail solids from Civil3D into segments with different lengths. The main condition for the division is the coincidence of rail joints (tolerance +/- 12 mm). The outer and inner rails have different stations in a curved track section when divided into 25 m segments and I need to shorten one of the rails in 20 mm increments.
SplitCorridorSolid from Dynamo Civil examples almost did not help me. I believe CivilConnection package and Python can help me with my purpose. Make a long story short my questions is:

  1. I want my Python script to automatically detect external and internal rails.
    After each iteration of the division, I would like to compare the stations of the resulting rail joints.
    If CivilConnection Featureline.PointAtStation node has the opposite node with the StationAtPoint function …
    Without the StationAtPoint function in Dynamo, I project the breakpoints on the alignment and compare the X and Y coordinates. But it is not universal method.

Maybe someone had a similar problem?

2.I get the baseline and rail geometry from the corridor using the CivilConnection Corridor.GetFeaturelines node, and when I try to use Curve.PointsAtSegmentLengthFromPoint, I get the wrong result. It seems that the baseline and rails PolyCurves are still interpreted by Dynamo as several different curves.

I apologize for my bad English, thank you for your attention.

There is a node in CivilConnection Featureline.PointByChord that should work for what you are trying to do.

1 Like