Industry Foundation Classes (IFC) Feature Representation

This section describes the features that are output from the IFC reader.

Quick Links

Coordinate System

Coordinate System to Read

Attributes

Common Attributes

Common Attributes for Geometric Elements

Attributes for Texture Information

Special Feature Types

Non Geometric Feature Types

Project

OwnerHistory

PresentationLayerAssignment

Group

Coordinate System to Read

Esri *.prj and *.wld/wld3 Files

FME will search the folder of the dataset for a file with the same name as your dataset but with a projection file (.prj) extension. If it cannot find a file with that name, it will then look for the file esri_cad.prj within the dataset folder. If either of those files exists, FME will use the coordinate system information contained within to geolocate the IFC file.

If a .prj file is found, FME will also search the folder of the dataset for a file with the same name as your dataset, but with a world file extension (.wld or .wld3). If it cannot find a file with that name, it will then look for the file esri_cad.wld/esri_cad.wld3 within the dataset folder. If either of those files exists, FME will use the information in the file to translate the coordinates of the features in the dataset to their new geospatial coordinates.

If no .wld/.wld3 file is found, the translation will continue using the georeferencing information found in the .prj file, while reading coordinates in the coordinate system defined by the IFC file’s Survey Point. The reader will also use the file’s defined Project Units.

If the files cannot be found, then the translation will continue, using the coordinate information found in the dataset, without performing any additional transformation.

For more information on creating .prj and .wld/.wld3 files in ArcGIS Pro, please refer to the ArcGIS help page: Geospatial position of CAD and BIM data.

Native IFC Georeferenced Coordinate System

If FME does not find an Esri .prj file,it will instead look for georeferenced coordinate system information on the IfcMapConversion and IfcProjectedCRS elements in the IFC dataset. In order for the dataset to be properly georeferenced, the IFC file needs to reference a valid coordinate system with a correctly specified IfcMapConversion.

If FME finds georeferencing data in the IFC dataset, it will set the coordinate system name to the coordinate system it finds in the dataset and will geolocate features using the transformation specified by the IfcMapConversion.

Attributes

Common Attributes

Attribute/Trait Name

Contents

ifc_name

The name of the instance the feature represents.

ifc_global_id

The global ID of the instance the feature represents.

ifc_parent_id

The hierarchical parent global ID of the instance the feature represents.

ifc_element_type

The IFC element type IfcElementType.

ifc_description

The description of the instance the feature represents.

ifc_element_id

The element ID (AKA STEP instance name) of the instance the feature represents.

Common Attributes for Geometric Elements

FME will read the following attributes on features representing geometric elements:

Attribute/Trait Name

Contents

ifc_context_identifier

The context identifier for the instance this feature represents.

ifc_context_type

The context type for the instance this feature represents.

ifc_representation_identifier

The representation identifier for the instance this feature represents.

ifc_representation_type

The representation type for the instance this feature represents.

Attributes for Texture Information

FME will read the following attributes if the geometry contains a texture:

Attribute/Trait Name

Texture Type

Contents

ifc_texture_type

The type of texture on the geometry. Types include IfcImageTexture, IfcBlobTexture, and IfcPixelTexture.

ifc_texture_urlreference

IfcImageTexture

The filename or url of the image.

ifc_texture_rasterformat

IfcBlobTexture

Indicates the format (such as “PNG”) of the embedded raster.

ifc_texture_rastercode

IfcBlobTexture

This attribute will contain the binary blob representing the raster.

ifc_texture_width

IfcPixelTexture

This attribute defines the width of the raster.

ifc_texture_height

IfcPixelTexture

This attribute defines the height of the raster.

ifc_texture_colourcomponents

IfcPixelTexture

This attribute defines the number of components within each pixel.

ifc_texture_pixel

IfcPixelTexture

This attribute defines the binary blob of the embedded raster.

Special Feature Types

Non Geometric Feature Types

The following feature types are always read without geometry, but have useful attributes:

Project

The Project feature type reads the single IfcProject element in the dataset. It has the following unique attributes:

Attribute/Trait Name

Contents

ifc_longname

The long name of the project.

ifc_phase

The phase of the project.

ifc_schema

The schema of the project.

Additionally, some Ifc project units of type IFCSIUNIT are read and stored as attributes on this feature. These are:

Unit

ifc_project_currency

ifc_project_area_unit

ifc_project_length_unit

ifc_project_mass_unit

ifc_project_time_unit

ifc_project_volume_unit

OwnerHistory

The OwnerHistory feature type reads the single IfcOwnerHistory element in the dataset. It has the following unique attributes:

Attribute/Trait Name

Contents

ifc_state

The state of the dataset.

ifc_last_modified_date

The last modified date of the project.

ifc_creation_date

The creation date of the project.

ifc_change_action

The value of the IfcChangeActionEnum for the project.

PresentationLayerAssignment

The PresentationLayerAssignment feature type reads one feature for each PresentationLayerAssignment element in the dataset. It has the following unique attributes:

Attribute/Trait Name

Contents

ifc_assigned_items{}

Each entry in this list attribute holds the ID of an element assigned to the IfcPresentationLayer represented by this feature.

Group

The Group feature type reads one feature for each group in the dataset. It has the following unique attributes:

Attribute/Trait Name

Contents

ifc_group_member{}

A list attribute that contains one entry with the ID of each member in the group.