2026-10-12 活動快照 snapshot · 數字為當時狀態,最新統計見 BIM_MCP 知識站
2026-10-12 UPDATE · REVIT UI

Ribbon 狀態圖示+相機管理面板

這一次收編了兩位貢獻者的 Revit UI 成果:嘉祥(@laytonluo)補上 ribbon 上的 MCP 服務狀態圖示,任遠(@7alexhuang-ux)帶來一整套相機管理停靠面板、Key Plan 一鍵四視圖,以及視圖診斷/篩選器/Section Box/文件操作共 29 支新工具。

+29
MCP 工具
192 → 221
2
新的 UI 入口
狀態圖示+停靠面板
5 / 5
建置 0 error
R22–R26
SECTION 01 · 先做這件事

只 git pull 的話,你什麼都不會看到

這次改的是 C# add-in 本體,不是文件。Revit 載入的是已編譯的 RevitMCP.dll,所以同步原始碼不會讓 ribbon 改變;而停靠面板是在 OnStartup 註冊的,不重啟 Revit 就不會出現。先把這四步做完,再往下看功能。

三個最常見的「以為壞了」

① ribbon 完全沒變 → 沒重建/沒重新部署 DLL。
② 沒有「相機管理」按鈕 → 部署了但沒重啟 Revit。
③ AI 端還是只有 192 支工具 → 沒跑 npm run build;MCP client 執行的是 MCP-Server/build/,不是 src/。

四步升級

# 1. 同步 fork(或直接用 GitHub 頁面上的 "Sync fork" 按鈕)
git remote add upstream https://github.com/shuotao/REVIT_MCP_study.git   # 只需做一次
git fetch upstream
git merge upstream/main

# 2. 重建 MCP Server(工具 192 → 221 靠這一步生效)
npm --prefix MCP-Server run build

# 3. 重建 add-in —— 換成你自己的 Revit 版本(R22/R23/R24/R25/R26)
dotnet build -c Release.R24 MCP/RevitMCP.csproj

# 4. 部署
powershell -File scripts/install-addon.ps1 -Version 2024

然後重啟 Revit。npm 相依套件這次沒有變動,不需要重跑 npm install。

關於 R22/R23

任遠的規格書裡寫著「R22/R23 有既有的 CommandExecutor.LinkDisplay.cs 編譯錯誤」——那是他開發中途的狀態。他後來自己補了版本防護,收編時在乾淨環境複驗過:R22、R23、R24、R25、R26 五組建置各 0 error。如果你是 Revit 2022/2023,可以照上面的步驟直接升。

SECTION 02 · 嘉祥 @laytonluo

Ribbon 上現在看得出服務是開還是關

以前「MCP 服務(開/關)」按鈕沒有圖示,服務是開還是關只會在你按下去的那一瞬間、由一個 TaskDialog 告訴你一次——關掉對話框之後 ribbon 上就沒有任何線索了。想確認狀態只能再按一次,而再按一次就把它關掉了。

現在

按鈕帶 ON/OFF 圖示,與 SocketService.IsRunning 連動;滑過去的 tooltip 直接寫「MCP 服務:開啟/監聽中(port 8964)/點擊停止」。port 是從 ConfigManager 實際讀的,改過 REVIT_MCP_PORT 的人會看到自己的那個號碼。

收編時補強了什麼

服務啟動是非同步的(StartAsync() fire-and-forget),port 被佔用時內部會先等 500 ms 才真正綁定——原實作在那段時間讀到的狀態還是「關」。現在改成「按下去立刻套一次 + 之後幾次 Revit 閒置再讀回校正」,所以不會停在錯的圖示上。

SECTION 03 · 任遠 @7alexhuang-ux

相機管理停靠面板怎麼用

入口:功能區 MCP Tools → 相機管理。它是 Revit 原生停靠面板(預設停在右側,寬度 300–600 px 可用),不是 MCP App——不需要 AI client 連線也能用。管理對象是專案裡所有 IsPerspective = true 的非樣板 3D 視圖。

第一次打開會是空的——這是故意的

面板是懶載入:開檔、切視圖、面板本身載入都不會自動去讀模型,會停在「按『重新整理』載入相機」。這個設計是為了修一輪崩潰——原本在文件還在開啟時就同步做 DataGrid 重繪與 ExportImage,會讓 Revit 在開檔後 5–10 秒掛掉(0xe0434352)。所以:先按「重新整理」。

面板的六個區(單頁、沒有分頁)

區內容
① 工具列搜尋框(依名稱篩選)/重新整理/從透視圖同步(在透視圖裡導覽過但清單沒更新時強制重讀)/「⋯」選單(匯出 Excel、開啟預覽視窗)
② 相機清單每台相機一列:名稱、樓層、離樓板高度、水平角、俯仰角。右鍵欄標題可勾出選用欄位(平面 X/Y、遠裁剪、視野角估算、Eye Elevation 原始值)
③ 位置圖該樓層平面底圖上畫出所有相機位置與視野扇形。滾輪縮放、左鍵拖曳平移、雙擊空白=符合畫面
④ 視圖操作一鍵 4 視圖、一鍵出圖紙、更新樓層總覽、重設剖面位置、等角範圍/近側、剖面方向/位置、剖面轉 90° 等下拉選項
⑤ 人視高預設值批次把相機設到人視高的預設值
⑥ 狀態列最近一次動作的結果或錯誤,前面帶 HH:mm

三個手勢,記這個就夠

雙擊名稱=一鍵 4 視圖

單擊只是選取。雙擊相機名稱(或位置圖上的圓點)會產生/更新三張真實的 Revit 視圖——平面 Key Plan、沿視線的剖面、等角——再連同原透視圖一起並排。視圖以 Extensible Storage 綁在相機上,改名不會變孤兒、重跑不會重複建立。

點數字=直接改

清單裡的樓層、離樓板高度、水平角、俯仰角都可以就地編輯,按 Enter 直接下交易改模型。輸入無效值會還原,不彈對話框。

右鍵=其他全部

一鍵 4 視圖/僅打開透視圖/重新命名/複製到其他樓層/視角版本(具名視角快照,存在 .rvt 裡可切回)/一鍵出圖紙/重設剖面到視線。清單列與位置圖標記共用同一個選單。

它解決的四件事

原本的麻煩面板的回答
性質面板的 Eye Elevation 從內部原點量起,看不出相機離樓板多高一律顯示「離樓板高度」;原始 Eye Elevation 只唯讀備查
相機在平面上看不到、不能列印Key Plan 平面/剖面上畫出相機標記,是真的 Revit 詳圖元素,可列印
沒有總覽,不知道一共有幾台、分佈在哪清單+位置圖一次看完;每層另可產生一張「樓層總覽」平面
每台相機要手動排圖紙;想試不同角度得另開一台相機一鍵出圖紙;具名「視角版本」存在模型裡,隨時切回

完整規格(每個按鈕的行為、樓層判定規則、ES Schema)在 docs/camera-manager/spec.zh-TW.md;為什麼這樣決定在 adr.zh-TW.md;哪些還沒驗證在 roadmap.zh-TW.md。

SECTION 04 · 29 支新工具

AI 端多了什麼可以問

面板的功能另外包了 8 支工具供自動測試呼叫同一套服務程式碼,其餘 21 支是視圖診斷與文件操作。全部可在 Tools 索引查到卡片。

分組數工具
相機管理8list_cameras、get_camera_info、set_camera_pose、run_camera_keyplan、run_camera_overview、create_camera_sheet、copy_camera_to_level、camera_version
視圖表現法診斷/控制6get_view_graphics_diagnostics、set_view_template_controls、create_view_filter、remove_view_filter、get_filterable_parameters、list_fill_patterns
視圖範圍/裁剪/出圖4get_view_range、set_view_range、get_view_extents、capture_view_image
Section Box2set_section_box、set_3d_section_box
連結顯示3get_link_display_settings、set_link_display_settings、reload_links
材質圖形2get_material_graphics、set_material_graphics
文件操作4list_open_documents、open_document、close_document、save_document

最值得先試的一支

get_view_graphics_diagnostics——唯讀回答「這張圖為什麼長這樣」。它沿 Revit 的覆寫優先序(視覺型式 > 元素覆寫 > 篩選器 > 類別覆寫 > 材料)一次掃完,把所有命中的成因都列出來,而不是只回報第一個。以前這題要人工翻五個地方。

SECTION 05 · 誠實標註

哪些驗過了,哪些沒有

收編時實跑驗過的

R22–R26 五組建置各 0 error;registerRevitTools() 實回 221 支、零重複;MCP-Server build 通過;兩個 ribbon 圖示確認已編進 RevitMCP.g.resources(R22 與 R25 各驗一次);verify-qaqc.ps1 -SkipBuild -SkipDeploy 67 PASS/0 FAIL。

沒有驗過的

這批功能沒有在 upstream 做過 Revit 實機驗證——收編時本機 Revit 未執行,驗收只到建置與資源嵌入層。停靠面板的開啟與操作手感、Key Plan 四視圖的實際幾何、ribbon 圖示的外觀與切換、以及任遠自己列出的未驗清單(崩潰修復未能複現、迷你地圖縮放平移、剖面保留調整的端到端行為),目前全部仍是待驗狀態。

所以這頁最想請你做的事
升上去、打開面板、按「重新整理」、雙擊一台相機,然後回報發生了什麼——不管是壞的還是好的。上面那張「沒有驗過」的清單只能靠真的有人在真的模型上跑過才會縮短。開 issue 就好,附 %APPDATA%\RevitMCP\Logs 裡的 log 會更快。