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

下載app免費(fèi)領(lǐng)取會員

NULL

ad.jpg

二次開發(fā)教程:Revit開發(fā)獲取房間內(nèi)的構(gòu)件

發(fā)布于:2019-08-26 16:45:55

網(wǎng)友投稿

更多

獲取房間內(nèi)的構(gòu)件,大致思路如下


房間是有邊界和高度的,所以我們可以得到房間的邊界和高度


來構(gòu)造一個Solid,然后用過濾和這個Solid相交的構(gòu)件


Revit API 提供了SpatialElementGeometryCalculator 這個類


可以方便的獲取到房間的Solid


注意:這個Solid無法過濾到房間內(nèi)部為房間邊界的構(gòu)件,如建筑柱勾選了房間邊界后就過濾不到了


代碼如下:


            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());

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

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

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

60acb4e0ef112.png