Revit二次开发——怎么读取cad里的单独的一条线

如有不明白,请qq254033230询问。
今天有朋友问我怎么通过Revit读取cad里的单独的一条线,我刚开始在网上找了一下,发现并没有相关介绍,网上都是读取cad里所有的线的信息或者图层相关。于是我自己尝试了一下,只要通过这个关键的PickObject(ObjectType.PointOnElement)方法,就可以获取到点选的单独的一条线,然后通过GetGeometryObjectFromReference转化成geometryObject即可。然后想怎么利用就怎么利用你选的信息(我这里是读取出线的第二个点的坐标)。

public class Class1 : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
            Document revitDoc = commandData.Application.ActiveUIDocument.Document;  //取得文档
            Application revitApp = commandData.Application.Application;             //取得应用程序
            UIDocument uiDoc = commandData.Application.ActiveUIDocument;

            Selection sel = uiDoc.Selection;
            //Reference re = sel.PickObject(ObjectType.Element);
            Reference re = sel.PickObject(ObjectType.PointOnElement);

            ImportInstance dwg = revitDoc.GetElement(re) as ImportInstance;
            var geoObj = (dwg as Element).GetGeometryObjectFromReference(re);
            TaskDialog.Show("revit", geoObj.GetType().ToString());
            //Transform transf = null;
            XYZ p1 = null;
            XYZ p2 = null;



                    if (geoObj is Line)
                    {
                        Line l = geoObj as Line;
                        p1 = l.GetEndPoint(0);
                        p2 = l.GetEndPoint(1);
                        TaskDialog.Show("revit", p2.X.ToString());
                    }

            return Result.Succeeded;
        }
    }
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值