Revit API を使用すると、Revit ドキュメントまたはその一部を、他のソフトウェアで使用するためにさまざまな形式で書き出すことができます。Document クラスにはオーバーロードされた Export()メソッドがあり、Revit の組み込みの書き出しを使用して(使用可能な場合)ドキュメントの書き出しを開始できます。高度なニーズの場合、一部のタイプの書き出しはIFC への書き出しや Navisworks への書き出しといった Revit アドインを使用してカスタマイズすることができます(注: Navisworks 書き出しはアドイン書き出しとしてのみ使用できます)。
Document.Export()メソッドのオーバーロードの概要は、下の表のとおりです。
表: Document.Export()メソッド
形式 |
Export()パラメータ |
コメント |
gbXML |
String, String, MassGBXMLExportOptions |
マス モデル ドキュメントから gbXML ファイルを書き出します |
gbXML | String, String, GBXMLExportOptions | ドキュメントを Green-Building XML 形式で書き出します。 |
IFC |
String, String, IFCExportOptions |
ドキュメントを Industry Standard Classes (IFC)形式で書き出します。 |
NWC |
String, String, NavisworksExportOptions |
Revit プロジェクトを Navisworks .nwc 形式で書き出します。この関数を使用するには、互換性のある Navisworks 書き出しアドインを Revit のセッションに登録する必要があります。 |
DWF |
String, String, ViewSet, DWFExportOptions |
現在のビューまたは選択したビューを DWF 形式で書き出します。 |
DWFX | String, String, ViewSet, DWFXExportOptions | 現在のビューまたは選択したビューを DWFX 形式で書き出します。 |
FBX | String, String, ViewSet, FBXExportOptions | ドキュメントを 3D-Studio Max (FBX)形式で書き出します。 |
DGN | String, String, ICollection(ElementId), DGNExportOptions | 選択したビューを DGN 形式で書き出します。 |
DWG | String, String, ICollection(ElementId), DWGExportOptions | 選択したビューを DWG 形式で書き出します。 |
DXF | String, String, ICollection(ElementId), DXFExportOptions | 選択したビューを DXF 形式で書き出します。 |
SAT | String, String, ICollection(ElementId), SATExportOptions | 現在のビューまたは選択したビューを SAT 形式で書き出します。 |
ADSK | String, String, View3D, ViewPlan, BuildingSiteExportOptions | ドキュメントを Autodesk Civil3D® 形式で書き出します。 |
Green Building XML 形式への書き出しには 2 つのメソッドがあります。最後のパラメータが MassGBXMLExportOptions となるメソッドはコンセプト マス ファミリのインスタンスを 1 つまたは複数含むプロジェクトにのみ使用可能です。このメソッドに渡す MassGBXMLExportOptions オブジェクトは、書き出された gbXML で解析を行う場合はマス ゾーンの ID のみで構成でき、書き出された gbXML でシェーディング サーフェスとして使用する場合はマス ゾーン ID とマス ID で構成できます。マスを使用する場合は、gbXML 出力でサーフェス情報が重複しないように、マス床またはマス ゾーンを持たないようにします。
他の gbXML 書き出しオプションに使用する GBXMLExportOptions オブジェクトには指定する設定はありません。すべて既定の設定を使用します。
IFC オプションを使用した Document.Export()の呼び出しには、Revit のカスタム セッションに登録されている場合は、既定の Revit IFC 書き出しの実装かカスタムの IFC 書き出し機能を使用します。いずれの場合も、Revit が現在サポートしている IFC 標準量の書き出しや、複数レベルの壁や柱をレベルごとに分割するといった書き出しオプションを設定するには、IFCExportOptions クラスを使用します。
Navisworks の書き出しメソッドには、現在の Revit セッションに登録されている互換性のある Navisworks 書き出しアドインが必要です。互換性のある書き出しが登録されていない場合は、メソッドが例外をスローします。Navisworks exporter が登録されているかどうかを判断するには、OptionalFunctionalityUtils.IsNavisworksExporterAvailable()メソッドを使用します。
NavisworksExportOptions オブジェクトを使用すると、ファイルをレベルごとに分割する、部屋ジオメトリを書き出すといった、Navisworks への書き出しに関するさまざまな設定が行えるようになります。さらに、NavisworksExportOptions.ExportScope プロパティは書き出しの範囲を指定します。既定はモデルです。他には View や SelectedElements といったオプションがあります。View に設定した場合は、それに応じて NavisworksExportOptions . ViewId プロパティを設定する必要があります。このプロパティは書き出し範囲が View に設定されている場合のみ使用します。SelectedElements に設定する場合は、書き出す要素の ID で NavisworksExportOptions . SetSelectedElementIds()メソッドを呼び出す必要があります。
対応する Document.Export()オーバーロードを使用すると、DWF と DWFX ファイルの両方を書き出すことができます。両方のメソッドとも、書き出すビューを表す ViewSet パラメータを持ちます。正常に書き出すには、ViewSet のすべてのビューが印刷可能である必要があります。これは、各ビューの View.CanBePrinted プロパティを使用して確認することができます。最後のパラメータは DWFExportOptions またはDWFXExportOptions のいずれかになります。DWFXExportOptions は DWFExportOptions から派生したものであり、すべて同じ書き出し設定です。トリミング ボックス、イメージ品質、用紙形式を書き出すかどうかのオプションもあります。
コード領域: DWF を書き出す |
public bool ExportViewToDWF(Document document, View view, string pathname) { DWFExportOptions dwfOptions = new DWFExportOptions(); // export with crop box and area and room geometry dwfOptions.CropBoxVisible = true; dwfOptions.ExportingAreas = true; ViewSet views = new ViewSet(); views.Insert(view); return (document.Export(Path.GetDirectoryName(pathname), Path.GetFileNameWithoutExtension(pathname), views, dwfOptions)); } |
FBX 書き出しには、インストールした Revit に含まれていない場合がある省略可能な特定のモジュールが必要であり、OptionalFunctionalityUtils.IsFBXExportAvailable()メソッドを使用すると、FBX 書き出し機能が使用できるかどうかの確認ができます。3D-Studio Max への書き出しのための Export()メソッドには 書き出すビューのセットを表すViewSet パラメータがあります。3D ビューのみが使用できます。FBXExportOptions パラメータを使用すると、境界エッジなしに書き出すかどうか、詳細のレベルを使用するかどうか、ビューの書き出しに失敗したときに書き出し処理を停止するかどうかを指定できます。
DGN、DWG、DXF 形式ファイルへの書き出しには同じような書き出しメソッドとオプションを使用します。
DGN、DWG、DXF 書き出しにはすべて、インストールした Revit の一部に含まれない場合がある省略可能な特定のモジュールが必要であり、対応するメソッドとして OptionalFunctionalityUtils クラスを使用することでこれらの各タイプの書き出し機能が使用できるかどうかを確認できます。
DGN、DWG、DXF 形式への書き出しのための Export()メソッドには、すべて書き出されるビューを表すパラメータ(ビューの ElementIds の ICollection として)が必要です。正常に書き出すには、少なくとも 1 つの有効なビューが存在し、印刷可能である必要があります。これは、各ビューの View.CanBePrinted プロパティを使用して確認することができます。
これらの形式の書き出しオプションは BaseExportOptions から派生したもので、色モードやスコープ ボックスを非表示にするかどうかといった、共通の書き出し設定を多数持ちます。BaseExportOptions はまた GetPredefinedSetupNames()と呼ばれる静的メソッドを持ち、ドキュメントの定義済みの設定を返します。その後、定義済みの設定の名前が、対応するオプション クラス(DWGExportOptions、DGNExportOptions、DXFExportOptions)で使用できる静的メソッド GetPredefinedOptions()に渡されます。ベース クラス ACADExportOptions を共有することから、DWG と DXF ファイルの書き出しオプションにはさらに多くの共通オプションがあります。
次の例では、最初に定義済みの名前と定義済みのオプションを何も変更せずに使用して、アクティブなビュー(印刷可能な場合)を DGN ファイルに書き出します。
コード領域: DGN の書き出し |
public bool ExportDGN(Document document, View view) { bool exported = false; // Get predefined setups and export the first one IList<string> setupNames = BaseExportOptions.GetPredefinedSetupNames(document); if (setupNames.Count > 0) { // Get predefined options for first predefined setup DGNExportOptions dgnOptions = DGNExportOptions.GetPredefinedOptions(document, setupNames[0]); // export the active view if it is printable if (document.ActiveView.CanBePrinted == true) { ICollection<ElementId> views = new List<ElementId>(); views.Add(view.Id); exported = document.Export(Path.GetDirectoryName(document.PathName), Path.GetFileNameWithoutExtension(document.PathName), views, dgnOptions); } } return exported; } |
これらのファイル タイプでは、対応するテーブルを作成して、それを BaseExportOptions クラスの適切なメソッドに渡すことで、レイヤ マッピングや文字フォント マッピングなどのさまざまなマッピング設定を修正できます。詳細については、「テーブルの書き出し」トピックを参照してください。
SAT のための Export メソッドは、書き出されるビューを表すパラメータ(ビューの ElementIds の ICollection として)を持ちます。正常に書き出すには、少なくとも 1 つの有効なビューが存在し、印刷可能である必要があります。これは、各ビューの View.CanBePrinted プロパティを使用して確認することができます。SATExportOptions オブジェクトには指定する設定はありません。すべて既定の設定を使用します。
最後の Export()メソッドは、ドキュメントの 3D ビューを、土木設計アプリケーションの形式で書き出します。このメソッドのパラメータの 1 つに、総面積図を指定する Viewplan があります。ビュー平面のすべての面積が書き出され、「建築面積」エリア平面図となります。エリア スキームが建築面積かどうかを確認するには、AreaScheme.GrossBuildingArea プロパティを使用します。BuildingSiteExportOptions オブジェクトを使用すると、総面積や収容人数合計といった設定にカスタム値を使用することができます。