Kulkul,
Many thanks for this.
I am a Dynamo novice really. Managed to create and manipulate a few scripts, but what is outlined is beyond me.
I wouldn’t know how to amend the following script to accept multiple elements:
import clr
clr.AddReference(‘RevitAPI’)
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *
clr.AddReference(‘RevitNodes’)
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
clr.AddReference(‘RevitServices’)
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
view = doc.ActiveView
#Convert input from dynamo to revit
rebar = UnwrapElement(IN[0])
#Set options
mpo = MultiplanarOption.IncludeAllMultiplanarCurves
#Get info from rebar
numOfBars = rebar.NumberOfBarPositions
quantity = rebar.Quantity
layoutRule = rebar.LayoutRule
if numOfBars > 1:
#Find visible bars and get their centerline curves transformed to correct position
centerlineCurves = []
for i in range(numOfBars):
if not rebar.IsBarHidden(view,i):
posTransform = rebar.GetBarPositionTransform(i)
revitCurve = [c.CreateTransformed(posTransform) for c in rebar.GetCenterlineCurves(0,0,0,0)]
centerlineCurves.append([r.ToProtoType(True) for r in revitCurve])
else:
centerlineCurves = [r.ToProtoType(True) for r in rebar.GetCenterlineCurves(0,0,0,0)]
OUT = centerlineCurves