CustomExporter Class

A class that allows exporting 3D or 2D views via an export context.
Inheritance Hierarchy
SystemObject
  Autodesk.Revit.DBCustomExporter

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public class CustomExporter : IDisposable

The CustomExporter type exposes the following members.

Constructors
 NameDescription
Public methodCustomExporter Constructs a new instance of a CustomExporter for a given document using the input instance of IExportContext as the output device.
Top
Properties
 NameDescription
Public propertyExport2DForceDisplayStyle This value tells the exporter of 2D views to force the given display mode for the view.
Public propertyExport2DGeometricObjectsIncludingPatternLines This flag sets the exporter of 2D views to either include or exclude output of face pattern lines as part of geometric objects when the model is being processed by the export context.
Public propertyExport2DIncludingAnnotationObjects This flag sets the exporter of 2D views to either include or exclude output of annotation objects when the model is being processed by the export context.
Public propertyIncludeGeometricObjects This flag sets the exporter to either include or exclude output of geometric objects such as faces and curves when the model is being processed by the export context.
Public propertyIsValidObject Specifies whether the .NET object represents a valid Revit entity.
Public propertyShouldStopOnError This flag instructs the exporting process to either stop or continue in case an error occurs during any of the exporting methods.
Top
Methods
 NameDescription
Public methodDisposeReleases all resources used by the CustomExporter
Public methodEqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
Public methodExport(IListElementId) Exports a collection of 3D or 2D views
Public methodExport(View) Exports one 3D or 2D view
Public methodGetHashCodeServes as the default hash function.
(Inherited from Object)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodStatic memberIsRenderingSupported Checks if view rendering is currently supported in the running instance of Revit.
Public methodToStringReturns a string that represents the current object.
(Inherited from Object)
Top
Remarks

The Export method of this class triggers standard rendering or exporting process in Revit, but instead of displaying the result on screen or printer, the output is channeled through the given custom context that handles processing of the geometric as well as non-geometric information.

Revit will process the exporting algorithm depending on the type of given context. If an instance of IPhotoRenderContext is used, then Revit will output the model as if executing the Render command, thus only such entities that would be visible in a rendered view will be sent to the context.

Alternatively, if an instance of IModelExportContext is used, Revit will output the model as if exporting it to a CAD format, a process which results outputting also objects that would not appear in a rendered image, such as model curves and text annotations.

For 2D views, an instance of IExportContext2D has to be used. Revit will output the contents of the 2D view as it is displayed on the screen. Export can be modified by setting properties pertaining to 2D views: Export2DGeometricObjectsIncludingPatternLines, Export2DIncludingAnnotationObjects. Export2DForceDisplayStyle. See notes for 2D export in IExportContext2D.

Example
/// <summary>
/// This method initiates a custom export process for a given 3D view.
/// </summary>
internal void ExportA3DView(Document document, View a3DView)
{
   // Instantiate an export context - the class that receives the output data during 
   // export process. The context class must implement the IExportContext interface.
   MyExportContext context = new MyExportContext(document);

   // Create an instance of a custom exporter by giving it a document and the context.
   CustomExporter exporter = new CustomExporter(document, context);

   // Optionally set attributes that should apply to the export process. For example:

   // a) Exclude OnFaceBegin and OnFaceEnd method from being invoked in the export
   //    context if data about faces and edges are not relevant to the export.
   //    Excluding face nodes would dramatically speed up the export process.
   //    Note: Excluding faces just excludes the calls, not the actual processing of
   //    face tessellation. Meshes of the faces will still be received by the context.
   exporter.IncludeGeometricObjects = false;

   // b) Set TRUE or FALSE to abort the export process should an error occur
   exporter.ShouldStopOnError = true;

   // Initiate the export process by calling one of Exporter's 'export' method,
   // in this case the one that takes a single 3D view as an argument.
   exporter.Export(a3DView);
}
See Also