You are right, a little improvement for some case
import clr
import sys
import System
#import Revit API
clr.AddReference('RevitAPI')
import Autodesk
import Autodesk.Revit.DB as DB
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
def get_wire_elements(wire):
out = []
for con in wire.ConnectorManager.Connectors:
if any(c.Owner.Id == wire.MEPSystem.Id for cRef in con.AllRefs for c in cRef.AllRefs):
for cRef in con.AllRefs:
if isinstance(cRef.Owner, DB.FamilyInstance):
out.append(cRef.Owner)
return out
toList = lambda x : x if hasattr(x, '__iter__') else [x]
#Preparing input from dynamo to revit
lst_wires = toList(UnwrapElement(IN[0]))
OUT = [get_wire_elements(w_) for w_ in lst_wires]