Great to see you here
The IFC support we currently have is based on a module made by Marijn van
Aerle that "translates" the rather complex strings stored in IFC files into
a nice python structure, easy to query and manipulate. For that, it uses a
schema file which allows to map contents to a structure of objects with
their properties and attributes.
Then, in FreeCAD, we just create the appropriate objects from that python
structures. So actually reading the IFC files was never a problem for us,
the limitation is actually to have in FreeCAD parametric objects able to
support the IFC data and attributes, since it would make little sense to
create "dumb" geometry from it. As I go implementing those objects, I add
support for them in the IFC importer.
Exporting IFC data if of course something we need too. I see it as the same
process, in reverse order. We would need a module that does the contrary,
writes IFC data from python structure. I hadn't looked at it yet, but
suppose it would be similar to the importer.
About the bimserver, of course, I'd pretty much like to integrate it too.
It wouldn't be too hard I believe, but we need realiable IFC in/out before
that (and therefore realiable FreeCAD Arch objects). And there is also the
fact to consider that there is an alternative that already supports freecad
files natively: http://www.openplm.org/
So there is still quite some work to do, but nothing hard or impossible I
would say. In any case, it is certainly on the todo list!
Cheers, and happy new year!