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