Revit MEP API找到连接器连接的连接器

通过conn.AllRefs;可以找到与之连接的连接器。
//连接器连接的连接器
[TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)]
public class cmdConnected : IExternalCommand
{
    public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements)
    {
        UIApplication app = commandData.Application;
        Document doc = app.ActiveUIDocument.Document;
        Selection sel = app.ActiveUIDocument.Selection;

        Transaction ts = new Transaction(doc, "revit");
        ts.Start();

        Reference refDuct = sel.PickObject(ObjectType.Element, "duct");
        Duct duct = doc.GetElement(refDuct) as Duct;
        ConnectorSetIterator csi = duct.ConnectorManager.Connectors.ForwardIterator();
        while (csi.MoveNext())
        {
            Connector conn = csi.Current as Connector;
            if (conn.IsConnected == true)//是否有连接
            {
                ConnectorSet connectorSet = conn.AllRefs;//找到所有连接器连接的连接器
                ConnectorSetIterator csiChild = connectorSet.ForwardIterator();
                while (csiChild.MoveNext())
                {
                    Connector connected = csiChild.Current as Connector;
                    if (null != connected && connected.Owner.UniqueId != conn.Owner.UniqueId)
                    {
                        // look for physical connections 
                        if (connected.ConnectorType == ConnectorType.End ||
                            connected.ConnectorType == ConnectorType.Curve ||
                            connected.ConnectorType == ConnectorType.Physical)
                        {
                            //判断是不是管件
                            if (connected.Owner is FamilyInstance)
                            {
                                TaskDialog.Show("fitting", connected.Owner.Name);
                            }
                        }
                    }
                }
            }
        }

        ts.Commit();

        return Result.Succeeded;
    }
}
url:http://greatverve.cnblogs.com/p/revit-mep-api-AllRefs.html
posted @ 2014-02-26 13:13  大气象  阅读(1721)  评论(0编辑  收藏  举报
http://www.tianqiweiqi.com