import clr clr.AddReference('ProtoGeometry') from Autodesk.DesignScript.Geometry import * # import revit API clr.AddReference("RevitAPI") import Autodesk from Autodesk.Revit.DB import * from Autodesk.Revit.DB.Plumbing import * #import document manager and transacetion clr.AddReference("RevitServices") import RevitServices from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager #import ToDSType bool extension method clr.AddReference("RevitNodes") import Revit clr.ImportExtensions(Revit.Elements) clr.ImportExtensions(Revit.GeometryConversion) doc = DocumentManager.Instance.CurrentDBDocument stpt = UnwrapElement(IN[0]) #get the pipe startpoint level = UnwrapElement(IN[1])[0] #get the base level pipeType = UnwrapElement(IN[2]) #get the pipe type systemType = UnwrapElement(IN[3]) #get the sytem type endpt = UnwrapElement(IN[4]) #get the pipe endpoint elements = [] #define emptylist pipe = [] #define emptylist #create transaction TransactionManager.Instance.EnsureInTransaction(doc) for i in range(0, len(IN[0])) : pipe = Pipe.Create(doc, systemType.Id, pipeType.Id, level.Id, XYZ(stpt[i].X, stpt[i].Y, stpt[i].Z ), XYZ(endpt[i].X, endpt[i].Y, endpt[i].Z ) ) #make pipe elements.append(pipe) TransactionManager.Instance.TransactionTaskDone() #Assign your output to the OUT variable. OUT = elements