Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Feature Request / Discussion — ZoneList Support as Key Value in Output:Variable and Meter:Custom

Feature Request / Discussion — ZoneList Support as Key Value in Output:Variable and Meter:Custom


Background

When working with multi-zone models that have logical groupings (e.g. residential floors, apartment units, thermal zones by occupancy type), it is currently necessary to either:

  • Use a wildcard * in Output:Variable, which captures all zones indiscriminately, or
  • List every zone explicitly in Meter:Custom as individual Key Name / Output Variable pairs

Both approaches have drawbacks. The wildcard produces too much data and doesn't reflect intentional groupings. Explicit listing in Meter:Custom is verbose, error-prone, and doesn't scale well for large models.


The Problem

EnergyPlus already supports ZoneList as a named grouping object, accepted as a key in many internal objects such as Lights, People, and ElectricEquipment. However, ZoneList names are not recognised as valid key values in Output:Variable. When used, the following warning appears in the error file: Key=RESIDENTIAL_ZONES, VarName=ZONE LIGHTS ELECTRICITY ENERGY, Frequency=Hourly

EnergyPlus treats it as a literal (unmatched) zone name rather than expanding the list.


Proposed Enhancement

The proposal has two connected parts:

Part 1 — Allow Output:Variable to accept a ZoneList name as its Key Value, expanding it to report the variable for each zone in the list: ``` ZoneList, RESIDENTIAL_ZONES, !- Name Residential1:R1, !- Zone 1 Name Residential2:R2, !- Zone 2 Name Residential3:R3, !- Zone 3 Name Residential4:R4; !- Zone 4 Name

Output:Variable, RESIDENTIAL_ZONES, !- Key Value (ZoneList name) Zone Lights Electricity Energy, !- Variable Name Hourly; !- Reporting Frequency ```

This single object would behave as if four separate Output:Variable objects had been written — one per zone in the list.

Part 2 — Allow Meter:Custom to reference a ZoneList-expanded Output:Variable directly, enabling a single aggregated meter without listing every zone explicitly: Meter:Custom, Residential Lighting, !- Name Electricity, !- Fuel Type RESIDENTIAL_ZONES, !- Key Name 1 Zone Lights Electricity Energy; !- Output Variable or Meter Name 1

Together, these two changes would allow a clean, maintainable workflow where zone groupings are defined once in a ZoneList and reused consistently across both output reporting and custom meter aggregation.


Why This Would Be Valuable

  • ConsistencyZoneList is already used as a key in load definition objects; output reporting should follow the same pattern
  • Define once, reuse everywhere — a ZoneList defined once can be referenced with any number of different variable names in Output:Variable and Meter:Custom. The same RESIDENTIAL_ZONES list could serve lighting, equipment, and temperature reporting independently
  • Fewer errors — long explicit lists in Meter:Custom are a common source of misaligned key/variable pair mistakes
  • Better model organisation — zone groupings defined once in a ZoneList become a single source of truth for both simulation inputs and output reporting

Question

Has anyone found a clean workaround for grouped zone output reporting beyond explicit listing, wildcard *, python postprocessing scripts, DBERL, etc.?

Feature Request / Discussion — ZoneList Support as Key Value in Output:Variable and Meter:Custom

Feature Request / Discussion — ZoneList Support as Key Value in Output:Variable and Meter:Custom


Background

When working with multi-zone models that have logical groupings (e.g. residential floors, apartment units, thermal zones by occupancy type), it is currently necessary to either:

  • Use a wildcard * in Output:Variable, which captures all zones indiscriminately, or
  • List every zone explicitly in Meter:Custom as individual Key Name / Output Variable pairs

Both approaches have drawbacks. The wildcard produces too much data and doesn't reflect intentional groupings. Explicit listing in Meter:Custom is verbose, error-prone, and doesn't scale well for large models.


The Problem

EnergyPlus already supports ZoneList as a named grouping object, accepted as a key in many internal objects such as Lights, People, and ElectricEquipment. However, ZoneList names are not recognised as valid key values in Output:Variable. When used, the following warning appears in the error file: Key=RESIDENTIAL_ZONES, VarName=ZONE LIGHTS ELECTRICITY ENERGY, Frequency=Hourly

EnergyPlus treats it as a literal (unmatched) zone name rather than expanding the list.


Proposed Enhancement

The proposal has two connected parts:

Part 1 — Allow Output:Variable to accept a ZoneList name as its Key Value, expanding it to report the variable for each zone in the list: ``` ZoneList, RESIDENTIAL_ZONES, !- Name Residential1:R1, !- Zone 1 Name Residential2:R2, !- Zone 2 Name Residential3:R3, !- Zone 3 Name Residential4:R4; !- Zone 4 Name

Output:Variable, RESIDENTIAL_ZONES, !- Key Value (ZoneList name) Zone Lights Electricity Energy, !- Variable Name Hourly; !- Reporting Frequency ```

This single object would behave as if four separate Output:Variable objects had been written — one per zone in the list.

Part 2 — Allow Meter:Custom to reference a ZoneList-expanded Output:Variable directly, enabling a single aggregated meter without listing every zone explicitly: Meter:Custom, Residential Lighting, !- Name Electricity, !- Fuel Type RESIDENTIAL_ZONES, !- Key Name 1 Zone Lights Electricity Energy; !- Output Variable or Meter Name 1

Together, these two changes would allow a clean, maintainable workflow where zone groupings are defined once in a ZoneList and reused consistently across both output reporting and custom meter aggregation.


Why This Would Be Valuable

  • ConsistencyZoneList is already used as a key in load definition objects; output reporting should follow the same pattern
  • Define once, reuse everywhere — a ZoneList defined once can be referenced with any number of different variable names in Output:Variable and Meter:Custom. The same RESIDENTIAL_ZONES list could serve lighting, equipment, and temperature reporting independently
  • Fewer errors — long explicit lists in Meter:Custom are a common source of misaligned key/variable pair mistakes
  • Better model organisation — zone groupings defined once in a ZoneList become a single source of truth for both simulation inputs and output reporting

Question

Has anyone found a clean workaround for grouped zone output reporting beyond explicit listing, wildcard *, python postprocessing scripts, DBERL, etc.?

Feature Request / Discussion — ZoneList Support as Key Value in Output:Variable and Meter:Custom

Feature Request / Discussion — ZoneList Support as Key Value in Output:Variable and Meter:Custom


Background

When working with multi-zone models that have logical groupings (e.g. residential floors, apartment units, thermal zones by occupancy type), it is currently necessary to either:

  • Use a wildcard * in Output:Variable, which captures all zones indiscriminately, or
  • List every zone explicitly in Meter:Custom as individual Key Name / Output Variable pairs

Both approaches have drawbacks. The wildcard produces too much data and doesn't reflect intentional groupings. Explicit listing in Meter:Custom is verbose, error-prone, and doesn't scale well for large models.


The Problem

EnergyPlus already supports ZoneList as a named grouping object, accepted as a key in many internal objects such as Lights, People, and ElectricEquipment. However, ZoneList names are not recognised as valid key values in Output:Variable. When used, the following warning appears in the error file: Key=RESIDENTIAL_ZONES, VarName=ZONE LIGHTS ELECTRICITY ENERGY, Frequency=Hourly

EnergyPlus treats it as a literal (unmatched) zone name rather than expanding the list.


Proposed Enhancement

The proposal has two connected parts:

Part 1 — Allow Output:Variable to accept a ZoneList name as its Key Value, expanding it to report the variable for each zone in the list: ``` ZoneList, RESIDENTIAL_ZONES, !- Name Residential1:R1, !- Zone 1 Name Residential2:R2, !- Zone 2 Name Residential3:R3, !- Zone 3 Name Residential4:R4; !- Zone 4 Name

Output:Variable, RESIDENTIAL_ZONES, !- Key Value (ZoneList name) Zone Lights Electricity Energy, !- Variable Name Hourly; !- Reporting Frequency ```

This single object would behave as if four separate Output:Variable objects had been written — one per zone in the list.

Part 2 — Allow Meter:Custom to reference a ZoneList-expanded Output:Variable directly, enabling a single aggregated meter without listing every zone explicitly: explicitly:
Meter:Custom, Residential Lighting, !- Name Name Electricity, !- Fuel Type Type RESIDENTIAL_ZONES, !- Key Name 1 1 Zone Lights Electricity Energy; !- Output Variable or Meter Name 1 1

Together, these two changes would allow a clean, maintainable workflow where zone groupings are defined once in a ZoneList and reused consistently across both output reporting and custom meter aggregation.


Why This Would Be Valuable

  • ConsistencyZoneList is already used as a key in load definition objects; output reporting should follow the same pattern
  • Define once, reuse everywhere — a ZoneList defined once can be referenced with any number of different variable names in Output:Variable and Meter:Custom. The same RESIDENTIAL_ZONES list could serve lighting, equipment, and temperature reporting independently
  • Better model organisation — zone groupings defined once in a ZoneList become a single source of truth for both simulation inputs and output reporting

Question

Has anyone found a clean workaround for grouped zone output reporting beyond explicit listing, wildcard *, python postprocessing scripts, DBERL, etc.?