• 沒有找到結果。

第一章 前言

工業基礎分類,即 Industry Foundation Class(簡稱 IFC)標準形成於 1994 年,

是由 BuildingSMART(前身 International Alliance for Interoperability)主導並維護 的用於描述工業模型及其附加數據資料的開放格式。其主要目標是通過統一的模 型 交 換 檔 格 式 標 準 提 升 建 築 、 工 程 和 施 工 ( Architecture, Engineering and Construction,簡稱 AEC)人員的協同工作能力,現在已經發展成最為主流的,應 用於建築資訊塑模(Building Information Modeling,簡稱 BIM)領域內的通用格式

(Laakso et al., 2012)。

根據 BuildingSMART 官方公佈的資訊, CAD 業界的大部分廠商 ——如 Autodesk 、 Bentley 、 Graphisoft—— 旗 下 軟 體 均 已 通 過 IFC 標 準 的 認 證

(BuildingSMART,2017)。而在英國正在推進的 BIM Level2 階段裏也規定了最 終模型交付時,推薦附有 IFC 模型和原始工程模型(Project Information Model)如 rvt 檔(British Standards Institution, 2013),美國總務署在其 BIM 手冊中亦規定了 必須附有 IFC 模型的類似要求(U.S. General Services Administration, 2011)。

IFC 模型的廣泛應用主要歸功於其開放性。在傳統的二維平面設計時代,所有

2

需要開發 20 套插件來實現這個功能,這是不可想像的工作量,且出於商業目的考 慮,他們也不一定願意這麼做。而作為中間格式的 IFC 標準的出現,讓各家公司 可以先專注於自己的軟體與 IFC 格式的交互功能的開發,當他們通過了 IFC 的認 證的時候,則相當於其軟體具備了與其他所有 IFC 認證軟體的模型交換功能,這 樣大大減輕了他們在交互性方面的工作量。

圖 1 IFC 作爲交換模型的連接作用

IFC 現在已發展至 IFC4 Add2 版本,按照時間順序排列即 IFC 第 7 版。但現在 支持最為廣泛,資料最多的版本是 IFC2x3 TC1,本文的研究亦基於其之上。IFC 的架構經過常年發展已經沉澱,所以兩個版本之間的更新内容僅限于類別的增減 和一些 bug 的修復1,對研究的影響甚小。下文開始所有涉及 IFC 的字樣均指代 IFC2x3 版,不再贅述。

1 http://www.buildingsmart-tech.org/implementation/ifc4-implementation/ifc4-vs.-ifc2x3-1

3

1.1 研究背景

本文將 IFC 的“應用”分爲兩類:一是模型交付後的設施維護(Facility Management,簡稱 FM)領域和設計階段的模型交換領域内的應用,如在 Tekla 内 設計鋼結構細節并匯出爲 IFC,再將其匯入 Revit 進行進一步操作。這一類情景里 些情況需要用戶具有一定的編寫程式的能力,而 BuildingSMART 和其他第三方廠 商也確實發佈了一些 IFC 庫(IFC Library)如 ifcjavatoolbox2和 IfcOpenShell3幫助 用戶解析編輯 IFC 模型,用戶藉助這些 IFC 庫完全可以完成上述(但不限于)提

2 http://www.ifctoolsproject.com/

3 http://ifcopenshell.org/

4

圖 2 獲取 IFC 實例幾何外觀的程式碼(Brep 情況下)

而另一方面,絕大部分關於 IFC 應用開發的論文都更注重于最終應用“結果”

的研究,而很少談及實現結果的“過程”——因爲它們有些使用了世面上已有的 IFC 庫或解析器,有些則是自己從零實現程式碼解析 IFC,但無論是前者或後者,

“過程”都不是研究的重點而是手段。這也是爲什麽截至本文成稿,尚沒有論文 對 IFC SDK 進行過研究。

(注:一些商業軟體會抽象 IFC 的結構以契合其内部的物件結構和使用邏輯,

從另一個角度來講,這樣的抽象化等效于 IFC SDK,但考慮到閉源的前提,這些 軟體不在本研究範圍内。同理如 EDMmodelServer4或 IFC Engine DLL5之類的 IFC 庫雖然亦有自己的 IFC API 簡化操作,但其原始碼無法從公開渠道獲得,且 IFC Engine 的 API 爲指令式,與本研究内容差別較大,故不予考慮。)

1.2 研究目的

本文認為 Revit 的成功不僅是依靠於 Autodesk 強大的市場號召力,也是因為 他們設計了一套門檻較低的 Revit API,讓廣大入門級的工程師也可以對 Revit 的

4 http://www.jotneit.no/edmmodelserver-ifc

5 http://www.ifcbrowser.org/

5

功能進行擴展,而這正是 IFC 目前所欠缺的。基於“授人以魚不如授人以漁”的 思想,本研究的目的是希望通過實現一個用戶友好的軟體開發套件(Software Development Kit,簡稱 SDK)來簡化 IFC 模型的相關操作,降低初學者的入門門 檻,減輕使用者的重複勞動,以利 IFC 應用開發。本文認爲涉及 IFC 的操作衹有

Entity IFC 類別、類 Attribute 屬性、參數 Class Java 類別、類別類 Realization 實現

Argument 參數(具有值) Utility 應用、實現

Parameter 參數、參數名

6

本文中涉及到英文字元時,使用了兩種字體:

1)Times New Roman,表示一般英文的字體 2)Consolas,特別用於表達程式碼的字體

1.4 程式碼授權

本研究的 SDK 原始碼托管于 https://github.com/coyove/IfcLibrary,其使用了 ifcjavatoolbox 的 Java 類別庫。ifcjavatoolbox 使用了 CC BY-NC-SA 3.06協議,本 SDK 使用了 GPLv27協議。

對本文的引用遵循一般標準;對本 SDK 及 ifcjavatoolbox 的商業使用需要獲得 ifctoolsproject 的許可。

1.5 使用手冊

本 SDK 的用戶使用手冊需用戶自行使用 javadoc 生成:

javadoc -cp ./src -d ./javadoc org.ifc.toolkit

6 http://creativecommons.org/licenses/by-nc-sa/3.0/de/deed.en/

7 https://www.gnu.org/licenses/gpl-3.0.odt

7

相關文件