Revit API access to Structural Connection parameters

@Michael_Gawel @jostein_olsen

I created a simplified python version to copy settings from one connection to several others of the same type:

Python script:

# Code by Einar Raknes, 2018

import clr

# Import List ( ICollection(ElementId) = List[ElementId]() )
clr.AddReference('System')
from System.Collections.Generic import List

# Import Revit API
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *
from Autodesk.Revit.DB.ExtensibleStorage import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *

# Import ToDSType(bool) extension method
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)

# Import DocumentManager and TransactionManager
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument

# Input
srcConn = UnwrapElement(IN[0])
if isinstance (IN[1], list):
	destConnList = UnwrapElement(IN[1])
else:
	desConnList = [UnwrapElement(IN[1])]
	
type = doc.GetElement(srcConn.GetTypeId())
connectionGuid = type.ConnectionGuid
schema = Schema.Lookup(connectionGuid)
entity = srcConn.GetEntity(schema)

 #Make changes to Revit DB in a Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
OUT = [destConn.SetEntity(entity) for destConn in destConnList]
TransactionManager.Instance.TransactionTaskDone()
4 Likes