Skip to main content

ifcOpenShell : Open Source IFC Library/Framework & Geometry Conversion

ifcOpenShell (http://ifcopenshell.org)

This is an Open Source projects, written in C++ and which uses the Open Source OpenCASCADE or OCC libraries for all geometric work (info on http://www.opencascade.org). It is currently available as Source code and some basic programs are written:

  • a 3ds Max IFC Importer (as a max plugin), compiled into a DLL (but renamed for max);
  • a Blender IFC Import script (in Python);
  • a standalone convertor to translate IFC geometry into a Wavefront OBJ file.
They use a common parser library and the OCC libraries.

I was mostly interested to the approach of both the setup of IFC classes and the integration with the geometry kernel. Currently, the focus seems to be on extracting the geometric objects from IFC files, to use in other software, e.g. for 3D Visualization.

For me, the more interesting aspect would be the other way around: having complex, freeform geometry and convert this into valid IFC models for analysis purposes.

Compilation Problems

It is currently working fine in Windows and should compile on Linux, but I had problems with OSX compilation. From my (limited) understanding, this is due to the use of an outdated GCC version in OSX, when compared to Linux distributions. However, switching to a compiler not provided by Apple is not trivial. Moreover, during compilation, my whole system is getting really slow and memory is eaten quickly. So I have not been able to use it in OSX (yet).


Comments

  1. Hi Stefan,

    I've investigated the compilation issues on OSX. As you guessed correctly, they were related to the older version of gcc shipped with XCode 3. The relevant changes are in the repository.

    Btw, there are tickets in the feature request tracker that deal with the creation of IFC files: http://sourceforge.net/tracker/?func=detail&aid=3395056&group_id=543113&atid=2204969

    Kind regards,
    Thomas
    IfcOpenShell admin

    ReplyDelete

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: ...

PythonOCC : Open Source interactive CAD shell (and how to run it on OSX)

What is PythonOCC? PythonOCC is an Open Source (LGPL) Python-wrapper for OpenCASCADE. So what is OpenCASCADE (OCC)? This is an advanced Open Source (custom license) modeling kernel, comparable to commercial engines, such as ACIS or Parasolid, which are used in quite some commercial CAD programs. When you want to develop CAD software, you could use OCC and write programs in C++. And why using Python? With this wrapper, you can create CAD and geometry scripts in Python, which is an interpreted Object-oriented scripting language. You can write almost "on-the-fly" and seriously reduce the implementation effort, by skipping the compiling-phase. You can even interact with a running program in the Python interpreter. Want to read more about this? The OpenCASCADE official website  (currently Linux and Windows are officially supported) The PythonOCC website/blog  (beware that the core of the actions happen in the development repositories). So far so good. Now the nasty, techn...