Revit API 概要
Revit API は、Revit のモデルをプログラムから操作するためのオブジェクト指向 API です。何ができて、どんな構造になっているのか。開発時に必ず押さえておきたい勘所を、全体像から整理します。
この記事の要点
- API は 2 つの名前空間に大別される。モデル操作の
Autodesk.Revit.DBと UI 操作のAutodesk.Revit.UI - 主要オブジェクトは Application・Document・Element の階層になっている
- 処理の入口は
IExternalCommand(ボタン実行型)とIExternalApplication(起動時常駐型) - モデル変更は必ずトランザクション内で行う。内部単位は「フィート」固定
この記事は Revit カテゴリの一部です。API の全体像を押さえると、個々の機能の位置づけが理解しやすくなります。環境準備は 開発環境構築、要素の取り出しは 要素の取得とフィルタ を参照してください。
12 つの名前空間:DB と UI
Revit API は大きく 2 つの名前空間に分かれます。「モデルそのものを触るなら DB、ユーザーや画面に関わるなら UI」と覚えると整理しやすいです。
- Element・Wall・Parameter
- FilteredElementCollector
- Transaction など、モデル本体を扱うクラス群
- IExternalCommand
- UIApplication・UIDocument
- TaskDialog・RibbonPanel など、対話を扱うクラス群
2Application / Document / Element の階層
API の主要オブジェクトは、大きいものから小さいものへと階層構造になっています。
Revit セッション全体を表す(Autodesk.Revit.ApplicationServices.Application)。UI 側の入口は UIApplication。
開いている 1 つのモデル(.rvt)。要素の追加・編集・取得はすべて Document を起点に行う。UI 側は UIDocument。
壁・床・ファミリインスタンスなど個々の要素。すべての要素は ElementId で一意に識別される。
外部コマンドでは、引数の ExternalCommandData から UIApplication → UIDocument → Document とたどって、対象モデルにアクセスします。
3IExternalCommand と IExternalApplication
アドインのエントリポイントは、用途に応じて次の 2 つのインターフェースを実装します。詳しい使い分けは 外部コマンド/アプリ を参照してください。
- ボタンクリックなどで 1 回実行される処理
Executeメソッドを実装- 戻り値に
Result.Succeeded/Failed/Cancelledを返す
- Revit 起動時にロードされ常駐
OnStartupでリボン UI 構築やイベント購読OnShutdownで後始末
最小限の外部コマンドは次のように書きます。
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
[Transaction(TransactionMode.Manual)]
public class HelloWorldCommand : IExternalCommand
{
public Result Execute(ExternalCommandData commandData,
ref string message, ElementSet elements)
{
UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
TaskDialog.Show("Hello", "ドキュメント: " + doc.Title);
return Result.Succeeded;
}
}
[Transaction(TransactionMode.Manual)] 属性は必須で、モデル変更時のトランザクション管理方式を宣言します。
4トランザクション必須と内部単位
API を使ううえで、初めて触れる人が必ずつまずく 2 点を先に押さえておきます。この 2 つを理解しておくと「変更できない」「数値が異常」といった典型的なハマりを避けられます。
要素作成・パラメータ設定・削除などモデルを変更する操作は、必ず
Transaction の Start〜Commit で囲む。トランザクション外で変更しようとすると例外になる。詳細は トランザクションと要素編集 を参照長さの内部値は表示単位(mm など)に関わらず常に「フィート」。座標や寸法を入出力する際は
UnitUtils.ConvertToInternalUnits / ConvertFromInternalUnits で変換する全体像でつかむ Revit API
Revit API は一見クラスが膨大ですが、構造はシンプルです。DB と UI の 2 名前空間に分かれ、Application → Document → Element の階層でモデルにたどり着き、IExternalCommand / IExternalApplication という 2 つの入口から処理が始まる——この骨格さえ掴めば、個々のクラスは「どの層・どの段階のものか」で位置づけられます。
次は実際に要素を集めてみましょう。要素の取得とフィルタ で FilteredElementCollector の使い方を学ぶと、API でできることが具体的に見えてきます。
→次に読む
実際にアドインを書く手順はRevit API の記事一覧(20件)にまとまっています。アドインの追加/設置方法から読むと動くものが早く手に入ります。
子ページはありません
- Revitとは
- ファミリ(システム/ロード/インプレイス)
- カテゴリ・タイプ・インスタンス
- パラメータ(プロジェクト/共有/グローバル/ファミリ)
- レベルと通り芯
- ビューとビューテンプレート
- シートと図面化
- スケジュール表(集計表)
- ワークシェアリングと中心ファイル
- フェーズとデザインオプション
- リンクと座標連携
- Dynamo入門
- 開発環境構築(Visual Studio + .addin マニフェスト)
- Revit API 概要
- Revit API:要素の取得とフィルタ
- Revit API:トランザクションと要素編集
- Revit API:外部コマンド/アプリ
- 共有パラメータの作り方と使い方
- ファミリの作り方(ロード可能ファミリ入門)
- パラメータの種類と分類(総まとめ)
- Revit 総合ガイド
- Revit API
人気ページ
- 1 【Revit API】アドインの作成サンプル(外部ツール編)
- 2 Revit の要素(Category / Family / Type / Instance)4 階層モデルとは
- 3 【Revit API】要素の取得とID、名前、タイプの情報表示
- 4 【PythonでRevit API】pyRevitの導入と簡単なアプリケーションの作成
- 5 ArchiCAD 階段と手摺りの作成手順|階段ツール / 設定画面 / 手摺り追加
- 6 【Revit API】アドインの作成サンプル(外部アプリケーション編)
- 7 【Revit API】FamilySymbol(タイプ)の取得とパラメータの変更
- 8 RevitAPI.dll と RevitAPIUI.dll の参照
- 9 【Revit API】特定の要素のパラメータ一覧の取得
- 10 【Revit API】マニフェストファイルの書き方/作成方法
最近更新/作成されたページ
- Revit のエラーとトラブル対処|起動失敗・ライセンス・ファイル破損 2026-10-03 22:22:57
- GSG_01_Getting_Started_Template.rte の入手先(Revit) 2026-10-03 22:22:34
- Revit「Please run MaterialLibrary2021.msi first」の原因と対処 2026-10-03 22:22:34
- Archicadの参照線の配置・移動・削除|1本ずつ消す方法と全削除 2026-10-03 22:20:48
- Archicadで交点にカーソルを合わせる方法|スナップガイド・グリッド 2026-10-03 22:20:48
- Archicadで3D表示する方法|F3・Ctrl+F5と平行投影/パースの切替 2026-10-03 22:20:48
- ARCHICAD Column ツールで柱を配置する手順(断面・高さ・3D 確認) 2026-10-03 22:12:07
- Revitでプロジェクト基準点を表示する方法|測量点との違いと表示設定 2026-10-03 22:11:05
- Revit レベル (Level) 追加・修正完全ガイド(立面ビュー / Plan View 自動作成) 2026-10-03 22:11:05
- Revit プロジェクトの作成手順|テンプレート選択・保存・単位設定 2026-10-03 22:11:05
- Revit 完全ガイド|機能・ファイル形式・料金・システム要件とよくある質問 2026-10-03 22:11:05
- ARCHICAD で床(スラブ)を作る方法|ポリゴン入力と複合構造 2026-10-03 22:11:05
- ARCHICAD 窓の作成完全ガイド 2026-10-03 22:11:05
- ARCHICAD ドア (Door) の作成完全ガイド 2026-10-03 22:11:05
- ARCHICAD 壁の作成方法完全ガイド 2026-10-03 22:11:05