ODA IFC SDK Developer's Guide > Basic Concepts of IFC SDK Usage > Library Dependencies of IFC SDK
Library Dependencies of IFC SDK

This topic describes the library requirements for the functionality you want to use with IFC SDK.

For static configurations, link all the listed libraries according to the functionality you want. Also for static configurations, use the Linking Required column in the tables and its legend to find out whether you need to link the corresponding library to your application project.

BCF Format

Support of BIM Collaboration Format (BCF) files requires one library according to your platform.

Library Name Linking Required CMake Variable Product Description

BFC:

  • BCF.dll or BCF.lib for dynamic or static configurations on Microsoft® Windows® platforms.
  • libBCF.so or libBCF.a for dynamic or static configurations on Linux platforms.
  • libBCF.dylib or libBCF.a for dynamic or static configurations on Apple® macOS® platforms.
+ ${BCF_LIB} IFC SDK Functionality for working with BIM Collaboration Format files.

Geometry Visualization

Working with geometry requires specific libraries according to how you want to visualize geometry. You can choose from one or more modelers: ACIS, B-Rep, Facet Modeler, Advanced B-Rep, and Advanced Geometry.

Library Name Linking Required CMake Variable Product Description
ACIS Requirements
IfcSpaModeler.tx -
no public
${IFCSPAMODELER_LIB} IFC SDK 3D Spatial® ACIS® modeler operations for IFC SDK.
SpaACIS:
  • SpaACIS.dll or SpaACIS.lib for dynamic or static configurations on Windows platforms.
  • libSpaACIS.so for dynamic configurations on Linux platforms.
  • libSpaACIS.dylib for dynamic configurations on macOS platforms.
+ ${SPATIAL_DIR} Spatial® ACIS® Commercial third-party library that supports creating and rendering 3D ACIS entities, Boolean operations between two entities, and other related functionality. A separate license from Spatial Corporation is required.
B-Rep Requirements
IfcBrepModeler.tx -
no public
${IFCBREPMODELER_LIB} IFC SDK B-Rep functionality for IFC SDK. Based on ODA Solid Modeler.
OdBrepModeler:
  • OdBrepModeler.dll or OdBrepModeler.lib for dynamic or static configurations on Windows platforms.
  • libOdBrepModeler.so or libOdBrepModeler.a for dynamic or static configurations on Linux platforms.
  • libOdBrepModeler.dylib or libOdBrepModeler.a for dynamic or static configurations on macOS platforms.
+ ${TCOMPONENTS_BREPMODELER_LIB} ODA SDK Native support of 3D solid operations: extrude, sweep, and Boolean operations.
TD_BrepRenderer:
  • TD_BrepRenderer.dll or TD_BrepRenderer.lib for dynamic or static configurations on Windows®= platforms.
  • libTD_BrepRenderer.so or libTD_BrepRenderer.a for dynamic or static configurations on Linux platforms.
  • libTD_BrepRenderer.dylib or libTD_BrepRenderer.a for dynamic or static configurations on macOS platforms.
+ ${TD_BREPRENDERER_LIB} Kernel SDK Rendering functionality for B-Reps.
Facet Modeler Requirements
IfcFacetModeler.tx -
no public
${IFCFACETMODELER_LIB} IFC SDK Facet modeler functionality for IFC SDK. Based on ODA Facet Modeler.
FacetModeler:
  • FacetModeler.dll or FacetModeler.lib for dynamic or static configurations on Windows platforms.
  • libFacetModeler.so or libFacetModeler.a for dynamic or static configurations on Linux platforms.
  • libFacetModeler.dylib or libFacetModeler.a for dynamic or static configurations on macOS platforms.
+ ${FACET_MODELER_LIB} Facet Modeler SDK ODA Facet Modeler that works with B-Rep data.
Advanced B-Rep Requirement
IfcBrepBuilder.tx -
no public
${IFCBREPBUILDER_LIB} IFC SDK B-Rep builder for IFC advanced B-Reps.
Advanced Geometry Requirement
IfcGeom:
  • IfcGeom.dll or IfcGeom.lib for dynamic or static configurations on Windows platforms.
  • libIfcGeom.so or libIfcGeom.a for dynamic or static configurations on Linux platforms.
  • libIfcGeom.dylib or libIfcGeom.a for dynamic or static configurations on macOS platforms.
+/-
for public
${IFCGEOM_LIB} IFC SDK Geometry and geometry-related high-level functionality.

Data Access Through the SDAI or C++ API

The table below lists the minimum set of libraries required for working with IFC data without geometry generation.

Library Name Linking Required CMake Variable Product Description
IFC*.txexp +
for early
${IFC*_LIB} IFC SDK Schema-dependent modules (schema name + .txexp).
IfcCore:
  • IfcCore.dll or IfcCore.lib for dynamic or static configurations on Windows platforms.
  • libIfcCore.so or libIfcCore.a for dynamic or static configurations on Linux platforms.
  • libIfcCore.dylib or libIfcCore.a for dynamic or static configurations on macOS platforms.
+ ${IFCCORE_LIB} IFC SDK Base infrastructure classes for IFC and high-level functionality.
zipIO.tx + ${ZIPIO_LIB} IFC SDK Zipped format support (*.ifczip).
hdf5io.tx -
no public
${HDF5IO_LIB} IFC SDK HDF5 binary format support.
sdai.tx + ${SDAI_LIB} IFC SDK C++ API and Standard Data Access Interface (SDAI).
TD_Gi:
  • TD_Gi.dll or TD_Gi.lib for dynamic or static configurations on Windows platforms.
  • libTD_Gi.so or libTD_Gi.a for dynamic or static configurations on Linux platforms.
  • libTD_Gi.dylib or libTD_Gi.a for dynamic or static configurations on macOs platforms.
+ ${TD_GI_LIB} Kernel SDK Interface for information exchange between a database to be drawn and specific graphics modules inside the graphics system that vectorize graphics (vectorizers).
TD_Ge:
  • TD_Ge.dll or TD_Ge.lib for dynamic or static configurations on Windows platforms.
  • libTD_Ge.so or libTD_Ge.a for dynamic or static configurations on Linux platforms.
  • libTD_Ge.dylib or libTD_Ge.a for dynamic or static configurations on macOS platforms.
+ ${TD_GE_LIB} Kernel SDK Functionality for the implementation of the graphics system, including vectorizers, graphic devices, views, etc.
TD_Root:
  • TD_Root.dll or TD_Root.lib for dynamic or static configurations on Windows platforms.
  • libTD_Root.so or libTD_Root.a for dynamic or static configurations on Linux platforms.
  • libTD_Root.dylib or libTD_Root.a for dynamic or static configurations on macOS platforms.
+ ${TD_ROOT_LIB} Kernel SDK Root ODA Software functionality.
TD_DbRoot:
  • TD_DbRoot.dll or TD_DbRoot.lib for dynamic or static configurations on Windows platforms.
  • libTD_DbRoot.so or libTD_DbRoot.a for dynamic or static configurations on Linux platforms.
  • libTD_DbRoot.dylib or libTD_DbRoot.a for dynamic or static configurations on macOS platforms.
+ ${TD_DBROOT_LIB} Kernel SDK Root ODA Software functionality for database operation support.
TD_SpatialIndex:
  • TD_SpatialIndex.dll or TD_SpatialIndex.lib for dynamic or static configurations on Windows platforms.
  • libTD_SpatialIndex.so or libTD_SpatialIndex.a for dynamic or static configurations on Linux platforms.
  • TD_SpatialIndex.dylib or libTD_SpatialIndex.a for dynamic or static configurations on macOS platforms.
+ ${TD_SPATIALINDEX_LIB} Kernel SDK Spatial indexing support (OdSi*).
TD_Alloc:
  • TD_Alloc.dll or TD_Alloc.lib for dynamic or static configurations on Windows platforms.
  • libTD_Alloc.so or libTD_Alloc.a for dynamic or static configurations on Linux platforms.
  • libTD_Alloc.dylib or libTD_Alloc.a for dynamic or static configurations on macOS platforms.
+ ${TD_ALLOC_LIB} Kernel SDK Custom memory allocation for ODA products.

For dynamic configurations, the symbols in the Is Linking Needed column are described in the following table.

Symbol Description
+ The library requires direct linking to your project.
+ for early The library should be linked to your project only if you are going to use it in early binding mode.
- The library should not be linked to your project if you are not going to use the class public interfaces directly in your application. Such a library uses the late binding mechanism and is linked to your application after loading.
no public There is no public class interface in the library that can be directly used. Therefore it is not necessary to directly link the library to get access to its functionality in your applications.
+/- for public The library can be used in late binding mode and you should not link it to your project. However, if you are going to use class interfaces from the library directly, you need to link it to your project.

Optional Third-Party Libraries

The following table describes optional third-party libraries for IFC SDK.

Library Description Version License
HDF5 This library is used to store an IFC model in HDF5 binary format. 1.12.0 HDF Group®
libzip This library is used for unpacking IFCZIP files. 1.7.3 BSD license

See Also

Create Your First IFC SDK Application

Basic Concepts of IFC SDK Usage

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