Get the centreline of duct or pipes as curve

This workflow does not return me the centreline as a curve. Please suggest.

@theshysnail Try Element.GetLocation

2 Likes

Thanks man!
Basic question: Is there quick way I could segregate the lines and points (acquired by fittings) output of Element.GetLocation?
I can only remember the string.contains method.

Still I’m facing this warning while creating a polycurve.

@theshysnail
your way of filtering is already pretty straightforward. you can create a Python Node and throw the following into it if you consider it a “quicker” way, one node only:

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

OUT = [item for item in IN[0] if isinstance(item, Line)]
1 Like

Thanks again. That’s a pretty neat code.
Could you also please look at the warning I’m getting in my previous reply?

@theshysnail very informative post, that tolerance input is for gaps. Try setting it larger than the maximum gap (gap due to fitting).

There is a discussion on this issue here.

1 Like

@theshysnail 2nd input to the rescue.


1 Like

Yes. I was using Dynamo 1.3.4.
Seems like I need to upgrade my 2.0.1 version to 2.0.3 to get this working as my 2.0.1 throws a warning on Element.GetLocation.

What is the warning? It may just be a scale/units issue which means you’d only need to update a setting.

Warning: Element.GetLocation operation failed.
The type initializer for ‘Autodesk.LibG.LibGPINVOKE’ threw an exception.

Ah. I recall hearing this recently in another thread. Likely an install issue to fix it, but shouldn’t be too tough to do.

1 Like

@jshial @jacob.small

I got Dynamo for Revit 2.0.3 installed and this workflow works fine for getting the pipe network centreline as a curve.

However, there are two problems with the workflow when:

  1. The piping is not drawn at one go i.e. continuous element IDs of pipes are not there in Dynamo workflow and a polycurve could not be formed.

  2. joinTolerance (for the gaps between two pipes due to pipe fitting) is greater than a (short) pipe piece length.

Both of these are rather separate issues from your prior topic which has a solution which others will likely be able to learn from.

Can you start a new thread and be specific about what you are after in the end (ie: I want to build a polyline from all my pipe systems so I can __________.)?

1 Like

Thanks Jacob.

New Topic is created at PolyCurve from a Pipe Network

1 Like