[BEM, Topologic] BIM Energy Modeling

1235»

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?

  • @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

  • 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.

  • edited February 2022

    @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 still faces that are pointing inwards the IfcSpaces.

    I don't understand this, they all have outward facing normals in blender:

  • edited February 2022

    @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 said:
    In addition, interior and ground surfaces are imported as adiabatic...

    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

    brunopostleagonzalezesteveJesusbillbitacovir
  • Here is the gbxml file (zipped)

    Nigelbrunopostle
  • @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).

    Jesusbill
  • edited March 2022

    @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.

    bitacovir
  • @agonzalezesteve said:
    @brunopostle The normal direction of the plane should be solved, but the vertices are not reordered.

    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 said:
    IfcSpacesBoundaries could also be tagged according to the boundary condition using IfcInternalOrExternalEnum.

    I'm already doing INTERNAL and EXTERNAL, but I should also tag EXTERNAL_EARTH and EXTERNAL_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.

    brunopostle
  • @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).

  • edited November 2022

    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

    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.

    You can find it on the Standards Library page of buildingSMART.org https://lnkd.in/gycXFgjm or directly at this link:
    < https://lnkd.in/gTdBvJ-X >

    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:

    import blenderbim.tool
    from ifcgbxml import create_gbxml
    root = create_gbxml(blenderbim.tool.Ifc.get())
    root.writexml(open("output.xml", "w"), indent="  ", addindent="  ", newl="\n")
    
    MaxatomkarincabitacovirCyrilDiegoAlvarez
  • 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/

  • Hi all,
    I am working on a project to convert IFC files into energy simulation models of varying complexity in Modelica. You can find the source code here, the documentation here, and a blog post here.
    So far, I have tested it using publicly available IFC files found online. I’m currently looking for more realistic BIM models to further validate the approach. If anyone can point me in the right direction or is willing to share a model, I’d greatly appreciate it.
    Thanks in advance!

    brunopostleJohn
  • Almost finished: https://arossti.github.io/OBJECTIVE/ - static/fast JavaScript BEM for early stage modelling and post-occupancy validation. Next in the pipeline is ifcSpace mapping either via API to BBim or csv export @steverugi ? Can we get BBim to save out in csv from the websocket the areas we are interested in, in a systematic way? Currently the user import/export looks like this: names are a little confusing, as sometimes there are a few user input values per row... where the name just returns the first descriptive title from column C of the DOM: (we mapped the excel cells to the app's fields for bidirectionality ie D27=d_27 in the DOM.

    ExcelRow,RowID,Description,FieldID,Value,Units
    S.3,S.3,Carbon Benchmarking Standard,h_15,1427.2,
    E.1.3,E.1.3,Lifetime Avoided (B6) Emissions,i_41,345.82,
    S.1,S.1,Reference Standard,h_13,50,
    S.1,S.1,Reference Standard,d_13,OBC SB10 5.5-6 Z6,
    B.1,B.1,Major Occupancy,d_12,A-Assembly,
    B.1,B.1,Major Occupancy,h_12,2022,
    B.1,B.1,Major Occupancy,l_12,$0.1300,
    S.1,S.1,Reference Standard,l_13,$0.5070,
    S.2,S.2,Actual (Bills) or Targeted (Design) Use,d_14,Utility Bills,
    S.2,S.2,Actual (Bills) or Targeted (Design) Use,h_14,Three Feathers Terrace,
    S.2,S.2,Actual (Bills) or Targeted (Design) Use,l_14,$1.6200,
    S.3,S.3,Carbon Benchmarking Standard,d_15,Self Reported,
    S.3,S.3,Carbon Benchmarking Standard,l_15,$180.00,
    S.4,S.4,Embodied Carbon Target (kgCO₂e/m²),i_16,"Thomson Architecture, Inc.",
    S.4,S.4,Embodied Carbon Target (kgCO₂e/m²),l_16,$1.5000,
    L,L,i_17,i_17,8154,
    L.1.1,L.1.1,Province,d_19,ON,
    L.1.1,L.1.1,Province,h_19,Alexandria,
    L.1.1,L.1.1,Province,m_19,120,
    L.2.1,L.2.1,Heating Degree Days (HDD),h_20,Present,
    L.2.3,L.2.3,Cooling Degree Days (CDD),h_21,Capacitance,
    L.2.3,L.2.3,Cooling Degree Days (CDD),i_21,50,
    L.2.4,L.2.4,Ground Facing GF HDD,l_22,80,
    L.3.2,L.3.2,Hottest Days (Location Specific),l_24,24,
    T.3.1,T.3.1,Total Electricity Use,d_27,555555.55,
    T.3.1,T.3.1,Total Electricity Use,l_27,51,
    T.3.2,T.3.2,Total Fossil Gas Use,d_28,0.00,
    T.3.2,T.3.2,Total Fossil Gas Use,l_28,1921.00,
    T.3.3,T.3.3,Total Propane Use,d_29,0.00,
    T.3.3,T.3.3,Total Propane Use,l_29,2970.00,
    T.3.4,T.3.4,Total Oil Use,d_30,0.00,
    T.3.4,T.3.4,Total Oil Use,l_30,2753.00,
    T.3.5,T.3.5,Total Wood Use,d_31,0.00,
    T.3.5,T.3.5,Total Wood Use,l_31,150.00,
    T.3.8,T.3.8,Primary Energy,h_35,1.0,
    E.3.1,E.3.1,Typology-Based Carbon Intensity (A1-3),d_39,Pt.3 Mass Timber,
    R.1,R.1,Onsite Energy Subtotals,m_43,0.00,
    R.2,R.2,Photovoltaics,d_44,0.00,
    R.2,R.2,Photovoltaics,i_44,0.00,
    R.3,R.3,Wind,d_45,0.00,
    R.3,R.3,Wind,k_45,0.00,
    R.4,R.4,Remove EV Charging from TEUI,d_46,0.00,
    R.4,R.4,Remove EV Charging from TEUI,i_46,0.00,
    W.1.0,W.1.0,Total Hot+Cold Water Use (Method),d_49,User Defined,
    W.1.0,W.1.0,Total Hot+Cold Water Use (Method),e_49,40.00,
    W.1.2,W.1.2,DHW Use (40% of W.1.0),d_50,10000.00,
    W.3.1,W.3.1,DHW or SHW Energy Source,d_51,Heatpump,
    W.4,W.4,DHW or SHW Efficiency Factor (EF),d_52,300,
    W.5.1,W.5.1,Drain Water Heat Recovery Efficiency,d_53,0,
    A.2,A.2,Radon (annual avg.),d_56,50,
    A.3,A.3,CO2 (annual avg.),d_57,550,
    A.4,A.4,TVOC (annual avg.),d_58,100,
    A.5,A.5,Rel. Indoor Humidity (annual avg.),d_59,45,
    A.6,A.6,Atmospheric Offsets,d_60,0.00,
    G.1.1,G.1.1,Occupants per Building (declared),d_63,126,
    G.1.1,G.1.1,Occupants per Building (declared),g_63,12,
    G.1.2,G.1.2,Occupant Activity,d_64,Normal,
    P.2,P.2,Lighting Loads,d_66,1.5,
    P.3.1,P.3.1,Equipment Loads,g_67,Efficient,
    P.3.2,P.3.2,Elevator Loads (W/m² → Eqpt Gains),d_68,No Elevators,
    G.7,G.7,Doors,d_73,7.50,
    G.7,G.7,Doors,e_73,Average,
    G.7,G.7,Doors,f_73,50,
    G.7,G.7,Doors,g_73,0,
    G.7,G.7,Doors,h_73,100,
    G.8.1,G.8.1,Window Area North,d_74,81.14,
    G.8.1,G.8.1,Window Area North,e_74,North,
    G.8.1,G.8.1,Window Area North,f_74,50,
    G.8.1,G.8.1,Window Area North,g_74,0,
    G.8.1,G.8.1,Window Area North,h_74,100,
    G.8.2,G.8.2,Window Area East,d_75,3.83,
    G.8.2,G.8.2,Window Area East,e_75,East,
    G.8.2,G.8.2,Window Area East,f_75,50,
    G.8.2,G.8.2,Window Area East,g_75,0,
    G.8.2,G.8.2,Window Area East,h_75,100,
    G.8.3,G.8.3,Window Area South,d_76,159.00,
    G.8.3,G.8.3,Window Area South,e_76,South,
    G.8.3,G.8.3,Window Area South,f_76,50,
    G.8.3,G.8.3,Window Area South,g_76,0,
    G.8.3,G.8.3,Window Area South,h_76,100,
    G.8.4,G.8.4,Window Area West,d_77,100.66,
    G.8.4,G.8.4,Window Area West,e_77,West,
    G.8.4,G.8.4,Window Area West,f_77,50,
    G.8.4,G.8.4,Window Area West,g_77,0,
    G.8.4,G.8.4,Window Area West,h_77,90,
    G.8.5,G.8.5,Skylights,d_78,0.00,
    G.8.5,G.8.5,Skylights,e_78,Skylight,
    G.8.5,G.8.5,Skylights,f_78,50,
    G.8.5,G.8.5,Skylights,g_78,0,
    G.8.5,G.8.5,Skylights,h_78,80,
    G.2,G.2,Gains Utilization Factor (n-Factor),d_80,NRC 40%,
    B.4,B.4,Roof,d_85,1411.52,
    B.4,B.4,Roof,f_85,9.35,
    B.5,B.5,Walls Above Grade (Exclude Openings!),d_86,712.97,
    B.5,B.5,Walls Above Grade (Exclude Openings!),f_86,6.69,
    B.6,B.6,Floor Exposed,d_87,0,
    B.6,B.6,Floor Exposed,f_87,9.52,
    B.7.0,B.7.0,Doors,g_88,0.9,
    B.8.1,B.8.1,Window Area North,g_89,0.9,
    B.8.2,B.8.2,Window Area East,g_90,0.9,
    B.8.3,B.8.3,Window Area South,g_91,0.9,
    B.8.4,B.8.4,Window Area West,g_92,0.9,
    B.8.5,B.8.5,Skylights,g_93,0.9,
    B.9,B.9,Walls Below Grade (Conditioned Space),d_94,0,
    B.9,B.9,Walls Below Grade (Conditioned Space),f_94,4,
    B.10,B.10,Floor Slab (Conditioned Space),d_95,1100.42,
    B.10,B.10,Floor Slab (Conditioned Space),f_95,3.7,
    B.11,B.11,B.11 Interior Floors (incl. garages),d_96,29.7,
    B.12,B.12,Thermal Bridge Penalty (%),d_97,20,
    B.18.3,B.18.3,Heating Natural Air Leakage Heatloss,d_103,1.5,
    B.18.3,B.18.3,Heating Natural Air Leakage Heatloss,g_103,Normal,
    B.13,B.13,Total Conditioned Volume,d_105,8000.00,
    B.18.1,B.18.1,NRL₅₀ Target Method,d_108,AL-1B,
    B.18.2,B.18.2,ACH₅₀ Target (Converts B.18.1),g_109,1.50,
    M.1.0,M.1.0,Primary Heating System,d_113,Heatpump,
    M.1.0,M.1.0,Primary Heating System,f_113,12.5,
    M.2.2,M.2.2,Heating Fuel Impact (ekWh/yr),j_115,0.98,
    M.3.0,M.3.0,Heatpump or Dedicated Cooling System,d_116,Cooling,
    V.1.1,V.1.1,HRV/ERV/MVHR Efficiency (SRE),d_118,89,
    V.1.1,V.1.1,HRV/ERV/MVHR Efficiency (SRE),g_118,Volume by Schedule,
    V.1.1,V.1.1,HRV/ERV/MVHR Efficiency (SRE),l_118,3,
    V.1.4,V.1.4,Per Person Ventilation Rate,d_119,14.00,
    V.1.4,V.1.4,Per Person Ventilation Rate,l_119,None,
    V.1.6,V.1.6,Volumetric Ventilation Rate,k_120,0.9,
    T.7.4,T.7.4,Cost Premium of HP Equipment,d_142,30000.00,

  • edited May 11

    @Andyro

    Almost finished: https://arossti.github.io/OBJECTIVE/ - static/fast JavaScript BEM for early stage modelling and post-occupancy validation.

    nice one!

    Next in the pipeline is ifcSpace mapping either via API to BBim or csv export @steverugi ?

    OK.

    Can we get BBim to save out in csv from the websocket the areas we are interested in, in a systematic way?

    You mean the exported data to web from Spreadsheet Import/Export needs to be saved as .csv applying some filtering? kindly explain further I'm a bit confused.

    Currently the user import/export looks like this: names are a little confusing, as sometimes there are a few user input values per row... where the name just returns the first descriptive title from column C of the DOM: (we mapped the excel cells to the app's fields for bidirectionality ie D27=d_27 in the DOM.

    Sorry, I need more details on this, maybe the .ifc model and/or query you used or some screenshots would help me understand the task.

    If you don't mind please attach the data as .csv file (you need to add .txt at the end of its filename to post it here), thanks

  • edited May 11

    Sure, I will explain more soon, after I refine the import/export format maybe a little more for clarity. Still lots of bug-hunting edge cases here. The goal here is to get basic 'one zone' geometry to our BEM. I can send you a pm with our spreadsheet version so you can see the 'blue cells' we are after from the model...

Sign In or Register to comment.