完善主体资料,免费赠送VIP会员!
* 主体类型
* 企业名称
* 信用代码
* 所在行业
* 企业规模
* 所在职位
* 姓名
* 所在行业
* 学历
* 工作性质
请先选择行业
您还可以选择以下福利:
行业福利,领完即止!

下载app免费领取会员

NULL

5cdd2dc095060.jpg

二次开发教程:Revit开发获取房间内的构件

发布于:2019-08-26 16:45:55

网友投稿

更多

获取房间内的构件,大致思路如下


房间是有边界和高度的,所以我们可以得到房间的边界和高度


来构造一个Solid,然后用过滤和这个Solid相交的构件


Revit API 提供了SpatialElementGeometryCalculator 这个类


可以方便的获取到房间的Solid


注意:这个Solid无法过滤到房间内部为房间边界的构件,如建筑柱勾选了房间边界后就过滤不到了


代码如下:


            ElementId roomId = new ElementId(313062);

            Document doc = commandData.Application.ActiveUIDocument.Document;

            Room room = doc.GetElement(roomId) as Room;

            SpatialElementGeometryCalculator segc = new SpatialElementGeometryCalculator(doc);

            SpatialElementGeometryResults segr = segc.CalculateSpatialElementGeometry(room);

            Solid solid = segr.GetGeometry();            

            FilteredElementCollector temc = new FilteredElementCollector(doc);

            ElementIntersectsSolidFilter filter = new ElementIntersectsSolidFilter(solid);

            temc.WherePasses(filter);

            TaskDialog.Show("Num", temc.Count().ToString());

本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。

pic.gif

上一篇:二次开发教程:Revit开发通过轴网创建柱子

下一篇:二次开发教程:Revit开发通过Category设置构件颜色

60acb4e0ef112.png