Pipe Network Crossings

Looking for some open source code to help expedite gathering all utility crossings for all pipe networks in a drawing, organizing it by labeling, and exporting to a table. Thanks in advance for any hlep.

Hi @jeremy.jaeger7L5J8,

Welcome! Sorry for the delayed response. Attached is a script to get you started. It will identify all pipe crossings and label them with MText. A few notes:

  • You’ll need the Civil 3D Toolkit package to work with pipes if you don’t have it already.
  • I tested this with two different pipe networks, so it should work with more than that.
  • I didn’t test with curved pipe segments, so you might want to try that if it is necessary for your situation.
  • I didn’t add nodes to export to an Excel spreadsheet, but the data is all there so you can easily add a few nodes to the end.

Hope it helps!

PipeCrossings.dyn (120.3 KB)


This is a great start Zachri. Thank you for the help. Just starting out. Are you using the latest version of the Civil3DToolkit?

Yes, v1.1.9.

Great, thank you Zachri Do yo know how to get the distance between the upper and lower outer walls of the pipes? i don’t see a node to get the elevation at a x, y & z point for pipes.

Outvert at Start and End or you could extract the solids of the pipes involved, calculate the closest points and retrieve the distance

My thoughts exactly Cesar. I am working with Andrew Milford of Autodesk on this as well. He sent me a script that I think will be beneficial but this forum is not allowing me to post it to the thread.

i think you have to change the extension of the file to txt to post it.

My goal is to be able to identify the crossing pipes and if the minimum cover cannot be accomplished then proceed to place a concrete encasement of the pipe. Since it will have the location of the crossing, and thickness and slope of the pipe, the solid can be created and export out to cad. with a label identifying it. Also, to reflect it in the profile.

Sure, I added a few nodes to get the distance between the solids. If the solids intersect, then it labels it with “Clash”. Otherwise it labels the separation distance.

PipeCrossings.dyn (160.2 KB)