import IFC, mulitple layer wall

This forum section is only for IFC-related issues
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: import IFC, mulitple layer wall

Post by bernd »

I failed to compile the layerset_slicing branch. Since the last commit is from November 2015 I did not have a deep look into it. I asked Thomas if he could rebase the branch on up to date master. Master compiles for me on Win7 and Debian Jessie.

See https://sourceforge.net/p/ifcopenshell/ ... /38f13717/
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: import IFC, mulitple layer wall

Post by bernd »

Thomas fixed the problems gcc had with the layerset_slicing branch. I gave it a try. It works great even on windows with roller shutter casing in the wall.

IfcConvert works for all examples off this thread:

Code: Select all

IfcConvert --enable-layerset-slicing   Allplan--mulitlayer_Wall--no_Window.ifc Allplan--mulitlayer_Wall--no_Window.stp 
Python in FreeCAD imports a solid for each layer and works for all examples off this thread:

Code: Select all

import ifcopenshell
from ifcopenshell import geom
settings = ifcopenshell.geom.settings()
settings.set(settings.USE_BREP_DATA,True)
settings.set(settings.SEW_SHELLS,True)
settings.set(settings.USE_WORLD_COORDS,True)
settings.set(settings.INCLUDE_CURVES,False)     # for stuct
settings.set(settings.APPLY_LAYERSETS,True)     # for multiple layer walls


def get_shape(entity):
    import Part
    cr = ifcopenshell.geom.create_shape(settings, entity)
    brep = cr.geometry.brep_data
    shape = Part.Shape()
    shape.importBrepFromString(brep)
    Part.show(shape)

file_path = '/home/hugo/Documents/projekte--BIM--opendev/freecad--ifc/multilayered_walls/'
f = ifcopenshell.open(file_path + 'Allplan--mulitlayer_Wall--no_Window.ifc')
f.by_type('IfcPerson')
get_shape(f.by_id(194))
adding the setting to importIFC and recompile:

Code: Select all

    ...
    settings.set(settings.SEW_SHELLS,True)
    settings.set(settings.APPLY_LAYERSETS,True)
    settings.set(settings.USE_WORLD_COORDS,True)
    ...
The multiple layer walls are imported as compounds. These compounds have BOP check errors, because off the intersecting faces. It is like a compound of two boxes. If the compound is downgraded two solids they are valid. I played a bit with importIFC.py but could not find a fast fix.

BTW: importIFC.py has been growing to big if-monster ... :shock:

Ahh a screen!
Attachments
screen.jpg
screen.jpg (167.35 KiB) Viewed 5783 times
User avatar
theoryshaw
Posts: 19
Joined: Sat May 31, 2014 2:38 am
Contact:

Re: import IFC, mulitple layer wall

Post by theoryshaw »

Hey Guys, here's two files from Revit 2016 (Coordination View 2.0). Let me know if you need anything else via Revit.
Cheers, Ryan
Attachments
ArchiCAD--mulitlayer_Wall--no_Window - import&export from Revit 2016 - Coordination View 20.ifc
(9.05 KiB) Downloaded 169 times
Allplan--mulitlayer_Wall--no_Window_import&export from Revit 2016 - Coordination View 20.ifc
(8.98 KiB) Downloaded 145 times
User avatar
saso
Veteran
Posts: 1920
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: import IFC, mulitple layer wall

Post by saso »

theoryshaw wrote:Hey Guys, here's two files from Revit 2016 (Coordination View 2.0). Let me know if you need anything else via Revit.
Hi Ryan, I think we would need something a bit different, not an import export of the ifc samples from bernd, but to create a standard multi layer wall in revit (24 cm brick + 15 cm insulation I think is what is in the examples from bernd) and then export that revit wall to ifc.

I think we could also look at one other, special case for revit... The issue in this topic is actually not such an uncommon problem in the industry, a common practice this days is actually to recreate the model (structural engineer created his/her own model, I think revit has some "monitoring" feature to assist with this workflow?), this is however not very in the spirit of BIM, so we should try to be better :) Another workaround that I know revit should have for this is its parts feature. This essentially gives you both a single object for an multi layer wall (by default) and the same wall build from several objects, one for each layer (user creates this on demand from existing standard walls/objects).

So the second special case I mentioned above could be, to after creating the first ifc sample file, then also select this revit wall and make parts from it in revit and then export those as ifc.
Last edited by saso on Tue Apr 26, 2016 1:09 pm, edited 2 times in total.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: import IFC, mulitple layer wall

Post by bernd »

saso wrote:
theoryshaw wrote:Hey Guys, here's two files from Revit 2016 (Coordination View 2.0). Let me know if you need anything else via Revit.
Hi Ryan, I think we would need something a bit different, not an import export of the ifc samples from bernd, but to create a standard multi layer wall in revit (24 cm brick + 15 cm insulation I think is what is in the examples from bernd) and then export that revit wall to ifc.
Saso is right. And one with some window inside would be great as well.

cheers bernd
User avatar
theoryshaw
Posts: 19
Joined: Sat May 31, 2014 2:38 am
Contact:

Re: import IFC, mulitple layer wall

Post by theoryshaw »

Hey Guys,

How do these work? https://www.dropbox.com/sh/bmy2eue2lvrx ... yEPPa?dl=0

As you'll see, there's (2) files where I added to the base 'Coordination View 2.0' by setting the 'export parts as building elements' from Revit.

Let me know if you need anything else.

Peace.
damian
Posts: 583
Joined: Sun May 31, 2015 6:16 pm

Re: import IFC, mulitple layer wall

Post by damian »

Hello!
yorik wrote
We could invent a new type of arch material, a kind of "compound" material, that could host several others with additional properties to define where each sub-material is used. I could see many immediate uses for this, such as multi-layered walls, multi-material windows (or any other kind of "compound" object)
In OpenStudio (and energyplus, DOE, ...) the material system is a database, with two main tables: "Materials" and "Constructions". Between this two tables there is a "n to n" relationship, thereby a construction has several materials (with their thickness) and a material can belong to several constructions. So easy.

What I see in the IFC schema is:
IfcMaterial: Instance associated to an element or element type using the IfcRelAssociatesMaterial

* direct assignment
* assignment via a material layer set
* assignment via a material profile set
* assignment via a material constituent set

IfcMaterialLayer:
Material [0:1] (0: air gap)
LayerThickness [1:1]

IfcMaterialLayerSet:
MaterialLayers [1:?]
TotalThickness [1:1]

IfcWallStandardCase: The material of the wall is defined by the IfcMaterialLayerSetUsage and is attached by the IfcRelAssociatesMaterial objectified relationship.

IfcMaterialLayerSetUsage: Determines the usage of IfcMaterialLayerSet in terms of its location and orientation relative to the associated element geometry
ForLayerSet [1:1]
Perfect.

To make a new BIM object "Construction", oriented to FreeCAD-OpenStudio, doesn't seems very difficult because it doesn't need "usage rules", now they are integrated in OpenStudio. Basically it is two Lists, materials=[] and thickness=[]. Other scenarios could be more problematic due to IfcMaterialLayerSetUsage. Soon I'll begin my experiments with this new BIM Object "Construction" ( except one guy finds a big problem with this approach).

For me, the main question is about the FreeCAD materials system. Well, the materials files and Materials.ods are there and are accessible, but not so direct.
eivindkvedalen wrote
Add infrastructure for a material database
Yes, a real database (SQLite) might improve the access and customized.

My intention is integrate easily this 'legacy' database in Django, and in this way develop quickly custom queries, forms, views, ... and (why not?) to increase the model. And every thing with only python. And this is applicable to other issues besides materials. does anybody find problems with this approach?

To incorporate Django to FreeCAD, as general solution, could be problematic. I see two problems:
1) other dependency
2) it's necessary to star up the Django server (SQLite Is Serverless)

Good bye
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: import IFC, mulitple layer wall

Post by yorik »

Eivind is making a plan to upgrade the materials system, check here: viewtopic.php?f=10&t=16714
User avatar
saso
Veteran
Posts: 1920
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: import IFC, mulitple layer wall

Post by saso »

theoryshaw wrote:Hey Guys,

How do these work? https://www.dropbox.com/sh/bmy2eue2lvrx ... yEPPa?dl=0

As you'll see, there's (2) files where I added to the base 'Coordination View 2.0' by setting the 'export parts as building elements' from Revit.

Let me know if you need anything else.

Peace.
hey ryan, sorry i have somehow totally overlook this, this files indeed seem to be what we were looking for. thanks!
Post Reply