The OpenStudio-HPXML repository consists of a simple residential EnergyPlus-based workflow build on top of OpenStudio measures. The workflow operates using HPXML building description files.

The OpenStudio measures used by the workflow are:

  1. BuildResidentialHPXML: A measure that generates an HPXML file from a set of building description inputs (including, e.g., simplified geometry inputs).

  2. BuildResidentialScheduleFile: A measure that generates a CSV of detailed schedules (e.g., stochastic occupancy) for use in the simulation.

  3. HPXMLtoOpenStudio: A measure that translates an HPXML file to an OpenStudio model.

  4. ReportSimulationOutput: A reporting measure that generates a variety of simulation-based annual/timeseries outputs in CSV/JSON/MessagePack format.

  5. ReportUtilityBills: A reporting measure that generates utility bill outputs in CSV/JSON/MessagePack format.

Building Type Scope

See HPXML Building for information on the types of buildings/simulations that OpenStudio-HPXML supports.

Accuracy vs Speed

The EnergyPlus simulation engine is like a Swiss army knife. There are often multiple models available for the same building technology with varying trade-offs between accuracy and speed. This workflow standardizes the use of EnergyPlus (e.g., the choice of models appropriate for residential buildings) to provide a fast and easy to use solution.

The workflow is continuously being evaluated for ways to reduce runtime without significant impact on accuracy. End-to-end simulations typically run in 3-10 seconds, depending on complexity, computer platform and speed, etc.

There are additional ways that software developers using this workflow can reduce runtime:

  • Run on Linux/Mac platform, which is significantly faster than Windows.

  • Run on computing environments with 1) fast CPUs, 2) sufficient memory, and 3) enough processors to allow all simulations to run in parallel.

  • Limit requests for timeseries output (e.g., --hourly, --daily, --timestep arguments) and limit the number of output variables requested.

  • Avoid using the --add-component-loads argument if heating/cooling component loads are not of interest.

  • Use the --skip-validation argument if the HPXML input file has already been validated against the Schema & Schematron documents.


This project is available under a BSD-3-like license, which is a free, open-source, and permissive license. For more information, check out the license file.