Does anyone know how to update this python script that my company bought from a third party to work in revit 2019 and 2020? I would prefer if someone would tell me what the secret is here so I know what to look for next time, or how to find the information from myself. Thanks
Here is the script:
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)
toggle = ""
if isinstance(IN[0], list):
lines = IN[0]
else:
lines = [IN[0]]
FirstPoint = [x.StartPoint for x in lines]
SecondPoint = [x.EndPoint for x in lines]
ducttype = UnwrapElement(IN[1])
systemtype = UnwrapElement(IN[2])
if isinstance(IN[3], list):
level = UnwrapElement(IN[3])
toggle += "0"
else:
level = [UnwrapElement(IN[3])]
if isinstance(IN[4], list):
width = IN[4]
toggle += "1"
else:
width = [IN[4]]
if isinstance(IN[5], list):
height = IN[5]
toggle += "1"
else:
height = [IN[5]]
elements = []
if toggle == "":
TransactionManager.Instance.EnsureInTransaction(doc)
for i,x in enumerate(FirstPoint):
duct = Autodesk.Revit.DB.Mechanical.Duct.Create(doc,systemtype.Id,ducttype.Id,level[0].Id,FirstPoint[i].ToXyz(),SecondPoint[i].ToXyz())
param = duct.get_Parameter(BuiltInParameter.RBS_CURVE_WIDTH_PARAM)
param.SetValueString(width[0].ToString())
param2 = duct.get_Parameter(BuiltInParameter.RBS_CURVE_HEIGHT_PARAM)
param2.SetValueString(height[0].ToString())
elements.append(duct.ToDSType(False))
TransactionManager.Instance.TransactionTaskDone()
elif toggle == "0":
TransactionManager.Instance.EnsureInTransaction(doc)
for i,x in enumerate(FirstPoint):
duct = Autodesk.Revit.DB.Mechanical.Duct.Create(doc,systemtype.Id,ducttype.Id,level[i].Id,FirstPoint[i].ToXyz(),SecondPoint[i].ToXyz())
param = duct.get_Parameter(BuiltInParameter.RBS_CURVE_WIDTH_PARAM)
param.SetValueString(width[0].ToString())
param2 = duct.get_Parameter(BuiltInParameter.RBS_CURVE_HEIGHT_PARAM)
param2.SetValueString(height[0].ToString())
elements.append(duct.ToDSType(False))
TransactionManager.Instance.TransactionTaskDone()
elif toggle == "11":
TransactionManager.Instance.EnsureInTransaction(doc)
for i,x in enumerate(FirstPoint):
duct = Autodesk.Revit.DB.Mechanical.Duct.Create(doc,systemtype.Id,ducttype.Id,level[0].Id,FirstPoint[i].ToXyz(),SecondPoint[i].ToXyz())
param = duct.get_Parameter(BuiltInParameter.RBS_CURVE_WIDTH_PARAM)
param.SetValueString(width[i].ToString())
param2 = duct.get_Parameter(BuiltInParameter.RBS_CURVE_HEIGHT_PARAM)
param2.SetValueString(height[i].ToString())
elements.append(duct.ToDSType(False))
TransactionManager.Instance.TransactionTaskDone()
elif toggle == "011":
TransactionManager.Instance.EnsureInTransaction(doc)
for i,x in enumerate(FirstPoint):
duct = Autodesk.Revit.DB.Mechanical.Duct.Create(doc,systemtype.Id,ducttype.Id,level[i].Id,FirstPoint[i].ToXyz(),SecondPoint[i].ToXyz())
param = duct.get_Parameter(BuiltInParameter.RBS_CURVE_WIDTH_PARAM)
param.SetValueString(width[i].ToString())
param2 = duct.get_Parameter(BuiltInParameter.RBS_CURVE_HEIGHT_PARAM)
param2.SetValueString(height[i].ToString())
elements.append(duct.ToDSType(False))
TransactionManager.Instance.TransactionTaskDone()
OUT = elements