← 回到讀書會書架 ← 回到選擇
材料資料庫

綠建材 Revit 導入工具:從採購指南到可用元件

林家維 老師

大家好,我是林家維。那我這一次做的開發的小工具,是針對一些綠建材的一些參數,讓它變成 Revit 裡面具備的元件這樣子。那我會從功能面跟開發面去做分享。

TABC綠建材檢索至Revit寫入流程
TABC綠建材檢索至Revit寫入流程
簡報功能與開發章節之深色目錄頁
簡報功能與開發章節之深色目錄頁

▍怎麼看這篇:跟著家維老師的操作順序走一遍

感謝老師在八月小聚台上示範的是一條完整的鏈:

在網頁挑材料 → 讓 AI 擬計畫 → 寫進 Revit 元件。

讓我們透過好學生筆記的新版模式,一起也來實作這個綠建築在REVIT MCP上的實際串聯應用;

步驟你要做的事
1/GM_update把官方 1288 筆標章抓成本機資料庫
2開檢索平台打開上一步順便生出來的網頁
3建材料 Set勾四個材料,回答三個問題,複製指令
4/GM_import讓 AI 擬注入計畫,全程唯讀
5/GM_inject revit真的建立 Type 與材質
6門窗變體同樣的寫入,但走 .rfa 族群那條路

前四步在大約 30 秒建好資料庫,然後你就能看見 AI 把四種真實材料
分配到 Revit 的哪一層構造、哪個參數槽位——那是整條鏈上資訊量最大的一段。第 5、6 步才需要打開你的 Revit。

全部指令都在這個開源專案裡:https://github.com/shuotao/REVIT_MCP_study

兩個會一直回去看的網頁用途
財團法人臺灣建築中心 · 綠建材採購指南查詢官方原始資料,唯一的即時真相
Monstrare 專案看板他開發這套工具時推完的 23 張卡,含每一張的實測記錄

_

那第一個,我先講我做了什麼功能。就是我先從台灣建築中心整理出來的採購指南裡面的這些綠建材,我去抓取內部的這些材料的數據,就是從它的產品名稱、規格、編號,跟它通過了什麼樣的試驗,以及它公司的聯絡資訊。我用這公司的聯絡資訊把它導入到 Revit,那我抓的是這些類別的資訊。

臺灣建築中心綠建材採購指南查詢網頁
臺灣建築中心綠建材採購指南查詢網頁
臺灣建築中心查詢冠帝木心合板的品項資訊
臺灣建築中心查詢冠帝木心合板的品項資訊

▍先看一眼原料
「台灣建築中心整理出來的採購指南」,就是這個網站:
綠建材採購指南查詢

進去點左邊四大類(健康/高性能/再生/生態)就能看到他說的那些欄位:
產品名稱、標章編號、申請公司、有效期限。整套工具做的事,就是把這裡的資料
變成 Revit 認得的參數。

一個之後會很關鍵的性質:這個網站只掛還在有效期內的標章,過期的直接下架。
記住這件事,後面會回來找你。

在做法上,那一開始先從網頁操作,然後我讓 AI 去寫一個、去寫一個爬蟲腳本,讓他可以整理到一個網頁平台。那這個網頁平台待會會做介紹,那待會的。

台灣建築中心綠建材資料庫建立與導入流程
台灣建築中心綠建材資料庫建立與導入流程
台灣建築中心綠建材檢索與Revit流程
台灣建築中心綠建材檢索與Revit流程

▍步驟 1/6 /GM_update:把資料抓成自己的資料庫

老師這裡講的爬蟲,現在是專案裡的一支指令。先把專案抓下來:
已經存在於我們的 REVIT_MCP_STUDY的REPO裡面

只需要 Python 3,不必安裝任何套件。先跑「只看不寫」的預演:

# macOS / Linux
python3 tools/green-material/GM_update_tabc_database.py --dry-run

# Windows(PowerShell)
python tools\green-material\GM_update_tabc_database.py --dry-run

順利的話約 30 秒,會看到:

健康 分類累計 743 筆    高性能 分類累計 231 筆
再生 分類累計 309 筆    生態 分類累計 5 筆
{ "bootstrap": true, "totalAfter": 1288, "added": 1288, "dryRun": true }

數字對了就拿掉 --dry-run 真的寫入。會產生三個檔案,全部留在你自己電腦、不會上傳。

爬蟲把資料整理好之後,那接下來就是會從那個網頁去選擇產品,然後去做一些需求、個人的需求分析,可以找到你的專案。那這些產品,它會組合成一個 set,可以讓 agent 去寫一個腳本,讓它變成 Revit 可以辨識的參數這樣子。那之後就可以再讓使用者,再去根據你所組合的元件去做其他用途。

台灣建築中心綠建材之使用者產品選擇流程
台灣建築中心綠建材之使用者產品選擇流程
綠建材指南資料轉化為Revit參數流程圖
綠建材指南資料轉化為Revit參數流程圖

那這些東西我都有去把它包裝成、也變成斜線指令,所以可以這樣一路下來,透過斜線指令去操作它。

台灣建築中心綠建材Revit元件選取流程
台灣建築中心綠建材Revit元件選取流程
綠建材指南與Revit MCP指令架構圖
綠建材指南與Revit MCP指令架構圖

一開始的話,其實我把它用的有點像資料庫的形式,就是前面就已經有綠建材採購指南的資料了。

Revit BIM檢索牆壁綠建材的介面
Revit BIM檢索牆壁綠建材的介面

那把它抓下來之後,其實你在你的 agent 上去跟他說:「給我 XXX 相關的綠建材」,那你現在就有兩條路可以走:一個是你就在 agent 裡面去跟他討論你要怎麼使用這個材料;那另一個是你會在、就是我去把它整理下來做的網頁平台,然後你可以在這個平台裡面去做一些操作。

Revit之TABC綠建材採購平台介面
Revit之TABC綠建材採購平台介面

▍步驟 2/6 打開自己的檢索平台

上一步已經順便幫你把老師示範的那個網頁生出來了。直接開:

open assets/green-material-showcase.html        # macOS
start assets\green-material-showcase.html       # Windows

這頁裡就是你剛抓下來的 1288 筆真實資料,有分類捷徑(🧱 牆面板材/🪵 地板地坪/
🎨 塗料漆類/☁️ 天花吸音/🏗️ 綠混凝土/💧 透水鋪面)、搜尋、勾選、建立材料 Set。

它跟官網的差別:官網只能一筆一筆查,這頁可以勾選、組合、匯出成給 AI 的指令。

這頁完全是你自己的——資料在你電腦裡,不會上傳,別人也拿不到。

實際示範:防水地坪元件

以剛剛講的那份綠建材資料為例,那我現在以一個防水地坪的 Revit 元件來做示範。就是我選擇了樓板的混凝土,然後跟隔音材料、防水材料跟木地板,我把這四種材料組合成一個 Revit 的 Floor 元件。

Revit地坪材料Set問答與層級設定
Revit地坪材料Set問答與層級設定

▍步驟 3/6 勾四個材料,建一個 Set

照老師示範的組法,在網頁上勾選四種材料,按「💾 儲存為材料 Set」,
回答它跳出來的三個問題(組合方式/品類/補充條件),然後按
「✅ 完成問答並匯出給 AGENT」。

它會把一整行指令複製到你的剪貼簿,長這樣:

/GM_import 請為材料 Set 【防水隔音地坪】 (GBM0102957, GBM0103039, GBM0102876, GBM0102906)
擬訂 Revit 綠建材寫入計畫。[需求對齊:組合方式: 單一組合 | 品類: Floor | 補充條件: 無]

這是實跑時用的四個真實材料,你可以直接照抄試:

證號材料標章效期到
GBM0102957綠混凝土(G類)再生116/02/06
GBM0103039REGUPOL BSW緩衝材樓板隔音系統高性能116/05/16
GBM0102876水性建築防水用聚胺酯健康115/12/07
GBM0102906陶瓷面磚 (Ⅰa類-內裝地磚)再生115/12/07

而這份視覺畫網頁到此為止就沒事了——它只負責把文字複製給你,我們需要思考的事情下一步應用是,將這些內容導入到REVIT裡面。

那你就會對它做命名,然後去做一些需求的確認,你會把它組合成一個完整的 Floor 元件,然後去把它每一個材料去做那個層級上的分類。

Revit綠建材Set導入Agent指令介面圖
Revit綠建材Set導入Agent指令介面圖

▍步驟 4/6 /GM_import:把指令貼給 AI,讓它擬計畫

把剛剛複製的那行貼進 AI Client(Claude Code 等)。這一步全程唯讀,不會碰 Revit。

它會先報告你的資料有多新:

{ "status": "fresh", "ageDays": 0, "recordCount": 1288, "fetchedAtSource": "meta" }

然後產出計畫。實跑結果(PLAN-20260901091222)是這樣分層的:

材料目標品類構造層厚度參數槽位
陶瓷面磚OST_FloorsFinish 1 [4]15 mm + 20mm 打底mat1
綠混凝土OST_FloorsSubstrate [2]依實際配比mat2
隔音系統OST_FloorsSubstrate [2]10 mmmat3
防水聚胺酯OST_MaterialsAttached Parameter0 mmmat4

完整報告書會寫在 docs/green-material/Revit_Injection_Plan_Report.md。

那做好這件事情之後,他會在這個畫面中,你可以去複製這個斜線指令的內容,然後去後面他會把一些需求的東西都已經打好,然後丟到你的 agent 上。他就會自動幫你跑完說:「這個東西在 Revit 裡面會是什麼樣的參數。」

AI Agent 導入綠建材 Set 至 Revit 地板元件流程
AI Agent 導入綠建材 Set 至 Revit 地板元件流程

那這個東西你在 agent 裡面跟他互動完、確認完之後,你再用下一個指令,就是下一個 inject 到 Revit 的指令,把它變成實際上 Revit 的元件。

TABC防水隔音地坪之FL1平面圖檢驗
TABC防水隔音地坪之FL1平面圖檢驗

▍步驟 5/6 /GM_inject revit:真的寫進模型

「下一個 inject 的指令」:

/GM_inject revit 依 PLAN-20260901091222 建立防水隔音地坪 Floor Type

它會建立一個 Floor Type、按計畫排好四層構造、把證書欄位寫進 Type Parameters。

但它不會讓你跳過步驟 4。 網頁上其實兩種指令都會產生(/GM_import 對齊、
/GM_inject revit 寫入),能不能直接跑第二個?不行,擋在三個地方:

關卡擋什麼
① 這個 Set 對齊過了嗎沒跑過 /GM_import 就沒有計畫,AI 會叫你先回去跑
② 純材料要先選掛在哪個 Type它會列出候選清單停下來等你挑,不准自己選
③ 過期標章硬擋有失效證號就停下,要求你逐項明確核准才寫

所以第 4 步不是多餘的中間站,它是你唯一看得到 AI 打算幹什麼的機會。
下一個方框要講的那兩個判斷(防水材 0mm、綠混凝土是推斷)只有在那一步看得到;
跳過去,它們就直接變成你模型裡的既成事實了。

那這是以剛才的那個範例作為成果,會在 Revit 的樣子。就是你會看到是這邊它的名稱就已經定下來了,並且它會有一些、可能像那個木地板的 Hatch 會出現,那其實這是表象的。

Revit軟體中TABC地坪元件之綠建材屬性參數寫入與材料分層命名對應關係
Revit軟體中TABC地坪元件之綠建材屬性參數寫入與材料分層命名對應關係

那最主要的是它在 Type Parameters 裡面,就會有這些參數全部都一起導進來,並且建立好像對應的材質在這裡面。那這是我這一支開發所做的一個小工具。

綠建材Set專案材料組合管理器介面功能說明
綠建材Set專案材料組合管理器介面功能說明

▍讀懂它——有兩個地方值得停下來看

① 防水材沒有厚度,也不會變成一層構造。
它被判成「非幾何輔助材料」,寫進 Type 的 Construction 自訂欄位,
不會建立對應的材質元素。填縫劑、接著劑、防水膜本來就不該佔一個構造層——
這是方法層寫死的規定,不是程式偷懶。

② 綠混凝土它自己承認不確定。
計畫裡那一項的原話是:

> 「材料本身 subCategory='綜合建材類' 屬跨用途通用建材,無法單獨判斷;
> 依 Set 宣告品類 'Floor' 解析,非材料自身資料判斷結果」

綠混凝土可以用在牆、樓板、柱、樑,材料自己的資料決定不了,所以它改用你宣告的品類來推斷,
並且明白告訴你這是推斷。

這正是這套工具最值得學的地方:猜不到的時候誠實標示,而不是給你一個看起來很篤定的錯答案。

那你當然也可以對這些、這個材料做各種不同的樣式。那剛才是講這個防水地坪,那我也有做一些測試,就是主要會有一些,像是如果你是磚跟填縫的話,你也可以把它一起導進去,就沒有一定要侷限是在有厚度的那種材料。

那你也可以就是假設你今天批量的選擇了好幾種木地板、各種材料,你也可以一次性的把它全部導入。

BIM組合與各別元件Type數量對照圖
BIM組合與各別元件Type數量對照圖

那這個是屬於實際元件的部分,那另一種它是附加的。就假設你今天只選了一種,可能像填縫劑那類的材料的話,那你導入到 agent 之後,他會先問你說、他會先用 MCP 去讀你模型裡有什麼樣可以貼上去的元件,那他就會把那個元件複製下來,然後去依附在那個元件上面。

Revit依附元件包含填縫、窗框與門的定義
Revit依附元件包含填縫、窗框與門的定義

那不管是填縫、窗戶還是門,都是用這樣依附型的元件的方式去做處理。

簡報大綱顯示當前主題為第二部分開發。
簡報大綱顯示當前主題為第二部分開發。

▍步驟 6/6 門窗變體:把綠建材掛進 .rfa 族群的 Type Parameter

環境需求跟步驟 5 一樣(Windows + Revit + add-in + MCP 服務),但機制完全不同:

牆、地板是改構造層;門窗是載入式族群(.rfa),流程是:

挑一個相似的既有門窗 Type  →  另存 .rfa 備份  →  在族群檔裡建立新 Type
  →  寫入綠建材參數  →  載回專案

在 AI Client 裡直接說就可以,它會問你要用哪個既有 Type 當基底:

/GM_inject revit 我要把 GBM0104092 這個綠建材寫進門窗族群,
基底用「雙開落地窗-(2) 180x210cm」

寫完之後打開 Revit 的 Type Properties(就是老師簡報上那個畫面),
在 Identity Data 底下就會看到 GreenMaterial_Mat1_CertNo、_ValidUntil、
GreenMaterial_AcousticRw 等欄位帶著證書資料。

它會自動備份:原始 .rfa 會存進 _rfa_backup/,而且如果目標檔名已存在會中止不覆寫,
要你換個名字——不會靜默蓋掉你的族群。

開發面:把流程整理成節點

以上是功能面。那到開發的部分,就是我把每一個流程都把它整理成一個節點。那這個節點他都會有他對應:我到底是在網頁去操作,還是他是用 Domain 去規範這個東西,還是用 Skill 或是用 Tool 之類的。

TABC綠建材同步至地端資料庫的流程圖
TABC綠建材同步至地端資料庫的流程圖

▍老師講的四種節點,在專案裡是四個實體位置

他說的實際是什麼數量
網頁操作你剛剛開的那個檢索平台1 份
Domain方法規範,寫「怎麼算才對」4 份
Skill編排,寫「AI 該照什麼順序做」7 支
Tool真正動 Revit 的執行單元12 支

三者衝突時以 Domain 為準——這是專案的憲法級規則,
因為方法只能有一份,不能每個 Skill 各寫各的。

把這些節點串起來之後,那就是會有一系列的流程:從你會先想要、你要、你會先在 agent 打你的關鍵字,然後他就會從 Domain 去看說他要去叫什麼樣的材料出來,然後你再跟 agent 去討論你要做什麼樣的需求。

REVIT綠建材平台材料檢索與組Set流程
REVIT綠建材平台材料檢索與組Set流程

那這個需求弄完之後,他就會用 Skill 把它變成一個計畫,再用 Domain 去看他對應的參數欄位是什麼,然後再把這些參數欄位都弄好之後,丟到這個 Tool 腳本裡面,讓它闡述那個、讓它闡述 Revit 的參數。

Revit綠建材工具擬訂注入計畫流程
Revit綠建材工具擬訂注入計畫流程

那確認好這些參數之後,它就會再用下一個 Domain 去寫說:它會要用哪一種。我把它做了好幾種:一個是做牆跟地板的那一種,那另一種是純材料類的,那或者是門窗、那個獨立的 RFA 元件那一種類型。那這種他們都、我都把它做、個別做一個腳本,可以讓他去導入到 Revit。

Revit綠建材寫入與Set類型分流圖
Revit綠建材寫入與Set類型分流圖

後續的話就是你導入進去之後,你也可以再用 agent 去跟他去把這些材、你導入到 Revit 的那些材料叫出來,然後再去做一系列可能你要再圖說表現的東西。那這些圖說表現的東西,就是看每個使用者的需求去使用。那這是整體的流程。

Revit綠建材查詢與回饋核心流程圖
Revit綠建材查詢與回饋核心流程圖

多 Agent 自動化

也因為有上面這些來回對話的困擾,然後後來我在想說,因為我在做這個開發的時候,其實遇到幾個問題。其實我這樣對話下來,其實也算、我覺得可以再更自動化一點。就是假設我今天跟 agent 討論給我幾個方案,那我就想要讓他可以自動一點,幫我再從這個網頁自己去、去爬說我需要哪些材料。

那我其實用的方法是:就是用多個 agent,然後這些 agent 其實他都各別一個終端機的、每一個都是一個終端機的分頁,然後讓他去做自動化的流程。就是我總共做了三個 agent,讓他一個是我可以、我主要去跟這個 leader 去對話說我要怎麼樣、我需要什麼樣的材料。

REVIT綠建材導入流程的三個輔助管理Skills路徑與功能
REVIT綠建材導入流程的三個輔助管理Skills路徑與功能

那我現在就是說:我現在要五種綠建材的防水材料,然後搭配到、搭配到一個混凝土,讓它變成一個完整的地坪元件。

TABC綠建材導入Revit之流程圖
TABC綠建材導入Revit之流程圖

那他、然後我再叫下一個 agent,讓他說把這些我的需求到這個網頁去爬,然後去檢索我要的材料,然後再回傳到 leader 這邊跟我做確認完之後,然後他就再呼叫第三個 agent,讓他直接把這些 Skill 呼叫出來,一併把它全部丟進去。

小結論是,所以我其實我只要下達這個 prompt,他就會幫我把一系列的流程給做好,然後直接導入到 Revit。所以我剛剛講了五個類別、我剛剛說我需要五種方案,那他就真的把這五個方案,透過那一個 workflow 把它導入到 Revit 這樣子。

我希望的方向與遇到的問題

回到目的來說,就是因為我其實會希望的是,這個 Revit 的 MCP 工具,他最後都有辦法落實在圖紙上面。所以我就覺得說,其實綠建材的開發只是一個開始。未來之後一定會有更多、尤其是法規檢討的這種面向的工具,我希望它可以在 Revit MCP 裡面出現。

所以我就想說,我有沒有辦法把這個開發流程把它給 SOP 化,讓每一個開發的過程都可以把它變成一個 agent 或者是一個 skill。但是我這些開發出來的 agent 或 skill,它不一定要存在在 Revit 這個專案,它可能是我個人開發期間所需要的一些工具。

那他假設我把他丟 PR 到這一個 Revit MCP 的專案裡面的時候,他其實不需要這些東西,我可能把重要的一些 Tool 跟 Skill 把它丟進去提 PR 就可以了。

最後我想要跟大家講說,我這個過程其實有遇到一個問題,其實也可以跟大家一起做討論。我在做方案的時候,其實我專程剛接觸 AI、MCP 這種東西才差不多兩月。

所以其實我在做、我一開始就是用專案看板的方式,就是那個字卡,然後去決定說我接下來要做什麼。

但我其實到後面,我其實都自己會有點亂掉了,所以我可以想要跟大家、算是跟大家徵求建議一下說:大家、大家是不是可以在做開發的時候會做什麼樣的事情,然後去避免這個東西。

▍他的看板是公開的,可以直接去看

Monstrare 專案看板 →

這裡有他開發這套工具時推完的 23 張卡。跟一般 Trello/Jira 不同的是,
這套卡追蹤的不是「做到哪了」,而是 「這件事夠不夠清楚到可以交給 AI 動我的模型」:
每張卡有 7 項進場門檻(問題清不清楚、驗收條件能不能測、檔案範圍知不知道…)
和 6 項出場門檻(架構、安全、測試、code review…),全部為真才能往下走。

點開任何一張都能看到當時的真實實測記錄——用了哪些工具、驗在哪個 Type 上、改了什麼 bug。

而他說的「後面自己會有點亂掉」,在看板上留下了痕跡:卡號從 001 跳到 015,
中間 005.9、007、012 三個號碼是空的,還有三張卡標著「已併入其他卡」。
這不是缺點,是任何人做到中期都會發生的事——只是他把過程留了下來。

順著這個問題往下想,那不是只有綠建材,搞不好綠建材只是一個嘛,那也會有其他地方各類的、各類的平台可以去拿到各種資料。那這些資料是中間會有一個、呃、會有一個過渡的介面,可以把它全部統整起來。

Revit與綠建材授權問題解決方案
Revit與綠建材授權問題解決方案

就是可能有綠建材,然後或者是其他廠商的型錄裡面的資料可以導進來,然後再一併組合變成一個 set,再導入到 Revit。

在流程視覺化這件事情上,那另外的話就是,呃,我在用這個 multi agent 直接做一個,就是我有用、我自己有去把別人做的 CLI Agent,有點慢。然後我就可以透過這些、都是每一個 Agent 的,我都可以、這邊都會有對話窗,然後都是終端機 CLI 的那種形式。

CWLin0518 專案 ProjectDevelopManager 的 GitHub 頁面
CWLin0518 專案 ProjectDevelopManager 的 GitHub 頁面
REVIT_MCP_study 中三個 Agent 協同將 5 個綠建材 Set 導入 Revit
REVIT_MCP_study 中三個 Agent 協同將 5 個綠建材 Set 導入 Revit

那另外的話,我就可以有點像是用相接 Dynamo 或 Grasshopper 的節點的方式,然後去做這個流程,然後讓這個東西、讓我這個開發流程,我可以把它做圖像式的去檢討我現在應該要做什麼事情。

REVIT_MCP_study 建築法規審查多代理人流程圖
REVIT_MCP_study 建築法規審查多代理人流程圖

那把這整、把這個整個事情串聯起來之後,我就讓他跑,然後也不會、也不會讓他說我是在同一個 agent 裡面然後去做全部的事情。這個東西我會覺得說,你除了開 subagent 之外,你也可以讓這兩個互相溝通。

REVIT_MCP 專案中三方 Agent 協作完成 5 組木地板建材 Set 的預檢。
REVIT_MCP 專案中三方 Agent 協作完成 5 組木地板建材 Set 的預檢。
Autodesk Revit 畫面展示經由 MCP 工具自動產生的 TABC 地板建材元件列表。
Autodesk Revit 畫面展示經由 MCP 工具自動產生的 TABC 地板建材元件列表。

但是我在網路上找到開源的類型,他都是要用 API,但我自己有、我自己有訂閱 Claude 跟 Codex,我就想說我用這兩個、我訂閱的方案就好。所以我就用 CLI 互相溝通的形式,而不是直接去 Code、而不是直接去用他們 API 的方案去做互相溝通,這樣子。

那以上是我這一次的分享,謝謝。

問答

請問剛剛那個多視窗的DEMO是開源專案?

林家維:那是一個開源專案,但是他其實一開始只有做這個,他就只有讓我可以一次開好幾個終端機了。這個是我 Fork 前的,就是最原本的那一個。

就是別人的專案嘛。

劉啟祥:所以大家、我補充一下,這個是別人的專案,然後是老師 Fork 這個專案之後改成他需要的樣子。那一般來講,我們叫這個叫 upstream,就是上游。

為什麼參數放在 Type 而不是 Instance

江碩濤:以我們回到最前面,可以回到簡報的一剛開始嗎?就是那個有在牆、有一個 Revit 的那個

所以你等於說,你透過 Revit 的 MCP,然後去把你要的這些東西都丟到現在的 type parameter,對不對?就是類別參數裡。那為什麼你不選 Instance?

▍白話版:為什麼一定要放 Type

  • 放 Type = 綁在「這種牆/這種樓板」上
  • 放 Instance = 綁在「這一片牆」上

差別在你要出明細表的時候:放 Type,同一型別的每一片自動帶著同一份履歷,
統計綠建材使用面積時一片都不會漏;放 Instance,你每畫一片就要重填一次,
漏一片就漏一筆,而且不會有任何提示。

碩濤擔心的正是這個:很多公家樣板、COBie/IFC 的做法都是塞在 Instance 上當場輸入,沒有先做好分類。老師的做法在這件事上是對的。

先幫線上的老師補一下背景:

如果大家都有用 Revit 習慣的話,Instance 跟 Type 最大的差別是:你現在看到那個畫面,它有一個藍色框框對不對?藍色框框右下角會有一個點,類型,你點下去的時候,它會又跳出另外一個視窗、跳出另外一個視窗,把你的參數放在那個視窗,大部分是要在做族群元件的時候去裡面塞的。

那我覺得現在大部分在用 Revit 的、在台上演講的人,他其實包括像建築中心的一些在制定規則的人,他們都沒有把這件事情講清楚,所以他並不會知道說到底是要放在後面,還是要放在現在前端。

回到討論,我們想問一下分享的老師:那現在如果你在、你在這個畫面、現在這個畫面,藍色的下面就看到參數被放進去,我們稱為這叫 Instance;那放在裡面叫做 Type。那問題是,為什麼你不放在 Instance 上面?

林家維:應該算是我自己的工作習慣。因為我其實放在 Instance 的時候,假設我今天不小心用了兩個其實是差不多類型的元件,但它依附的是同一個、同一個可能是木地板,但我把木地板的參數如果寫在、寫在 Instance 上的時候,那它跑到另一個元件,它可能那個資訊我會不見,然後導致說我會漏掉在數量上的檢討,這樣。所以我在工作習慣上,我是習慣把它用在 Type。

碩濤:我會這樣問的原因是因為,包括像公共工程委員會做的那一個、建築的要去請照的那個樣板,包括很多 COBie 或 IFC 的很多這些大廠,就是都把它放在是 Instance。那我覺得那個最大的問題都是:他放在 Instance 都是直接當場輸入,他其實沒有辦法帶到的是 Type 的課題。那如果今天你把 IFC 或 COBie 的那些參數都把它沒有先做好分類啦,我覺得都會出問題。所以謝謝你的、謝謝你把它放在 Type。我覺得目前來講,特別是要在做綠建材上,因為它是材料上面的依據,他放在 Type 這件事情的觀念是正確的。

另外一點是你回到剛剛你的 web 的介面,所以你是開發一個 web 的介面來去做這件事情嗎?那這是你有開放給大家用的嗎?還是現在是你自己在用?

林家維:其實流程是這樣,因為其實我有把這個工具放在徐灝老師的資料庫裡面,但他的流程是因為這個東西是最原始的網頁,他是沒辦法直接把資料全部抓下來然後丟到一個 repo 上。所以做法是:先用一個腳本,就是你第一次執行的時候,他會就幫你把這些東西抓下來,然後在你的地端的電腦裡生成一個、我檢索平台的網頁。

主持人:所以你是用、你是用地端的建模方式?

為什麼推廣地端模型

回到建置地端模型,因為我們現在如果你是訂閱的是 Claude 或者是 OpenAI 的話,那叫做雲端模型。那雲端模型就是等於說 AI 在天上,然後我們跟他訂閱。那他 AI 的 Harness,就是他那個模型、你在跟他聊天的那一個 chatbox 的這一件事情,你不知道他怎麼聊。那地端模型呢?其實為什麼會推廣大家要使用的最重要的原因,是因為你現在包括在線上老師,你們現在的這一台電腦,因為都還有不錯的顯卡,你們要跑一個 128B 或者是 16B 的很低的模型,其實通通都跑得動,那不需要去下載很大的模型。

另外一點是就是徐灝老師那邊、那個老師那邊沒有時間,但是我會把就是老師之前開出來的、他已經有做一個地端的的邏輯的開源,那我會把那個開源給大家。那現在是這樣子:如果你不知道怎麼用,就把那個開源丟給你 AI,叫他教你做,現在就是這樣子。

那那個地端怎麼樣做?做出來其實很簡單。我先說:就是不要把 AI 現在當做很難,你只要知道來源在哪裡、知道關鍵字是什麼,你只要問對方向,你就可以得到一切的答案。地端因為徐老師這邊已經有做,而且他有做一個建築的資料庫,他就可以跟今天林老師的這一個系統去做串聯。那詳細細節我們可以回去自己再研究,這樣比較好看。

主持人:這邊會有個狀況就是說:你定時要下載下來,我有把它整理成一個、一個 skill,就是你可以用這個 skill,它在重新更新。因為你們都已經有把這個東西給 Fork 下到你們自己的裡面,回去第一件事情是先更新、更新到最新的版本,包括上面、上個禮拜開始有那個本來是兩個鈕、現在變四個鈕的課題。

▍最重要的一件事:你手上的資料會自己爛掉

這是實跑當天算出來的真實數字:

全庫 1288 筆數量佔比
效期有效1288100%
效期已過00%
一年內將到期25720%

官網一筆過期的都沒有——因為過期的直接下架了。但每五筆就有一筆會在一年內失效。

所以資料其實是三層快照:

官網(唯一即時真相,只掛有效的)
   ↓ 你按下更新那一刻
你電腦裡的資料庫
   ↓ 你寫入 Revit 那一刻
模型裡的證號 ← 從此不再更新,也不會通知你它失效了

你半年前抓的資料庫,現在大概有一成證號已經是死的,而官網已經查不到它們——
你手上那份反而是唯一還記得它們存在的地方。

這就是為什麼工具會在擬計畫時告訴你資料多舊、超過 30 天主動建議更新、
而且不准把過期標章靜默寫進模型。不是形式主義,是因為沒有別的機制會提醒你。

把它更新好之後,這一些工具就可以讓你們使用,那用了以後會對你們比較安全也會比較好,然後以後再開發會比較順利。那以上,所以這是我們在第一場的分享。還有問題嗎?

補充:用小模型做去識別化

Scoot:其實那個 OpenAI 跟微軟都有開源那個超小的模型,大概只有、反正你連瀏覽器都跑得動。你只要把它接在你的資料後面,然後你只要每次跑完這東西的時候,去叫那個模型幫你去識別化。那最大的點是因為那個 DB 會有 key 對不對?比如說你這筆資料透過一個 ID 再連到另外一個,那你去識別化的過程當中是,你必須比如說把一個廠牌名稱拿掉了以後,但是那個如果你有關以後,那這件事情他可以直接幫你就做掉。

不過命名完以後的那個名字會有點蠢蠢的,就是會變成一個亂亂的、你看不太懂的東西。那你還可以再寫一個 Python 在後面,然後就把它變成、像我的做法就是把所有名字都用水果還有金庸:如果人名就用金庸武俠的名稱,然後公司名稱就用什麼水果跟什麼自然界的什麼,對不對?所以我的資料裡頭就會長成比如說火龍果山莊,然後這個原來裡頭的人名就會變成喬峰,類似這樣。

今天分享的老師當場提的四個問題,後來怎麼了

林老師簡報最後一頁列了一個問題和三個探討,那是他做完這套工具之後自己最在意的事。

歸納 Agent 任務解法與 Revit 導入等議題
歸納 Agent 任務解法與 Revit 導入等議題
他提的現在怎麼樣了
① 任務先後順序自己都亂掉⚠️ 他的做法被完整保留,但沒人在幫他檢查
② 軟體前的資訊平台(不只綠建材)❌ 還沒有
③ Agent 邊界的界定⚠️ 有原則,但沒有可以照著量的尺
④ 後端 BUG 怎麼檢核✅ 這一項真的做出東西了

① 「即使有看板,做到後面順序還是亂掉」

拿蓋房子比喻:他這個問題就像工程進度表上每項工作都有寫「要等哪幾項做完才能開始」,但沒有人拿排程軟體跑一次,所以表上其實有幾條互相矛盾的先後關係,沒人發現。

在 23 張卡確實每張都有填「這張卡要等哪幾張做完」(dependsOn)和「第幾順位」(order),規矩也白紙黑字寫在流程文件裡:前置卡沒完成,這張卡不准開工。這些全部被保留下來了。

但專案裡沒有任何自動檢查在驗這件事。 這次實際跑了一次,23 張卡有 6 處先後矛盾——例如 TASK-015 排在第 7 順位,但它要等的三張卡分別排在第 8.11、8.91、8.955 順位,也就是「排在前面的工作要等排在後面的工作先完成」。

所以他說的「後面自己有點亂掉」,是資料上真的存在,只是現在攤開來看得見了。要真正解掉,需要的是一個像結構分析軟體那樣的檢查器:跑一遍就告訴你哪幾條先後關係打結。那個東西還沒有人做。

而這個問題,碩濤我則是使用解法——「用 Subagent 當第三方驗證單位」——專案裡已經是可以直接用的東西(/loop-up:一支 AI 負責改,另一支只准照抄指令輸出、不准下判斷地做紀錄,第三支獨立跑驗收,連錯三次才升級找更強的模型來會診)。這次把他的工具併進主線,就是用這套流程跑完的,全程 12 個階段,一次都沒需要升級會診。

② 「材料不是只有綠建材,可以從其他地方組成複合元件」

留給未來老師的協助增加

現在整套工具從頭到尾綁死在台灣建築中心那一個網站上——連材料的分類代碼都是照那個網站的欄位寫的,抓取程式也只認得那一個網址。想換成廠商型錄或別的資料庫,沒有可以插拔的地方,等於前半段要重寫一次。

但後半段是可以共用的:材料抓進來之後,「這個材料該放在哪一層構造、厚度多少、寫進哪個參數欄位」這一整段方法,換資料來源也不用改。

用建築的話說:現在有的是一套完整的「綠建材專用施工圖」,還沒有變成「任何材料都能套的標準圖說」。 他在台上想像的那個中介平台,目前還只是構想。

③ 「如何分析每個 Agent 執行任務的尺度」

有原則,沒有尺。

現在專案裡寫清楚的是權責分工:哪種決策該交給比較強的模型(架構決定、牽涉安全的判斷),哪種交給便宜快速的(改文件、補測試);還有一條很重要的鐵則——同一個 AI 不可以既是施工的人、又是唯一驗收的人。另外還有一條血淋淋的規定:你自己知道的限制,不會自動傳給你派出去的 AI,必須明明白白寫進交辦內容裡。(這條是 2026-08-12 真的出過事之後才寫上去的。)

這相當於已經有了「監造和施工不能同一家」的制度。但他問的是更細的那一題:一張工作單到底該切多大?那個還是靠經驗判斷,沒有可以量的標準。

④ 「前端有介面好抓 BUG,後端怎麼檢驗?」

這是四項裡唯一真的被回答的,而且答案就發生在併入主線的過程中。

做法一:找一個「已知會動」的對照組。併入時發現一支寫入門窗的程式一直失敗,而原本的紀錄把它歸因為「這種欄位型別本來就不支援,只能盡力而為」——也就是被當成天生的限制接受了。實際比對之下發現:同一位作者寫的另一支功能幾乎一樣的程式,成功率 69/69。兩支擺在一起看,差別只在一個「還原設定」的動作做得太早,導致後面要用的東西已經被收走了。改掉之後,在 Revit 2024 實測從 0/12 全部失敗變成 12/12 全部成功,包含原本被寫成「型別限制」的那一項。

這就是後端的檢驗方法:沒有畫面可以看,就找一個行為正確的同類程式當基準線,
然後用「幾次成功/幾次嘗試」這種可以數的數字,取代「看起來應該對」。

做法二:讓危險操作先空跑一次。11 支會真的動你模型的工具,全部加上「預演模式」——只算給你看、不開交易、不改模型。更關鍵的是:這個開關被設成必填,工程師忘記帶,程式根本編譯不過去,而不是安安靜靜地真的把你的模型改掉。

等於把「試組裝」變成強制程序,而不是看個人習慣。

做法三:把抓過的錯變成每次都會跑的檢查。例如「工具在 A 檔登記了,但 B 檔根本沒實作」這種缺口——使用者按下去會直接報錯,但自動檢查卻全綠燈。這種洞現在被列為固定檢查項目,每次改動都會重跑一次。

誠實邊界:預演模式只有 4 支在真的 Revit 上做過反向測試,其餘 7 支只驗到程式邏輯;併入紀錄裡另外列了 10 項刻意沒修的已知問題,其中一項就是這支工具的錯誤訊息會把人指向錯誤的方向。這些沒有被藏起來,是寫在紀錄裡的。

附錄:跑之前你會需要的四件事

六個步驟的內容,在上面每一段的補述框裡都已經走過一遍了。這一頁只補正文沒提、
但你真的會卡住
的四件事,外加一張「哪一步對應正文哪一段」的速查表。

步驟指令正文在哪一段講
1/GM_update從台灣建築中心採購指南抓資料
2開檢索平台爬蟲腳本整理成網頁平台
3建材料 Set防水地坪元件示範
4/GM_import讓 Agent 擬注入計畫(全程唯讀)
5/GM_inject revit用下一個指令真的寫進 Revit
6門窗變體(.rfa)依附型元件那一段

一、事前準備

git clone https://github.com/shuotao/REVIT_MCP_study.git
cd REVIT_MCP_study

只需要 Python 3,不必安裝任何套件(抓取腳本只用標準函式庫 urllib)。

二、macOS 第一次跑會踩的憑證坑

步驟 1 若 0.5 秒就結束並跳 CERTIFICATE_VERIFY_FAILED,先設好憑證再跑一次:

export SSL_CERT_FILE="$(python3 -c 'import certifi;print(certifi.where())')"

三、想單獨確認資料有多新

python3 tools/green-material/GM_generate_revit_injection_plan.py --freshness

四、步驟 5、6 的環境門檻

/GM_inject revit 需要 Windows + Revit(2022–2026)+ 已建置部署的 add-in+ 已啟用的 MCP 服務,且同時只能有一個 AI Client 連線。安裝步驟見專案的 README.zh-TW.md。

▍做完之後,下一步是什麼

你是誰下一步需要什麼
想查材料的建築師把檢索平台當查證工具用:寫材料表、做綠建築評估時,確認你指定的材料真的有標章、效期還在。每月重跑一次步驟 1。什麼都不用
手上有專案模型把履歷寫進 Type → 明細表自動統計全案綠建材使用率 → 上色檢查哪些構件沒有標章 → 送審文件的證號直接從模型出,不用人工謄寫Windows + Revit
想做自己的工具這是一個可以換掉資料源的樣板:把「爬 TABC」換成別的來源(廠商型錄、法規資料庫),後面「domain 定義欄位 → skill 編排 → tool 寫入 BIM」整條是共用的讀專案裡的 domain 檔

第三條正是老師自己在分享最後講的:
「不是只有綠建材……也會有其他地方各類的平台可以去拿到各種資料……
再一併組合變成一個 set,再導入到 Revit。」

本文用到的連結

← 回到選擇 下一個:建照面積計算與填表系統:把時間還給設計 →