import IFC, mulitple layer wall
Re: import IFC, mulitple layer wall
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/
See https://sourceforge.net/p/ifcopenshell/ ... /38f13717/
Re: import IFC, mulitple layer wall
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:
Python in FreeCAD imports a solid for each layer and works for all examples off this thread:
adding the setting to importIFC and recompile:
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 ...
Ahh a screen!
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
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))
Code: Select all
...
settings.set(settings.SEW_SHELLS,True)
settings.set(settings.APPLY_LAYERSETS,True)
settings.set(settings.USE_WORLD_COORDS,True)
...
BTW: importIFC.py has been growing to big if-monster ...
Ahh a screen!
- Attachments
-
- screen.jpg (167.35 KiB) Viewed 5784 times
- theoryshaw
- Posts: 19
- Joined: Sat May 31, 2014 2:38 am
- Contact:
Re: import IFC, mulitple layer wall
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
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
Re: import IFC, mulitple layer wall
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.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.
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.
Re: import IFC, mulitple layer wall
Saso is right. And one with some window inside would be great as well.saso wrote: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.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.
cheers bernd
- theoryshaw
- Posts: 19
- Joined: Sat May 31, 2014 2:38 am
- Contact:
Re: import IFC, mulitple layer wall
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.
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.
Re: import IFC, mulitple layer wall
Hello!
What I see in the IFC schema is:
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.
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
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.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)
What I see in the IFC schema is:
Perfect.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]
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.
Yes, a real database (SQLite) might improve the access and customized.eivindkvedalen wrote
Add infrastructure for a material database
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
Re: import IFC, mulitple layer wall
Eivind is making a plan to upgrade the materials system, check here: viewtopic.php?f=10&t=16714
Re: import IFC, mulitple layer wall
hey ryan, sorry i have somehow totally overlook this, this files indeed seem to be what we were looking for. thanks!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.
- theoryshaw
- Posts: 19
- Joined: Sat May 31, 2014 2:38 am
- Contact: