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.
Workspaces that contain the old IFC reader are still valid and will continue to use the old reader.
Reader Parameters
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 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.
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.
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.
Schema Attributes
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 where you have multiple feature types, it is convenient to expose additional attributes using this one parameter. For example, if you have ten feature types and want to expose the same attribute in each one, it is easier to define it once than it is to set each feature type individually in the workspace.
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.
Select this parameter to remove any portions of imported features being read that are outside the Search Envelope.
The illustration below shows the results of the Search Envelope when Clip to Search Envelope is set to No on the left side and Yes on the right side.
- 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 set to Yes, a clipping operation is also performed in addition to the intersection.