標籤:

從零開始實現基於BIM的建築設計碰撞檢查

怎麼可能從零開始……

碰撞檢查實現方案調研

1. 現成開源方案

舊版BIMserver曾支持過碰撞檢查[1],現在已經不提供下載了[2],但是可以通過下載整個開發代碼庫[3](基於git代碼管理工具)回滾到過去的版本[4]去學習其代碼實現。

2. 現成閉源方案

Navisworks[5]、Tekla Structures[6]、Solibri Model Checker[7]等一系列BIM工具均支持碰撞檢查(構件細度的硬碰撞、軟碰撞、4D模擬碰撞等)。針對預製混凝土構件,尤其是鋼筋相關的碰撞,Tekla Structures更合適。此外,Navisworks有開放碰撞檢查的API[8]。而Tekla Structures有二次開發API[9],但是相關開發文檔匱乏。

3. 自行開發方案

若現成的碰撞檢查方案不能滿足具體需求,可考慮自行開發。

3.1. 基於IFC的開發方案

目前IFC相關工具[10]中,可用作開發工具、仍在更新且可解析幾何數據的工具有三個。理論上,只要能支持幾何數據的布爾運算就能實現硬碰撞檢查。在不考慮運算效率的情況下,給定A、B兩個實體,若A∩B為體積為0的實體,則不碰撞;反之,則碰撞。

表 1 IFC Engine DLL、IfcOpenShell、xBIM Toolkit比較(表略)

IFC Engine DLL可解析出構件的三角網格數據,也有私有三維引擎進行幾何數據的布爾運算。官方也有論文描述碰撞檢查的演算法實現[15],但是在官網上下載的IFC Viewer沒有該功能。

IfcOpenShell計劃在0.8版實現碰撞檢查功能[16],目前為0.5預發布版。可用IfcOpenShell來導出.obj、.dae等格式幾何數據[17],再按計算機圖形學中的常規碰撞檢查來實現硬碰撞的檢測[18][19]。

xBIM Toolkit的子項目XbimAnalysis中有對空間的分析示例框架代碼[19],但是僅實現了簡易情形下的分析,完整分析仍需要參考計算機圖形學中的演算法來實現。

3.2. 基於其他閉源平台的開發方案

也可考慮基於Revit、Navisworks、Tekla Structures等的API讀取構件的幾何數據開發。

PS:上文是從Word粘過來的,感覺知乎這編輯器還沒Word好用。

PSS:起因是老闆讓我幫師兄找一下碰撞檢查的開發方案,幹了半天發過去,應該就沒有下文了。發知乎能漲粉騙點零花錢不?

PSSS:這樣算不算泄漏課題組(半天)研究成果?有點方,在線等,挺急的……

參考資料

[1]. First release candidate version 1.2

[2]. github.com/opensourceBI

[3]. github.com/opensourceBI

[4]. git-scm.com/docs/git-ch

[5]. autodesk.com/products/n

[6]. teklastructures.support.tekla.com

[7]. solibri.com/products/so

[8]. adndevblog.typepad.com/

[9]. tekla.com/us/tekla-open

[10].http://www.buildingsmart-tech.org/implementation/implementations/plominoview.allapplications

[11].ifcbrowser.com/

[12].ifcopenshell.org/

[13].opencascade.com/

[14].docs.xbim.net/

[15].engineering.nottingham.ac.uk

[16].sourceforge.net/p/ifcop

[17].ifcopenshell.org/ifccon

[18].github.com/jslee02/awes

[19].unity3d.com/learn/tutor

[20].github.com/xBimTeam/Xbi

推薦閱讀:

現在國內機電BIM建模的深度怎樣?方便的話能否展示一下您見過的、做過的好的模型細節
BIM學習 | 從2600萬年前的故事說起
BIM 該怎麼做才能做到它最終的狀態?
沒有 i 就不是BIM
2016年是BIM概念牛皮徹底吹破的一年么?

TAG:BIM |