Ductwork / Pipes with Grasshopper


As far as I understand there is no generic way to draw pipes and ductwork in va that remains editable in size and other parameters. now my idea was to solve this by using a grasshopper definition and a va Element.
Here is what I tried:

this lets me create a new element and pick a curve to change its path

now if i select the new curve to the right as my element basecurve I get an editable pipe / ductwork

my problem is that in case of changing the path of my pipe, the va element wont update accordingly

also there is no option to turn on controllpoints for the va element

I could relink the curve to the va element each time I update the curve but this seems to become too messy in a complex scene.

Has anyone delt with a similar situation / can ynone think of a smart solution for my problem?

thank you!

Hi @linus

I recommend you use your definition to create a Beam style instead of an Element style.
Since beams are generated from path curves, your definition might work better, and you will be able to create the beam from the desired curve at once (and not by picking one from the Properties panel), and edit it easily through control points.

The problem in the example above is that the insert point of Elements is related to the 0,0,0 coordinates in your GH definition. So to make it work, in your GH file, you should move the path curve to the (0,0,0) coordinates. That way, when you select a curve, your Element will be generated matching its position.
In any case, try it with the Beam object.

Hi Francesc, thanks for your answer. I also noticed the location and orientation problem when using element. Thanks for your proposed solution with beams. the problem here is that i’m left with larger amount of single pieces (beams). a solution where one could enter diameter etc. of a pipe and just update a guiding curve would be a great addition.


Hi Linus,
It might not be the ideal solution, but you could use the Railing object instead (which is also generated from a path curve) to have a single object for each polyline, since the beam breaks the polyline down into different beams for each resulting segment.
We have plans in future versions to make Elements be created from curves or surfaces besides from insert points. In your case it could help.