Can Curtain walls be dimensioned with current dynamo nodes?

For multiple views, references and dimension setout lines, all the python inputs needed to be able to handle lists.
:grinning:

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.

2 Likes