How to divide polycurve by parameter

Hi everyone,

Is it possible for me to divide the lower curve as shown below by parameter?


Seems to be working on dynamo 1.1.0 anr revit 2016

Thanks a lot for your reply Mostafa_El_Ayoubi =)

I am using revit 2017 and Dynamo 1.1.0

Unluckily it dont work for me =(

I think the reason would be i did not draw the lines natively in Revit, I drew them in sketchup and converted them to dwg and then import them to revit. I do this because i think it is hard to draw a compound curve in revit 3D space, it is very difficult to define workplane for my case.

It will help if you upload a Revit file with just the relevant geometry and the dyn file.

Thanks Vikram_Subbaiah,

It seems the revit is too big that I could not upload it here.

so I only upload the 3d curve and the dyn.

Trial Path.dwg (17.5 KB)
polycurve problem.dyn (248.9 KB)

I just noticed that all the curves will drop onto the workplane after explosion … so I think i could not solve this problem by dynamo =(

As your curve is non-planar, you’re going to need to clean it up before importing into Revit. One way (I used this archaic program called Microstation to do this) is make the curve continuous, then extract the points from the curve. Extrude the points into lines, then link into Revit. Extract the curves and get their start points. As the points are not necessarily going to be in the correct order and trying to order them is a like trying to get Dynamo to crack a CAPTCHA., that’s your next problem.

A simple way to get around this problem is to create a polycurve (as it orders the curves), extract its subcurves and get the endpoints. So, link the original file and explode it so the model lines are imported to the Revit base plane. Create a polycurve using these lines, extract the curves and get the endpoints. Now its just a case of projecting the points by brute force (or rather by cross-product) up to the start points of the pre-prepped import, then build the polycurve again. This only works as your curve is facated. If it was curved then this solution isn’t appropriate.


Rebuilt in Dynamo:

  1. Import into Revit and convert the lines, then get their start points.

  2. Link your original file and explode. Convert to a polycurve then extract the now ordered curves. Extract the endpoints not forgetting to add the start point of the first curve to the front of the point list. This is now an ordered list of points:

  3. Create a target to project the ordered points to (i.e. the start points of the vertical marker lines). I used a circle which was then converted to a surface.

  4. Project the points to the targets using cross product lacing (so all targets are tested against each point).

  5. Flatten the list, clean it, then build the polycurve:

Here’s the graph:


Thanks a lot for your informative reply, Thomas.

I just found another workflow in Rhino and Grasshopper, please see the images below for your reference.
It is really nice to have your reply, I didn’t think of using projection concept to solve similar geometry problems. Thanks =D

Managed it by simply selecting a 3D spline imported into Revit.
3Dspline.dwg (625.5 KB)

1 Like

You could try drawing the 3D curve in a ConceptualMass family

1 Like