Crapai
(Crapai)
May 13, 2024, 6:24pm
1
Does anyone know how to get a connectors associated parameters? I’m specifically trying to get the parameter that controls the connector’s radius. This is what I have below (I’m just testing stuff, please be kind), but I can’t seem to get “print(info.GetAssociateFamilyParameterId(c.Id))” to work.
for sE in selectedElements:
print(sE)
try:
conn = sE.MEPModel.ConnectorManager.Connectors
print("Collected")
for c in conn:
info = c.GetMEPConnectorInfo()
print(info)
print(info.ToString())
#famInfo = c.MEPFamilyConnectorInfo
#print(famInfo)
connectorParameterId = c.Id
print(connectorParameterId)
print(info.GetAssociateFamilyParameterId(c.Id))
connParameter = info.GetAssociateFamilyParameterId(c.Id)
#connParaValue = info.GetAssociateParameterValue
print(connParameter)
except:
print("Nope")
1 Like
@Crapai ,
i found this script… maybe you can modify it. i use pickObject methode
# 🎳 Revit Variables
uidoc = __revit__.ActiveUIDocument
doc = __revit__.ActiveUIDocument.Document #type: Document
app = __revit__.Application
selection = uidoc.Selection #type: Selection
# 🎯 pick object
ref_picked_object = selection.PickObject(ObjectType.Element)
picked_object = doc.GetElement(ref_picked_object)
# 🥁 get Info
if isinstance(picked_object, list):
fittings = picked_object
toggle = 0
else:
toggle = 1
fittings = [picked_object]
def getConnSysType(connector):
domain = connector.Domain
if domain == Domain.DomainHvac:
return connector.DuctSystemType.ToString()
elif domain == Domain.DomainPiping:
return connector.PipeSystemType.ToString()
elif domain == Domain.DomainElectrical:
return connector.ElectricalSystemType.ToString()
else:
return None
p = []
dir = []
fd = []
ref = []
conns = []
descript = []
H = []
W = []
R = []
MEP = []
Sys = []
Shap = []
sysClass = []
for fitting in fittings:
points = []
direction = []
flowdir = []
refs = []
connlist = []
description = []
height = []
width = []
radius = []
MEPSystem = []
systemType = []
shape = []
systemclass = []
try:
connectors = fitting.MEPModel.ConnectorManager.Connectors
except:
try:
connectors = fitting.ConnectorManager.Connectors
except:
p.append(None)
dir.append(None)
fd.append(None)
ref.append(None)
conns.append(None)
descript.append(None)
H.append(None)
W.append(None)
R.append(None)
Shap.append(None)
MEP.append(None)
Sys.append(None)
sysClass.append(None)
continue
for conn in connectors:
connlist.append(conn)
description.append(conn.Description)
try:
height.append(conn.Height)
width.append(conn.Width)
radius.append(None)
except:
try:
radius.append(conn.Radius)
height.append(None)
width.append(None)
except:
radius.append(None)
height.append(None)
width.append(None)
shape.append((conn.Shape).ToString())
try:
MEPSystem.append(conn.MEPSystem.Name)
systype = doc.GetElement(conn.MEPSystem.GetTypeId())
systemType.append(systype)
except:
MEPSystem.append(None)
systemType.append(None)
try:
systemclass.append(getConnSysType(conn))
except:
systemclass.append(None)
points.append(conn.Origin)
direction.append(conn.CoordinateSystem.BasisZ)
try:
flowdir.append(conn.Direction.ToString())
except:
flowdir.append(None)
for c in conn.AllRefs:
refs.append(c.Owner)
p.append(points)
dir.append(direction)
fd.append(flowdir)
ref.append(refs)
conns.append(connlist)
descript.append(description)
H.append(height)
W.append(width)
R.append(radius)
MEP.append(MEPSystem)
Sys.append(systemType)
Shap.append(shape)
sysClass.append(systemclass)
# 🍉 Assign your output to print.
if toggle:
print(points, flowdir, refs, direction, connlist, description, height, width, radius, MEPSystem, systemType, shape, systemclass)
else:
print(p, fd, ref, dir, conns, descript, H, W, R, MEP, Sys, Shap, sysClass)