Revit AI ControlBLOCK
LEARN HOW TO BUILD UP YOUR REVIT MCP
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
English | 繁體中文
Revit MCP lets AI clients call Autodesk Revit tools through the Model Context Protocol (MCP). The MCP server forwards tool calls to a local Revit add-in, and the add-in executes the corresponding Revit API workflow.
- Demo video: Revit MCP - AI-Powered BIM Workflow Demonstration
- Knowledge site:
- Default WebSocket port:
8964
What is this?
Talk to Revit in plain language. Ask your AI client to "dimension every wall on this view" or "check the curtain-wall elevations", and Revit does it — through 192 MCP tools backed by 83 professional BIM SOPs (building code, quantity take-off, compliance checks).
Who it's for: BIM engineers and architects who use Revit and want AI-assisted, standards-based workflows. You'll need Revit (2022–2026) on Windows and to be comfortable installing an add-in.
Quickstart (3 steps)
- Install the Revit add-in. Build and deploy the C# add-in — see Manual Setup. This is the half that actually talks to Revit.
- Point your AI client at the MCP server. No cloning needed — it runs straight from npm:
{ "mcpServers": { "revit-mcp": { "command": "npx", "args": ["-y", "@shuotao/revit-mcp-server"] } } }- Open Revit, enable the MCP service in the ribbon, and start asking. Full setup: AI Client Configuration.
Questions or want to show what you built? → [Discussions](https://github.com/shuotao/REVIT_MCP_study/discussions)
Current Project Counts
8e2b3445c3c9OBSERVED · 2026-10-07Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add revit-mcp-server -- npx -y @shuotao/[email protected]
Exposed tools (171)
110 read · 59 write · 2 destructive. Blast radius: 2 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
add_pipe_cap | write | 在管件的未連線端安裝管帽或法蘭。自動尋找開放的接頭並連接。 |
adjust_section_datums | read | 自動調整剖面視圖的網格線 (Grids) 與樓層線 (Levels) 2D 範圍與氣泡顯示。 |
align_view_cropbox_to_element | read | 將指定視圖的 CropBox 對齊到目標元素(如 Detail Group 圖框)的 BoundingBox。保留原 Z 軸深度與 CropBox Transform。viewId 不指定時使用 active view。 |
analyze_beam_penetration | read | 分析特定結構梁上的套管穿孔。回傳精確的幾何數據,如距離柱心長度、梁深度、開孔直徑等。 |
analyze_corridor_width | read | 分析走廊寬度。使用 Revit 端的房間邊界線段找出平行牆對,回傳實測寬度、最小寬度與各區段檢討結果。 |
analyze_floor_slopes | read | 分析樓板頂面排水坡度:以 Solid→PlanarFace 法向量與 Z 軸夾角計算每片朝上頂面的坡度百分比,回傳每片樓板的 Min/Max 坡度,並可回寫至指定參數(預設 Comments)。未指定 elementIds 時自動收集 Function=Exterior 的樓板。 |
analyze_smoke_detectors | read | 偵煙探測器設置分析:掃描當前視圖的探測器、空調出風口(FCU/冷風機)、房間,回傳各探測器的距出風口距離、距牆/樑距離、距天花板距離,以及各房間的探測器數量與樑區格數。供 JS 端進行五項法規判定。 |
analyze_tall_partition_rooms | read | Find rooms on target levels that share or contain TYPE partition walls taller than a threshold. Uses room boundary segment ElementIds so shared room-to-room walls are assigned to both rooms, and can add upward ray evidence from room bottom to floor underside. |
apply_panel_pattern | write | 將面板排列模式套用到帷幕牆。需要類型映射表和排列矩陣。 |
arrange_viewports_on_sheet | read | 依指定順序排列圖紙上的視埠(僅限 DraftingView)。支援水平或垂直排列,邊緣對齊(edge-to-edge)。第一個視埠的位置作為錨點。可用 viewNames(view 名稱陣列)或 viewportIds(視埠 ID 陣列)指定順序,二擇一。 |
assign_existing_material | read | 將既有材質(透過名稱查找)套用到指定的 Type。不建立新材質。用於復原或批次指派既有材質(例如把 9 個柱子從 |
auto_convert_rotated_viewport_patterns | read | Automatically fix fill patterns on rotated viewports so hatch orientation follows the rotation correctly. Takes no parameters. |
auto_dimension_walls | read | 批次自動標註牆段尺寸(不需要 Room)。三種模式:overall_bbox(外圍兩條總長串:top 邊沿 X、right 邊沿 Y,預設)/ chained(同列同排共線牆串成 string dimension)/ per_wall(每牆一條長度標註)。標註用 DetailCurve 當 reference,不抓牆面,但建模一次性場景剛好。常用於 sketch-to-revit 蓋完牆後自動補尺寸。 |
auto_renumber_sheets | read | 自動掃描專案中所有帶有 -1 後綴的圖紙(例如 ARB-D0417-1),並將其合併至主序列中(變成 ARB-D0418),後續編號會自動順延。 |
batch_apply_view_template | write | 批次將指定的 ViewTemplate 套用到多個 views。支援透過圖紙(sheets)、view ID、view 名稱或名稱子字串來選取目標 views。可搭配 viewTypeFilter 篩選特定視圖類型。dryRun 模式可預覽變更內容而不實際修改。觸發條件:使用者提到批次修改 view template、套用視圖樣版、sheet 中的 view 改 template。 |
batch_create_rc_filled_region | write | Batch-create RC filled-region stickers across multiple views, or across every placed viewport on the given sheets. |
batch_create_wall_sections | write | 批次建立牆面套管剖面:以當前視圖的 BoundingBox 範圍過濾指定連結模型中的牆,再比對所有 MEP 連結模型的管附件(圓形套管)與風管附件(矩形開口),只對有開孔的牆建立剖面視圖。 |
batch_set_material | write | 批次修改指定 Type 的材質(複製原材質模式)。為每個 Type 的原材質建立複本 |
batch_set_room_height | write | 批次依房間名稱或用途分組,設定 Room 的 Upper Limit(ROOM_UPPER_LEVEL)與 Limit Offset(ROOM_UPPER_OFFSET)。不動樓層,只改 Room 參數。對 Model Group 內的 Room 會自動進入 EditGroup 模式(每個 GroupType 只編輯一次,變更同步到所有 instance),避免「modified outside group edit mode」警告。Transaction 內註冊 WarningSwallower 吞掉其他警告。單一 Transaction,可 Ctrl+Z 整批還原。 |
calculate_exterior_wall_scaffold_perimeter | read | Reliable scaffold takeoff mode. Automatically detects exterior/perimeter walls from wall centerline geometry using ray exposure tests, excludes interior walls, sums the included wall lengths, optionally selects the result in Revit, and reports the classification evidence. |
calculate_grid_bounds | read | 計算給定 X 與 Y 網格範圍的邊界 BoundingBox 座標。可指定外擴偏移量 (offset_mm)。 |
calculate_selected_detail_line_perimeter | read | Fast scaffold takeoff mode. Sum curve lengths from the current Revit selection, including detail lines, detail component family geometry, and filled region boundaries. Use this when the user manually traces the scaffold outline. |
change_element_type | read | 變更 Revit 元素的類型(例如將牆從 Type A 改為 Type B)。 |
check_exterior_wall_openings | read | 依據台灣建築技術規則第45條及第110條檢討外牆開口。自動讀取地界線計算距離,以顏色標示違規。 |
check_floor_effective_openings | read | 無開口樓層判定:檢查樓層外牆有效開口面積是否 ≥ 樓地板面積 1/30。法源:消防§4 + §283。 |
check_smoke_exhaust_windows | read | 排煙窗檢討:檢查天花板下 80cm 內可開啟窗面積是否 ≥ 區劃面積 2%。同時判定無窗居室。法源:建技規§1011 + 消防§188。自動上色:綠=全開、黃=折減、紅=固定。 |
check_stair_headroom | read | 檢查樓梯淨高是否符合法規要求(190cm + 裝修厚度) |
clear_element_override | destructive | 清除元素在指定視圖中的圖形覆寫。 |
colorize_clashes | read | 將 detect_clashes 的結果視覺化上色到 CSA 元素。colorScheme 可選 by_csa_category(柱紅/樑橘/板黃/牆藍)、by_system(依 MEP 系統)、by_severity(依貫穿深度嚴重度)。 |
convert_drafting_to_model_pattern | read | Convert drafting fill patterns to model fill patterns in the document so hatching stays fixed to the model rather than the sheet. Takes no parameters. |
copy_detail_items_to_views | read | 批次複製詳圖項目(DetailCurve、TextNote、FilledRegion、DetailComponent、Dimension)從來源視圖到一或多個目標視圖(同一專案內)。支援 DraftingView 與 model view。 |
create_beams_from_dwg | write | 從 CAD 指定圖層建立 Revit 結構樑(必須搭配文字標注圖層)。\n |
create_column | write | 在指定位置建立柱子。 |
create_columns_from_dwg | write | 從 CAD 指定圖層自動建立 Revit 結構柱或建築柱。 |
create_corridor_dimension | write | 走廊寬度標註 — 自動偵測房間邊界的平行牆對,建立精確的牆到牆尺寸標註。回傳每個區段的實測寬度與合規判定。 |
create_curtain_panel_type | write | 建立新的帷幕牆面板類型,可指定顏色(HEX)和透明度。 |
create_curtain_wall_elevations | write | 批次建立每一道帷幕牆的永久外立面視圖,建立/套用名為「帷幕立面」的視圖樣板,保留 crop box 與 far clip depth 可由各視圖自行控制,並回傳方向與 crop 診斷欄位。這個工具建立的是持久成果,不需要 cleanup;除非使用者明確要求清理,AI client 不得呼叫 delete_element 刪除這些 generated views。未指定 wallIds/maxWalls 時處理專案內全部帷幕牆;專案帷幕牆數量多時(例如數百道)建議用 maxWalls 分批處理,避免超過回應時限,可搭配回傳的 RemainingWallIds 續跑下一批。 |
create_dependent_views | write | 依據指定的母視圖 ID 與 BoundingBox 邊界,批次建立並裁切從屬視圖 (Dependent View)。 |
create_detail_component_type | write | 指定詳圖項目族群,複製並設定新名稱(圖紙編號-圖紙名稱-詳圖名稱),同時自動填寫 詳圖圖號、圖說名稱、詳圖名稱、詳圖編號 等類型參數。 |
create_detail_lines | write | 在視圖上繪製詳圖線(天花板線、有效帶範圍線等),可指定顏色和標籤。 |
create_dimension | write | 在指定視圖中建立尺寸標註。 |
create_dimension_by_bounding_box | write | 使用房間邊界框自動標註房間淨尺寸(保證100%覆蓋率) |
create_dimension_by_ray | write | 使用射線偵測 (Ray-Casting) 建立尺寸標註。從指定原點向正反方向發射射線,偵測牆面並建立標註。 |
create_door | write | 在指定的牆上建立門。可指定 sourceElementId 來複製現有門的類型、instance 參數與 facing/hand 朝向。 |
create_duct_system | write | 把一組風口與一台設備組成 Revit 風管系統(MechanicalSystem)。equipmentId 可省略,用於建立「已決定獨立成系統但設備尚未選定」的中間狀態(端點未歸屬任何系統代表還沒決定,已建系統但設備欄空白代表已決定獨立、設備待補)——省略時會把 baseConnector 傳 null 呼叫 Revit API;Revit API 文件明載 baseEquipmentConnector 為選填、允許傳 null(\ |
create_facade_from_analysis | write | 根據分析結果批次建立整面立面。在牆面前方批次建立多片 DirectShape 面板,支援多種面板類型和排列模式。 |
create_facade_panel | write | 建立單片立面面板(DirectShape)。支援 5 種幾何:curved_panel、beveled_opening、angled_panel、rounded_opening、flat_panel。 |
create_family_instances_from_dwg_blocks | write | 以與 preview_family_instances_from_dwg_blocks 完全相同的參數重新掃描來源後建立 FamilyInstance—— |
create_filled_region | write | 建立填充區域(如排煙有效帶色塊),可設定顏色和透明度。 |
create_floor | write | 在 Revit 中建立樓板。需要指定邊界點座標。 |
create_floor_plans_from_template | write | 以指定的 FloorPlan 視圖作為範本,在多個 Level 上批次建立新的樓層平面視圖。複製範本的 ViewFamilyType、View Template、Phase、Phase Filter。適用於補齊缺漏的正式建築圖系列(例:A- 前綴的樓層平面圖)。已存在同名 view 時會跳過並在回傳的 Skipped 清單中記錄原因。 |
create_green_material | write | 在 Revit 專案材質庫 (OST_Materials) 中實體發動 Duplicate/Create 獨立建立純淨綠建材或測試 Material (如 |
create_legends | write | ⚠️ 若目的是把 Excel 內容繪製到 Revit view,**請改用 |
create_level | write | 在 Revit 中建立一個新的樓層 (Level)。指定標高(公釐)與可選名稱;若名稱已存在 Revit 會自動附加尾號。 |
create_material | write | 在 Revit 專案資料庫 (OST_Materials) 中建立獨立 Material 並關聯獨立 AppearanceAssetElement。 |
create_material_by_domain | write | 遵循 Domain 規範建立純淨獨立的 Revit Material(不加前綴、絕不上預設牆字串)。 |
create_parallel_section_view | write | 依牆面開孔位置自動建立平行剖面視圖。自動偵測牆上的套管族群,以開孔群組為單位裁剪剖面範圍;支援長牆分割(相鄰開孔 > 3m 則各自建立獨立剖面)、房間方向自動判定。無開孔時建立整面牆的全寬剖面。 |
create_rc_filled_region | write | Create RC (reinforced-concrete) filled-region stickers in the active view by detecting RC element outlines, drawn with an invisible line style so only the hatch shows. |
create_room_filled_regions | write | Create filled regions covering rooms in a view (e.g. to colour/mark rooms), optionally clearing previously created markers and setting colour and transparency. |
create_section_view | write | 建立剖面視圖,面向指定牆面。可用於檢視窗戶與天花板的高度關係。 |
create_sheets | write | 依據指定的清單批次建立空的圖紙。 |
create_single_material_type | write | 情境 2「各別建立」:複製指定 ElementType(Wall/Floor/Ceiling Type)建立新類型,並實體建立一個純淨綠建材 Material,指派到新 Type 的全部 CompoundStructure 層。Type 名稱與 Material 名稱使用同一組字串(GBM編號_材料名稱),不套 TABC_ 前綴。用於一個 Set 裡每個材料各自獨立建 Type 的情境(例如地板材料各別建立),跟 duplicate_element_type(牆板+塗料兩材料合併一個 Type 的單一組合情境)是不同情境,不要混用。 |
create_stair_section_view | write | 建立樓梯法規檢核剖面視圖(自動判斷長向走向以顯示踏板剖面) |
create_stair_text_note_with_leader | write | 建立帶有引線的文字標註 (專用於樓梯檢核標示違規位置) |
create_text_note | write | 在視圖上建立文字標註。 |
create_view_schedule | write | 在 Revit 中建立一個新的視圖明細表(Schedule/Quantities)。可以指定名稱、品類以及要包含的欄位。 |
create_wall | write | 在 Revit 中建立一面牆。需要指定起點、終點座標和高度。 |
create_window | write | 在指定的牆上建立窗。可指定 sourceElementId 來複製現有窗的類型、instance 參數與 facing/hand 朝向。 |
debug_viewport_geometry | read | 診斷工具:dump 一個 viewport 的所有座標資料(boxOutline、cropbox、view origin、scale 等)。用於反推 Revit 內部 cropbox vs viewport 的座標映射規則。指定 viewportId 或 viewId 其中之一。 |
dedup_detail_elements_in_view | read | 找出當前視圖(或指定視圖)中重複的 detail element(同 Type + 位置量化後相同),保留 Detail Group 內的副本,刪除 group 外的副本。涵蓋 DetailComponent / DetailCurve / FilledRegion / TextNote / Dimension。只認 Detail Group(OST_IOSDetailGroups),不認 Model Group。預設 dryRun=true 只列清單;確認後設 dryRun=false 才實際刪除。邊界情形(全部都在 group 中、或全部都不在 group 中)會回報但不動。 |
delete_element | destructive | 依 Element ID 刪除 Revit 元素。 |
detect_clashes | read | 執行 MEP 管線(連結模型)與 CSA 結構體(主模型)的碰撞偵測,使用 Curve-to-Solid 策略:MEP 抽中心線、CSA 保留實體、計算穿透線段。回傳每筆碰撞的入口/出口座標、貫穿長度、截面積、佔用體積,以及依系統/依 CSA 品類的統計摘要。 |
diagnose_curtain_wall_elevation_dimensions | read | 非破壞診斷帷幕立面的尺寸標示;可比較 CurtainGridLine profiles,或以 level_offset 在實際立面測試 Level plane、Invisible DetailCurve 與完整 production path,所有 level_offset 元素強制 rollback。 |
diagnose_curtain_wall_elevation_direction | read | 非破壞診斷指定帷幕牆的立面方向判定流程;以 rollback transaction 建立暫時 ElevationMarker/ViewSection,回傳 wall.Orientation、預期 marker 位置、暫時 view 方向與 dot 檢查,不留下視圖或 marker。 |
diagnose_curtain_wall_elevation_directions | read | Batch, non-destructive curtain wall elevation direction diagnostic. Compares wall.Orientation and -wall.Orientation candidate sides for selected or all curtain walls; temporary markers/views are created inside rollback transactions. |
door-window-legend-tools | write | 門窗圖例工具。mode=list 列出專案中已使用的門/窗型;mode=create 以 seed Legend 複製生成 A+ managed 圖例;mode=update 更新既有門窗圖例;mode=migrate 預覽或套用 legacy item 的 A+ ownership migration。 |
duplicate_element_type | write | 複製指定 ElementType 建立新類型(如綠建材 Set 專屬牆類型),並依指定的飾面/結構材質名稱實體建立 2 個獨立 Material,套入 Finish1/Structure/Finish2 三層 CompoundStructure 構造層。用於將牆板+塗料組合 Set 導入為單一牆體 Element Type。 |
duplicate_views_with_detailing | read | Duplicate one or more views with detailing (ViewDuplicateOption.WithDetailing keeps view-specific detailing/annotation), optionally renaming them and copying the crop region from the source view. Typical use: create the |
export_clash_report | read | 匯出 detect_clashes 結果為報表。format 可選 csv、json、both。預設輸出到桌面,檔名含時間戳。 |
export_families | read | 把專案中已載入的可編輯族群另存為 .rfa 檔到指定資料夾,建立可重用元件庫。預設匯出管配件(OST_PipeFitting)與管附件(OST_PipeAccessory)。自動依類別建立子資料夾;subFolderBySeries=true 時再依族群名稱系列(CIP/DWV/碳鋼.../)細分。略過系統族群、現地(in-place)與不可編輯族群。 |
export_smoke_review_excel | read | 匯出排煙窗檢討 Excel 報告(.xlsx),含樓層總覽、房間明細、窗戶明細、改善建議、§101補充檢討(排風量提醒+中央管理室偵測)五個工作表。 |
flip_element | read | 翻轉指定的 Revit 建築元素(例如門或窗)。可以選擇翻轉面向(facing)或開向(hand)。 |
get_active_schema | read | [Phase 1: Exploration] Get all categories and their element counts in the active view. ALWAYS run this first to confirm if the target category exists. |
get_active_view | read | 取得目前開啟的視圖資訊,包含視圖名稱、類型、樓層等。 |
get_all_grids | read | 取得專案中所有網格線(Grid)的資訊。 |
get_all_levels | read | 取得專案中所有樓層的清單,包括樓層名稱和標高。 |
get_all_materials | read | 查詢 Project Materials(材質瀏覽器)清單中所有現存材質,用於在建立材質後主動驗收確認是否已實體存在。 |
get_all_sheets | read | 取得專案中所有的圖紙清單,包含 ID、編號與名稱。 |
get_all_views | read | 取得專案中所有視圖的清單,包含平面圖、天花圖、3D視圖、剖面圖等。 |
get_category_fields | read | [Phase 2: Alignment] Get all parameter names for a specific category. MANDATORY: Run this before |
get_column_types | read | 取得專案中所有可用的柱類型。 |
get_connector_info | read | 取得 MEP 元素(管、風管、線管等)的接頭(Connector)資訊,包含座標、連接狀態、形狀等。 |
get_curtain_panel_types | read | 取得專案中所有可用的帷幕牆面板類型。 |
get_curtain_wall_info | read | 取得帷幕牆詳細資訊,包含 Grid 排列、面板尺寸、面板類型分佈等。 |
get_detail_components | read | 查詢專案中的詳圖元件(Detail Components)實例。可依族群名稱篩選,回傳每個實例的 ID、族群名稱、類型名稱、所屬視圖及參數。 |
get_dwg_beam_layers | read | 掃描目前 Revit 平面視圖中所有 CAD 匯入/連結的圖層名稱, |
get_dwg_block_instances | read | 掃描目前 Revit 平面視圖中已連結(Linked,非 Imported)的 CAD DWG, |
get_dwg_column_layers | read | 掃描目前 Revit 平面視圖中所有 CAD 匯入/連結的圖層名稱, |
get_element_geometry | read | 抽取元素的幾何資訊,支援主模型或連結模型元素。geometryType 可選 centerline(中心線)、boundingbox(範圍盒)、solid(實體統計)、all(全部)。連結模型的座標會套用 Transform。 |
get_element_info | read | 取得指定元素的詳細資訊,包括參數、幾何資訊等。 |
get_field_values | read | [Optional Phase 2.5] Get the distribution of existing values for a specific parameter. |
get_furniture_types | read | 取得專案中已載入的家具類型清單。 |
get_line_styles | read | 取得目前專案中可用的線型 (GraphicsStyles),例如:虛線、細線等。 |
get_linked_models | read | 列出當前專案中所有連結模型(RevitLinkInstance),含 LinkInstanceId、檔名、路徑、載入狀態、Transform 原點。用於碰撞偵測第一步:找到 MEP 連結的 LinkInstanceId。 |
get_project_info | read | 取得目前開啟的 Revit 專案基本資訊,包括專案名稱、建築物名稱、業主等。 |
get_room_daylight_info | read | 取得房間的採光資訊,包含居室面積、外牆開口面積、採光比例。用於建築技術規則居室採光檢討。 |
get_room_door_counts | read | Count doors by room. Each door is counted once against its primary room; default primary room is ToRoom with FromRoom fallback. Compatible with Revit 2020. |
get_room_info | read | 取得房間詳細資訊,包含中心點座標和邊界範圍。 |
get_room_window_counts | read | Count windows by room. Each window is counted once against its primary room; default primary room is ToRoom with FromRoom fallback. Compatible with Revit 2020. |
get_rooms_by_level | read | 取得指定樓層的所有房間清單,包含名稱、編號、面積、用途等。可用於容積檢討。 |
get_selected_elements | read | 取得使用者目前在 Revit 中選取的所有元素的基本資訊(ID、名稱、品類)。若是視圖或剖面標記,會一併回傳 Origin (X,Y,Z) 供空間排序使用。 |
get_sheet_viewport_details | read | 取得指定圖紙上所有視埠的詳細資訊,包含中心點座標、邊界框(MinX/MinY/MaxX/MaxY)、寬度與高度(mm)。若不指定 sheetId,則使用當前作用視圖(必須是圖紙)。 |
get_space_centroid | read | 回傳每個 Revit Space(OST_MEPSpaces)的代表點座標(mm)。這是本專案第一個支援 Space 品類的工具——get_room_info 等既有工具只吃 OST_Rooms,傳 Space 進去會 cast 失敗。供後續自動放置元件(如風口)使用。代表點依序嘗試 LocationPoint → BoundingBox 中心 → BoundingBox 內網格取樣,每一步都用 Space.IsPointInSpace 驗證是否真的落在空間內(凹形空間的 BoundingBox 中心可能落在空間外),全部失敗則回傳 null 並標示 PointSource= |
get_stair_actual_width | read | 取得樓梯梯段的真實實測寬度(透過 StairsRun.ActualRunWidth 屬性) |
get_titleblocks | read | 取得專案中所有可用的圖框(Title Blocks)類型。 |
get_types_by_category | read | 查詢指定類別中所有元素類型及其目前材質資訊。回傳每個 Type 的 ID、名稱、族群、實例數量、目前材質。用於在批次修改材質前,讓使用者確認要修改哪些類型。 |
get_view_templates | read | 取得專案中所有視圖樣版的完整設定。可用於視圖樣版比對與整併分析。 |
get_viewport_map | read | 取得專案中所有視埠(Viewport)與圖紙(Sheet)的對應關係。可用於查詢特定視圖被放置在哪張圖紙上。 |
get_wall_info | read | 取得牆的詳細資訊,包含厚度、長度、高度、位置線座標等。 |
get_wall_types | read | 取得專案中所有可用的牆類型,包含名稱和 Element ID。 |
grade_toposolid_to_floors | read | 依指定樓板底面的水平投影範圍整平 Toposolid;本次僅支援 footprint_only 模式。 |
hide_elements | read | 在指定視圖中隱藏元素。使用 View.HideElements() API,支援單一或批次操作。 |
join_wall_tops | read | 將指定樓層的牆,其頂部與上方的樓板、天花板、結構樑做幾何接合 (JoinGeometry)。回傳成功接合/已接合跳過/失敗的統計與各樓層明細。常用於樓層牆體建模後的批次頂接合。 |
link_cad_to_view | write | 將指定的 CAD 檔案(.dwg / .dxf)連結(Link,非 Import)到 Revit 中的指定視圖。 |
link_cads_by_floor | read | 批次將多個 CAD 檔連結到對應樓層的平面視圖,並把每個 CAD 平移對齊到指定的 Revit Grid 交點。 |
list_categories | read | 列舉專案中所有品類 (Category) 及其 CategoryType (Model / Annotation / Internal / AnalyticalModel / Invalid)。回傳每個品類的 Name、CategoryType、Id、子品類數量,並附各 CategoryType 的統計。唯讀查詢。 |
list_dimension_types | write | 列出目前 Revit 專案可用的 DimensionType。door-window-legend-tools create/update 需要先由使用者選擇 dimensionTypeName,再把對應 dimensionTypeId 傳回。 |
list_family_symbols | read | 列出專案中的 FamilySymbol(族群類型)。可依名稱篩選,回傳 ID、類型名稱、族群名稱、類別。用於查詢可用的詳圖項目族群。 |
list_legend_views | read | 列出目前 Revit 專案中的 Legend 視圖與其中的門窗 legend component 數量。door-window-legend-tools update 需要先由使用者選擇 viewName。 |
list_schedules | read | 列出目前專案中所有可讀取的明細表(排除樣板、圖框修訂表)。回傳每張表的 ElementId、名稱、品類、列數與欄數,供儀錶板分類與展開使用。 |
list_seeds | read | 列出 seed 候選資料。這版支援 seedType=legend,會回傳所有非樣板 Legend 視圖與其中 Legend Component 數量。此 tool 的結果必須顯示給使用者選擇;assistant 不得根據清單自動決定 seed,也不得在使用者未選 ViewName 前自動重試 create。 |
load_shared_parameters | read | 載入共享參數檔 (Shared Parameter File) 並將參數綁定至指定品類的 Type 或 Instance 層級。用於在寫入自訂參數前,先確保專案已載入參數定義。例如載入 GreenMaterial_SharedParams.txt 的 64 個綠建材參數(Mat1~Mat6 六槽位)至 Walls/Floors/Ceilings,之後用 set_green_material_type_parameters 寫值。 |
measure_distance | read | 測量兩個點之間的距離。回傳距離(公釐)。 |
modify_element_parameter | write | 修改 Revit 元素的參數值。 |
move_element | write | 移動指定的 Revit 元素(依 dx, dy, dz 指定位移量)。 |
move_text_notes_in_views | write | 在多個 DraftingView 中,依文字內容子字串搜尋 TextNote 並批次平移。適用於跨圖面統一調整法規文字位置。 |
override_element_graphics | read | 在指定視圖中覆寫元素的圖形顯示(填滿顏色、圖樣、線條顏色等)。 |
place_furniture | read | 在指定位置放置家具實例。 |
preview_dwg_beams | read | 解析 CAD 指定圖層中的雙線幾何,預覽識別到的樑中心線資訊(區分 X 向與 Y 向)。 |
preview_dwg_columns | read | 解析 CAD 指定圖層中的矩形幾何,預覽識別到的柱資訊(位置、寬度、深度、旋轉角)。 |
preview_family_instances_from_dwg_blocks | read | 對指定 Block 的每個插入點做座標鏈健檢(Block insertion point → Block transform → |
query_elements | read | 查詢 Revit 專案中的元素。可依類別、族群、類型、樓層等條件篩選。 |
query_elements_with_filter | read | [Phase 3: Retrieval] Query elements with multi-filter support. NOTE: The |
query_linked_elements | read | 查詢指定連結模型中的元素,支援品類篩選、參數過濾、自訂回傳欄位。座標會自動套用連結模型 Transform,確保與主模型對齊。 |
query_walls_by_location | read | 查詢指定座標附近的牆體,回傳牆厚度、位置線與牆面座標。 |
read_excel_tables | read | ⚠️ 若目的是把 Excel 內容繪製到 Revit Drafting View,**請改用 |
read_schedule | write | 讀取單一明細表的完整表格內容(欄位標頭 + 逐格 body 資料,忠實呈現 Revit 畫面顯示的文字)。用 scheduleId 或 scheduleName 指定。 |
read_source_file_sheets | read | 開啟來源 .rvt 檔案並讀取所有圖紙 (sheets)、視埠 (viewports)、視圖 (views) 與 ScheduleSheetInstance 的 metadata。同時偵測與目標檔(目前開啟的專案)的衝突。回傳結構化 JSON 供 AI agent 預覽與規劃後續 copy_sheets_from_file 操作。不修改任何檔案。 |
rejoin_wall_joins | read | 恢復先前由 unjoin_wall_joins / unjoin_column_joins / unjoin_element_joins 取消的接合關係(共用 pair 儲存,限同一 Revit session)。 |
remap_room_finish_codes | read | Batch-remap room finish code parameters in one Revit transaction. Designed for painting/finish schedules: split values by |
rename_view | write | 重新命名指定的 Revit 視圖(包含剖面圖、平面圖等),此工具不受軟體語系本地化影響。 |
renumber_rooms_by_level | read | Batch-renumber placed rooms on one level in a single Revit transaction. Sorts by room center from top to bottom, then left to right, using a configurable Y-row tolerance. Supports dry-run preview and starts from a seed such as B134. |
scale_drafting_view_height | read | 縮放圖紙上所有 DraftingView 中表格的行高(僅 Y 軸),寬度不變。以每個 view 的上邊緣為錨點,將所有 DetailCurve 和 TextNote 的 Y 座標按比例縮放。 |
scale_drafting_view_width | read | 縮放圖紙上所有 DraftingView 中表格的寬度(僅 X 軸),高度不變。以每個 view 的左邊緣為錨點,將所有 DetailCurve 和 TextNote 的 X 座標按比例縮放。 |
scan_opening_candidates | read | 唯讀掃描 MEP 管線穿越結構的開孔候選。沿用 detect_clashes 的 Curve-to-Solid 幾何核心,依明確的每側 clearanceMm 計算建議孔徑,並以 candidate / review_required 與 warningCodes 保守分流;不建立套管、開孔族群、標記或視圖圖形。 |
scan_penetrated_beams_in_view | read | 掃描目前視圖中所有被套管(Sleeves)穿過的結構梁。回傳包含梁 ID、連結模型 ID 及穿過該梁的套管數量的清單。 |
select_element | read | 在 Revit 中選取指定的元素,讓使用者可以視覺化確認目標元素。 |
set_active_view | write | 切換至指定的視圖。 |
set_category_visibility | write | 在指定視圖中隱藏或顯示整個類別(同時影響主模型與連結模型)。使用 View.SetCategoryHidden() API。 |
set_material_surface_pattern | write | 為綠建材 Material 建立(或重用既有,依名稱去重不重複建立)Model 目標的 Surface Pattern 並套入該材質的表面/剖切樣式。用於地磚 600×600 網格縫線、木地板木紋等依產品規格需要在平面/剖面顯示紋理的飾面材料(TASK-005.2 情境 2)。 |
set_project_units | write | 一次把整個專案的顯示單位切換到指定系統/模式(全案性動作,單一 Transaction 可 Ctrl+Z 還原)。mode= |
shift_view_cropbox | read | 在 CropBox 自身座標系中平移視圖的 CropBox。dx 正值往右、dy 正值往上(單位公釐)。viewId 不指定時使用 active view。 |
sync_detail_component_numbers | write | 自動同步所有詳圖元件的類型參數(詳圖圖號、圖說名稱)與其所在圖紙的編號和名稱。僅更新類型名稱已匹配圖紙編號的元件,不會影響共用標準詳圖。 |
sync_room_ceiling_finish_from_ceilings | write | 依房間範圍偵測同樓層天花板,讀取天花板類型標記,預覽或寫回房間參數(預設:天花板塗層)以更新粉刷明細表。 |
trace_stair_geometry | read | 自動分析視圖中的樓梯幾何,偵測被牆、版等物件遮擋的邊緣線段,回傳座標以供後續繪製虛線。 |
unhide_elements | read | 在指定視圖中取消隱藏元素。使用 View.UnhideElements() API,支援單一或批次操作。 |
unjoin_column_joins | read | 以柱子為中心解除其與鄰近元素的幾何接合,涵蓋牆、樓板、結構樑。未指定 columnIds 時預設整個專案所有柱(或 viewId 內的柱)。可用 rejoin_wall_joins 還原(限同一 Revit session)。 |
unjoin_element_joins | read | 通用版:以任一類別為中心解除其與指定 target 類別的幾何接合。預設 target 為 8 類(Walls、Floors、Columns、StructuralColumns、StructuralFraming、StructuralFoundation、Roofs、Ceilings)。共用 _unjoinedPairs,可用 rejoin_wall_joins 還原(限同一 Revit session)。 |
unjoin_wall_joins | read | 取消牆體與柱子等元素的幾何接合關係。常用於元素上色前的前置作業。 |
visualize_detector_results | read | 依照法規判定結果對偵煙探測器上色:綠=PASS、紅=FAIL、橙=WARN(出風口資料缺失)。 |
zoom_to_element | read | 將視圖縮放至指定元素,讓使用者可以快速定位。 |
Trust audit
BLOCKgrade D · trust 66/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (3 observation(s))
- Network
- declared (5 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (18)
Parse a free-text `/GM_import` request (as pasted from the showcase page's modal) and produce a Revit green-material injection plan. This step never **writes** to Revit — it reads `tabc_master_databas
- **Do not tell the user to fix sizes through the dialog.** Opening `Segments and Sizes` and pressing OK silently quantizes every inner diameter to the display precision (measured: Copper-K's true IDs
# Image Plan · BIM_MCP 站點配圖規劃 → Codex CLI 執行
<!DOCTYPE html>
<!DOCTYPE html>
<!DOCTYPE html>
# Deprecated: Use verify-qaqc.ps1 instead
#requires -Version 5.1
# ============================================================================
# ============================================================================
# ============================================================================
clear_element_override, delete_element
@modelcontextprotocol/ext-apps, @modelcontextprotocol/sdk, ws, zod, @types/node, @types/ws, esbuild, rimraf
- summary: 接續 2026-07-28 15:30 的 Windows session handoff。Mac 端(gh 登入 shuotao,repo+workflow write)完成 Windows 做不到的 GitHub 寫入部分。1 §2 fix PR:head fix/issues-90-93-and-87-2026-07-28 → base main,開為 **PR#101
assets/logo-1024.png
docs/BIM_MCP/reference/external/karpathy-wiki-reading.html
When the user asks for status, run the script and summarize the output. Do not invent usage numbers.
Gates applied: instruction_override, no_behavioural_pass, no_license.
8e2b3445c3c9full audit observations/trust-audit/mcp-server/shuotao__revit-ai-control.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 8e2b3445c3c9 | BLOCK | D | 66 | first audit |
Questions
What is the Revit AI Control MCP server?
LEARN HOW TO BUILD UP YOUR REVIT MCP
What tools does Revit AI Control expose?
171 in total: 110 read-only, 59 that write, and 2 that can delete or overwrite (clear_element_override, delete_element). Every one is listed on this page with its risk.
Is Revit AI Control safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (66/100) and found 6 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 2 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does Revit AI Control need?
No credential environment variables were found in its source, so it appears to need none.
How does Revit AI Control run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as @shuotao/revit-mcp-server at 1.6.0.
How current is this page?
The grade is for one exact copy of the source (8e2b3445c3c9), read on 2026-10-07. The repository is watched and re-audited when it changes.