Join Model Lines/Curves

Capture
Capture1
Is there any way I can join these model lines and make them as one model line ? I don’t want them as polycurves, because I am trying to draw walls and they need to be as one curve. I am using create walls by curves and height node , the picture are just for illustration purposes
If there is a way that can create the best fit on the path that would be great
Thanks a lot

Hello,
see if the PointAtParameter node can help you then draw a line between these points

0 beginning of the curve (The vector of your curve can tell you about its orientation)
1 end of the curve

Cordially
christian.stan


Hi Christian , First of all thank you,
But the thing is it I have a lot of curves which are intersecting and sometimes they have a little curve in them (Arcs) I am trying to make dynamo read them as one curve , Yet I am not able to, any idea that can help ?

1 Like

Polycurve.ByJoinedCurve should do the trick if your curves were set up so endpoints aligned.

Hi jacob, I have tried this approach before and true it give one polycurve , but the thing is that I am trying to create walls using wallabycurve and height node
And polycurve will not work on this Node
Is there any node that can create walls from polycurves ?
Or can we join curves as one element ?
Thanks a lot

Revit walls require the individual sub-curves, as you can only define a wall by a single line or arc.

Wall.ByCurveAndHeight with your base walls should do the trick to accomplish that, but again you’ll have many walls, not one.

If you don’t mind losing accuracy you can try drawing an arc by best fit though all the start and end points of the curve. Alternatively after you make the polycurve you can extrude it to a face, make a mace of that, and use Wall.ByFace (but there may be some issues with that based on your geometry).

1 Like

For your overlapping lines, you can try maybe this way (I only tried for 2 lines)

code block

Lig_inf;
Lig_sup;
k=DSCore.List.Count(Lig_inf);
surf=[];
Surf=[Imperative]
{
	for (i in 0..(k-1))
		{
		surf[i]=Surface.ByLoft
		(
		[Lig_inf[i],Lig_sup[i]]
		);
		}
	return surf;
};

good evening
Cordially
christian.stan

Thanks a lot Jacob ,
I will give it a shot tommorow and inform you if it worked as it is too late here
Again thanks a lot

1 Like

Thanks a lot Christian, I will try it tommorow and keep you updated

1 Like