import clr #Import Revit Nodes clr.AddReference('RevitNodes') import Revit clr.ImportExtensions(Revit.Elements) clr.ImportExtensions(Revit.GeometryConversion) # Import RevitAPI clr.AddReference('RevitAPI') import Autodesk from Autodesk.Revit.DB import * # Import DocumentManager and TransactionManager clr.AddReference('RevitServices') from RevitServices.Persistence import DocumentManager from RevitServices.Transactions import TransactionManager #The inputs to this node will be stored as a list in the IN variables. lines = IN[0].ToRevitType() level = UnwrapElement(IN[1]) type = UnwrapElement(IN[2]) output = [] doc = DocumentManager.Instance.CurrentDBDocument #Create Curve Array footprint = [] footPrintToModelCurveMapping = [] #Loop through lines for line in lines: footprint.append(line.Curve) footPrintToModelCurveMapping.Append(line.GeometryCurve) iterator = footPrintToModelCurveMapping.ForwardIterator() iterator.Reset() while iterator.MoveNext(): line = iterator.Current as ModelCurve footprintRoof.set_DefinesSlope( line, true ) footprintRoof.set_SlopeAngle( line, 0.5 ) #Start Transaction TransactionManager.Instance.EnsureInTransaction(doc) #Create Roof roof = doc.Create.NewFootPrintRoof(footprint, level, type, out footPrintToModelCurveMapping) output.append(roof.ToDSType(False)) #End Transaction TransactionManager.Instance.TransactionTaskDone() #Assign your output to the OUT variable. OUT = output