Skip to main content

IFC-SDK : Open Source IFC 2x3 Library

Moved in Dec 2011 to

This is an Open Source C++ library for reading and writing IFC files. It does not depend on any external libraries and can be compiled on most modern compilers. It was tested on Windows (g++ and VC++ 2003+2005) and on Linux (g++ 3 and 4).
I had no problem compiling it on OSX Snow Leopard, using XCode 3.2.5.

It contains a STEP library and an IFC library, alongside a quite large list of example programs, including tests, to explain the features of the library.

Using CMake it could compile the full library without problems and the example programs seem to work fine. They are all command-line, so no GUI problems, but nothing fancy to see either.

However, there are some caveats...
  • I see very little actual information (project homepage, author and licensing details).
    • however, inside the source code, it is "copyrighted 2009 CSTB" and released under the LGPL 2.1 license, which is Open Source, but with the possibility to link it in a commercial software.
  • Last update was in October 2009, which is a bad sign... as it seems to not be (publicly) maintained. It is numbered 1.0-beta.
  • The library is made for IFC 2x3 which is not the current version of the IFC standard.
  • Most of the included examples focus on the geometric aspects and not the building information
    • ifcRevolvedAreaSolid_app (see above)
    • ifcVector_app
    • ifcShellBasedSurfaceModel_app etc...
So if anybody has more details about it and if a more recent version is available, then please comment.


  1. Regarding IFC-SDK - I emailed the developer in 2009, and found that the source had been generated with one of ESA's tools, lightcpp. It might be possible to get them to do so with lightcpp's replacement, expressik.

    ESA hasn't yet released their tool as open source, though I've been told that they wish to do so.

  2. You probably know the SCL (Step class library) developed by the NIST in the early 90's.
    There is an attempt to refresh it. This initiative sounds very interesting. See :
    I've tested the release 0.1 and could generate AP203 and IFC classes. But couldn't find the required SDAI classes... must investigate some more. What do you think about this refreshed SCL ?

  3. Hard for me to tell, because I mainly look at IFC files through intermediate libraries or applications and never directly at STEP files.

    But I hope that some common ground between the different STEP and IFC initiatives would help everybody improving their offerings.

  4. Hi,
    I'm the main developer behind this SDK. The SDK hasn't been much updated since the version of the IFC standard hasn't changed (yet).
    It is using the latest public IFC Specification IFC2x3 TC1 as of this date.
    It is a (central) part of our most active software in my team, so it might feel not very maintained but we don't have any problems with it !

  5. Recompiled revision 11 (current trunk) in OSX Lion, with latest Apple developer tools and all works fine, apart from some compilation warnings about "comparison is always true due to a limited range of data type" in the init() function. I guess that the repeated warning is just a single issue and nothing to worry about too much.


Post a Comment

Popular posts from this blog

Improve usage of BIM during early design phases

When I was collecting ideas for a book chapter on BIM (that seemed to never have emerged after that), I collected 10 ideas, which I believe still reflect good recommendations to improve the usage of BIM during the early design phases. These ideas are related to BIM software, but you can apply them in any flavor, as long as you can model with Building Elements, Spaces and have control over representation. Introduction This article gives an overview of several recommendations and tips, to better apply BIM applications and BIM methodologies, in the context of the early design phases. Many of these tips are applicable in any BIM application and they are based on experience gathered from teaching, researching and using BIM software. Sometimes they could help software developers to improve the workflow of their particular BIM implementation. Tip 1 : Gradually increase the amount of information In the early design phases, the architect makes assumptions and lays out the main design in

Getting BIM data into Unity (Part 9 - using IfcConvert)

This is part 9 of a series of posts about getting BIM data into Unity. In this post, we’ll discuss the IfcConvert utility from the IfcOpenShell Open Source IFC Library to preprocess an IFC model for integration with Unity. This is (finally?) again a coding post, with some scripts which are shared to build upon. Conversion of IFC into Unity-friendly formats The strategy with this approach is that you preprocess the IFC-file into more manageable formats for Unity integration. Most Web-platforms do some sort of pre-processing anyway, so what you see in your browsers is almost never an IFC-file, but an optimised Mesh-based geometric representation. However, it wouldn’t be BIM-related if we’d limit ourselves to the geometry, so we will parse the model information as well, albeit using another, pre-processed file. IFC to Wavefront OBJ I used a test IFC-model and used the IfcConvert-utility converted it into OBJ en XML formats. The default way to use it is very simple:

Getting BIM data into Unity (Part 8 - Strategies to tackle IFC)

This is part 8 of a series of posts about getting BIM data into Unity. In this post, we’ll discuss IFC as a transfer format towards Unity. As with the previous post, this is not a coding post, although hints and examples are provided. Open BIM and IFC Everybody who ever met me or heard me present on a conference or BIM-lecture will not be surprised to hear that I’m a strong believer in the Industry Foundation Classes (IFC), an open standard, with already two versions published as an ISO standard, being IFC2x2 and IFC4 (but surprisingly not IFC2x3 which is widely used). In the ideal world, this would be the format to use to transfer BIM data into another environment, such as Unity. So what are our options? Looking in the Unity Asset Store Assimp is a library which supports multiple formats, including IFC.   I did a few attempts, but alas without any success. It is possib