|
通过连接器找到所属元素。[Transaction(TransactionMode.Automatic)] - <div align="left"></div><div align="left">[Regeneration(RegenerationOption.Automatic)]
- public class GetElementByConnector : IExternalCommand
- {
- public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
- {
- UIApplication uiApp = commandData.Application;
- Document doc = uiApp.ActiveUIDocument.Document;
- Selection sel = uiApp.ActiveUIDocument.Selection;
- Reference refelem = sel.PickObject(ObjectType.Element, "请选择一个风管");
- Duct duct = refelem.Element as Duct;//这里也可以是风道末端之类MEPSystem
- ConnectorSetIterator csi = duct.ConnectorManager.Connectors.ForwardIterator();
- Connector conn = null;
- while (csi.MoveNext())
- {
- conn = csi.Current as Connector;
- }
- GetElementAtConnector(conn);
- return Result.Succeeded;
- }
- public void GetElementAtConnector(Connector connector)
- {
- MEPSystem mepSystem = connector.MEPSystem;
- //if (null != mepSystem)//加上这个判断风管不属于
- if (true)
- {
- string message = "Connector is owned by:" + connector.Owner.Name;
- if (connector.IsConnected == true)//是否连接其他,比如弯头
- {
- ConnectorSet connectorSet = connector.AllRefs;
- ConnectorSetIterator csi = connectorSet.ForwardIterator();
- while (csi.MoveNext())
- {
- Connector connected = csi.Current as Connector;
- if (null != connected)
- {
- if (connected.ConnectorType == ConnectorType.EndConn ||
- connected.ConnectorType == ConnectorType.CurveConn ||
- connected.ConnectorType == ConnectorType.PhysicalConn)
- {
- message += "\nConnecotr is connected to:" + connected.Owner.Name;
- message += "\nConnection type is:" + connected.ConnectorType;
- }
- }
- }
- }
- else
- {
- message += "\nConnector is not connected to anything.";
- }
- MessageBox.Show(message, "Revit");
- }
- }
- }
- </div>
复制代码 |
|
|