Table of Contents

Class IfcExporter

Namespace
RvtIO.Ifc
Assembly
RvtIO.dll

The standard-case wall of an arc location curve the way the current profile writes it: the local placement at the start of the arc with X along the tangent there, the Axis as an IfcTrimmedCurve over an IfcCircle, trimmed to the origin and the end point, and the Body as the extrusion of the loop of the lower end face of the body whose circular edges are sampled by the profile sampler.

public class IfcExporter

Inheritance

Inherited Members

Constructors

IfcExporter(TextWriter?, bool)

Creates an exporter that writes diagnostics to diagnosticOutput (null for none) and, with includeRevitPropertySets, the Revit parameters as property sets.

public IfcExporter(TextWriter? diagnosticOutput = null, bool includeRevitPropertySets = false)

Parameters

diagnosticOutput TextWriter?
includeRevitPropertySets bool

Properties

BaseQuantities

Whether every product that the current profile gives a quantity set receives an IfcElementQuantity "BaseQuantities". On by default for the current profile; products without a quantity description (pipes, fittings, valves, equipment, cables) are unaffected. Set it to false (CLI: --ifc-no-base-quantities) to leave the sets out.

public bool BaseQuantities { get; init; }

Property Value

bool

DiagnosticOutput

Receives the diagnostic messages of the export and of the parsers it runs; null (the default) is silent.

public TextWriter? DiagnosticOutput { get; set; }

Property Value

TextWriter?

ExportAllPhases

Exports the elements and the rooms of every phase, whatever the default of the profile (the elements of a demolished phase included). Ignored when RvtIO.Ifc.IfcExporter.ExportPhaseId is set.

public bool ExportAllPhases { get; init; }

Property Value

bool

ExportPhaseId

The phase whose state is exported: a project phase ID of the known phase order. Elements demolished at or before it, or created after it, are left out, and rooms follow it unless RvtIO.Ifc.IfcExporter.RoomExportPhaseId names another one. Null keeps the default of the profile: the last phase of the project for RvtIO.Ifc.IfcProfile.Current (see RvtIO.Ifc.IfcExporter.ResolveActivePhase(RvtIO.Model.RevitFileInfo)), no phase selection for RvtIO.Ifc.IfcProfile.Legacy.

public int? ExportPhaseId { get; init; }

Property Value

int?

ExportRoomsOfAllPhases

Keeps the rooms of every phase for the current profile, whose default is the rooms of the last phase of the project (see RvtIO.Ifc.IfcExporter.ResolveActiveRoomPhase(RvtIO.Model.RevitFileInfo)).

public bool ExportRoomsOfAllPhases { get; init; }

Property Value

bool

ExportedProducts

Products written by the last export, as counted in the "IFC export:" diagnostic line.

public int ExportedProducts { get; }

Property Value

int

OpeningQuantitiesInHostAxes

The opposite of RvtIO.Ifc.IfcExporter.OpeningQuantitiesSwapped, kept so that code written against the earlier opt-in keeps compiling. True by default; set it to false to get the legacy swapped quantities (CLI: --ifc-opening-host-axes is accepted and does nothing).

public bool OpeningQuantitiesInHostAxes { get; init; }

Property Value

bool

OpeningQuantitiesSwapped

Write the legacy (swapped) Width and Height quantities of the opening of a door or window: Height the side of the cut loop along the wall and Width the vertical side, named by the frame they are measured in, so a door 0.8 wide and 2.1 high gets Height 0.8 and Width 2.1. Off by default: the opening of a door or window in a straight wall gets the quantities of the door or window as Revit has them, Width along the wall (the Width of the instance, else of its type), Height vertical (its Height) and Depth across the wall, whatever the direction of the wall in the model; an opening of a door or window that holds no dimension is measured as the extents of its solid in the frame of the wall (CLI: --ifc-opening-legacy-axes).

public bool OpeningQuantitiesSwapped { get; init; }

Property Value

bool

Profile

The IFC output dialect (see RvtIO.Ifc.IfcProfile); RvtIO.Ifc.IfcProfile.Current is the default and the primary target.

public IfcProfile Profile { get; init; }

Property Value

IfcProfile

RevitParameterGroups

With Revit property sets enabled, write built-in parameters under their public API Definition.Name in one property set per parameter group instead of the single RevitParameters set.

public bool RevitParameterGroups { get; init; }

Property Value

bool

RoomExportPhaseId

Optional native project phase ID for room selection only.

public int? RoomExportPhaseId { get; init; }

Property Value

int?

SkipLog

Receives the elements the export leaves out, with the class and the reason (see RvtIO.ExportReport). Null to collect nothing.

public SkipLog? SkipLog { get; init; }

Property Value

SkipLog?

Methods

Export(RevitFileInfo, string)

Writes the IFC file for info to outputPath.

public void Export(RevitFileInfo info, string outputPath)

Parameters

info RevitFileInfo
outputPath string

Export(RevitFileInfo, TextWriter)

Writes the IFC file for info to output.

public void Export(RevitFileInfo info, TextWriter output)

Parameters

info RevitFileInfo
output TextWriter