For multiple views, references and dimension setout lines, all the python inputs needed to be able to handle lists.
import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
app = DocumentManager.Instance.CurrentUIApplication.Application
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
def tolist(obj1):
if hasattr(obj1,"__iter__"): return obj1
else: return [obj1]
views = tolist(UnwrapElement(IN[2]))
dimSetoutLines = tolist(UnwrapElement(IN[0]))
refs = tolist(UnwrapElement(IN[1]))
refArrays = []
outList = []
for refList in refs:
rArr = ReferenceArray()
for l in refList:
rArr.Append(l)
refArrays.append(rArr)
TransactionManager.Instance.EnsureInTransaction(doc)
for l,r,v in zip(dimSetoutLines,refArrays,views):
try:
outList.append(doc.Create.NewDimension(v,l.GeometryCurve,r))
except Exception,e:
outList.append(e.message)
TransactionManager.Instance.TransactionTaskDone()
OUT = outList
To get the references of the CurtainGridLines use the node from the designtech.io package.