Revit API には、カスタムのエクスポート コンテキストを介して 3D ビューを書き出すことができる、一連のクラスが用意されています。これらのクラスでは、Revit がモデルのグラフィカルな 3D 表現を出力デバイスに送信するためのレンダリング出力パイプラインにアクセスできます。カスタムの書き出しの場合、「デバイス」はあらゆる種類のデバイスを設定可能なコンテキスト オブジェクトによって表されます。最も一般的に使用されるのがファイルです。
カスタムの書き出しを実装することでコンテキストが提供されて、モデルのレンダリングが開始されます。モデルのレンダリング時には Revit がモデルの処理を開始し、コンテキストのメソッドを介してグラフィックス データを送信します。データは、レンダリング時に Revit で表示されていたモデルとまったく同じものになります。データにはジオメトリとマテリアル プロパティがすべて含まれます。
CustomExporter クラスを使用すると、カスタムの書き出しコンテキストを介して 3D ビューを書き出すことができます。このクラスの Export()メソッドにより Revit で標準レンダリング プロセスがトリガされますが、結果は画面やプリンタに表示されるのではなく、ジオメトリや非ジオメトリ情報を処理する特定のカスタム コンテキストを介して出力されます。
IExportContext クラスのインスタンスは、CustomExporter コンストラクタのパラメータとして渡されます。モデルのエンティティが書き出されると、このインタフェースのメソッドが呼び出されます。
RenderNode は、モデル書き出し処理におけるすべての出力ノードの基本クラスです。ノードは、ジオメトリ(要素や照明など)か非ジオメトリ(マテリアルなど)のいずれかに設定できます。ノードには、他のレンダリング ノードを含むコンテナ ノードのようなタイプもあります。
CameraInfo クラスは、レンダリングされたイメージへの 3D ビューの投影マッピングについての情報を表します。このクラスのインスタンスは ViewNode のプロパティを介して取得できます。null の場合は、直交投影ビューとみなされます。