NatLabRockies / NatLabRockies/OpenStudio

Unchecking partofTotalFloorArea may cause OpenStudio area to be out of sync with EnergyPlus building area

Open
#1,974 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

component - Model severity - Normal Bug
Dominant language
C++
Stars
646
Forks
237
Avg merge
3d 11h
Merged PRs (30d)
10

Description

In EnergyPlus thermal zones can be set to be included in the building area or not. Among other things this will be the basis of the building EUI value. In OpenStudio spaces can be set to be included in the floor area or not with space.partofTotalFloorArea. If some spaces in a zone have this checked while others in the zone don't OpenStudio reports a different area than EnergyPlus.

There is the start of code to hard set the floor area of the thermal zone but it isn't currently enabled.
https://github.com/NREL/OpenStudio/blob/3b0d232b5f99a2a331804a8f9762f32a99b1a56b/openstudiocore/src/model/ThermalZone.cpp#L1205-L1211

Test model EdgeCaseModel.osm exhibits this issue
https://github.com/NREL/OpenStudio/tree/misc_standard_report_measure_issues/openstudiocore/src/pat_app/Measures/StandardReports/tests

Here is some sample code to show out of sync values

# total building area
query = 'SELECT Value FROM tabulardatawithstrings WHERE '
query << "ReportName='AnnualBuildingUtilityPerformanceSummary' and " 
query << "ReportForString='Entire Facility' and "
query << "TableName='Building Area' and "
query << "RowName='Total Building Area' and "
query << "ColumnName='Area' and "
query << "Units='m2';"
query_results = sqlFile.execAndReturnFirstDouble(query)

# temp code to check OS vs. E+ area
puts "area test"
puts "E+ reported area is #{query_results.get}"
puts "OpenStudio reported area is #{model.getBuilding.floorArea}”

Here is output

area test
E+ reported area is 600.0
OpenStudio reported area is 500.0

Need time to discuss proper solution and there are ways to avoid this (don't mix checkbox for spaces within a zone), so this should not be addressed for OpenStudio 1.10.

Screenshot of model attached.

screen shot 2015-11-30 at 2 51 45 pm

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing floor-area code in openstudiocore/src/model/ThermalZone.cpp at lines 1205-1211, then reproduce the mismatch using EdgeCaseModel.osm in the StandardReports tests. Compare the OpenStudio and EnergyPlus building-area outputs and review the discussion to agree on the proper solution. Done means the areas are consistent and the EdgeCaseModel case is covered by a regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.