IFC-SDK
Formerly: http://www.osor.eu/projects/ifc-sdk
Moved in Dec 2011 to https://joinup.ec.europa.eu/software/ifc-sdk/home
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...
Formerly: http://www.osor.eu/projects/ifc-sdk
Moved in Dec 2011 to https://joinup.ec.europa.eu/software/ifc-sdk/home
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.
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.
ReplyDeleteESA hasn't yet released their tool as open source, though I've been told that they wish to do so.
You probably know the SCL (Step class library) developed by the NIST in the early 90's.
ReplyDeleteThere is an attempt to refresh it. This initiative sounds very interesting. See :
https://github.com/mpictor/StepClassLibrary#readme
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 ?
Hard for me to tell, because I mainly look at IFC files through intermediate libraries or applications and never directly at STEP files.
ReplyDeleteBut I hope that some common ground between the different STEP and IFC initiatives would help everybody improving their offerings.
Hi,
ReplyDeleteI'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 !
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.
ReplyDelete