完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學歷
* 工作性質
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

二次開發(fā)教程:Revit開發(fā)獲取房間內的構件

發(fā)布于: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());

本文版權歸腿腿教學網及原創(chuàng)作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發(fā)教程:Revit開發(fā)通過軸網創(chuàng)建柱子

下一篇:二次開發(fā)教程:Revit開發(fā)通過Category設置構件顏色

60acb4e0ef112.png