Hi All,
I updated from Revit 2020 to Revit 2023. The NewFloor method has been deprecated.
I have to use the Floor.Create en CurveLoop.Create method. But it is not working.
Get the following warning:
No method matches given arguments for create
# Load the Python Standard and DesignScript Libraries
import sys
import clr
clr.AddReference('ProtoGeometry')
import Autodesk
from Autodesk.DesignScript.Geometry import *
clr.AddReference("RevitAPI") # (Import RevitAPI Classes)
from Autodesk.Revit.DB import * # (from Autodesk.Revit import DB zou ook kunnen = het zelfde)
clr.AddReference("RevitAPI") # (Import RevitAPI Classes)
from Autodesk.Revit.DB import * # (from Autodesk.Revit import DB zou ook kunnen = het zelfde)
clr.AddReference('RevitAPIUI') # (Import RvitAPIUI)
from Autodesk.Revit.UI import * # (Imports the userinterfaces Classes)
clr.AddReference("RevitServices") # (Import DocumentManager)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference("RevitNodes") # (Import RevitNodes)
import Revit
from Revit import *
clr.ImportExtensions(Revit.Elements) # (Adds ToDSType(bool) extention method to Wrapped elements)
clr.ImportExtensions(Revit.GeometryConversion) # (Import ToProtoType, ToRevitType geometry conversion extension methods to objects)
clr.ImportExtensions(Revit.GeometryReferences) # (Import ???)
clr.AddReference("DSCoreNodes") # (Import DSCoreNodes)
import DSCore
from DSCore import *
doc = DocumentManager.Instance.CurrentDBDocument
_FlTypeBegGrVloer = UnwrapElement(IN[0])
unit = UnitTypeId.Millimeters
ConFromIntUn = UnitUtils.ConvertFromInternalUnits
#*****************************************************************************
# SELECT LEVELS IN DOCUMENT
#*****************************************************************************
collector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Levels).OfClass(Level)
famtypeitr = collector.GetElementIdIterator()
famtypeitr.Reset()
levels = []
LevelNames = []
elevations = []
elementids = []
for item in famtypeitr:
famtypeID = item
faminst = doc.GetElement(famtypeID)
level = faminst
levelname = faminst.Name
elevation = faminst.Elevation
elementid = faminst.Id
levels.append(level)
LevelNames.append(levelname)
elevations.append(UnitUtils.ConvertFromInternalUnits(elevation, unit))
elementids.append(elementid)
for Elem, Name, Elev, Id in zip(levels, LevelNames, elevations, elementids):
if Name == "bk. fundering":
LevelbkFunderingElem = Elem
LevelbkFunderingName = Name
LevelbkFunderingElev = Elev
LevelbkFunderingId = Id
point1 = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)
point2 = Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 3000, 0)
point3 = Autodesk.DesignScript.Geometry.Point.ByCoordinates(5000, 3000, 0)
polyCurve = PolyCurve.ByPoints([point1, point2, point3], True)
curvesFund = Autodesk.DesignScript.Geometry.Geometry.Explode(polyCurve)
curveArFundSt = []
for s in curvesFund:
curveArFundSt.append(s.ToRevitType(True))
#curveloop = []
curveloop = CurveLoop.Create(curveArFundSt)
OUT = LevelbkFunderingId, _FlTypeBegGrVloer.Id, curveloop
TransactionManager.Instance.EnsureInTransaction(doc)
floor = Floor.Create(doc, curveloop, _FlTypeBegGrVloer.Id, LevelbkFunderingId)
TransactionManager.Instance.TransactionTaskDone()