Autodesk Revit API は、インプロセス DLL のみをサポートします。つまり、DLL が Autodesk Revit プロセスにロードされると、API アプリケーションがコンパイルされます。
Autodesk Revit API は、単一スレッド アクセスのみをサポートします。つまり、API アプリケーションは、すべての Autodesk Revit API 呼び出し(各種 API エントリ ポイントで Autodesk Revit プロセスにより呼び出される)をメイン スレッドで実行する必要があり、API アプリケーションは別のスレッドには操作を保持できず、Autodesk Revit に呼び出しを行うことはできません。(考えられる例外については、高度なトピック「外部イベント」を参照してください)。
Autodesk Revit API で作成できる DLL には、外部コマンドと外部アプリケーションの 2 つのタイプがあります。
Autodesk Revit API を使用すると、Autodesk Revit のユーザ インタフェースに新しいコマンドを追加することができます。これらのコマンドは、図 1 にあるように、[外部ツール]プルダウンの[アドイン]タブに表示されます。外部ツール コマンドは API を介して Autodesk Revit データベースにアクセスしたり、現在選択されている要素にアクセスします。
図 1: Revit に追加された外部ツール
Autodesk Revit API を使用すると、外部アプリケーションを追加することもできます。これらのアプリケーションは、Autodesk Revit の起動時とシャットダウン時に呼び出されます。図 2 にあるように、[アドイン]タブに新しいパネルを作成することができます。また、Autodesk Revit のユーザ インタフェースで発生するイベントに対応するハンドラを登録することもできます。
図 2: Revit に追加された新しいパネルとコントロール
REX (Revit Extension)は API フレームワークであり、IExternalCommand を実装するクラスに似た Revit 用のアプリケーションを .NET で作成することができます。REX は、組み込みリソースを通じて、次のようなより高レベルの開発環境を提供することを目的としています。
ダイアログ ボックスの自動作成と表示
ユニットとジオメトリに使用するライブラリ
メニューやツールバー開発をより簡単に作成するための、組み込みコマンドベースのアーキテクチャ。
Revit アプリケーション オブジェクトへのリファレンスにアクセスするための、標準的なメカニズム。
デバッグが簡単なアドインの自動配置とインストール。
詳細については、「¥Revit 2015 SDK¥REX SDK¥」フォルダを参照してください。