Monday, February 11, 2013

IfcOpenShell 0.3.0 released!

After another (rather lengthy) period of testing we proudly announce the immediate availability of IfcOpenShell 0.3.0, the latest stable release of this open source toolkit for working with IFC files.

Meanwhile several interesting new features have already been developed in anticipation of the following release: Support for writing IFC files is especially something to look forward to given the powerful geometry back-end based on Open Cascade. Note that these features will not be available in the 0.3.0 release though.

Thanks go out to everybody for reporting bugs and contributing to this release. Naturally this includes everybody using IfcOpenShell and those being involved in the discussion and adoption of IFC in the AEC industry as well.

Changes since 0.3.0-rc3

Parsing and geometry
  • Potentially faster processing of files that can not be parsed sequentially, i.e. that require many random access operations throughout the file
  • Fixed a bug that caused IfcCircleHollowProfileDefs to be processed incorrectly
  • More robust processing of IfcCompositeCurves if no plane angle unit is provided in the file
  • More robust processing of IfcTrimmedCurves with tolerances on trimming by IfcCartesianPoint and, if possible, falling back to trimming by IfcParameterValue
IfcBlender
  • Updated for Blender 2.65
  • Allow opening of non-latin filenames on Windows (other platforms already supported this)
IfcObj
  • Use positive vertex indices for Wavefront OBJ files, which is more widely supported in importing applications
IfcMax
  • Updated for Autodesk 3ds Max 2013
  • Allow opening of unicode filenames (only in 3ds Max 2013)
BIMserver IfcEngine
  • No longer throws an exception if a building element's geometry is requested for an element that has not been processed by the IfcOpenShell binary


The release can be downloaded from the http://ifcopenshell.org website:
Enjoy! And remember that IfcOpenShell still needs your help!

Sunday, November 4, 2012

Say Hi to IfcOpenHouse!

Up until now, most people have been using IfcOpenShell to read and import IFC files, but today we bring you a three-dimensional IFC building model that is entirely generated from lines of code, using IfcOpenShell. With the use of some of the helper classes that IfcOpenShell provides, some might even say that creating IFC files this way is easier than operating a full-fledged BIM authoring tool, but that would we somewhat of an overstatement.

IfcOpenHouse rests on a Nurbs-surface hilltop constructed in Open Cascade. The tight relation between IfcOpenShell and Open Cascade will in the future provide everything you need to write complex parametric shapes right to an IFC file. However, for now the surface had to be tessellated, as Ifc2x3 does not support Nurbs and IfcOpenShell is not yet smart enough to pick the correct way of representing arbitrary shapes from Open Cascade, therefore it resorts to a triangular surface model.

For the other building elements IfcExtrudedAreaSolids are used, IfcBooleanClippingResults with IfcHalfSpaceSolids are used for the walls under the slanted roof and IfcOpeningElements are used for the boolean subtractions for windows and door. The hierarchical structure of an IfcProject, IfcSite, IfcBuilding and IfcBuildingStorey is created as well. This way a model is obtained that can be directly imported into your favourite three-dimensional modelling package.

IfcOpenHouse rendered in Blender using IfcBlender, imported into Revit and opened in Solibri Model Viewer and Tekla BIMsight. 

If you know of an application that is unable to represent the generated model correctly, or have any other questions or remarks, drop us a line in the comments! You can download the generated IFC here (updated November 17, 2012), and take a look at the source code for generating the file over here.

Update November 10, 2012 IfcOpenHouse has been updated to import correctly into Autodesk AutoCAD Architecture 2013.

Sunday, April 8, 2012

IfcOpenShell.org 0.3.0 rc3 released!

With pleasure the third release candidate of IfcOpenShell.org 0.3.0 has been released. If no new major show-stoppers are encountered this release will become the official 0.3.0 version after a period of testing.

Since the previous release candidate several issues have been addressed
  • The clipping of building elements behaves much better now, especially if a polygonal boundary of the clipping volume coincides with faces of the first operand solid.
  • Bugs have been fixed in the processing of mapped representations, trimmed curves and connected faces sets.
  • IfcBlender has been updated for compatibility with Blender 2.62. Furthermore, hidden elements in the 3d View are now hidden in the Render as well.
  • IfcOpenShell now warns if entities with the same GlobalId or id are encountered.
  • A major performance issue has been addressed by only sewing faces of IfcConnectedFaceSets when they are needed for Boolean operations.
  • We now have automated visual test cases!
Very interesting for us to witness has been the development of the IFC importer for FreeCAD that uses IfcOpenShell as a fall-back for their customly developed importer. Because both FreeCAD and IfcOpenShell are based on Open Cascade the level of integration between FreeCAD and IfcOpenShell could be much deeper than it is currently the case with the importers for 3ds Max and Blender!

Furthermore we would like to congratulate the talented BIMserver team with their upcoming 1.1 release. It is a pleasure working with you to provide an open source IFC geometry engine for the BIMserver. I think this is the beginning of a beautiful friendship.

The release can be downloaded from the http://ifcopenshell.org website:
Enjoy! And remember that IfcOpenShell still needs your help!

Thursday, March 1, 2012

Visual test cases added to IfcOpenShell

To spice things up for the upcoming 0.3 release of IfcOpenShell, I have just committed a test suite to the repository. The tests use Blender to automatically render images of whatever IFC files I could find on the Internet. A selection of these cases you see parading in the image below. Truth be told, these are the ones that behave nicely with IfcOpenShell. Luckily, by now this holds for a rather large majority, but there are still some quirks that need to be addressed before the 0.3 release.


We are very grateful for the models hosted on-line by the following parties:
Karlsruher Institut für Technologie / Data Design System / Nemetschek Vectorworks / Open IFC Model Repository / BIMserver.org / buildingSMART alliance
Special thanks go out to Ryan Schultz (studiowikitecture.com, openingdesign.com) and Jon Mirtschin (geometrygym.com) for kindly including their models in our test case suite.

If you have some IFC models laying around that you would like to donate for inclusion in the test suite, you can send them to models@ifcopenshell.org. There is some benefit in doing this for you too: we will do our very best the files submitted to us are always rendered correctly.

Stay posted for the 0.3 release of IfcOpenShell. Among other things it will feature quite a nice increase in performance!

Saturday, December 3, 2011

IfcOpenShell.org 0.3.0 rc1 released!

With pleasure the first release candidate of IfcOpenShell.org 0.3.0 has been released. If no new major show-stoppers are encountered this release will become the official 0.3.0 version after a period of testing. The focus for this release has been to improve the stability of IfcOpenShell and improve the handling of IFC files coming from a wide variety of sources.

IfcOpenShell has become much more stable
  • A lot of reasons for IfcOpenShell to crash on certain IFC files have been addressed, for example when encountering invalid enumaration values or when unit of measure information cannot be found
IfcOpenShell now understands a lot more entities
  • Support for IfcMappedItems and IfcCartesianTransformationOperator3D(nonUniform) has been brought up to par
  • Support for IfcOpeningElements of IfcBuildingElementParts which are decompositions of IfcElements
  • Support for IFC files coming from AutoCAD Architecture has been improved by supporting IfcShapeRepresentations linked to IfcProducts via an IfcProductRepresentation instead of an IfcProductDefinitionShape
Some additional features in IfcOpenShell
  • The Blender addon has recieved much attention and is now able to convert the hierarchical structure of IFC files into parenting relations in Blender
  • Support for normal smoothing of curved surfaces in IfcObj
  • Parsing and geometry extraction has sped up tremendously in some cases

Very exciting news is the work that has been done on a plug-in for the open source BIMserver.org to provide them an open source IFC geometry engine, it may take some time for this to be readily available, but the first results are promissing.

Note that this is first release for which Linux and Mac OSX builds are supplied. This is all rather new for us, we are still mapping on what platforms they actually do work, so if you encounter any problems with them (or just want to say they do work) please mail to support@ifcopenshell.org, drop by at our forums or let us know in the comments.

The release can be downloaded from the http://ifcopenshell.org website:

Enjoy! And remember that IfcOpenShell still needs your help!

Tuesday, October 18, 2011

Realistic architectural visualizations using IfcOpenShell and free open source software

From time to time we get reports of people using IfcOpenShell to create visualizations of their architectural IFC models. I figured it was about time to take IfcOpenShell for test drive myself and see how it performs for creating architectural visualizations. I used the build of IfcBlender that is available on GraphicAll and imported this IFC file. A lot of sample IFC files are not that detailed to create interesting interior visualizations, but the FZK haus from EliteCAD is an exception and has quite a detailed interior. Blender has been used to quickly slap some materials onto the model, other than that no real adjustments have been made. The model has been rendered in LuxRender.

FZK haus EliteCAD


What has been discovered after taking IfcOpenShell for a test drive:
  • IfcOpenShell is making some great progress and is able to import the vast majority of the geometry successfully 1
  • UV coordinates are generally not present in IFC files, making them perfect for the use of procedural materials
  • The fact that only blank materials are assigned in IfcBlender is not such a problem since one would probably have to redefine them anyway for the rendering engine
  • The fact that there is no normal smoothing for curved surfaces is quite appearant and has priority to be fixed
  • Often objects contain multiple parts, these parts should be preserved to make assigning different materials to different subsets of the meshes easier 2
  • Mapped representations should result in instanced geometry to reduce memory usage and limit manual work involved in finetuning the meshes 2

I would love to hear your comments and hear how IfcOpenShell fits into your workflow.

1 If you want to get an idea of the progress IfcOpenShell is making, compare this wireframe view of the FZK haus to an import done only a month ago by Rafael Moya.
2 For example consider the following representation (with apologies for the IFC lingo):
#100 = IFCSHAPEREPRESENTATION(#13, 'Body', 'MappedRepresentation', (#101, #102, #103, #104, #105));
#101 = IFCMAPPEDITEM(#106, #107);
#106 = IFCREPRESENTATIONMAP(#108, #109);
At this moment this results in one mesh with id #100. An alternative would be to mesh the five representations that are referenced by #90-#94 [indeed, one of them is #109] seperately and share them amongst the objects that reference them.

Tuesday, August 23, 2011

IfcOpenShell needs your help!

Building Information Modeling is about collaboration, Open Source Software is about collaboration. This makes IfcOpenShell, being open source BIM software, about collaboration2 (I'm no math genius though, there might be an error somewhere in this equation). Therefore IfcOpenShell needs your help, this blog post is about what can you do to help improve IfcOpenShell, the open source IFC implementation.

Write code
The bug tracker and feature request tracker are running over with interesting things to develop, but feel free to come up with and implement your own ideas. There's stuff for everyone, whether you are a python hacker, a C++ hacker or a Java hacker. Patches can be submitted to the patches tracker and with one or two of them you might earn yourself prestegious write access to the repository.

Create IFC files
Preferably these are isolated test cases of things that either work or do not work in IfcOpenShell. If they do not work, please be so kind to upload them to the bug tracker and state what you'd expect to see and what you witnessed instead.

Add feature requests and submit bugs
Feature requests are to be posted in the feature request tracker, handle with care though, as the most interesting ones might take some time to be implemented due to understaffing. Bug reports can be filed over here.

Write documentation
Like every other open source project our wiki is rather empty. Let me know if you want to do something about it. 

Build binaries
IfcOpenShell can be used on a lot of different platforms and operating systems, but currently only windows binaries are provided on the website. With your help we can provide binaries on our website for your favorite operating system too.

Discuss
Come join us at the newly opened developers forum, where features, bugs and everything related to IFC and the building and construction industry in general can be discussed.

Provide a financial incentive
This last one is rather tricky, but of course, might you feel like it, there is the possibility to make a donation in order to urge us to develop faster, better and nicer features. But honestly, a small donation of your time to do one of the above would be appreciated even more.


Thomas
IfcOpenShell admin
http://ifcopenshell.org