今天開始進入BIM/IFC新單元,我曾在Day02和Day04對它們做了簡單的介紹。本篇主要會介紹OpenBIM的起源、更深入的IFC技術結構、IFC在整個數據流中所扮演的角色,那我們就開始吧!
OpenBIM is the practice of BIM in a vendor-agnostic manner.
OpenBIM 是一種與供應商無關的 BIM 實務。
…BIM data must be defined using an open data standard,…[1]
BIM 資料必須使用開放資料標準進行定義。
OpenBIM的概念大約發展於2010年前後,它所定義的BIM模型並非由特定商業軟體或專有格式所建置,而是透過開放資料標準(包含IFC、DXF、SVG、STEP…等)等格式建置的模型。
早期BIM市場多由少數商業軟體壟斷(懂得都懂),造成資料封閉、跨軟體協作困難,於是產業內開始呼籲資料「開放」、「互通」的重要性,這也直接催生了兩大組織:
OpenBIM 的推動,讓BIM資料能跨越軟體、廠商與專業領域自由流通,也讓資料自主權回到用戶手上,不會因為今天沒有續訂購買軟體,而造成檔案無法開啟的窘況。
以門(IfcDoor)與柱(IfcColumn)為例,其結構可簡化表示如下:
# IfcDoor&IfcColumn繼承關係簡圖
IfcDoor // 門
├── IfcDoorType // 門的型別定義(如單扇門、雙扇門)
├── IfcPropertySet // 屬性集(防火等級、隔音、是否外門等)
├── IfcMaterial // 材料資訊(鋁、木、鋼等)
├── IfcOpeningElement // 門所填充的開口(由牆或隔間鑿出)
└── IfcBuildingStorey // 所在樓層(如 1 樓、2 樓)
IfcColumn // 柱
├── IfcColumnType // 柱的型別定義(矩形柱、圓柱等)
├── IfcPropertySet // 屬性集(承重能力、耐火等級等)
├── IfcMaterial // 材料資訊(混凝土、鋼材等)
└── IfcBuildingStorey // 所在樓層(如 1 樓、地下室等)
用 STEP(ISO 10303-21)可簡化表示如下:
# STEP語法範例
// 門
#10 = IFCDOOR('D1', '900x2100mm', $, $, 900., 2100.); // 門:編號 D1,尺寸 900x2100mm
#11 = IFCDOORTYPE('DT-1', 'SINGLE_SWING_LEFT'); // 門型:單扇左開
#12 = IFCPROPERTYSET('Pset_DoorCommon', (...)); // 屬性集:常用門屬性(防火、隔音等)
#13 = IFCMATERIAL('Aluminum'); // 材料:鋁
// 柱
#20 = IFCCOLUMN('C1', $, $, $, $, $); // 柱:編號 C1
#21 = IFCCOLUMNTYPE('CT-1', 'RECTANGULAR'); // 柱型:矩形柱
#22 = IFCMATERIAL('210/280 Concrete'); // 材料:210/280 混凝土
# IfcDoor數據流架構
IfcRoot
└─ IfcObjectDefinition
└─ IfcObject
└─ IfcProduct
├─ ObjectPlacement → IfcLocalPlacement // 定位
├─ Representation → IfcProductDefinitionShape // 幾何
└─ IfcElement
└─ IfcBuildingElement
└─ IfcDoor
── 草案
│ ├─ IfcDoorType / IfcDoorStyle
// *型別/開啟型式
│ ├─ IfcBuildingStorey
// *所在樓層
│ └─ (可有)IfcOpeningElement
// *開口意向
── 設計
│ ├─ IfcPropertySet(Pset_DoorCommon)
// *防火、隔音
│ ├─ IfcDoorLiningProperties
// 門框
│ ├─ IfcDoorPanelProperties
// 門扇
│ └─ IfcMaterial / LayerSet / ConstituentSet
// *材料
── 分析
│ └─ IfcPropertySet(性能相關項)
// 供能耗/聲學等分析
── 送審
│ └─ IfcDocumentReference
// 安裝圖/測試報告
── 施工
│ ├─ IfcRelFillsElement → IfcOpeningElement
// 填充開口
│ └─ (可有)IfcRelConnectsWithRealizingElements
// 五金/感測件
── 運維
└─ IfcDocumentReference
// 維修手冊/檢測紀錄
# IfcColumn數據流架構
IfcRoot
└─ IfcObjectDefinition
└─ IfcObject
└─ IfcProduct
├─ ObjectPlacement → IfcLocalPlacement // 定位
├─ Representation → IfcProductDefinitionShape // 幾何
└─ IfcElement
└─ IfcBuildingElement
└─ IfcColumn
── 草案
│ ├─ IfcColumnType
// *型別(矩形、圓柱…)
│ └─ IfcBuildingStorey / SpatialZone
// *所在樓層/區域
── 設計
│ ├─ IfcPropertySet(Pset_ColumnCommon)
// *承重、耐火…
│ └─ IfcMaterialProfileSet(Usage) / LayerSet
// *剖面/層組
── 分析
│ └─ IfcPropertySet(結構性能項)
// 強度/剛度等
── 送審
│ └─ IfcDocumentReference
// 設計計算書/合格證明
── 施工
│ ├─ IfcRelConnectsElements / WithEccentricity
// 與梁板連接/偏心
│ └─ (可有)IfcRelHasOpenings / VoidsElement
// 穿孔/開槽
── 運維
└─ IfcDocumentReference
// 鑑定/巡檢/維護紀錄
今天學習了OpenBIM的緣起與IFC格式標準,並梳理工程階段中,門(IfcDoor)與柱(IfcColumn)在 IFC 架構中的屬性與關聯。下一篇,我們將把視角轉向開源 BIM/IFC 工具,探索如何以程式化方式建立、讀取與修改這些資料。