Merging Multiple Curves into one Curve without using Polyline


#1

I’m trying to create a WallByCurveAndHeight however the problem I have with my curves is that they are separated and therefore create not one continuous wall but multiple walls. Is there a way I can merge all these curves into one curve without converting it to a polycurve? The only reason is that the WallByCurveAndHeight node does not read polycurves.

 

NeedHelp


#2

Hi Isabel,

If you download the latest version of “spring nodes”, you’ll find a node called “CurveLoop.Simplify”, that should be able to accomplish what you’re after.

2015-11-02_17-06-34


#3

Hello Yujing,

I had the same problem, KulKul helped me out by suggesting “Curve.ApproximateWithArcAndLineSegments” node. Have a look here:

http://dynamobim.com/forums/topic/automating-wall-tiles/

Regards


#4

Thanks Dimitar and Abhijeet for replying, Dimitar your method worked well for part of it, it solved the loop for most part however is there a way I can make it end up being one whole line? Some parts of my wall are missing and I’m not sure how I can generate them without over lapping. Unfortunately I wasn’t able to achieve what I needed through your method Abhijeet however thank you:)

NeedHelp2


#5

Can you add some segments to that Curtain wall? That should at least get you a better idea about missing segments. From the posted image one cannot tell if there are any missing at the moment.


#6

That’s some nice looking geometry. Hmm, from your initial image, the curves looked to be straight segments. But when I look at the second image, they look curved.

Dynamo is limited by what’s possible to do in Revit. As you may know, Revit’s walls can take in only straight lines and arcs (circles in revit are made up of two arcs) and can not use any breps (nurbs or spline curves). So unfortunately, there is no way to merge the curves into a single entity that can be accepted by the wall creation node.

Since your curves are actually breps, we’ll need to approximate them. The built-in node “Curve.ApproximateWithArcAndLineSegments” can do the job, but is too aggressive with the tolerance and you can end up with hundreds of curves just from a single brep. That can be disastrous on a larger project. (and might not even work because some of the segments will end up being shorter than revit’s built-in limit) I suggest you try Lunchbox’s “Curve to Arcs by Division” node instead. It can accept a tolerance parameter (in the form of a division count) and that way we can gain a finer control over the number of curves that we send over to Revit.

2015-11-03_10-18-32

 

2015-11-03_10-25-22

Alternatively, you could look into simplifying the way in which you created your curves.


#7

Dimitar,

This is great work, but when I suggested that he adds some segments to his curtain wall I meant to illustrate a point. Point is, that in Revit when you make a curved curtain wall and it only has one or two segments it will look exactly like the image that he posted. However all you have to do is add some segments, and division by distance or by fixed number is already built into the Curtain Wall tool so there is no need to do that in Dynamo unless he wants to really control the size of each segment in some explicit manner. Example:

CaptureCurved curtain wall can be divided by number of segments:

Capture1

 

or it can be divided by spacing:

Capture2

 

Of course using only arcs and lines is a little bit tricky to get any complicated Nurbs Curve to work with thos method and I would probably do something different all together, however it is good to make people aware of the Revit tool’s capabilities so that they don’t attempt to re-create it for no reason.