Industry Foundation Class (IFC) Reader Parameters
Reader Version
FME introduced a new IFC reader for FME 2014. The previous reader implementation is now deprecated and is no longer maintained; however, you can still use the deprecated reader by changing this parameter to Yes.
Setting this parameter to Yes enables the Deprecated Reader Parameters.
Workspaces that contain the old IFC reader are still valid and will continue to use the old reader.
Reader Parameters
By default, the reader auto-detects which version of the IFC standard is used by the source dataset. When auto-detection fails, this parameter can be used to force the reader to assume that the source data is in a particular version of the standard.
This parameter specifies whether IFC objects should be read in a relational or hierarchical manner. Because the value of this parameter affects the reader schema, this parameter can only be set when an IFC reader is added to a workspace.
By default, the IFC reader operates in relational mode. When operating in relational mode, the IFC reader will produce a feature for each object in the IFC file. It is possible to re-create the object hierarchy using attribute values. For example, the ifc_parent_id attribute will contain the same value as the GlobalId value of the object's parent.
Note: The value of this parameter affects the reader schema: to change the Data Model parameter after workspace creation, you must remove the existing IFC reader and add a new reader.
When operating in hierarchical mode, the IFC reader will produce a single IfcProject feature. This feature will contain many levels of nested aggregate geometries, representing the hierarchy of objects in the source IFC file. For example, the project may contain an IFMEAggregate geometry representing an IfcSite object, which may in turn contain an IFMEAggregate representing an IfcBuilding object, and so on. Each IFC object can be identified by its geometry name. This single large feature can then be manipulated in FME Workbench, using transformers such as the GeometryPartRemover and/or the GeometryPartExtractor.
Each object in an IFC file may have multiple geometric representations, each identified with a unique name, such as Body or Axis. These parameters allow you to select whether all representations should be read.
Setting this parameter to No enables the Representations to Read/Additional Representations to Read parameters.
Each object in an IFC file may have multiple geometric representations, each identified with a unique name, such as Body or Axis. When Read all Geometric Representations is set to No, these parameters allow you to select the representations that the reader should look at.
The Representations to Read parameter provides a list of representations commonly found in IFC files. This list is taken from the IFC specification.
If a file contains representations that are not found in the list, they can be entered as a space-separated list in the Additional Representations to Read parameter.
Each geometric representation will become a part of the IFC object’s IFMEAggregate geometry. The representation identifier will be saved as the geometry name.
Property/Quantity Set Parameters
While each IFC object has a fixed schema, they may be extended the property and quantity sets.
When this parameter is set to Yes, the IFC reader will produce features that contain schema information about the names, types, and data types of these additional properties. This is useful mainly for workspaces which contain both an IFC reader and an IFC writer, as it allows the property/quantity set schema information to be preserved in the output file.
This parameter specifies the manner in which the IFC reader will handle property and quantity sets.
- Don’t Read Property/Quantity Sets: All property and quantity sets will be ignored. This can improve reader performance when property and quantity information is not required
- Geometries: Each property/quantity set will be read into the shared object library. Then, each IFC object to which the property set applies will contain a geometry instance which refers to the shared object. The shared objects can then be manipulated in FME workbench using transformers
- Features: Each property/quantity set will be returned as a separate IfcPropertySet or IfcQuantitySet feature. These features will then be referred to via the ifc_property_set{} and ifc_quantity_set{} list attributes on IFC object features.
Type Object Parameters
This parameter controls how IFC "type objects" are handled by the reader.
The reader can read all type objects as "IfcTypeObject" features, or they can be split into their actual IFC types, such as IfcWallType, IfcSlabType, etc.
This parameter controls whether or not features representing IFC objects will contain the property/quantity sets of their corresponding type object.
If set to Yes, the reader will add the property/quantity sets of the type object to the property/quantity sets of the real object. Property/quantity sets that have the same name will be merged, giving precedence to the properties/quantities of the real object.
Deprecated Reader Parameters
Specifies whether IfcProduct objects associated with multiple IfcShapeRepresentation objects will be read as a single FME feature.
If the value is No and the IfcProduct object is associated with multiple IfcShapeRepresentation objects, then the geometry of the feature will be a collection of all the geometric representations.
If the value is Yes, then the IfcProduct will be split among multiple FME features with each feature geometrically represented by a single IfcShapeRepresentation object. All the split features will have the same attributes that are on the IfcProduct object.
Specifies which geometric representation will be processed by the reader according to the IfcRepresentation object’s RepresentationIdentifier attribute. If this parameter is not specified, then all representations will be processed.
The format for values for this parameter is a comma-delimited list of RepresentationIdentifier values. If at least one RepresentationIdentifier value is specified for this parameter, then the reader will only process the representations that have RepresentationIdentifier values that appear in the list specified for this parameter. However, if a ‘!’ character appears by itself in the comma-delimited string, then the reader will not process the representations that matches a value in the list. If the only value for this parameter is ‘!’, then all representation identifiers will be processed.
Specifies which geometric representation will be processed by the reader according to the associated IfcRepresentationContext object’s ContextType attribute. If this directive is not specified, then all representations will be processed.
The format for values for this parameter is a comma-delimited list of ContextType values. If at least one ContextType value is specified for this parameter, then the reader will only process the representations that are associated with IfcRepresentationContext objects that have ContextType values that appear in the list specified for this parameter. However, if a ‘!’ character appears by itself in the comma-delimited string, then the reader will not process the representations associated with representation contexts that matches a value in the list. If the only value for this parameter is ‘!’, then all context types will be processed.
Specifies which geometric representation will be processed by the reader according to the IfcRepresentation object’s RepresentationType attribute. If this parameter is not specified, then all representations except for the BoundingBox representation type will be processed.
The format for values for this parameter is a comma-delimited list of RepresentationType values. If at least one RepresentationType value is specified for this parameter, then the reader will only process the representations that have RepresentationType values that appear in the list specified for this parameter. However, if a ‘!’ character appears by itself in the comma-delimited string, then the reader will not process the representations that matches a value in the list. If the only value for this directive is ‘!’, then all representation types will be processed.
Representations can have multiple representation types: specifically, the MappedRepresentation type can coexist with other representation types. In this case, all representation types applicable to the representation must be specified for that representation to be read.
Geometry
This parameter specifies whether the reader will preserve or remove the geometric representations of IfcSpace features. IfcSpace geometries are virtual areas or volumes that provide for certain functions within a building. As such, the geometries do not represent actual physical objects. When physical entities are most important, preserving these volumes of space may not be desirable.
- Yes: IfcSpace features will contain the geometric representations of the space.
- No (default): IfcSpace features will not contain geometric representations.
This parameter specifies whether the geometric representations of openings should be subtracted from the geometric representations of the objects they are related to. In practical terms, the parameter specifies whether window openings should be cut out of walls, or fastener holes cut out of beam features.
- Yes (default): The openings will be cut out of their parent feature geometry, and the opening features will have no geometric representation.
- No: The openings will not be cut out of their parent geometry. Instead the opening features will contain the geometric representations. This allows the subtraction to be performed later, using the CSGBuilder transformer in FME Workbench.
Note: It should be noted that the IFC reader may tweak the opening geometries to improve the fidelity of the resulting solids. This is to prevent "wallpaper" geometries in which an opening does not cut fully through the parent geometry. These modifications will not be made if this parameter is set to No.
This parameter specifies whether the geometric representations of projecting elements (for example, pilasters and other decorative items) should be added to the geometric representations of the objects they are related to. This will apply to any object whose type is a subtype of IfcFeatureElementAddition.
- Yes (default): The projecting geometries will be added to their parent feature geometry using a CSG union operation. The projection features will have no geometric representation.
- No: The projecting geometries will not be added to their parent geometry. Instead, the projection features will contain the geometric representations. This allows the addition to be performed later, using the CSGBuilder transformer in FME Workbench.
This parameter specifies whether the IFC reader should evaluate CSG solid geometries or not. If the CSG evaluation is not performed in the IFC reader, FME will automatically perform the evaluation when it is required. However, in some cases, this will result in solids which contain extraneous faces or protrusions. This can be prevented by having the IFC reader evaluate all CSG solids as they are read.
The default value for this parameter is No.
Note: Setting this parameter to Yes may significantly slow down the IFC reader.
In IFC, some geometries can be specified with curved corners. This is particularly common for structural beams which have a C, I, L, T, U or Z shape profile, or a rounded rectangular profile. These curved corners can dramatically increase the number of faces in a solid. If the solid is involved in a CSG subtraction, the extra faces will significantly slow down the CSG evaluation. The extra faces can be avoided by setting this parameter to Yes. In this case, the rounded corners will be replaced with 90 degree corners.
The default value for this parameter is No.
Encoding
This parameter may be used to provide a character set encoding which the IFC reader will use to read strings from the input file.
The IFC specification assumes that most string data is encoded in the ISO-8859-1 (Latin1) character set. In addition, the specification provides detailed information on how international characters are to be encoded in an IFC file. The IFC reader follows these specifications, and for a file that is correctly encoded, this reader parameter is not required. However, some files are produced incorrectly, and the text data in an IFC file may simply be the bytes of a string encoded in a character set other than ISO-8859-1.
Setting this reader parameter to the name of a character set allows the IFC reader to read files with incorrectly encoded international characters.
Additional Attributes to Expose
Use this parameter to expose Format Attributes in Workbench when you create a workspace:
- In a dynamic scenario, it means these attributes can be passed to the output dataset at runtime.
- In a non-dynamic scenario, this parameter allows you to expose additional attributes on multiple feature types. Click the browse button to view the available format attributes (which are different for each format) for the reader.
Use Search Envelope
Using the minimum and maximum x and y parameters, define a bounding box that will be used to filter the input features. Only features that intersect with the bounding box are returned.
If all four coordinates of the search envelope are specified as 0, the search envelope will be disabled.
When selected, this parameter removes any portions of imported features being read that are outside the Search Envelope.
The example below illustrates the results of the Search Envelope when Clip to Search Envelope is not selected (set to No) and when it is selected (set to Yes).
- No: Any features that cross the search envelope boundary will be read, including the portion that lies outside of the boundary.
- Yes: Any features that cross the search envelope boundary will be clipped at the boundary, and only the portion that lies inside the boundary will be read. The underlying function for the Clip to Search Envelope function is an intersection; however, when Clip to Search Envelope is selected, a clipping operation is also performed in addition to the intersection.