Revit二次开发之获取构件Connector

1.Revit二次开发公用专业中的管道,风管,桥架,导线等系统族 要想获取它的连接件 需要将其转化为MEPCurve

 

      如:  UIApplication uiapp = commandData.Application;

            UIDocument uidoc = uiapp.ActiveUIDocument;

            Document doc = uiapp.ActiveUIDocument.Document;

            Reference refer = uidoc.Selection.PickObject(ObjectType.Element);

            Element elem = doc.GetElement(refer);

            //管道

            Pipe pipe = elem as Pipe;

            //风管

            Duct duct = elem as Duct;

            //桥架

            CableTray cabletray = elem as CableTray;

            //导线

            Wire wire = elem as Wire;

 

再转化为MEPCurve,然后就可以获取和设置目标连接件(Connector),也可直接由Element直接转换

       转换过程如下:

 

            //MEPCurve mep = pipe as MEPCurve;

            MEPCurve mep = elem as MEPCurve ;            

            ConnectorSetIteratorSetIterator=mep.ConnectorManager.Connectors.ForwardIterator ();           

            while (SetIterator.MoveNext ())     

            { 

  

               Connector connector = SetIterator.Current as Connector;    

            } 

 

2.要想获取公用专业标准族实例(如管件,设备等),需要将标准族实例转化为MEPModel

      

 

       如: UIApplication uiapp = commandData.Application;

            UIDocument uidoc = uiapp.ActiveUIDocument;

            Document doc = uiapp.ActiveUIDocument.Document;

            Reference refer = uidoc.Selection.PickObject(ObjectType.Element);

            Element elem = doc.GetElement(refer);

            //必须将Element 转化到FamilyInstance级别

            FamilyInstance instance = elem as FamilyInstance;

            MEPModel model = instance.MEPModel as MEPModel;

            ConnectorSetIterator set = model.ConnectorManager.Connectors.ForwardIterator();

            while (set.MoveNext())

            {

 

                Connector co = set.Current as Connector;

 

            }  

3.获取连接件上连接的所有连接件

 

        如:ConnectorSetIterator connectorSetIterator = connector.AllRefs.ForwardIterator();            

            while (connectorSetIterator.MoveNext())  

           { 

              Connector connref = connectorSetIterator.Current as Connector;  

           }    

4.连接件几个重要的属性方法

              Connector.Owner获得宿主,Connector.Origin获得坐标 , ConnectTo()方法连接两个connectors

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值