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

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

    NULL

    ad.jpg

    Revit二次開發(fā)教程:獲取相交構(gòu)件及Face重合的判斷

    發(fā)布于:2019-02-18 17:15:53

    網(wǎng)友投稿

    更多

    本文來源:微信公眾號:bimliang   作者:BIMCoder梁老師  更多內(nèi)容請關(guān)注微信公眾號



    一、前言


           前幾日深夜對如何獲取相交構(gòu)件及Face重合的判斷做了些探索,也和行內(nèi)的大佬進行了一定的技術(shù)交流,我覺得還是有必要寫一寫,探討一下。


    二、獲取相交構(gòu)件


           獲取相交構(gòu)件是一件非常可怕的事情,小模型速度還行,當(dāng)模型大起來之后,如何快速獲取一個構(gòu)件的相交構(gòu)件是一件比較頭疼的事情。有位大佬告訴我,當(dāng)你追求速度的時候強烈推薦使用BoundingBoxIntersectsFilter(Outline),Outline可以通過將當(dāng)前構(gòu)件的BoundingBox進行各方向的延伸來獲得:

    腿腿教學(xué)網(wǎng)-Revit二次開發(fā)教程:獲取相交構(gòu)件及Face重合的判斷


    然后將此Outline傳入BoundingBoxIntersectsFilter獲取相交構(gòu)件。

    那么可不可以使用ElementIntersectSolidFilter去獲取周圍的相交構(gòu)件,答案是:不可以!

    原因有以下2條:

    1. 由于建模人員的水平層次不齊,很多時候相交的東西會畫的像貼合一樣,并沒有產(chǎn)生相交的solid,所以你用SolidFilter是獲取不到的;

    2. 模型建模本身的要求就是貼合,并不是相交,但是你在分析模型時需要將與之貼合的構(gòu)件分析進去,用SolidFilter會忽略這些構(gòu)件。


    三、怎么判斷兩個構(gòu)件的貼合面


    說到兩個面是否重合,我覺得是個人都會先想到Face.Intersect(Face)的方法。但是經(jīng)過實測,這個方法并不靠譜。肉眼觀察一模型,發(fā)現(xiàn)一個柱子與一塊板有一面是相互重合的,但是取相應(yīng)的面用Face.Intersect(Face)的結(jié)果返回的是false。

    這里插個題外話,判斷兩個構(gòu)件接觸(非相交)不能用

    var intersect = ExecuteBooleanOperation(solid1, solid2, BooleanOperationsType.Intersect),然后判斷Intersect!=null && Intersect.Volumn == 0, 以為這樣就能通過Intersect.Faces獲取接觸面。 這樣是不對的。

    回到判斷接觸面的算法,該如何去獲取兩個構(gòu)件相應(yīng)的接觸面?另一位大佬和我說,可以使用面的法向去產(chǎn)生一個薄片,厲害厲害:

    var curveloops = (f as PlanarFace).

    GetEdgesAsCurveLoops().ToList();
    Solid tempSolid = GeometryCreationUtilities.

    CreateExtrusionGeometry(curveloops, 

    (f as PlanarFace).FaceNormal,

    UnitUtils.ConvertToInternalUnits(0.5, DisplayUnitType.DUT_MILLIMETERS));


    圖示如下:

    腿腿教學(xué)網(wǎng)-Revit二次開發(fā)教程:獲取相交構(gòu)件及Face重合的判斷

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

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

    上一篇:Revit二次開發(fā)教程:如何對插件進行雙數(shù)字簽名

    下一篇:Revit如何合并空間

    60acb4e0ef112.png
    主站蜘蛛池模板: 国产精品一区二区久久| 国产精品污WWW一区二区三区| 一区二区三区人妻无码| 亚洲AV无码一区二三区| 亚洲熟妇av一区| 国模私拍一区二区三区| 国产剧情一区二区| 色欲AV蜜桃一区二区三| 在线观看亚洲一区二区| 无码欧精品亚洲日韩一区| 国精产品一区一区三区| 三上悠亚日韩精品一区在线| 精品无码中出一区二区| 免费人妻精品一区二区三区| 国产成人一区二区三区高清| 日韩精品午夜视频一区二区三区| 亚洲日韩精品国产一区二区三区| 国产精品高清一区二区人妖| 亚洲AV福利天堂一区二区三| 天堂资源中文最新版在线一区| 久久精品一区二区三区资源网| 日韩欧国产精品一区综合无码| 国产午夜精品一区二区三区漫画 | 久久国产一区二区三区| 国产精品一区二区久久不卡| 亚洲熟妇av一区二区三区| 日韩电影一区二区| 亚洲AV美女一区二区三区| 亚洲国产福利精品一区二区| 无码人妻一区二区三区免费手机| 亚洲AV噜噜一区二区三区| 在线日韩麻豆一区| 一区二区精品在线观看| 国产在线视频一区二区三区98| 国产裸体歌舞一区二区| 国产精品一区二区久久精品| 国产精品久久久久一区二区三区 | 国产午夜精品一区二区三区小说| 四虎成人精品一区二区免费网站| 正在播放国产一区| 中文字幕不卡一区|