Get Insulation on Pipe


#1

Hi Everyone,
I would like get Insulation on Pipe. Can you suggest me an Idea.

Many Thanks,


#2

Hey

Can you show what you have tried so far and where you are getting stuck? Should be able to help out from there


#3


Hi,
I have a pipe with Insulation. I would like to get Insulation of pipe when i select pipe. Yah!
Thanks for your help


#4

I meant can you show what you have tried in Dynamo so far? Upload your script and where you are having trouble and we can help out


#5

This is a bit tricky as there is no out of the box way to get the pipe insulations for a pipe, you need access to the Revit API.
You can use the code below to access the insulation of a pipe:

import clr

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

if isinstance(IN[0], list):
	pipes = UnwrapElement(IN[0])
else:
	pipes = [UnwrapElement(IN[0])]

listout = []

for pipe in pipes:
	try:
		insulation = InsulationLiningBase.GetInsulationIds(doc,pipe.Id)
		listout.append(doc.GetElement(insulation[0]))
	except:
		listout.append(None)


OUT = listout

I’ve also added the node to my package MEPover


#7

Great tricky !!! Best thanks T_Pover