Is it possible to change end reference of a beam?

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 :slight_smile:

3 Likes