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

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

NULL

ad.jpg

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

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

網(wǎng)友投稿

更多

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


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


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


Revit API 提供了SpatialElementGeometryCalculator 這個(gè)類(lèi)


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


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


代碼如下:


            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

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

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