Revit2026アドインの始め方【🔰初心者向け】
目的と概要
自分の備忘録を兼ねて、初心者向けに煩雑なRevitアドイン開発環境構築フローを記載する。
執筆時点での最新バージョン(Revit2026、.NET8.0)かつ、ウィンドウ付きのアドイン構築用にWPFを盛り込んだ、Visual Studio用テンプレートの作成を最終目的とする。
環境
- Revit2026.2
- VisualStudio2022(Community版)
- .NET8.0
インストール手順
VisualStudio2022(Community版)
下記から最新版をダウンロードし、実行する
.NETデスクトップ開発にチェックを入れてインストールする。

Revit.NET SDK
下記から最新版(執筆時点で2026.2用)をダウンロードし、インストール
インストール後、「C:\Revit 2026.2 SDK\Add-In Manager」フォルダ内の下記ファイルを、Revitのアドインフォルダ「C:\ProgramData\Autodesk\Revit\Addins\2026」へコピーする。

これでRevitを起動し、追加したアドインを常にロードすると使用できるようになります。
(「アドイン」タブの「外部ツール」に追加されます。)

これで開発環境が整いました。
はじめてのアドイン
新規プロジェクトの作成
VisualStudioを開き、「新しいプロジェクトの作成」を選択。
「クラス」などで検索し「WPFクラスライブラリ」を選択して進む。
※ここではC#で進める

プロジェクト名や保存場所は適当に指定し次へ。
フレームワークは、「.NET8.0(長期的なサポート)」を選択し作成する。

RevitAPの参照設定
ソリューションエクスプローラーで「依存関係」を選択し、右クリック。
「プロジェクト参照を追加」を選択する。

参照マネージャーが開くので、「参照」をクリックし、Revitのインストールフォルダ「C:\Program Files\Autodesk\Revit 2026」から「RevitAPI.dll」と「RevitAPIUI.dll」の2ファイルを選択する。

先ほど参照した2ファイルにチェックを入れて、OKを選択。

ソリューションエクスプローラーで「依存関係」、「アセンブリ」から先ほど追加したファイルを選択し、プロパティの「ローカルにコピー」を「いいえ」に変更する。
※2ファイルとも行う

プロジェクト設定変更
ソリューションエクスプローラー上のプロジェクト名で右クリック。
「プロパティ」を選択。

「ビルド」、「全般」から、「プラットフォームターゲット」を「x64」に変更。

「ビルド」、「エラーおよび警告」から、「警告の抑制」に「;MSB3277」を追記。

ユーザーコントロール(WPF)の追加
WPFとは、「Windows Presentation Foundation」の略で、RevitアドインUI画面を自由に構築できるフレームワーク。
ソリューションエクスプローラー上のプロジェクト名で右クリック。
「追加」、「新しい項目」を選択。

左側メニュー内の「WPF」から、「ユーザーコントロール(WPF)」を選択する。
項目名は「MainView.xaml」とした。

次からいよいよコードを書いていきます!
コードを書く
全てのElementを数えて、画面に個数を表示するアドインを作成する。
tekitou01の部分は、プロジェクト作成時の名称で変わるので注意。
using System.ComponentModel;
using System.Reflection;
using System.Runtime.CompilerServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace tekitou01
{
[Transaction(TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements
)
{
var uidoc = commandData.Application.ActiveUIDocument;
var doc = uidoc.Document;
var elementsCount = new FilteredElementCollector(doc).GetElementCount();
var viewModel = new MainViewModel
{
ElementsCount = elementsCount
};
var view = new MainView(viewModel);
view.ShowDialog();
return Result.Succeeded;
}
}
public partial class App : IExternalApplication
{
public string EXECUTION_PATH = Assembly.GetExecutingAssembly().Location;
public Result OnStartup(UIControlledApplication ap)
{
RibbonPanel panel = ap.CreateRibbonPanel("RevitAddinTemplate");
PushButtonData quickButton = new PushButtonData("RevitAddinTemplate", "RevitAddinTemplate", EXECUTION_PATH, "RevitAddinTemplate.Model");
panel.AddItem(quickButton);
return Result.Succeeded;
}
public Result OnShutdown(UIControlledApplication a)
{
return Result.Succeeded;
}
}
public class MainViewModel : INotifyPropertyChanged
{
private int elementsCount;
public int ElementsCount
{
get { return elementsCount; }
set
{
elementsCount = value;
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler? PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string? name = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
}
xamlファイルは、デザイン画面とコード画面が連動しており、変更が相互に反映されるため視覚的に分かりやすく編集が可能。
左側のツールボックス内のパーツをダブルクリックすることで、追加される。

<Window x:Class="tekitou01.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:tekitou01"
mc:Ignorable="d" Title="たいとる" SizeToContent="WidthAndHeight">
<StackPanel>
<TextBlock Text="全てのElement数は" FontSize="22" FontWeight="Bold" Margin="10"/>
<TextBlock Text="{Binding ElementsCount}" FontSize="22" FontWeight="Bold" Margin="10"/>
<TextBlock Text="個あります。" FontSize="22" FontWeight="Bold" Margin="10"/>
</StackPanel>
</Window>
using System.Windows;
namespace tekitou01
{
/// <summary>
/// MainView.xaml の相互作用ロジック
/// </summary>
public partial class MainView : Window
{
public MainView(MainViewModel viewModel)
{
DataContext = viewModel;
InitializeComponent();
}
}
}
アドインを実行する
ここまでコードを記載すれば、一度全てのファイルを保存する。(ctrl + shift + V)
「ビルド」、「ソリューションのビルド」または(ctrl + shift + B)でビルドを実行する。

「ビルド: 成功 1、失敗 0、最新の状態 0、スキップ 0」と表示されれば問題ない。

デフォルトでは、自分が新規プロジェクト作成時に指定したフォルダ配下に、「\bin\Debug\net8.0-windows」フォルダが作成され、ビルド後ここにdllファイルが作成される。
これがそのままRevitのアドインとして実行可能なdllファイルになる。
ちなみに本開発環境では、このまま実行可能だが、配布時にはaddinファイルを作成する等準備が必要になる。が今回は割愛する。
Revitを開き、アドインタブの外部ツールから、「Add-in Manager(Manual Mode)」を選択する。

「Load」を選択し、先ほど作成したdllファイル(\bin\Debug\net8.0-windows)をロードする。
ロードしたアドインを選択し、「Run」で実行する。

RUGのサンプル設備.rvtには、Elementが27,146個あるようです。

作成したプロジェクトをテンプレート化する
今後次々と色々なアドインを作成するにあたり、ここまでの設定をテンプレート化して使えるようにしたい。
プロジェクトから「テンプレートのエクスポート」を選択。

「プロジェクトテンプレート」を選択し、次へ。

適当に項目を埋め、完了を選択する。
「テンプレートを自動的にインポート」にチェックを入れておくと、次回新規作成時にテンプレート選択画面に現れる。

Discussion