通過conn.AllRefs;可以找到與之連接的連接器。
[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
cmdConnected : IExternalCommand
{
Result Execute(ExternalCommandData commandData, messages, ElementSet elements)
{
UIApplication app = commandData.Application;
Document doc = app.ActiveUIDocument.Document;
Selection sel = app.ActiveUIDocument.Selection;
Transaction ts = Transaction(doc, );
ts.Start();
Reference refDuct = sel.PickObject(ObjectType.Element, );
Duct duct = doc.GetElement(refDuct) Duct;
ConnectorSetIterator csi = duct.ConnectorManager.Connectors.ForwardIterator();
(csi.MoveNext())
{
Connector conn = csi.Current Connector;
(conn.IsConnected == ) {
ConnectorSet connectorSet = conn.AllRefs; ConnectorSetIterator csiChild = connectorSet.ForwardIterator();
(csiChild.MoveNext())
{
Connector connected = csiChild.Current Connector;
( != connected && connected.Owner.UniqueId != conn.Owner.UniqueId)
{
(connected.ConnectorType == ConnectorType.End ||
connected.ConnectorType == ConnectorType.Curve ||
connected.ConnectorType == ConnectorType.Physical)
{
(connected.Owner FamilyInstance)
{
TaskDialog.Show(, connected.Owner.Name);
}
}
}
}
}
}
ts.Commit();
Result.Succeeded;
}
}url:http://greatverve.cnblogs.com/p/revit-mep-api-AllRefs.html