Showing posts with label Open Cascade. Show all posts
Showing posts with label Open Cascade. Show all posts

Wednesday, October 7, 2015

Separating elements by their material layers

An advantage that IfcOpenShell has over the many mesh-based viewers is that it is backed by a powerful modelling kernel called Open Cascade. This has already proven its significance for example in the ease of creating 2d floor plans from 3d elements in the SVG exporter. Now, a new feature in IfcOpenShell is introduced, once again demonstrating IfcOpenShell as a forerunner in terms of accurate and advanced visualisation of IFC geometry.

As building professionals readily know, building elements such as walls and slabs can be built up using several layers, for example including brick, thermal insulation and an air gap. This information is typically represented in IFC using an IfcMaterialLayerSet, which describes the thickness of such layers relatively to the axis of the wall. Therefore, it is not a direct part of the geometric representation of the element and therefore not visible in most IFC viewers. Alternatively, IFC exporters can choose to decompose the wall element into several IfcBuildingElementParts describing every of such layers as a separate product.

IfcOpenShell now introduces the possibility to separate the body representation according to its layers, with the appropriate style information applied. Furthermore, topological information that describes how wall end points connect to one another is used to fold such layers around corners where connecting walls meet. To our knowledge this is functionality that is currently not offered in any other IFC viewer, let me know if otherwise.

Currently this feature is in extended testing and is available in a development branch. It will be part of the upcoming new build once testing is complete. Note that it is potentially a time intensive operation and hence will have to be enable with the flag --enable-layerset-slicing in the IfcConvert utility.


Visuals rendered using IfcBlender of the Duplex apartment building model by USACE ERDC and buildingSMART Alliance. 1. A view from the outside with one window removed. 2. An exploded view of the lower level walls showcasing how layers are folded based on topological connectivity with other walls. 3. An image for contrast from a common IFC viewer with only a single surface style per product.
.

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 June, 2014), 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!