タイトル: 開発環境構築(Visual Studio + .addin マニフェスト)
SEOタイトル: Revit API 開発環境構築|Visual Studio・RevitAPI.dll参照・.addinマニフェスト・配置先
開発環境構築(Visual Studio + .addin マニフェスト)
Revit を自分の手で拡張するアドイン開発。その第一歩は、ビルド環境を整え、作った機能を Revit に「登録」する仕組み(.addin マニフェスト)を理解することです。最初のつまずきを避けるための定石をまとめます。
この記事の要点
- Revit アドインは Visual Studio で C# のクラスライブラリ(DLL)として開発する
- Revit の
RevitAPI.dllとRevitAPIUI.dllを参照に追加し、「ローカルにコピー」を false にするのが定石 - ターゲットフレームワークは Revit のバージョンに合わせる(2025 は .NET 8、2022〜2024 は .NET Framework 4.8)
.addinマニフェスト(XML)で DLL のパス・クラス名・アドイン ID を Revit に登録する
この記事は Revit カテゴリの一部です。Revit API を使ったアドイン開発の出発点として、ビルド環境の準備とアドインの登録方法を整理します。API そのものの全体像は次の Revit API 概要 で扱います。
1Visual Studio とプロジェクトの作成
開発には Visual Studio(無償の Community エディションで十分)を使います。新規プロジェクトで「クラスライブラリ(C#)」を選び、出力が DLL になるようにします。Revit アドインは単体で動く実行ファイル(.exe)ではなく、Revit からロードされて初めて動く DLL(部品)である点が大きな特徴です。
.NET のターゲットフレームワークは、使う Revit のバージョンに必ず合わせます。バージョンの不一致はロード失敗の典型的な原因なので、プロジェクト作成時に最初に確認しておきましょう。
| Revit バージョン | ターゲットフレームワーク |
|---|---|
| Revit 2025 以降 | .NET 8 |
| Revit 2022〜2024 | .NET Framework 4.8 |
2RevitAPI.dll / RevitAPIUI.dll の参照
API を呼び出すには、Revit インストールフォルダ(例: C:\Program Files\Autodesk\Revit 20xx)にある 2 つのアセンブリを参照に追加します。役割が層で分かれているのがポイントです。
- 名前空間
Autodesk.Revit.DB - 要素・パラメータ・ジオメトリなどモデル操作の中心
- 名前空間
Autodesk.Revit.UI - 外部コマンド・リボン・ダイアログなど画面操作
追加した参照のプロパティで「ローカルにコピー(Copy Local)」を false にすること。これらの DLL は Revit 本体が提供するため一緒に配布する必要がなく、true のままだとバージョン衝突や配布物の肥大化の原因になります。
3.addin マニフェスト(XML)
ビルドした DLL を Revit に認識させるのが .addin マニフェストファイルです。これは XML 形式で、外部コマンド/外部アプリの種別、DLL のパス、エントリとなるクラスの完全修飾名、アドインの GUID などを記述します。外部コマンドを登録する例は次の通りです。
<?xml version="1.0" encoding="utf-8"?>
<RevitAddIns>
<AddIn Type="Command">
<Name>MyFirstCommand</Name>
<Assembly>C:\Addins\MyAddin\MyAddin.dll</Assembly>
<FullClassName>MyAddin.HelloWorldCommand</FullClassName>
<AddInId>8A4D1C6E-5F2B-4C7A-9E3D-1F2A3B4C5D6E</AddInId>
<VendorId>EXMP</VendorId>
<VendorDescription>Example Co.</VendorDescription>
</AddIn>
</RevitAddIns>
主な要素の意味は以下の通りです。
| 要素 | 意味 |
|---|---|
| Type 属性 | Command(外部コマンド)または Application(外部アプリ)。種別でロードのタイミングが変わる |
| Assembly | DLL の絶対パス。Addins フォルダからの相対パスでも指定できる |
| FullClassName | エントリクラスの完全修飾名(名前空間.クラス名)。これが間違うとロードできない |
| AddInId | アドインを一意に識別する GUID。プロジェクトごとに新規生成し、使い回さない |
4配置先 Addins フォルダ
マニフェストと DLL は、Revit が起動時に走査する「Addins フォルダ」に配置します。代表的なパスは次の 2 系統です。
C:\ProgramData\Autodesk\Revit\Addins\20xx\%APPDATA%\Autodesk\Revit\Addins\20xx\20xx は Revit のバージョン番号です。ここに .addin を置き、Assembly で指定したパスに DLL があれば、Revit 起動時に自動で読み込まれます。開発中はビルド後イベントで DLL とマニフェストをこのフォルダへ自動コピーする設定にしておくと、修正→確認の反復が格段に楽になります。
最初に環境を固めるメリット
アドイン開発でつまずく原因の多くは、コードのロジックではなく「フレームワークのバージョン不一致」「.addin の記述ミス」「配置フォルダの誤り」という環境周りです。逆に言えば、ここを正しく押さえれば最初の壁の大半は越えられます。ビルド後の自動コピーまで設定しておけば、以降はコードに集中できます。
環境が整ったら、次は API そのものの構造を学びましょう。Revit API 概要 で 2 つの名前空間と主要オブジェクトの階層を押さえると、何ができるのかが見えてきます。