NatLabRockies / NatLabRockies/OpenStudio
Unchecking partofTotalFloorArea may cause OpenStudio area to be out of sync with EnergyPlus building area
Nobody has claimed this yet.
- 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.

Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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