@topologic that's a problem! When this happens I try and see if it also crashes IfcConvert, as a segfault in IfcOpenShell itself is worth a bug report. Though it is ok here, how old is your blenderbim?
@brunopostle said: @topologic that's a problem! When this happens I try and see if it also crashes IfcConvert, as a segfault in IfcOpenShell itself is worth a bug report. Though it is ok here, how old is your blenderbim?
Yeah it is probably a month old. I will try downloading the latest version later today
The IFC model has some fixes: Space elements have PredefinedType set, Boundaries now face outward from the Space, interior Boundaries have CorrespondingBoundary set.
The gbXML file is derived from the IFC model, it now has roof elements and materials that were missing before.
@brunopostle
From the IFC, now the CorrespondingBoundaries set adjencies.
But there are still faces that are pointing inwards the IfcSpaces.
Some interior roofs are considered as floors. Tagging surfaces as roof/floor/wall it's automatic, so this will be because they're pointing inwards de IfcSpace.
@brunopostle
From the gbxml, surfaces are pointing outwards.
But there are spaces without roof or even floor as a roof.
In addition, interior and ground surfaces are imported as adiabatic...
@agonzalezesteve said:
But there are spaces without roof or even floor as a roof.
This is a stair core, there are Spaces for each storey, but the boundaries between them are .VIRTUAL., .INTERNAL. and the CorrespondingElement is IfcVirtualElement.
@agonzalezesteve thanks, I wrote a method that calculates the normal from the vertex order, but haven't had a chance to compare this with the Topologic Face normal. All these normal directions appear correct when I display the boundaries in blenderbim, so I'm thinking that the IfcOpenShell geometry generator isn't necessarily following our expectations.
This is a separate method that generates an IfcFaceSurface for the structural model (and the normals for this are not critical, I think). The boundaries are each an IfcCurveBoundedPlane, and are generated by different code.
@brunopostle now I'm dealing with EXTERNAL IfcSpaces.
IfcSpacesBoundaries could also be tagged according to the boundary condition using IfcInternalOrExternalEnum.
@agonzalezesteve here is another model with EXTERNAL_FIRE and EXTERNAL_EARTH set, in both IFC and gbXML format. I also used some of your code to drop the OCC dependency from the IFC_gbXML_Convert.py script (so this is now just pure ifcopenshell).
So, after 4 years of work, the help of my co-authors (Mirbek Bekboliev and Paul Woodard), and the generous feedback from an international panel of BEM subject matter experts, the technical report on developing #openBIM-based #interoperability solutions has finally been approved and published by the buildingSMART International community.
The goal is NOT to solve all challenges for Building Information Modeling (BIM) and Building Energy Modeling (BEM) workflows, but to lay the groundwork for finding practical, open, standardized solutions for getting the right information into the right hands at the right time. There is still work to do to create the solutions, but this should help get the industry started.
"A problem well put is half solved" - John Dewey, American philosopher (1859-1952).
Detailed feedback and interest in pursuing further solutions development can be expressed on the buildingSMART Forums < https://lnkd.in/gts3uUAi >
An update on the IFC to gbXML converter. I fixed lots of broken stuff in this tool, it now supports IFC2X3 and IFC4 (though it still assumes SI units, this needs fixing).
It generates valid gbXML from the IFC Spaces and Space Boundaries created in BlenderBIM using the Spatial Tool, so you should be able to export gbXML like so:
Anyone want to help write this into BBim directly? Sure it's not a dynamic hourly modeller, but from our limited tests (20 buildings) we're within 1% of actual utility bills.... the goal of developing this tool was to close the performance gap we see between energy model projections and actual results... right now it's a simple spreadsheet, but could be coded to math nodes in BBim. https://openbuilding.ca/wp-content/uploads/2024/08/TEUI-v3.015.xlsx (link to the spreadsheet from our site). Link to the article about the tool: https://openbuilding.ca/2024/07/24/teui3-and-occams-razor/
Comments
@brunopostle When I try to import the _test.ifc file into Blender (using BlenderBIM import) it crashes all of Blender.
@topologic that's a problem! When this happens I try and see if it also crashes IfcConvert, as a segfault in IfcOpenShell itself is worth a bug report. Though it is ok here, how old is your blenderbim?
Yeah it is probably a month old. I will try downloading the latest version later today
Uploading another pair of sample models for @agonzalezesteve
The IFC model has some fixes: Space elements have PredefinedType set, Boundaries now face outward from the Space, interior Boundaries have CorrespondingBoundary set.
The gbXML file is derived from the IFC model, it now has roof elements and materials that were missing before.
@brunopostle



From the IFC, now the CorrespondingBoundaries set adjencies.
But there are still faces that are pointing inwards the IfcSpaces.
Some interior roofs are considered as floors. Tagging surfaces as roof/floor/wall it's automatic, so this will be because they're pointing inwards de IfcSpace.
@brunopostle



From the gbxml, surfaces are pointing outwards.
But there are spaces without roof or even floor as a roof.
In addition, interior and ground surfaces are imported as adiabatic...
I don't understand this, they all have outward facing normals in blender:
This is a stair core, there are Spaces for each storey, but the boundaries between them are
.VIRTUAL., .INTERNAL.
and the CorrespondingElement is IfcVirtualElement.I'll investigate. This IFC to gbXML script appears to have been written for IFC2x3, so it is likely that things like this are broken.
We could export to gbXML through OpenStudio.
Here is the process to go from the IFC file to gbxml through Sverchok/Topologic/BIM2BEM
You can find the needed template and weather files on github at:
https://github.com/wassimj/TopologicSverchok/tree/main/examples/TopologicEnergy
Here is the gbxml file (zipped)
@agonzalezesteve I may have fixed the issues with normal directions, here's a new IFC (and a gbXML generated from it using the IFC to gbXML converter script).
@brunopostle The normal direction of the plane should be solved, but the vertices are not reordered.
I solved it adding a patch that checks if the order of vertices follow the normal of the plane.
Now there are still a couple of surfaces that are incorrect.


@agonzalezesteve thanks, I wrote a method that calculates the normal from the vertex order, but haven't had a chance to compare this with the Topologic Face normal. All these normal directions appear correct when I display the boundaries in blenderbim, so I'm thinking that the IfcOpenShell geometry generator isn't necessarily following our expectations.
This is a separate method that generates an IfcFaceSurface for the structural model (and the normals for this are not critical, I think). The boundaries are each an IfcCurveBoundedPlane, and are generated by different code.
@brunopostle now I'm dealing with EXTERNAL IfcSpaces.

IfcSpacesBoundaries could also be tagged according to the boundary condition using IfcInternalOrExternalEnum.
I'm already doing
INTERNAL
andEXTERNAL
, but I should also tagEXTERNAL_EARTH
andEXTERNAL_FIRE
@agonzalezesteve Thanks for testing these files, attached another attempt to fix the direction of the face boundaries.
@brunopostle Now all the surface point outwards the space.
Good!
@agonzalezesteve here is another model with
EXTERNAL_FIRE
andEXTERNAL_EARTH
set, in both IFC and gbXML format. I also used some of your code to drop the OCC dependency from the IFC_gbXML_Convert.py script (so this is now just pure ifcopenshell).Please promote
https://fosstodon.org/@osarch/109353814350341078
https://www.linkedin.com/feed/update/urn:li:activity:6998643425650601986
buildingSmart forum: https://forums.buildingsmart.org/t/about-the-bim-bem-idm-development-category/4172
Jeffrey Ouellette writes
An update on the IFC to gbXML converter. I fixed lots of broken stuff in this tool, it now supports IFC2X3 and IFC4 (though it still assumes SI units, this needs fixing).
It generates valid gbXML from the IFC Spaces and Space Boundaries created in BlenderBIM using the Spatial Tool, so you should be able to export gbXML like so:
Anyone want to help write this into BBim directly? Sure it's not a dynamic hourly modeller, but from our limited tests (20 buildings) we're within 1% of actual utility bills.... the goal of developing this tool was to close the performance gap we see between energy model projections and actual results... right now it's a simple spreadsheet, but could be coded to math nodes in BBim. https://openbuilding.ca/wp-content/uploads/2024/08/TEUI-v3.015.xlsx (link to the spreadsheet from our site). Link to the article about the tool: https://openbuilding.ca/2024/07/24/teui3-and-occams-razor/