Hi @glenncai I improved the script, now it works in both cases, for StartPoint (0) and EndPoint (1) of your beams.
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
if isinstance(IN[0],list):
beams = UnwrapElement(IN[0])
else:
beams = [UnwrapElement(IN[0])]
b = UnwrapElement(IN[1])
TransactionManager.Instance.EnsureInTransaction(doc)
ref = FamilyInstance.GetReferenceByName(b,"Center (Front/Back)")
for x in beams:
FamilyInstance.AddCoping(x,b)
if StructuralFramingUtils.IsEndReferenceValid(x,0,ref):
StructuralFramingUtils.SetEndReference(x,0,ref)
else:
StructuralFramingUtils.SetEndReference(x,1,ref)
TransactionManager.Instance.TransactionTaskDone()
Please also don’t forget to mark the topic as solved, so that everybody can find it easily