Claude CodeでRevitを動かす(MCP連携)
CLAUDE CODE / REVIT 2027 / MCP
AI に Revit でモデリングさせる
Claude Code と MCP サーバーで、通り芯の柱から鉄骨階段まで
AI プロンプトに簡単な指示を書くだけで、開いている Revit のモデルに AI が直接作図する。——そんな環境を作ってみました。使ったのは Claude Code と、AI が外部ソフトを操作するための MCP(Model Context Protocol)です。接続の設定から、扉・窓・階段まで入った簡単なモデリングができるところまでを紹介します。
前回の SketchUp に続いて、今回は BIM ソフトの Revit とのAI連携です。結論から言うと、接続は 30 分ほどで済み、モデリングはチャットだけで進みました。ただし Revit は SketchUp よりも「部品の種類」が多く、ライブラリに無い建具は AI がその場で部品(ファミリ)を作ることになりました。うまくいったところも、つまずいたところも、そのまま書きます。
会話でモデリングする
言葉で伝えるだけで、柱・壁・部屋・扉・窓・階段が Revit のモデルに入ります。寸法や配置はこちらが決め、AI が座標に直します。
無い部品は、AI が作る
「スリット窓付きの親子扉」も「6 連窓」も標準ライブラリにはありません。AI は既存の部品を複製して加工し、新しいファミリとして保存してから配置しました。
数値と画像で確かめる
作図のたびに、AI は座標・体積・面積を読み返し、平面図と 3D の画像を撮って見比べてから報告します。「できました」の前に確認が入ります。
今回試した内容
- 目的:Claude Code から、デスクトップ版の Revit 2027 を直接操作できるようにする
- 課題:空のプロジェクトに、7m グリッドの柱 36 本、外壁と間仕切壁、部屋 2 室、親子扉 2 か所、6 連窓 20 か所、折り返し階段を順に入れる
- 環境:Windows 11 / Revit 2027.3(.NET 10)/ Claude Code(VS Code 拡張)
- 使用モデル:Fable 5.1 ※ 2026 年 9 月時点
AI と Revit のあいだに立つ「MCP」
SketchUp のときと同じで、Claude Code は Revit の画面を見ることも、直接触ることもできません。そこで、Revit の側にアドイン(Revit の中で動くプラグイン)を入れ、Claude Code の側に MCP サーバー(AI の命令をアドインへ中継する小さなプログラム)を登録します。命令は次の経路で届きます。
道具ごとの、送るものと返ってくるもの
SketchUp のときは Ruby のコードを流し込みましたが、Revit では C# のコードを流し込む道具が要になりました。MCP サーバーには「壁を作る」「部屋を作る」のような専用の道具も 40 個ほどありますが、柱の高さの指定、部屋の面積算定の基準、扉の開き方向といった細かい注文は、専用の道具では手が届きません。Claude Code は早い段階で「C# を直接書くほうが確実」と判断し、以後はほぼすべてこの道具で作図しました。
命令は Revit の中で動くアドインに届き、アドインが Revit 自身の機能(Revit API)で要素を作ります。できた柱や壁は普通の要素で、プロパティを開けば寸法や拘束が見えますし、1 回の指示は 1 回の「元に戻す」で取り消せるように、AI がまとめてくれます。
導入の手順 ── 検討から接続の確認まで
最初に「Revit MCP を使って Revit と接続してください」と頼みました。Claude Code が Web を調べて出してきた候補は 4 つです。この PC には Node.js が入っていないので、追加の実行環境が要らないものを選びました。
| 候補 | 性格 | 判断 |
|---|---|---|
| bimwright/rvt-mcp | 自己完結した .NET の実行ファイル。Revit 2022 から 2027 に対応。インストーラー付き | 採用(Node.js 不要、2027 対応) |
| Thestreetarckitect/revit-2027-mcp | 上の再配布版。2027 専用 | 本家で足りるので見送り |
| rui-branco/revit-mcp | Node.js で動く。初回起動時にアドインが自動で入る | Node.js の導入が要るので見送り |
| Demolinator/revit-mcp-plugin | pyRevit(Python)の上で動く | pyRevit の 2027 対応版が要るので見送り |
採用したのは、いずれも個人や小さなチームが公開している非公式のツールです(後の「気をつけること」で触れます)。導入の流れは次のとおりで、Claude Code が自分でやったのが 1・4・6、私が手で行ったのが 2・3・5 です。
- 配布ファイルを取得して検証するClaude Code が GitHub から ZIP を取得し、同梱の一覧表と全ファイルのハッシュ値を照合。改ざんや欠けがないことを確かめてから、実行用のバッチを用意しました。
- インストーラーを実行する(手作業)用意されたバッチをダブルクリック。アドインが Revit のアドインフォルダーへ、MCP サーバーがユーザーフォルダーへ入ります。管理者権限は不要でした。
- Claude Code の設定ファイルに追記する(手作業)作業フォルダーの
.mcp.jsonに、MCP サーバーの実行ファイルの場所を 4 行足します。AI が書こうとしたところ、安全機能に止められたので私が追記しました。 - Revit を再起動し、アドインを許可する(手作業)初回だけ「署名のないアドイン」の警告が出ます。「常にロード」を選びます。
- Claude Code を再起動する(手作業)
.mcp.jsonは起動時に読まれます。再起動するとrvt-mcpという名前の道具一式が見えるようになります。 - 接続を確かめるAI が「接続先を探す」「モデルを読む」を実行。Revit 2027 が見つかり、開いていたプロジェクトの要素数(3,725 個。テンプレート付属の設定類がほとんど)が返ってきました。
一度目は、AI が用意したバッチファイルです。中に日本語のコメントを書いたため文字化けし、インストーラーが一度も動きませんでした。バッチは英数字だけで書き直してもらい、二度目で通りました(Windows のバッチは日本語に弱い、という古典的な罠です)。
二度目は、私が手で足した .mcp.json のカンマ抜けです。ファイル全体が読めなくなり、Revit だけでなく SketchUp の接続まで切れました。これは AI が「JSON として読めない」と突き止めて直してくれました。設定ファイルを手で触ったら、AI に検証させるのが早いです。
柱から階段まで、順に頼む
接続が確認できたので、空のプロジェクト(レベル 1 = FL+500、レベル 2 = FL+4,000)に、実務の順番で要素を入れていきました。指示はすべて日本語のチャットです。下の図は、作図に使ったのと同じ座標で描いた平面図で、ボタンで工程を追いかけられます。
工程ごとの、指示した内容と個数
1. 通り芯と柱 ── 36 本を 1 回の指示で
プロジェクト 1 の平面図:レベル 1 に柱(意匠柱)を配置してください。サイズは 700 × 700、高さ 4m、X 方向 Y 方向とも 7m のグリッドに 5 スパンずつ配置してください。
Claude Code はまず、プロジェクトに入っている柱のファミリ(日本語テンプレートの「角柱」)を調べ、600 角のタイプを複製して 700 角を作りました。そのうえで通り芯 X1 から X6・Y1 から Y6 を引き、交点 36 か所に柱を置き、上端をレベル 1 から 4,000 上に設定——ここまでを 1 つの C# コードにまとめて 1 回で実行しました。返ってきたのは柱の ID と、1 本目の実測値(700 × 700 × 4,000、下端 500)です。
最初にできた通り芯は、記号(丸囲みの X1 や Y1)が右と上に付いていました。「基本は左側と下側」と伝えると、平面図・立面図のすべてで付け替え、「今後、断面図を描くときも同様に」という決まりとして覚えました。次の作業からは言わなくても左と下になります。
2. 外壁と、コアの壁
外周部に壁厚 200 の壁を柱と同じ高さで配置してください。柱の外面合わせでお願いします。
レベル 1 の X2 から X5、Y3 から Y4 の範囲を壁で囲ってください。壁厚は 120 でレベル 2 まで四周立ち上げてください。
「柱の外面合わせ」は、柱幅 700 の半分 350 から壁厚の半分 100 を引いた 250 だけ通り芯の外側に壁芯を置く、と AI が計算します。作図後に 4 面の外面座標が柱の外面と一致していることを数値で確かめ、平面図と 3D の画像を撮って報告してきました。コアの壁は指示どおりレベル 2 に拘束され、柱(上端 4,500)より 500 低く納まっています。
3. 部屋 ── 壁芯面積で 147.00 と 1113.25
今回作成した壁の内側を「中央コア」、その周りを「事務室」とする「部屋」を作成し、室名を記載してください。また、名称の下にはそれぞれの壁芯面積を平方メートル単位で記載してください。
ここで AI が自分で気づいて直したことが 2 つあります。面積算定の基準が「壁コア芯」になっていたので「壁芯」に変えたことと、柱が既定で部屋の境界になっていたので、36 本すべての「部屋境界」を外したことです。柱を外さないと、柱の断面が面積から引かれて壁芯面積になりません。結果は中央コアが 147.00 m²(21m × 7m)、事務室が 1,113.25 m²(35.5m 角からコアを引いた値)で、計算値とぴったり一致しました。
4. 親子扉 ── 無いものは、ファミリから作る
事務室と中央コア間にドアを 2 か所設置します。Y3、Y4 通りの X3 から X4 間に、W1200、H2100 の親子扉をつくってください。開き勝手は事務室側に開くようにしてください。その際に、扉の「親」側のほうは、スリット窓を付けてください。
テンプレートには「親子」というドアのファミリがありましたが、高さは 2,000 のタイプだけで、スリット窓はありません。Claude Code はファミリを開いて中身を調べ、親扉のパネルにスリット(幅 150 × 高さ 1,000)の穴を開けてガラスを入れ、「親子_スリット窓」という別名で保存してからプロジェクトに読み込み、2 か所に配置しました。開き方向は、閉じた扉のパネルがどちら側の壁面にあるかを座標で確かめて合わせています。
ただし、ここは一筋縄ではいきませんでした。最初に作った穴はプログラムからでは開かず(ボイドが効かない)、輪郭に穴を含めて押し出す方法に変えて通りました。次に、作り直したパネルが元の子扉より 15mm から 30mm 外側にずれる問題が出ました。元の部品は「壁面」という基準面に拘束されて壁厚に追従するのに、新しい部品は固定座標で描かれていたためです。AI はこれを座標の比較から見つけ、新しいパネルも同じ基準面に紐付けて解決しました。ファミリの作法を AI が試行錯誤で学んでいくのを横で見ている格好でした。
5. 6 連窓 ── 20 か所を外向きに
外壁に窓を設置します。4 面の各スパン間のすべてに設置してください。サイズは W6000、H1500 とし、窓の下端は FL+1000 とします。1000 間隔で方立を入れて 6 連窓とし、両サイドは縦滑り出し、その他は嵌め殺し窓としてください。
これも標準ライブラリにはない窓です。今度は「縦すべり窓」のファミリを元に、幅 6,000・高さ 1,500 に変え、方立を 5 本足し、両端のパネルにだけ縦滑り出しの記号(平面の開き線と、立面の二点鎖線)を描き直して「6 連窓_両端縦滑り出し」として保存しました。配置は 4 面 × 5 スパンの 20 か所。外壁の内外の向きが逆になっていたのを AI が見つけて直してから置いたので、すべて外向きに納まっています。
6. 鉄骨階段 ── 失敗と復旧まで
中央コア内の X2 通り側に、レベル 1 からレベル 2 に上がる鉄骨階段を作成してください。幅は 1400、蹴上は 180 以下、踏み面は 275、踊り場は 1400 の折り返し階段としてください。
階高 3,500 を 180 以下で割ると 20 段(蹴上 175)。AI はこの計算をして、経路 2 本と踊り場からなる折り返し階段を組み立てました。できあがりは蹴上 20 × 175、踏面 275、幅 1,400、踊り場は Y4 の壁に接して奥行 1,400。手摺も Revit の既定で両側に付いています。
階段の作成は、Revit の API の中でも手順が厳しい部分です。1 回目の試みで階段が「編集モード」のまま固まり、以後 AI からの命令がすべて届かなくなりました。原因は、AI が確定処理に必要な部品を、Revit に同梱されている別の部品から借用したことでした(本来は自分で用意すべきものでした)。
復旧は AI 自身が行いました。Revit の画面を撮影してリボンの状態を読み、「元に戻す」の履歴を開いて失敗した編集 2 件を巻き戻し、続けて出た保存確認のダイアログを閉じる——ここまでを画面の座標を頼りに操作し、接続が戻ったところで、必要な部品を自前で生成する方法に切り替えて階段を作り直しました。失敗のあと、同じ失敗をしない手順を自分で組み直したのは印象に残りました。
要した時間
体感の目安です。接続はすぐでしたが、ライブラリに無い建具を作るところと、階段の失敗からの復旧に時間がかかりました。柱・壁・部屋のような標準の要素は、指示 1 回で数分です。
| 工程 | 時間 | 備考 |
|---|---|---|
| 接続方式の調査と比較 | 約 10 分 | Web を調べて 4 候補を比較。採否は私が選択 |
| 導入(取得・検証・インストール・設定・再起動) | 約 30 分 | バッチの文字化けと、設定ファイルのカンマ抜けの手戻りを含む |
| 通り芯と柱 36 本 | 約 3 分 | タイプの複製から配置、画像確認まで指示 1 回 |
| 外壁と、コアの壁 | 約 5 分 | 指示 2 回。数値で外面の一致を確認 |
| 部屋 2 室と面積タグ | 約 10 分 | 面積算定の基準と、柱の部屋境界の設定を含む |
| 親子扉(ファミリの作成を含む) | 約 40 分 | 穴が開かない、位置がずれる、の 2 つを解決 |
| 6 連窓 20 か所(ファミリの作成を含む) | 約 30 分 | 途中で Revit の警告が出て一度止まった |
| 鉄骨階段 | 約 60 分 | 1 回目の失敗と復旧、作り直しを含む |
やってみて分かったこと
1. 人の手が要るのは、導入の 3 か所と「手を離すこと」
インストーラーの実行、設定ファイルへの追記、初回のアドイン許可。この 3 つは私が行いました。それに加えて、作業中に 1 つ覚えておくことがあります。Revit 側でコマンドを実行中だったり、ダイアログが開いていたりすると、AI の命令は届きません。私が「ドアを作成」コマンドを起動したまま席を離れたときは、AI がジャーナル(Revit の操作記録)からそれを突き止め、「Esc を 2 回押してください」と言ってきました。AI に任せている間は、Revit から手を離しておくのが正解です。
2. 標準に無い部品は、AI がその場で作る
SketchUp は形を作れば済みますが、Revit は「部品の種類」が仕様を決めます。スリット窓付きの親子扉も 6 連窓も、標準ライブラリにはありません。AI は既存のファミリを開き、部材を足したり描き直したりして、別名のファミリとして保存してから使うという、人がやるのと同じ手順を踏みました。ファミリ編集の作法(ボイドの効き方、基準面への拘束)は試行錯誤がありましたが、一度分かったことは記録され、次からは最初から正しい手順で作ります。
3. 数値で確かめてから、画像で確かめる
SketchUp のときは bbox_mm を読み返していました。Revit では読める数値が増えます。柱 1 本の寸法、壁の外面の座標、部屋の面積、扉のパネルがどちら側の壁面にあるか、親扉パネルの体積(穴が開いたぶん減っているか)。AI はまず数値で確かめ、それから平面図と 3D の画像を撮って見比べ、両方が合ってから報告してきます。「作ったつもりで、実は効いていなかった」を、この二段構えが何度も拾いました。
4. 失敗しても、戻ってこられる
階段で一度、モデルが操作できなくなりました。それでも AI は画面を読み、「元に戻す」で失敗した編集だけを巻き戻し、原因を避けた手順で作り直しました。やり直しの効く単位(1 指示 = 1 つの「元に戻す」)で作図しておくことが、この復旧を可能にしています。とはいえ、作業の前にファイルを保存しておくのは、人がやるときと同じで必須です。
5. 気をつけること
今回の MCP サーバーとアドインは、Autodesk のサポート対象ではありません。また「C# を流し込む」道具は、Revit の中で任意のコードを実行できる強力なものです。通信はパソコンの内側(名前付きパイプ)に閉じていますが、道具の性格は理解しておく必要があります。
もう 1 つ、実際に起きたことを。作業中に私が別のサンプルファイルを開いていたところ、AI の命令が「いま前面にあるファイル」に届き、サンプル側に階段のタイプが作られてしまいました(すぐ削除しました)。AI はその後、ファイル名を指定して操作するように改めましたが、AI に任せる間は関係のないファイルを開かないのが安全です。
まとめ
AutoCAD、SketchUp に続いて、Revit も Claude Code の「道具」になりました。標準の要素は指示 1 回で数分、ライブラリに無い建具はファミリの作成から——人がやるのと同じ手順を、会話で頼めるようになっています。
今回は柱・壁・部屋・扉・窓・階段という基本の要素をひと通り試しただけですが、作業が面倒な連窓のファミリー作成や、慣れないと手が止まってしまう階段作成を、AI が難なくこなしてくれたことに大きな手応えを感じています。今後はこのモデルに手を加えて一つの事務所ビルを完成させ、法チェックや省エネ計算など様々な解析を AI にトライさせるつもりです。
この記事の平面図は、Revit に流し込んだ C# と同じ座標(通り芯 7,000 ピッチ、外壁芯 −250 と 35,250、コアの壁芯 7,000 から 28,000 と 14,000 から 21,000、扉の位置 17,500、窓の中心 3,500 から 7,000 ごと、階段の経路 7,760 と 9,260)から描いています。












