TypeError: TypeError: expected Curve, got CurveLoop Building Pad - Dynamo + Python

Hi Everybody.
I´m trying to create a building pad with python node.
pad = BuildingPad.Create(doc,typeId,levelId,loop)

I’m not sure about this error.

Python Script got crash:

Warning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
Traceback (most recent call last):
File “”, line 38, in
TypeError: expected Curve, got CurveLoop

Script:

import clr
#Import Revit Services
clr.AddReference (“RevitServices”)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
#Import Revit API
clr.AddReference(‘RevitAPI’)
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Architecture import *
clr.AddReference(‘RevitAPIUI’)
from Autodesk.Revit.UI import *
#Import Revit Node
clr.AddReference(‘RevitNodes’)
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
#Import Proto Geometry
clr.AddReference(‘ProtoGeometry’)
from Autodesk.DesignScript.Geometry import *

import System
from System.Collections.Generic import *

#inputs
level = UnwrapElement(IN[0])
padType = UnwrapElement(IN[1])
curves = IN[2]

#necessary ID’s
levelId = level.Id
typeId = padType.Id

#creating CurveLoop
loop = CurveLoop()
for c in curves:
loop.Append(c.ToRevitType())

#get the document
doc = DocumentManager.Instance.CurrentDBDocument

#use safe transaction with Revit
TransactionManager.Instance.EnsureInTransaction(doc)

#creating pad
loops = [loop]
pad = BuildingPad.Create(doc,typeId,levelId,loop)

#Finish transaction with task done
TransactionManager.Instance.TransactionTaskDone()

OUT = pad

That method requires a .NET list of curve loops and in IronPython you can instantiate such a list using the following syntax:

loops = List[CurveLoop]()
loops.Add(loop)
pad = BuildingPad.Create(doc,typeId,levelId,loops)
3 Likes

Thanks my friend