%#= README.md.erb is used to auto-generate README.md. %>
<%#= To manually maintain README.md throw away README.md.erb and manually edit README.md %>
###### (Automatically generated documentation)
# <%= name %>
## Description
<%= description %>
## Modeler Description
<%= modelerDescription %>
## Measure Type
<%= measureType %>
[//]: # (Only finds value if taxonomy method is added to measure.rb, won't read out of measure.xml)
## Taxonomy
<%= taxonomy %>
___
## Table of Contents
- [Measure Overview](#measure-overview)
- [DOE Template Mapping](#doe-template-and-building-type-mapping)
- [HVAC Configuration Arguments](#hvac-configuration-arguments)
- [Exterior Lighting Arguments](#exterior-lighting-arguments)
- [Bool Arguments to Enable/Disable Elements of This Measure](#bool-arguments-to-enabledisable-elements-of-this-measure)
- [Hours of Operation Arguments](#hours-of-operation-arguments)
- [Other Arguments](#other-arguments)
- [Development Comments](#development-comments)
- [Automatically Generated Argument List](#arguments)
## Measure Overview
While this measure has many arguments, they all have default values so you can start using it to get familiar with out without using the arguments. What is important is that the model passed in contains spaces with stub space types assigned. In addition to choice arguments, this measure has a number of bool arguments allowing the measure to be customized to meet your needs or to be split into two parts with other measures add in the model. You can for example use this to add constructions only, or to add everything else but leave constructions alone. An example use case for splitting this apart and adding other measures between would be to apply energy efficiency measures for new construction. The HVAC system should be added after the EE measures because an autosizing simulation is run to set the system equipment efficiencies for the selected template.
## DOE Template and Building Type Mapping
#### Templates:
<% arguments.each do |argument| %>
<% if argument[:name] == 'template'%>
<% argument[:choice_display_names].each do |choice|%>
- <%= choice %>
<% end %>
<% end %>
<% end %>
#### Building Types:
- SecondarySchool
- PrimarySchool
- SmallOffice
- MediumOffice
- LargeOffice
- SmallHotel
- LargeHotel
- Warehouse
- RetailStandalone
- RetailStripmall
- QuickServiceRestaurant
- FullServiceRestaurant
- MidriseApartment
- HighriseApartment
- Hospital
- Outpatient
- SuperMarket
- Laboratory
- LargeDataCenterLowITE
- LargeDataCenterHighITE
- SmallDataCenterLowITE
- SmallDataCenterHighITE
[//]: # (argument values for template are dynamically generated from current version of the measure. Cannot easily dynamically generate building types since they are not arguments to this measure and are passed in withthe model spaces.)
## HVAC Configuration Arguments
- `HVAC System Type` can be set to 'Inferred', 'Ideal Air Loads', or more than 50 additional system types. When choosing Inferred additional arguments listed below will impact the selected system type as elements of the seed model.
- `HVAC System Delivery Type` can be set to `Forced Air` or `Hydronic`
- `HVAC Heating Source` can be set to `Electricity`, `NaturalGas`, `DistrictHeating`, or `DistrictAmbient`
- `HVAC Cooling Source` can be set to `Electricity`, or `DistrictCooling`
- `Service Water Heating Source`can be set to `Inferred`, `NaturalGas`, `Electricity`, or `HeatPump`.
- `Kitchen Exhaust MakeUp Air Calculation Method` is used to determine if makeup air is modeled for kitchen exhaust and what zone that comes from. While the default choice of `Adajcent` makes sense for custom user geometry, if the geometry was autogenerated without representing an actual plan, you can set makeup air to come from the `Largest Zone`. `None` is also an option, which disables makeup air.
## Exterior Lighting Arguments
- `Exterior Lighting Zone` is used to identify the exterior lighting allowances based on how urban or rural the site for the building is. The `Template also impacts the target value.
- `Onsite Parking Fraction` can reduce or eliminate the amount of exterior lighting for parking added to the model. This wil not reduce exterior facade, walkway, or entry lighting.
## Bool Arguments to Enable/Disable Elements of This Measure
The following is a list of arguments for elements of the model that can be enabled or disabled for the measure.
- `Add Constructions to Model`
- `Add Space Type Loads to Model`
- `Add Elevators to Model`. This will only be added to buildings with more than one story. Number of floors will be used to determine the elevator type, and the number of occupants can determine both the number of elevators and can impact the schedule. To avoid large jumps in parametric analyses, the number of elevators is a double instead of an integer, but will never be less than 1.0 for multi-story buildings, but can for example be 2.6 or 1.5 elevators, instead of just 1 or 2. The logic used isn't depending on a space or space type existing for elevators. The space load will be added to the largest space on the first story. Fraction of heat lost will be set to 1.0 for traction elevators.
- `Add Internal Mass to Model`
- `Add Exterior Lights to Model`
- `Add Exhaust Fans to Model`
- `Add Service Water Heating to Model`
- `Add Thermostats`
- `Add HVAC System to Model`. This may add a secondary system for zones with internal loads or schedules that are dis-similar from the typical zones. For thermal zones on the primary zone, where multi-zone air loops are added, one air loop will be added for each building story. A sizing run will be performed however the elements in the model will stay autosized. The sizing run is to identify the proper target system efficiency.
- `Add Refrigeration to Model`
## Hours of Operation Arguments
There are three arguments each for weekday and weekend behavior. In each case there are the following arguments.
- Bool argument to enable/disable altering of weekdays or weekends
- Operating hours start time
- Operating hours duration
## Other Arguments
- `Use Upstream Argument Values` can be left at the default value of true for most cases. This argument shows up in a number of measures, and then intent is to enable the synchronization of arguments that may be used as a variable in a parametric study across multiple measures. Generally measures gave unique argument names that don't exist in other measures, but some such as `template` are used frequently. This argument, when set to true, will use the value of `Template` from an earlier measure in the workflow, if found, in place of what is entered as the value for this measure.
- `Unmet Hours Tolerance` is used to change the tolerance used in EnergyPlus for unmet heating and cooling hours.
- `Clean Model of non-geometry objects` should be set to false when you have a non-empty model with objects that you want to maintain. If you have split this measure in two the second instance of this should have it set to false or it will overwrite elements made by the earlier measure.
- `Enable Daylight Savings` will change daylighting saving to true when enabled.
## Development Comments
This measure relies on the openstudio-standards gem which is included in the OpenStudio CLI as well as a number of resources files listed below that are contained in the openstudio-extension gem which is also included in the OpenStudio CLI. Other than the arguments almost none of the measure code is in the measure.rb file. The resource files are used by a number of measures and should be updated from the shared library and not within this measure.
- os_lib_model_generation.rb
- os_lib_model_simplification.rb
- os_lib_geometry.rb
- os_lib_helper_methods.rb
___
*(Automatically generated argument information follows)*
## Arguments
<% arguments.each do |argument| %>
### <%= argument[:display_name] %>
<%= argument[:description] %>
**Name:** <%= argument[:name] %>,
**Type:** <%= argument[:type] %>,
**Units:** <%= argument[:units] %>,
**Required:** <%= argument[:required] %>,
**Model Dependent:** <%= argument[:model_dependent] %>
<% if argument[:type] == "Choice" && !argument[:model_dependent]%>
**Choice Display Names** <%= argument[:choice_display_names] %>
<% end %>
<% end %>
<% if arguments.size == 0 %>
<%= "This measure does not have any user arguments" %>
<% end %>
<% if outputs.size > 0 %>
## Outputs
<% output_names = [] %>
<% outputs.each do |output| %>
<% output_names << output[:display_name] %>
<% end %>
<%= output_names.join(", ") %>
<% end %>