iT邦幫忙

2025 iThome 鐵人賽

DAY 4
0
AI & Data

AI圖像辨識輔助的BIM資料流自動化流程系列 第 4

Day04:AI建築圖數據到BIM模型自動化流程設計

  • 分享至 

  • xImage
  •  

  前面概覽介紹了各種AI相關技術,以及IFC交換格式與BIM模型的特點,以下我將以實際的流程藍圖,來說明各技術在BIM自動化流程中的定位、執行步驟與關係:

4.1. 建築BIM自動化流程藍圖

  1. 圖面格式轉檔:將傳統的建築圖CAD、PDF格式轉換為YOLO可讀的圖像檔
  2. 圖像物件偵測:使用YOLO模型預測指定物件,並將標註文字檔及圖像輸出
  3. 文字字符辨識:使用OCR解析並結構化統整所有文字資訊
  4. 資料整合還原:將AI技術萃取的資料還原至虛擬空間中的位置與對應關係
  5. 資料驅動建模:將結構化資料轉化為IFC架構,便能透過專有軟體直接建模
    https://ithelp.ithome.com.tw/upload/images/20250804/20177646HdkEC6cVC9.png
    圖4.1 建築BIM自動化流程藍圖

4.2. 預測數據的解析與轉換邏輯

4.2.1. YOLO 預測結果示例

YOLO 模型的預測輸出文字檔,每行會呈現為「class x y w h」格式,其中:

  • class:代表物件類別
  • x:代表物件中心點的 x 座標(相對於圖片寬度的比率,範圍 0~1)
  • y:代表物件中心點的 y 座標(相對於圖片高度的比率,範圍 0~1)
  • w:代表物件寬度(相對於圖片寬度的比率,範圍 0~1)
  • h:代表物件高度(相對於圖片高度的比率,範圍 0~1)

  例如下圖4.2「0 0.44 0.97 0.04 0.04」,代表第0類物件,中心點位於圖片寬度44%、高度97%處,寬度為原圖的4%,高度為原圖的4%。
https://ithelp.ithome.com.tw/upload/images/20250804/20177646q1Go1Folsr.png
圖4.2 YOLO預測框結果示例

4.2.2. OCR 預測結果示例

本文OCR模型將以PaddleOCR為例,它除了能辨識文字內容外,也會產生一個預測框,如下圖4.3所示。
https://ithelp.ithome.com.tw/upload/images/20250804/20177646vpXXWR2gEj.png
圖4.3 OCR 預測框結果示例

4.2.3. 資料轉換邏輯

IFC的資料結構本質上是一種階層樹狀(Hierarchical Tree)的物件導向資料模型。例如以門與柱元素,在IFC中的層級表示如下:

 # IFC繼承結構
 IfcRoot
 └─ IfcObjectDefinition
      └─ IfcObject
           └─ IfcProduct
                └─ IfcElement
                     └─ IfcBuildingElement
                          ├─ IfcDoor
                          └─ IfcColumn

在IFC格式中都存在著父類、子類、屬性等繼承關係,如果以Python語法來對應,可表示如下:

# IFC資料結構的Python物件導向對照範例

class IfcRoot:
    def __init__(self, GlobalId):
        self.GlobalId = GlobalId  # 唯一識別碼(所有IFC元素都必須有)

class IfcObjectDefinition(IfcRoot):
    pass  # 對象定義(主要承上啟下,通常不直接實例化)

class IfcObject(IfcObjectDefinition):
    pass  # 具體對象(如建築物、構件等)

class IfcProduct(IfcObject):
    pass  # 產品或空間元素(可有位置、形狀等)

class IfcElement(IfcProduct):
    pass  # 元素(建築構件、設備…的上層類別)

class IfcBuildingElement(IfcElement):
    pass  # 建築構件(牆、門、窗、柱等)

class IfcDoor(IfcBuildingElement):
    def __init__(self, GlobalId, Name, OverallWidth, OverallHeight):
        super().__init__(GlobalId)
        self.Name = Name          # 構件名稱(例如"D1")
        self.OverallWidth = OverallWidth  # 門寬(如90,單位cm)
        self.OverallHeight = OverallHeight # 門高(如210,單位cm)

class IfcColumn(IfcBuildingElement):
    def __init__(self, GlobalId, Name, Height):
        super().__init__(GlobalId)
        self.Name = Name     # 構件名稱(例如"C1")
        self.Height = Height   # 柱高(如300,單位cm)

如同下圖4.5的3D模型,其實背後就是如圖4.4一連串複雜組成的數據串,而前面所提到的,若將YOLO、OCR等AI模型所提取的圖面數據(如位置、尺寸),就能直接對應到每個IFC物件類別的屬性欄位,實現自動化建模流程。
https://ithelp.ithome.com.tw/upload/images/20250804/20177646jAtOsweFPZ.png
圖4.4 IFC資料結構文字檔示例
https://ithelp.ithome.com.tw/upload/images/20250804/20177646acj2LJeqf3.png
圖4.5 IFC資料結構模型可視化於BIM軟體

4.4. 結語

  今天我們透過YOLO與OCR的預測結果示例,結合IFC資料結構的核心原理,進一步理解了AI數據如何轉化為BIM自動化建模資料。
  其實不論AI模型還是IFC標準,背後的邏輯都圍繞著「資料結構」的本質。但要如何讓這些自動化流程,真正落地在設計師、工程師手中,不需要資工背景也能輕鬆上手呢?
  下一篇,將會介紹如何利用GUI(圖形介面)將這些流程串連起來,打造人人可用的BIM智慧工具。我們明天見!


上一篇
Day03:資料前處理流程與技術挑戰
下一篇
Day05:GUI應用實作與工程流程整合
系列文
AI圖像辨識輔助的BIM資料流自動化流程30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言