Revit API では、カスタム アプリケーションを使用して、IFC 書き出し処理の既定の実装を変更できます。カスタムの IFC 書き出し機能を作成するには、IExporterIFC インタフェースを実装して ExporterIFCRegistry クラスに登録します。
IExporterIFC オブジェクトが Revit に登録されていると、UI および API メソッド Document.Export(String, String, IFCExportOptions)から IFC への書き出しを呼び出すときの両方で使用されます。両方の場合とも、カスタムの IFC 書き出し機能が登録されていないと、IFC 書き出しには既定の Revit 実装が使用されます。
API から IFC 書き出しを呼び出す場合、IFCExportOptions を使用すると、[IFC を書き出し]ダイアログ ボックスでユーザが使用できるのと同じ書き出しオプションを設定できます。
次の例では、OnStartup メソッド内にカスタムの IFC 書き出し機能を登録します。
コード領域: カスタムの IFC 書き出し機能を登録 |
/// <summary> /// This class implements the method of interface IExporterIFC to perform an export to IFC. /// It also implements the methods of interface IExternalDBApplication to register the IFC export client to Autodesk Revit. /// </summary> class Exporter : IExporterIFC, IExternalDBApplication { public ExternalDBApplicationResult OnStartup(Autodesk.Revit.ApplicationServices.ControlledApplication application) { ExporterIFCRegistry.RegisterIFCExporter(this); return ExternalDBApplicationResult.Succeeded; } } |
インタフェース IExporterIFC には実装のための唯一のメソッド ExportIFC()があります。このメソッドは IFC への書き出しを実行するために Revit が呼び出します。ExporterIFC オブジェクトがパラメータの 1 つとしてこのメソッドに渡されます。ExporterIFC は、IFC 書き出しの実装を許可するために Revit によって提供される主要なクラスです。これには、書き出し操作にユーザが選択したオプションや、書き出しの正常な実装に必要な特定のタイプのデータにアクセスするために使用されるメンバーに関する情報が含まれます。
Autodesk.Revit.DB.IFC 名前空間には、IFC 書き出し処理のカスタム実装が使用できる、IFC 関連の API クラスが多数含まれます。カスタムの IFC 書き出しアプリケーションの完全なサンプルについては、http://sourceforge.net/projects/ifcexporter/ にあるオープン ソースの例を参照してください。