How to Determine Centreline of a Pipe from Point Cloud


I tried doubling up your node, no joy.

I tried saving your node under a different name, then bringing both nodes in to act as a start and end pipe selection, but no joy. :frowning_face:

It sounds like you need some further direction with this. It will be another day but I will post an example workflow on Monday for pipe geometry creation. :slightly_smiling_face:


I hate asking for assistance and spend many hours trying to solve such problems. Sometimes l succeed, many times l do not. Programming is complex for me, yet l wish it wasn’t.

Dynamo is so fickle, it is repeatedly closing down now each time l am trying to open the script which l showed you a screenshot of. Ridiculous!

Meaning l cannot gain access to the script l have created to date.

That’s not good. :open_mouth:

I am guessing you have you tried the following:

  1. Restart Revit, and therefore Dynamo.
  2. Use the Open in Manual Mode toggle when opening the file.
  3. Checked you haven’t saved the 1.3 version graph in 2.0 format by mistake. (open the dyn as a txt file and look at the formatting)
  4. Check for backups of the graph in the Dynamo folder in your user data.
  5. Temporarily unloaded the pointcloud before opening Dynamo, just in case some weird binding is going on.

Can you start a new Dynamo graph alright? Is this behaviour specific to the graph you have been preparing, or does it happen for a previously created graph as well? (Backup any other dyn file before testing, in case there is some kind of corruption going on)

I hope some of that helps and you can get it running. I can sympathise as I have lost entire workflows from file corruption (from how our server runs) in the past…

Hi Ewan,

I have re-created it and tried again the double up of your node:

It works on occasion. Most of the time no points are selected as per image. Bloomin’ Dynamo. :wink:

The script recreated had been working fine upon a given location of point cloud and now returns nothing. Dynamo is so fickle which renders it unreliable most of the time.


Sadly l shall stop.

One minute it works, next it doesn’t, then if it works if returns a completely incorrect diameter pipe etc. ahhhh


90% of my best stuff starts in this version of ‘Dynamo’

1 Like

Try running this via Dynamo Player, or closing without saving the graph between runs. It sounds as if you’re up against an element binding issue.

1 Like

Here is an example workflow for when you have a decent length of pipe scanned. :slightly_smiling_face:
(I will see if I can find some time this week to test a partially scanned pipe as well)



For incomplete pipe point information (vertical pipes only)…

1 Like

Hi Ewan
The Topic is Awesome. I tried but get some issues please help me out
I have linked the point cloud and selected the pipe via section box in 3D view
and downloaded the sastrugi Package and used Pointcloud select points in view node

after this, a message box appears stating clicked k and selected region from left bottom to right top but I get another message box stating!

there is only one view open in my project
Thanks in Advance have a Nice Day

1 Like

Hi @dineshsubramani

This node has been updated (issue found previously) and is available for download from my website. Hopefully replacing the dyf in your packages folder solves your issue.
Sastrugi Package - Updated
This update will be included in the v2.0 release. (date pending)


Thanks a Lot @Ewan_Opie
i continued the script and i got another issue the circle is formed in the opposite direction may i know how can i sort it out

Thanks in Advance

Check that the Lacing on the Geometry.ClosestPointTo node is set to CrossProduct, so that all the surfaces and points are considered. :wink:


It Works Thanks a Lot for your Kindness @Ewan_Opie

1 Like


Many thanks for further input.

I shall look at what you have posted.

Did you say that your nodes downloaded a few days ago have been updated?



I tried your variation, however, no joy:

I have got it to occasionally work, and you have got it to work, however, it does appear to be hit and miss, mostly miss :slightly_frowning_face: