Get Insulation on Pipe

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

Many Thanks,

Hey

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

1 Like


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

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

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

4 Likes

Great tricky !!! Best thanks T_Pover

You can get parameter value by name “Insulation Thickness” and also get “Insulation Type” from the Pipes