Code Structure


The raw data used by the library. Files in this directory should not contain code.


These files contain 3D building geometry that is often used as a starting point for prototypical models. It also contains JSON files that describe the HVAC systems to be used with the geometry.


These files contain information from energy codes/standards, as well as typical building characteristics. Examples include HVAC efficiency values, performance curves, construction U-values, and schedules. The code accesses this information when applying a standard or creating a prototypical building.

Rather than editing the JSON files directly, developers should edit The OpenStudio_Standards Google Spreadsheet


These files contain weather information for representative locations. The .epw files contain typical annual weather data, the .ddy files contain design day information, and the .stat files contain a summary of the weather in that location.


The functional code that makes up this library.


These files contain methods to apply the Canadian energy code (NECB) to models, as well as code to create the typical Canadian prototype models. Many of the methods in here are duplicative of methods in the /standards directory, and will be migrated there over time.


These files extend OpenStudio classes to allow users to run a sizing run and access autosized HVAC equipment values (capacities, flow rates, etc.), and to pull these values back into the model if desired. These methods will eventually be moved into the OpenStudio C++.


These files apply typical assumptions that are not governed by a standard, and for which reasonable values exist. For example, the configuration of the HVAC systems, assumptions for fan pressure drops, etc. These assumptions come from sources like the DOE Prototype, the DOE Reference Buildings, and the Canadian Archetype Buildings.


These files modify model inputs to meet a specific standard. For example, there is a method that modifies a Chiller:Electric:EIR and sets its COP and performance curves based on the selected standard, the capacity, and the compressor type. These methods rely on the information in the /data/standards directory for lookups.


These files import design days to models, pull water mains temperature from the .stat file, and assign the correct weather file to the model.


This directory contains unit tests which run various portions of the code and ensure that it is working. When new functionality is added to this library, corresponding unit tests should be added as well.


This is where the documentation (like this very page) lives. Note that the code documentation is not here. Those pages are generated on-the-fly from the source code, and are not committed to the repository.