Skip to content

🐝 πŸ”₯ πŸ“š Honeybee-energy extension for standards, codes, and templates.

License

Notifications You must be signed in to change notification settings

ladybug-tools/honeybee-energy-standards

Repository files navigation

Build Status

Python 2.7 Python 3.6

honeybee-energy-standards

Honeybee-energy extension for standards, codes, and templates.

All of the data that this module adds to the honeybee-energy.lib comes from the OpenStudio Standards Gem and the master Google Sheets files that possess all of the most recent data. The original sources of this data include the following:

Installation

pip install honeybee-energy-standards

QuickStart

import honeybee_energy_standards

Local Development

  1. Clone this repo locally
git clone git@github.com:ladybug-tools/honeybee-energy-standards

# or

git clone https://github.com/ladybug-tools/honeybee-energy-standards
  1. Install dependencies:
cd honeybee-energy-standards
pip install -r dev-requirements.txt
  1. Run Tests:
python -m pytest tests/
  1. Re-generate the Data from the OpenStudio Standards Gem (or to update the JSONs based on changes to the honeybee schema)
from standards_update._util._all import clean_all, remove_all
from standards_update._util._to_honeybee import convert_to_hb_json, remove_hb_jsons

remove_hb_jsons()  # remove all of the honeybee JSON data that currently exists

# generate clean OpenStudio Standards Data JSONs from the gem
ashrae_standards = 'C:/Users/chris/Documents/GitHub/nrel/openstudio-standards/lib/' \
    'openstudio-standards/standards/ashrae_90_1/'
clean_all(ashrae_standards)

# change the package to load all data from the clean Standards Gem JSONs
import standards_update._change_to_standards_data

convert_to_hb_json()  # generate Honeybee JSONs from the clean Standards Gem JSONs
remove_all()  # remove all of the clean Standards Gem JSONs now that they're converted

The resulting JSON data will be output to the data folder such that it can be checked before copying it into honeybee_energy_standards.

Note to developers using this repo as an example

Developers may use this repository and Python package as a template to create their own extensions for the library of standards accessible to honeybee_energy. For such developers, it is important to know the rules that must be followed to have a successful honeybee energy standards extension. First, any honeybee energy standards extension must have a package name the starts with honeybee_energy and ends with standards (all words in between are up to the user, barring spaces and special characters).

Second, the following folders MUST be included in any honeybee energy standards extension:

  • constructions
  • constructionsets
  • schedules
  • programtypes

The following rules must be followed:

  • All JSONs must use the Honeybee Model Schema representation of objects and must be formatted with the name of the object as keys and the schema definition of the object as values.
  • The constructions sub-folder should contain the following files: opaque_material.json, opaque_construction.json, window_material.json, window_constructions.json. These files should possess objects that match their names.
  • The schedules sub-folder should have all schedules in a schedule.json file.
  • The constructionsets and programtypes folder can possess any number of JSON files with their respective objects.
  • Any objects that make up larger objects must be present. For example, all of the constructions that make up the objects in constructionsets must be found in the constructions sub-folder.

About

🐝 πŸ”₯ πŸ“š Honeybee-energy extension for standards, codes, and templates.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published