Metadata-Version: 2.1
Name: honeybee-energy-standards
Version: 2.1.1
Summary: Honeybee-energy extension for standards, codes, and templates.
Home-page: https://github.com/ladybug-tools/honeybee-energy-standards
Author: Ladybug Tools
Author-email: info@ladybug.tools
License: AGPL-3.0
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown

[![Build Status](https://travis-ci.com/ladybug-tools/honeybee-energy-standards.svg?branch=master)](https://travis-ci.com/ladybug-tools/honeybee-energy-standards)

[![Python 2.7](https://img.shields.io/badge/python-2.7-green.svg)](https://www.python.org/downloads/release/python-270/) [![Python 3.6](https://img.shields.io/badge/python-3.6-blue.svg)](https://www.python.org/downloads/release/python-360/)

# honeybee-energy-standards

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

All of the data that this module adds to the [honeybee-energy](https://github.com/ladybug-tools/honeybee-energy).lib comes from the
[OpenStudio Standards Gem](https://github.com/NREL/openstudio-standards) and the master
[Google Sheets files](https://drive.google.com/drive/folders/1x7yEU4jnKw-gskLBih8IopStwl0KAMEi)
that possess all of the most recent data. The original sources of this data include the following:

* The US Department of Energy [Commercial Reference Buildings](https://www.energy.gov/eere/buildings/commercial-reference-buildings).
* The [ASHRAE Standard 90.1](https://www.ashrae.org/technical-resources/bookstore/standard-90-1) including all versions from 2004 to the present.
* The [Commercial Buildings Energy Consumption Survey (CBECS)](https://www.eia.gov/consumption/commercial/), specifically for any templates before ASHRAE Standard 90.1 2004.

## Installation

```console
pip install honeybee-energy-standards
```

## QuickStart

```python
import honeybee_energy_standards

```

## [API Documentation](http://ladybug-tools.github.io/honeybee-energy-standards/docs)

## Local Development

1. Clone this repo locally

```console
git clone git@github.com:ladybug-tools/honeybee-energy-standards

# or

git clone https://github.com/ladybug-tools/honeybee-energy-standards
```

2. Install dependencies:

```console
cd honeybee-energy-standards
pip install -r dev-requirements.txt
```

3. Run Tests:

```console
python -m pytest tests/
```

4. Re-generate the Data from the [OpenStudio Standards Gem](https://github.com/NREL/openstudio-standards)
(or to update the JSONs based on changes to the honeybee schema)

```python
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/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](https://www.ladybug.tools/honeybee-schema/model.html)
    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.


