#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
I have filtered out rebar with lengths greater than 6m via a mask, then tried to pass rebar that exceed 6m into your node with longest lacing, yet it returns null.
With your kind assistance l am getting there l think.
So l have filtered out the centrelines of the rebar which exceed 6m, and l am then attempting to pass through the split curve with overlap node, yet null is being returned.
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])
rebarShp = rebar.GetShapeDrivenAccessor()
#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 = rebarShp.GetBarPositionTransform(i)
revitCurve = [c.CreateTransformed(posTransform) for c in rebar.GetCenterlineCurves(0,0,0,mpo,0)]
centerlineCurves.append([r.ToProtoType(True) for r in revitCurve])
else:
centerlineCurves = [r.ToProtoType(True) for r in rebar.GetCenterlineCurves(0,0,0,mpo,0)]
OUT = centerlineCurves