Connecting Points along Two curves

Hello all,

I’m trying to recreate an existing canopy for a project we are working and I’m having some difficulty create the skeletal line work for the substructure. I have an existing rhino model that imported into revit using a Mass family. I then extracted the edges of the canopy surface into dynamo and turned the nurbs curves into (2) poly surfaces. I then split the polycurves into points using equal length chords but when i try to create a line between points, i get a spider’s web of lines rather than straight lines connecting to the nearst point. I’ve played with different lacing options and levels but nothing has worked. Any ideas would be greatly appreciated.

I’m trying to create something like this

Can you show us the previews on all your nodes so we can see what is going on?

First part of my script:

Second Part:

I’ve been trying to figure out what maybe wrong, so I’ve added a list reverse node to the startpoint

Can you show the node previews for all of the nodes? I’d like to see what your curves look like and if they’re in the right order. Sharing the rvt and dyn file would actually be more helpful.

Also, I wouldn’t use PointAtSegmentLength as that just makes things harder. PointAtParameter would be much cleaner and more reliable. It should just be a matter of getting your curves in order. I’m guessing you have multiple polycurves because your curves can’t be connected as they are.

@juang6EEFE can you post your dyn or a link to it?

Here are all the nodes with previews.

Our server wont let me copy over the revit model but i can attached the Dynamo script

Canopy Model_Based on Current Model.dyn (12.3 KB)

I do have multiple curves that were created from Nurbs curves in my revit model. Sorry i’m still fairly new to dynamo so I’m not familiar with ordering the curves. Also I’ll try the Point at Parameter node.

If trying to create a faceted surface as per your above example, try this workflow.

1.Get the two circles geometry (as you have done, as they exist as two half arcs, correct?)
2. Join each set to make 2 polycurves. (as you have done)
3. Use the PointAtSegment, PointAtChord or PointAtParameter node to get points on one of the new Polycurves.
4. Use the Geometry.ClosestPointTo node with the list of these points and the other new polycurve.
5. Use the two point lists with LineByStartPointEndPoint node.
7. Finally, use the SweepSurfaceByProfile node with the output lines.

I can post an example screenshot tomorrow when back at the office :grinning:

That worked pretty well thanks! But now i have another questions with a bit more complexity. I’m trying to move a group of specific points (circles in blue) on my curve to meet another curve (see image attached). I was trying to use a Geometry.DistanceTo Node as an attractor node but have had no look so far. Any ideas?

Something like this?

Yeah just like that. Thanks soo much!


1 Like