Close

Relief for ODA Team in Ukraine

Learn more
ODA IFC SDK
IFC Object Model

IFC Object Model

IFC SDK provides a set of classes that provide high-level functionality for your IFC applications. Such classes are essential in any ODA-based IFC application. Below you can see the illustration that demonstrates hierarchy of the most common objects that are used in any IFC ODA-based applications.

Most of the elements of IfcCore module that are shown on the illustration interact with other elements from other modules, primarily with IfcGeom and sdai modules. Overview of main IfcCore elements:

  • Host Application Services — Object that performs platform-specific operations within IFC SDK. With this element you can create a database that represents a file or read such file, initialize B-Rep builder, etc. Host application services are represented by the OdIfcHostAppServices class.
  • IFC File — Database that is applicable for an IFC file. With this element you can manage active view, unit converter, and entity resolver. This element also access a model that stores entities, model context with settings for composing entities and associated geometry modeler. The IFC file is represented by the OdIfcFile class. An IFC file acts as a wrapper for a low-level sdai model and provides IFC-specific behavior for this model.
  • Model — Contains a set of application instances (or entity records in other words) that compose the data section of a file. See IFC File Formats for more information. Model is represented by the OdDAI::Model class.
  • IFC Application Instance — IFC application instance consists of attributes and provides access to entity data records of a file. See IFC File Formats for more information. The OdIfcEntity class inherits OdDAI::ApplicationInstance functionality and implements some additional IFC-specific behavior. Entities are objects of classes derived from OdIfcEntity and belong to specific schemas. For more information about IFC schemas, see IFC Schemas. Entity-generated classes provide early-binding API for working with IFC data.
  • Compound Object — Object that is connected to an IFC instance and provides high-level IFC-specific behavior using the late binding data access mechanism. To get more information about data access mechanisms in IFC SDK, see Data Access Mechanisms. Thus, using late-binding mechanism, compound objects provide behavior for application instances of all supported schemas. For example, majority of compound objects can be visualized using ODA-based visualization functionality. Some objects are visualized directly such as various geometry objects and IFC styles used by these objects, and some objects can be used as helpers to calculate geometry, for example with profile definitions ODA can calculate profile-based geometry for extrusions, sweeps, etc. IFC application instances (or entities) are resolved into compound objects using the entity resolver. However, compound objects are created not for all application instances, many application instances can be resolved as other objects, for example Ge vectors, points, etc. Compound objects are inherited from the OdIfcCompound class and belong to the IfcGeom module.

Additional elements on the picture:

  • Associated Geometry Module — Geometry module that is used to produce geometry.
  • See Work with Views topic of Visualize SDK documentation.
  • Model Context — Contains properties specifying deviation parameters used during geometry generation, default entity color and geometry types used for the compose.
  • Unit Converter — Element that converts the provided units into SI (International System of Units) units.
  • Entity Resolver — Resolves the underlying application instance data into the corresponding compound object (in most cases) that can later be used and vectorized. The resolution process uses the late-binding data access mechanism to determine which data of the application instance to associate with a compound object. Also, the result of instance resolution may not be a compound object. For example, it can be point, vector, matrix, etc. See OdIfc::IfcOpResult enumeration for more information about instance resolution types.

See Also

IFC File Formats

IFC Schemas

Data Access Mechanisms

Work with IFC Databases

Basic Usage Concepts

Copyright © 2002 – 2022. Open Design Alliance. All rights reserved.