revit二次开发之找到与管道连接的连接器名称

原文链接
版权声明:本文为转载文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

很多时候我们都需要知道管道连接了哪些连接件,以下的代码就能帮助解决这个需求。

PS:无论是查找管道,或者连接件,只需改动几行代码就能实现。

 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 refPipe = sel.PickObject(ObjectType.Element, "pipe");
            Pipe pipe = doc.GetElement(refPipe) as Pipe;
            ConnectorSetIterator csi = pipe.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("管道所连接的连接件名称是:", connected.Owner.Name);
                                }
                            }
                        }
                    }
                }
            }

            ts.Commit();

            return Result.Succeeded;
        }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 每天进步一点点点点点点点点点点点点点点点点点点点点点点点点点点点点点点~~从开始只能写几句话、模仿别人的观点,到现...
    一个帅气的名字呀阅读 18,254评论 4 31
  • 早教 对于早教,人者见仁,智者见智,我给孩子报早教的目的只是希望他能有一个和其它孩子接触的机会,别独来独往惯了,性...
    helan606阅读 303评论 0 0
  • 有人的地方就有江湖,有江湖的地方就有美酒。 提起美酒,就不得不提到国酒茅台。 2017年8月17日19:00,为回...
    盟主世纪阅读 302评论 0 0
  • 最近小青发生了一件事,她被人骗了钱,就像中老年被高昂的保健品骗了一样,太相信别人话的小青得知自己被骗了之后,懊恼万...
    索尼格格阅读 308评论 0 2