Assign component to curve


I will try to explain my problem. As a study, I am trying to do the beams of a Monorail. The “path” of the monorail is given by a curve on Autodesk Civil 3D.

My current solution is:

  1. I made an adaptive component for the beam element.
  2. That adaptive component has 3 adaptive points
  3. On Autodesk Civil 3D, I export the “path” to an excel spreadsheet so I can have the coordinates (x, y, z) for every point in the path.
  4. Because the beam length is 30 m and I have 3 points for every beam, I have set Autodesk Civil 3D to give me points every 15 meters.
  5. I made a script on Dynamo that reads those points and place the beams.

Everything is working fine, and my current solution looks like this:

My question is:

I am not confortable with that solution, what I would like to do is give a path as an input for my adaptive component, and not points from an excel spreadsheet.

Is that possible? How you solve that kind of problem?


Could you just export the setout polycurves (rail, track left, track right) from C3D, import that geometry into Revit and then compute your point placements along the reference curves in Dynamo? This works quite well and I have done a similar thing with Seawalls and proposed survey lines.

Setting up placement rules (conditional statements) within your Dynamo Graph will help keep your design consistent with construction practises. In my example, precast wall blocks (1mx1mx2m) placement spacings needed to allow for differenent gaps a concave set out locations than convex, so the blocks didn’t “bind” when placed.


That is exaclty what I am trying to do. How can I do it using dynamo?

I have found a node called AdaptiveComponent.ByParametersOnCurveReference, but I am not sure if it is right, I dont know how to use that node.