buildingsync 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/continuous_integration.yml +146 -0
- data/.gitignore +33 -0
- data/.rspec +3 -0
- data/.rubocop.yml +10 -0
- data/CHANGELOG.md +50 -0
- data/Gemfile +31 -0
- data/Jenkinsfile +10 -0
- data/LICENSE.md +29 -0
- data/README.md +105 -0
- data/Rakefile +77 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/buildingsync.gemspec +37 -0
- data/config.rb.in +26 -0
- data/doc_templates/LICENSE.md +29 -0
- data/doc_templates/README.md.erb +42 -0
- data/doc_templates/copyright_erb.txt +38 -0
- data/doc_templates/copyright_js.txt +5 -0
- data/doc_templates/copyright_ruby.txt +36 -0
- data/lib/buildingsync.rb +43 -0
- data/lib/buildingsync/all_resource_total.rb +54 -0
- data/lib/buildingsync/audit_date.rb +54 -0
- data/lib/buildingsync/constants.rb +49 -0
- data/lib/buildingsync/contact.rb +54 -0
- data/lib/buildingsync/extension.rb +57 -0
- data/lib/buildingsync/generator.rb +584 -0
- data/lib/buildingsync/get_bcl_weather_file.rb +326 -0
- data/lib/buildingsync/helpers/Model.hvac.rb +216 -0
- data/lib/buildingsync/helpers/helper.rb +494 -0
- data/lib/buildingsync/helpers/xml_get_set.rb +215 -0
- data/lib/buildingsync/makers/phase_zero_base.osw +178 -0
- data/lib/buildingsync/makers/workflow_maker.json +811 -0
- data/lib/buildingsync/makers/workflow_maker.rb +581 -0
- data/lib/buildingsync/makers/workflow_maker_base.rb +167 -0
- data/lib/buildingsync/model_articulation/building.rb +1119 -0
- data/lib/buildingsync/model_articulation/building_and_system_types.json +121 -0
- data/lib/buildingsync/model_articulation/building_section.rb +190 -0
- data/lib/buildingsync/model_articulation/building_system.rb +49 -0
- data/lib/buildingsync/model_articulation/envelope_system.rb +102 -0
- data/lib/buildingsync/model_articulation/exterior_floor_system_type.rb +64 -0
- data/lib/buildingsync/model_articulation/facility.rb +439 -0
- data/lib/buildingsync/model_articulation/foundation_system_type.rb +64 -0
- data/lib/buildingsync/model_articulation/hvac_system.rb +395 -0
- data/lib/buildingsync/model_articulation/lighting_system.rb +102 -0
- data/lib/buildingsync/model_articulation/loads_system.rb +287 -0
- data/lib/buildingsync/model_articulation/location_element.rb +129 -0
- data/lib/buildingsync/model_articulation/measure.rb +57 -0
- data/lib/buildingsync/model_articulation/roof_system_type.rb +64 -0
- data/lib/buildingsync/model_articulation/service_hot_water_system.rb +87 -0
- data/lib/buildingsync/model_articulation/site.rb +242 -0
- data/lib/buildingsync/model_articulation/spatial_element.rb +343 -0
- data/lib/buildingsync/model_articulation/wall_system_type.rb +64 -0
- data/lib/buildingsync/report.rb +217 -0
- data/lib/buildingsync/resource_use.rb +55 -0
- data/lib/buildingsync/scenario.rb +622 -0
- data/lib/buildingsync/selection_tool.rb +98 -0
- data/lib/buildingsync/time_series.rb +85 -0
- data/lib/buildingsync/translator.rb +167 -0
- data/lib/buildingsync/utility.rb +67 -0
- data/lib/buildingsync/version.rb +45 -0
- metadata +223 -0
@@ -0,0 +1,215 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# *******************************************************************************
|
4
|
+
# OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC.
|
5
|
+
# BuildingSync(R), Copyright (c) 2015-2020, Alliance for Sustainable Energy, LLC.
|
6
|
+
# All rights reserved.
|
7
|
+
#
|
8
|
+
# Redistribution and use in source and binary forms, with or without
|
9
|
+
# modification, are permitted provided that the following conditions are met:
|
10
|
+
#
|
11
|
+
# (1) Redistributions of source code must retain the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer.
|
13
|
+
#
|
14
|
+
# (2) Redistributions in binary form must reproduce the above copyright notice,
|
15
|
+
# this list of conditions and the following disclaimer in the documentation
|
16
|
+
# and/or other materials provided with the distribution.
|
17
|
+
#
|
18
|
+
# (3) Neither the name of the copyright holder nor the names of any contributors
|
19
|
+
# may be used to endorse or promote products derived from this software without
|
20
|
+
# specific prior written permission from the respective party.
|
21
|
+
#
|
22
|
+
# (4) Other than as required in clauses (1) and (2), distributions in any form
|
23
|
+
# of modifications or other derivative works may not use the "OpenStudio"
|
24
|
+
# trademark, "OS", "os", or any other confusingly similar designation without
|
25
|
+
# specific prior written permission from Alliance for Sustainable Energy, LLC.
|
26
|
+
#
|
27
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
|
28
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
29
|
+
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
30
|
+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
|
31
|
+
# UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
|
32
|
+
# THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
33
|
+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
34
|
+
# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
35
|
+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
36
|
+
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
37
|
+
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
38
|
+
# *******************************************************************************
|
39
|
+
require 'rexml/document'
|
40
|
+
|
41
|
+
require 'buildingsync/helpers/helper'
|
42
|
+
|
43
|
+
module BuildingSync
|
44
|
+
# Used for getting, setting, and creating XML snippets
|
45
|
+
# for BuildingSync classes with an @base_xml attribute
|
46
|
+
module XmlGetSet
|
47
|
+
def get_prefix
|
48
|
+
if @ns == ''
|
49
|
+
return ''
|
50
|
+
else
|
51
|
+
return "#{@ns}:"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# Get the id attribute of the @base_xml
|
56
|
+
# @see help_get_attribute_value
|
57
|
+
def xget_id
|
58
|
+
return help_get_attribute_value(@base_xml, 'ID')
|
59
|
+
end
|
60
|
+
|
61
|
+
# Get the name of the element, based on the type of element
|
62
|
+
# @example scenario.get_name, returns text for ScenarioName element
|
63
|
+
# @example site.get_name, returns text for SiteName
|
64
|
+
# @return [String] name associated with the @base_xml
|
65
|
+
def xget_name
|
66
|
+
premises = ['Site', 'Building', 'Section', 'ThermalZone', 'Space']
|
67
|
+
if premises.include? @base_xml.name
|
68
|
+
return xget_text('PremisesName')
|
69
|
+
elsif @base_xml.name == 'Measure'
|
70
|
+
m = @base_xml.elements[".//#{get_prefix}MeasureName"]
|
71
|
+
return help_get_text_value(m)
|
72
|
+
else
|
73
|
+
return xget_text("#{@base_xml.name}Name")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def xget_attribute_for_element(element_name, attribute)
|
78
|
+
element = @base_xml.elements["./#{get_prefix}#{element_name}"]
|
79
|
+
return help_get_attribute_value(element, attribute)
|
80
|
+
end
|
81
|
+
|
82
|
+
# returns the first element with the specified element name
|
83
|
+
# @param element_name [String] non-namespaced element name, 'EnergyResource'
|
84
|
+
# @return [REXML::Element] if element exists
|
85
|
+
# @return [nil] if element doesnt exist
|
86
|
+
def xget_element(element_name)
|
87
|
+
return @base_xml.elements["./#{get_prefix}#{element_name}"]
|
88
|
+
end
|
89
|
+
|
90
|
+
# get or create a new element
|
91
|
+
# @param element_name [String] non-namespaced element name, 'EnergyResource'
|
92
|
+
# @see help_get_or_create
|
93
|
+
def xget_or_create(element_name)
|
94
|
+
return help_get_or_create(@base_xml, "#{get_prefix}#{element_name}")
|
95
|
+
end
|
96
|
+
|
97
|
+
# @param element_name [String] non-namespaced element name, 'EnergyResource'
|
98
|
+
# @see help_get_text_value
|
99
|
+
def xget_text(element_name)
|
100
|
+
return help_get_text_value(@base_xml.elements["./#{get_prefix}#{element_name}"])
|
101
|
+
end
|
102
|
+
|
103
|
+
# @param element_name [String] non-namespaced element name, 'YearOfConstruction'
|
104
|
+
# @see help_get_text_value_as_float
|
105
|
+
def xget_text_as_float(element_name)
|
106
|
+
return help_get_text_value_as_float(@base_xml.elements["./#{get_prefix}#{element_name}"])
|
107
|
+
end
|
108
|
+
|
109
|
+
# @param element_name [String] non-namespaced element name, 'YearOfConstruction'
|
110
|
+
# @see help_get_text_value_as_integer
|
111
|
+
def xget_text_as_integer(element_name)
|
112
|
+
return help_get_text_value_as_integer(@base_xml.elements["./#{get_prefix}#{element_name}"])
|
113
|
+
end
|
114
|
+
|
115
|
+
# @param element_name [String] non-namespaced element name, 'BuildingAutomationSystem'
|
116
|
+
# @see help_get_text_value_as_bool
|
117
|
+
def xget_text_as_bool(element_name)
|
118
|
+
return help_get_text_value_as_bool(@base_xml.elements["./#{get_prefix}#{element_name}"])
|
119
|
+
end
|
120
|
+
|
121
|
+
# @param element_name [String] non-namespaced element name, 'RetrocommissioningDate'
|
122
|
+
# @see help_get_text_value_as_date
|
123
|
+
def xget_text_as_date(element_name)
|
124
|
+
return help_get_text_value_as_date(@base_xml.elements["./#{get_prefix}#{element_name}"])
|
125
|
+
end
|
126
|
+
|
127
|
+
# @param element_name [String] non-namespaced element name, 'StartTimestamp'
|
128
|
+
# @see help_get_text_value_as_datetime
|
129
|
+
def xget_text_as_dt(element_name)
|
130
|
+
return help_get_text_value_as_datetime(@base_xml.elements["./#{get_prefix}#{element_name}"])
|
131
|
+
end
|
132
|
+
|
133
|
+
# Gets all of the IDref attributes of the element_name provided
|
134
|
+
# assumes there is a parent child containment downstream of the base_xml,
|
135
|
+
# where the parent is a plural version of the element_name provided
|
136
|
+
# @example xget_idrefs('Measure') #=> Searches for .//Measures/Measure
|
137
|
+
# @param element_name [String] name of the non-pluralized element, i.e. Measure
|
138
|
+
# @return [Array<String>] all associated IDs ['Measure-1', 'Measure-2', etc.]
|
139
|
+
def xget_idrefs(element_name)
|
140
|
+
id_elements = @base_xml.get_elements(".//#{get_prefix}#{element_name}s/#{get_prefix}#{element_name}")
|
141
|
+
to_return = []
|
142
|
+
id_elements.each do |id|
|
143
|
+
to_return << help_get_attribute_value(id, 'IDref')
|
144
|
+
end
|
145
|
+
return to_return
|
146
|
+
end
|
147
|
+
|
148
|
+
def xget_plurals_text_value(element_name)
|
149
|
+
plurals = @base_xml.get_elements(".//#{get_prefix}#{element_name}s/#{get_prefix}#{element_name}")
|
150
|
+
to_return = []
|
151
|
+
plurals.each do |p|
|
152
|
+
to_return << help_get_text_value(p)
|
153
|
+
end
|
154
|
+
return to_return
|
155
|
+
end
|
156
|
+
|
157
|
+
# Get the linked premises ids of the @base_xml element
|
158
|
+
# @return [Hash] where keys are premise types and values are an array of ids
|
159
|
+
# @example {'Building' => ['Building-1', 'Building-1'], 'Section' => ['Section-4']]}
|
160
|
+
def xget_linked_premises
|
161
|
+
map = {}
|
162
|
+
premises = @base_xml.get_elements(".//#{get_prefix}LinkedPremises").first
|
163
|
+
premises&.elements&.each do |premise_type|
|
164
|
+
map[premise_type.name] = []
|
165
|
+
idref_elements = premise_type.get_elements('.//*[@IDref]')
|
166
|
+
idref_elements&.each do |element|
|
167
|
+
map[premise_type.name] << element.attributes['IDref']
|
168
|
+
end
|
169
|
+
end
|
170
|
+
return map
|
171
|
+
end
|
172
|
+
|
173
|
+
# Only sets the text for an element if it exists
|
174
|
+
# @param element_name [String] non-namespaced element name, 'EnergyResource'
|
175
|
+
# @param new_value [String] new text value to use, 'Electricity'
|
176
|
+
# @return [REXML::Element] if element exists
|
177
|
+
# @return [nil] if element doesn't exist
|
178
|
+
def xset_text(element_name, new_value)
|
179
|
+
element = @base_xml.elements["./#{get_prefix}#{element_name}"]
|
180
|
+
if !element.nil?
|
181
|
+
element.text = new_value
|
182
|
+
end
|
183
|
+
return element
|
184
|
+
end
|
185
|
+
|
186
|
+
# Sets the text for an element if it exists, or creates the element then sets
|
187
|
+
# the text if it doesn't exist
|
188
|
+
# @param element_name [String] non-namespaced element name, 'EnergyResource'
|
189
|
+
# @param new_value [String] new text value to use, 'Electricity'
|
190
|
+
# @param override [Boolean] whether to override the text value if the element already has text
|
191
|
+
# @return [REXML::Element] the element
|
192
|
+
def xset_or_create(element_name, new_value, override = true)
|
193
|
+
element = @base_xml.elements["./#{get_prefix}#{element_name}"]
|
194
|
+
if !element.nil?
|
195
|
+
# if there is no value, we set it
|
196
|
+
if element.text.nil? || element.text.empty?
|
197
|
+
element.text = new_value
|
198
|
+
# if there is a value but we are overriding, we set it
|
199
|
+
elsif override
|
200
|
+
element.text = new_value
|
201
|
+
end
|
202
|
+
else
|
203
|
+
element = REXML::Element.new("#{get_prefix}#{element_name}", @base_xml)
|
204
|
+
element.text = new_value
|
205
|
+
end
|
206
|
+
if element.text.nil?
|
207
|
+
raise StandardError, "Unable to set #{element_name} to nil"
|
208
|
+
end
|
209
|
+
if element.text.empty?
|
210
|
+
raise StandardError, "Unable to set #{element_name} to be empty"
|
211
|
+
end
|
212
|
+
return element
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
@@ -0,0 +1,178 @@
|
|
1
|
+
{
|
2
|
+
"seed_file": "../in.osm",
|
3
|
+
"weather_file": null,
|
4
|
+
"root_directory": null,
|
5
|
+
"run_directory": null,
|
6
|
+
"file_paths": null,
|
7
|
+
"measure_paths": null,
|
8
|
+
"steps": [{
|
9
|
+
"measure_dir_name": "SetLightingLoadsByLPD",
|
10
|
+
"arguments": {
|
11
|
+
"__SKIP__": true
|
12
|
+
}
|
13
|
+
}, {
|
14
|
+
"measure_dir_name": "AddDaylightSensors",
|
15
|
+
"arguments": {
|
16
|
+
"__SKIP__": true
|
17
|
+
}
|
18
|
+
}, {
|
19
|
+
"measure_dir_name": "ReduceLightingLoadsByPercentage",
|
20
|
+
"arguments": {
|
21
|
+
"__SKIP__": true
|
22
|
+
}
|
23
|
+
}, {
|
24
|
+
"measure_dir_name": "tenant_star_internal_loads",
|
25
|
+
"arguments": {
|
26
|
+
"__SKIP__": true
|
27
|
+
}
|
28
|
+
}, {
|
29
|
+
"measure_dir_name": "ReduceElectricEquipmentLoadsByPercentage",
|
30
|
+
"arguments": {
|
31
|
+
"__SKIP__": true
|
32
|
+
}
|
33
|
+
}, {
|
34
|
+
"measure_dir_name": "ReduceSpaceInfiltrationByPercentage",
|
35
|
+
"arguments": {
|
36
|
+
"__SKIP__": true
|
37
|
+
}
|
38
|
+
}, {
|
39
|
+
"measure_dir_name": "IncreaseInsulationRValueForExteriorWalls",
|
40
|
+
"arguments": {
|
41
|
+
"__SKIP__": true
|
42
|
+
}
|
43
|
+
}, {
|
44
|
+
"measure_dir_name": "IncreaseInsulationRValueForExteriorWallsByPercentage",
|
45
|
+
"arguments": {
|
46
|
+
"__SKIP__": true
|
47
|
+
}
|
48
|
+
}, {
|
49
|
+
"measure_dir_name": "IncreaseInsulationRValueForRoofs",
|
50
|
+
"arguments": {
|
51
|
+
"__SKIP__": true
|
52
|
+
}
|
53
|
+
}, {
|
54
|
+
"measure_dir_name": "IncreaseInsulationRValueForRoofsByPercentage",
|
55
|
+
"arguments": {
|
56
|
+
"__SKIP__": true
|
57
|
+
}
|
58
|
+
}, {
|
59
|
+
"measure_dir_name": "replace_simple_glazing",
|
60
|
+
"arguments": {
|
61
|
+
"__SKIP__": true
|
62
|
+
}
|
63
|
+
}, {
|
64
|
+
"measure_dir_name": "improve_simple_glazing_by_percentage",
|
65
|
+
"arguments": {
|
66
|
+
"__SKIP__": true
|
67
|
+
}
|
68
|
+
}, {
|
69
|
+
"measure_dir_name": "SetGasBurnerEfficiency",
|
70
|
+
"arguments": {
|
71
|
+
"__SKIP__": true
|
72
|
+
}
|
73
|
+
}, {
|
74
|
+
"measure_dir_name": "set_boiler_thermal_efficiency",
|
75
|
+
"arguments": {
|
76
|
+
"__SKIP__": true
|
77
|
+
}
|
78
|
+
},
|
79
|
+
{
|
80
|
+
"measure_dir_name": "SetCOPforSingleSpeedDXCoolingUnits",
|
81
|
+
"arguments": {
|
82
|
+
"__SKIP__": true
|
83
|
+
}
|
84
|
+
}, {
|
85
|
+
"measure_dir_name": "SetCOPforTwoSpeedDXCoolingUnits",
|
86
|
+
"arguments": {
|
87
|
+
"__SKIP__": true
|
88
|
+
}
|
89
|
+
}, {
|
90
|
+
"measure_dir_name": "replace_hvac_with_gshp_and_doas",
|
91
|
+
"arguments": {
|
92
|
+
"__SKIP__": true
|
93
|
+
}
|
94
|
+
}, {
|
95
|
+
"measure_dir_name": "vr_fwith_doas",
|
96
|
+
"arguments": {
|
97
|
+
"__SKIP__": true
|
98
|
+
}
|
99
|
+
}, {
|
100
|
+
"measure_dir_name": "add_apszhp_to_each_zone",
|
101
|
+
"arguments": {
|
102
|
+
"__SKIP__": true
|
103
|
+
}
|
104
|
+
}, {
|
105
|
+
"measure_dir_name": "AdjustThermostatSetpointsByDegrees",
|
106
|
+
"arguments": {
|
107
|
+
"__SKIP__": true
|
108
|
+
}
|
109
|
+
}, {
|
110
|
+
"measure_dir_name": "ReplaceFanTotalEfficiency",
|
111
|
+
"arguments": {
|
112
|
+
"__SKIP__": true
|
113
|
+
}
|
114
|
+
}, {
|
115
|
+
"measure_dir_name": "ImproveFanTotalEfficiencybyPercentage",
|
116
|
+
"arguments": {
|
117
|
+
"__SKIP__": true
|
118
|
+
}
|
119
|
+
}, {
|
120
|
+
"measure_dir_name": "EnableDemandControlledVentilation",
|
121
|
+
"arguments": {
|
122
|
+
"__SKIP__": true
|
123
|
+
}
|
124
|
+
}, {
|
125
|
+
"measure_dir_name": "EnableEconomizerControl",
|
126
|
+
"arguments": {
|
127
|
+
"__SKIP__": true
|
128
|
+
}
|
129
|
+
}, {
|
130
|
+
"measure_dir_name": "add_energy_recovery_ventilator",
|
131
|
+
"arguments": {
|
132
|
+
"__SKIP__": true
|
133
|
+
}
|
134
|
+
}, {
|
135
|
+
"measure_dir_name": "set_water_heater_efficiency_heat_lossand_peak_water_flow_rate",
|
136
|
+
"arguments": {
|
137
|
+
"__SKIP__": true
|
138
|
+
}
|
139
|
+
}, {
|
140
|
+
"measure_dir_name": "reduce_water_use_by_percentage",
|
141
|
+
"arguments": {
|
142
|
+
"__SKIP__": true
|
143
|
+
}
|
144
|
+
}, {
|
145
|
+
"measure_dir_name": "tariff_selection_generic",
|
146
|
+
"arguments": {
|
147
|
+
"__SKIP__": false
|
148
|
+
}
|
149
|
+
}, {
|
150
|
+
"measure_dir_name": "openstudio_results",
|
151
|
+
"arguments": {
|
152
|
+
"__SKIP__": false,
|
153
|
+
"building_summary_section": true,
|
154
|
+
"annual_overview_section": true,
|
155
|
+
"monthly_overview_section": true,
|
156
|
+
"utility_bills_rates_section": true,
|
157
|
+
"envelope_section_section": true,
|
158
|
+
"space_type_breakdown_section": true,
|
159
|
+
"space_type_details_section": true,
|
160
|
+
"interior_lighting_section": true,
|
161
|
+
"plug_loads_section": true,
|
162
|
+
"exterior_light_section": true,
|
163
|
+
"water_use_section": true,
|
164
|
+
"hvac_load_profile": true,
|
165
|
+
"zone_condition_section": true,
|
166
|
+
"zone_summary_section": true,
|
167
|
+
"zone_equipment_detail_section": true,
|
168
|
+
"air_loops_detail_section": true,
|
169
|
+
"plant_loops_detail_section": true,
|
170
|
+
"outdoor_air_section": true,
|
171
|
+
"cost_summary_section": true,
|
172
|
+
"source_energy_section": true,
|
173
|
+
"schedules_overview_section": true,
|
174
|
+
"reg_monthly_details": true
|
175
|
+
}
|
176
|
+
}
|
177
|
+
]
|
178
|
+
}
|
@@ -0,0 +1,811 @@
|
|
1
|
+
{
|
2
|
+
"Lighting": [{
|
3
|
+
"Retrofit with light emitting diode technologies": {
|
4
|
+
"measure_dir_name": "SetLightingLoadsByLPD",
|
5
|
+
"arguments": [{
|
6
|
+
"name": "__SKIP__",
|
7
|
+
"value": false,
|
8
|
+
"condition": ""
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"name": "lpd",
|
12
|
+
"value": 0.6,
|
13
|
+
"condition": ""
|
14
|
+
}
|
15
|
+
]
|
16
|
+
}
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"Add daylight controls": {
|
20
|
+
"measure_dir_name": "AddDaylightSensors",
|
21
|
+
"arguments": [{
|
22
|
+
"name": "__SKIP__",
|
23
|
+
"value": false,
|
24
|
+
"condition": ""
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "space_type",
|
28
|
+
"value": "Office WholeBuilding - Sm Office -",
|
29
|
+
"condition": "SmallOffice"
|
30
|
+
},
|
31
|
+
{
|
32
|
+
"name": "space_type",
|
33
|
+
"value": "Office WholeBuilding - Md Office -",
|
34
|
+
"condition": "MediumOffice"
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"name": "space_type",
|
38
|
+
"value": "Retail Retail -",
|
39
|
+
"condition": "RetailStandalone"
|
40
|
+
}
|
41
|
+
]
|
42
|
+
}
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"Add occupancy sensors": {
|
46
|
+
"measure_dir_name": "ReduceLightingLoadsByPercentage",
|
47
|
+
"arguments": [{
|
48
|
+
"name": "__SKIP__",
|
49
|
+
"value": false,
|
50
|
+
"condition": ""
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"name": "lighting_power_reduction_percent",
|
54
|
+
"value": 5,
|
55
|
+
"condition": ""
|
56
|
+
}
|
57
|
+
]
|
58
|
+
}
|
59
|
+
}
|
60
|
+
],
|
61
|
+
"Plug Load": [{
|
62
|
+
"Replace with ENERGY STAR rated": {
|
63
|
+
"measure_dir_name": "tenant_star_internal_loads",
|
64
|
+
"arguments": [{
|
65
|
+
"name": "__SKIP__",
|
66
|
+
"value": false,
|
67
|
+
"condition": ""
|
68
|
+
},
|
69
|
+
{
|
70
|
+
"name": "epd",
|
71
|
+
"value": 0.6,
|
72
|
+
"condition": ""
|
73
|
+
}
|
74
|
+
]
|
75
|
+
}
|
76
|
+
},
|
77
|
+
{
|
78
|
+
"Install plug load controls": {
|
79
|
+
"measure_dir_name": "ReduceElectricEquipmentLoadsByPercentage",
|
80
|
+
"arguments": [{
|
81
|
+
"name": "__SKIP__",
|
82
|
+
"value": false,
|
83
|
+
"condition": ""
|
84
|
+
},
|
85
|
+
{
|
86
|
+
"name": "elecequip_power_reduction_percent",
|
87
|
+
"value": 20.0,
|
88
|
+
"condition": ""
|
89
|
+
}
|
90
|
+
]
|
91
|
+
}
|
92
|
+
}
|
93
|
+
],
|
94
|
+
"Refrigeration": [{
|
95
|
+
"Replace ice/refrigeration equipment with high efficiency units": {
|
96
|
+
"measure_dir_name": "ReduceElectricEquipmentLoadsByPercentage",
|
97
|
+
"arguments": [{
|
98
|
+
"name": "__SKIP__",
|
99
|
+
"value": false,
|
100
|
+
"condition": ""
|
101
|
+
},
|
102
|
+
{
|
103
|
+
"name": "elecequip_power_reduction_percent",
|
104
|
+
"value": 5,
|
105
|
+
"condition": ""
|
106
|
+
}
|
107
|
+
]
|
108
|
+
}
|
109
|
+
}],
|
110
|
+
"Wall": [{
|
111
|
+
"Air seal envelope": {
|
112
|
+
"measure_dir_name": "ReduceSpaceInfiltrationByPercentage",
|
113
|
+
"arguments": [{
|
114
|
+
"name": "__SKIP__",
|
115
|
+
"value": false,
|
116
|
+
"condition": ""
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"name": "space_infiltration_reduction_percent",
|
120
|
+
"value": 30.0,
|
121
|
+
"condition": ""
|
122
|
+
}
|
123
|
+
]
|
124
|
+
}
|
125
|
+
},
|
126
|
+
{
|
127
|
+
"Increase wall insulation": {
|
128
|
+
"measure_dir_name": "IncreaseInsulationRValueForExteriorWalls",
|
129
|
+
"arguments": [{
|
130
|
+
"name": "__SKIP__",
|
131
|
+
"value": false,
|
132
|
+
"condition": ""
|
133
|
+
},
|
134
|
+
{
|
135
|
+
"name": "r_value",
|
136
|
+
"value": 25,
|
137
|
+
"condition": ""
|
138
|
+
}
|
139
|
+
]
|
140
|
+
}
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"Insulate thermal bypasses": {
|
144
|
+
"measure_dir_name": "IncreaseInsulationRValueForExteriorWallsByPercentage",
|
145
|
+
"arguments": [{
|
146
|
+
"name": "__SKIP__",
|
147
|
+
"value": false,
|
148
|
+
"condition": ""
|
149
|
+
},
|
150
|
+
{
|
151
|
+
"name": "r_value",
|
152
|
+
"value": 20,
|
153
|
+
"condition": ""
|
154
|
+
}
|
155
|
+
]
|
156
|
+
}
|
157
|
+
}
|
158
|
+
],
|
159
|
+
"Roof": [{
|
160
|
+
"Increase roof insulation": {
|
161
|
+
"measure_dir_name": "IncreaseInsulationRValueForRoofs",
|
162
|
+
"arguments": [{
|
163
|
+
"name": "__SKIP__",
|
164
|
+
"value": false,
|
165
|
+
"condition": ""
|
166
|
+
},
|
167
|
+
{
|
168
|
+
"name": "r_value",
|
169
|
+
"value": 30,
|
170
|
+
"condition": ""
|
171
|
+
}
|
172
|
+
]
|
173
|
+
}
|
174
|
+
}],
|
175
|
+
"Ceiling": [{
|
176
|
+
"Increase ceiling insulation": {
|
177
|
+
"measure_dir_name": "IncreaseInsulationRValueForRoofsByPercentage",
|
178
|
+
"arguments": [{
|
179
|
+
"name": "__SKIP__",
|
180
|
+
"value": false,
|
181
|
+
"condition": ""
|
182
|
+
},
|
183
|
+
{
|
184
|
+
"name": "r_value",
|
185
|
+
"value": 20,
|
186
|
+
"condition": ""
|
187
|
+
}
|
188
|
+
]
|
189
|
+
}
|
190
|
+
}],
|
191
|
+
"Fenestration": [{
|
192
|
+
"Replace windows": {
|
193
|
+
"measure_dir_name": "replace_simple_glazing",
|
194
|
+
"arguments": [{
|
195
|
+
"name": "__SKIP__",
|
196
|
+
"value": false,
|
197
|
+
"condition": ""
|
198
|
+
},
|
199
|
+
{
|
200
|
+
"name": "u_value",
|
201
|
+
"value": 1.65,
|
202
|
+
"condition": ""
|
203
|
+
},
|
204
|
+
{
|
205
|
+
"name": "shgc",
|
206
|
+
"value": 0.2,
|
207
|
+
"condition": ""
|
208
|
+
},
|
209
|
+
{
|
210
|
+
"name": "vt",
|
211
|
+
"value": 0.81,
|
212
|
+
"condition": ""
|
213
|
+
}
|
214
|
+
]
|
215
|
+
}
|
216
|
+
},
|
217
|
+
{
|
218
|
+
"Add window films": {
|
219
|
+
"measure_dir_name": "improve_simple_glazing_by_percentage",
|
220
|
+
"arguments": [{
|
221
|
+
"name": "__SKIP__",
|
222
|
+
"value": false,
|
223
|
+
"condition": ""
|
224
|
+
},
|
225
|
+
{
|
226
|
+
"name": "u_value_improvement_percent",
|
227
|
+
"value": 10,
|
228
|
+
"condition": ""
|
229
|
+
},
|
230
|
+
{
|
231
|
+
"name": "shgc_improvement_percent",
|
232
|
+
"value": 30,
|
233
|
+
"condition": ""
|
234
|
+
}
|
235
|
+
]
|
236
|
+
}
|
237
|
+
}
|
238
|
+
],
|
239
|
+
"Heating System": [{
|
240
|
+
"Replace burner": {
|
241
|
+
"measure_dir_name": "SetGasBurnerEfficiency",
|
242
|
+
"arguments": [{
|
243
|
+
"name": "__SKIP__",
|
244
|
+
"value": false,
|
245
|
+
"condition": "PSZ-AC with gas coil heat"
|
246
|
+
},
|
247
|
+
{
|
248
|
+
"name": "eff",
|
249
|
+
"value": 0.93,
|
250
|
+
"condition": "PSZ-AC with gas coil heat"
|
251
|
+
}
|
252
|
+
]
|
253
|
+
}
|
254
|
+
},
|
255
|
+
{
|
256
|
+
"Replace boiler": {
|
257
|
+
"measure_dir_name": "set_boiler_thermal_efficiency",
|
258
|
+
"arguments": [{
|
259
|
+
"name": "__SKIP__",
|
260
|
+
"value": false,
|
261
|
+
"condition": "PVAV with reheat"
|
262
|
+
},
|
263
|
+
{
|
264
|
+
"name": "input_option_manual",
|
265
|
+
"value": true,
|
266
|
+
"condition": "PVAV with reheat"
|
267
|
+
},
|
268
|
+
{
|
269
|
+
"name": "boiler_thermal_efficiency",
|
270
|
+
"value": 0.93,
|
271
|
+
"condition": "PVAV with reheat"
|
272
|
+
}
|
273
|
+
]
|
274
|
+
}
|
275
|
+
}
|
276
|
+
],
|
277
|
+
"Cooling System": [{
|
278
|
+
"Replace package units": {
|
279
|
+
"measure_dir_name": "SetCOPforSingleSpeedDXCoolingUnits",
|
280
|
+
"arguments": [
|
281
|
+
{
|
282
|
+
"name": "__SKIP__",
|
283
|
+
"value": false,
|
284
|
+
"condition": "PSZ-AC with gas coil heat"
|
285
|
+
},
|
286
|
+
{
|
287
|
+
"name": "cop",
|
288
|
+
"value": 4.1,
|
289
|
+
"condition": "PSZ-AC with gas coil heat"
|
290
|
+
}
|
291
|
+
]
|
292
|
+
}
|
293
|
+
},
|
294
|
+
{
|
295
|
+
"Replace package units": {
|
296
|
+
"measure_dir_name": "SetCOPforTwoSpeedDXCoolingUnits",
|
297
|
+
"arguments": [
|
298
|
+
{
|
299
|
+
"name": "__SKIP__",
|
300
|
+
"value": false,
|
301
|
+
"condition": "PVAV with reheat"
|
302
|
+
},
|
303
|
+
{
|
304
|
+
"name": "cop_high",
|
305
|
+
"value": 4.1,
|
306
|
+
"condition": "PVAV with reheat"
|
307
|
+
},
|
308
|
+
{
|
309
|
+
"name": "cop_low",
|
310
|
+
"value": 4.1,
|
311
|
+
"condition": "PVAV with reheat"
|
312
|
+
}
|
313
|
+
]
|
314
|
+
}
|
315
|
+
}],
|
316
|
+
"Other HVAC": [{
|
317
|
+
"Replace HVAC system type to VRF": {
|
318
|
+
"measure_dir_name": "vr_fwith_doas",
|
319
|
+
"arguments": [{
|
320
|
+
"name": "__SKIP__",
|
321
|
+
"value": false,
|
322
|
+
"condition": ""
|
323
|
+
},
|
324
|
+
{
|
325
|
+
"name": "Office WholeBuilding - Sm Office -",
|
326
|
+
"value": true,
|
327
|
+
"condition": "SmallOffice"
|
328
|
+
},
|
329
|
+
{
|
330
|
+
"name": "Office WholeBuilding - Md Office -",
|
331
|
+
"value": true,
|
332
|
+
"condition": "MediumOffice"
|
333
|
+
},
|
334
|
+
{
|
335
|
+
"name": "Retail Retail -",
|
336
|
+
"value": true,
|
337
|
+
"condition": "RetailStandalone"
|
338
|
+
},
|
339
|
+
{
|
340
|
+
"name": "Retail Point_of_Sale -",
|
341
|
+
"value": true,
|
342
|
+
"condition": "RetailStandalone"
|
343
|
+
},
|
344
|
+
{
|
345
|
+
"name": "Retail Entry -",
|
346
|
+
"value": true,
|
347
|
+
"condition": "RetailStandalone"
|
348
|
+
},
|
349
|
+
{
|
350
|
+
"name": "Retail Back_Space -",
|
351
|
+
"value": true,
|
352
|
+
"condition": "RetailStandalone"
|
353
|
+
},
|
354
|
+
{
|
355
|
+
"name": "vrfCoolCOP",
|
356
|
+
"value": 6.0,
|
357
|
+
"condition": ""
|
358
|
+
},
|
359
|
+
{
|
360
|
+
"name": "vrfHeatCOP",
|
361
|
+
"value": 6.0,
|
362
|
+
"condition": ""
|
363
|
+
},
|
364
|
+
{
|
365
|
+
"name": "doasDXEER",
|
366
|
+
"value": 14,
|
367
|
+
"condition": ""
|
368
|
+
}
|
369
|
+
]
|
370
|
+
}
|
371
|
+
},
|
372
|
+
{
|
373
|
+
"VRF with DOAS": {
|
374
|
+
"measure_dir_name": "vr_fwith_doas",
|
375
|
+
"arguments": [{
|
376
|
+
"name": "__SKIP__",
|
377
|
+
"value": false,
|
378
|
+
"condition": ""
|
379
|
+
},
|
380
|
+
{
|
381
|
+
"name": "Office WholeBuilding - Sm Office -",
|
382
|
+
"value": true,
|
383
|
+
"condition": "SmallOffice"
|
384
|
+
},
|
385
|
+
{
|
386
|
+
"name": "Office WholeBuilding - Md Office -",
|
387
|
+
"value": true,
|
388
|
+
"condition": "MediumOffice"
|
389
|
+
},
|
390
|
+
{
|
391
|
+
"name": "Retail Retail -",
|
392
|
+
"value": true,
|
393
|
+
"condition": "RetailStandalone"
|
394
|
+
},
|
395
|
+
{
|
396
|
+
"name": "Retail Point_of_Sale -",
|
397
|
+
"value": true,
|
398
|
+
"condition": "RetailStandalone"
|
399
|
+
},
|
400
|
+
{
|
401
|
+
"name": "Retail Entry -",
|
402
|
+
"value": true,
|
403
|
+
"condition": "RetailStandalone"
|
404
|
+
},
|
405
|
+
{
|
406
|
+
"name": "Retail Back_Space -",
|
407
|
+
"value": true,
|
408
|
+
"condition": "RetailStandalone"
|
409
|
+
},
|
410
|
+
{
|
411
|
+
"name": "vrfCoolCOP",
|
412
|
+
"value": 6.0,
|
413
|
+
"condition": ""
|
414
|
+
},
|
415
|
+
{
|
416
|
+
"name": "vrfHeatCOP",
|
417
|
+
"value": 6.0,
|
418
|
+
"condition": ""
|
419
|
+
},
|
420
|
+
{
|
421
|
+
"name": "doasDXEER",
|
422
|
+
"value": 14,
|
423
|
+
"condition": ""
|
424
|
+
}
|
425
|
+
]
|
426
|
+
}
|
427
|
+
},
|
428
|
+
{
|
429
|
+
"Replace HVAC with GSHP and DOAS": {
|
430
|
+
"measure_dir_name": "replace_hvac_with_gshp_and_doas",
|
431
|
+
"arguments": [{
|
432
|
+
"name": "__SKIP__",
|
433
|
+
"value": false,
|
434
|
+
"condition": ""
|
435
|
+
},
|
436
|
+
{
|
437
|
+
"name": "Office WholeBuilding - Sm Office -",
|
438
|
+
"value": true,
|
439
|
+
"condition": "SmallOffice"
|
440
|
+
},
|
441
|
+
{
|
442
|
+
"name": "Office WholeBuilding - Md Office -",
|
443
|
+
"value": true,
|
444
|
+
"condition": "MediumOffice"
|
445
|
+
},
|
446
|
+
{
|
447
|
+
"name": "Office WholeBuilding - Md Office -",
|
448
|
+
"value": true,
|
449
|
+
"condition": "MediumOffice"
|
450
|
+
},
|
451
|
+
{
|
452
|
+
"name": "Retail Retail -",
|
453
|
+
"value": true,
|
454
|
+
"condition": "RetailStandalone"
|
455
|
+
},
|
456
|
+
{
|
457
|
+
"name": "Retail Point_of_Sale -",
|
458
|
+
"value": true,
|
459
|
+
"condition": "RetailStandalone"
|
460
|
+
},
|
461
|
+
{
|
462
|
+
"name": "Retail Entry -",
|
463
|
+
"value": true,
|
464
|
+
"condition": "RetailStandalone"
|
465
|
+
},
|
466
|
+
{
|
467
|
+
"name": "Retail Back_Space -",
|
468
|
+
"value": true,
|
469
|
+
"condition": "RetailStandalone"
|
470
|
+
}
|
471
|
+
]
|
472
|
+
}
|
473
|
+
},
|
474
|
+
{
|
475
|
+
"Replace AC and heating units with ground coupled heat pump systems": {
|
476
|
+
"measure_dir_name": "replace_hvac_with_gshp_and_doas",
|
477
|
+
"arguments": [{
|
478
|
+
"name": "__SKIP__",
|
479
|
+
"value": false,
|
480
|
+
"condition": ""
|
481
|
+
},
|
482
|
+
{
|
483
|
+
"name": "Office WholeBuilding - Sm Office -",
|
484
|
+
"value": true,
|
485
|
+
"condition": "SmallOffice"
|
486
|
+
},
|
487
|
+
{
|
488
|
+
"name": "Office WholeBuilding - Md Office -",
|
489
|
+
"value": true,
|
490
|
+
"condition": "MediumOffice"
|
491
|
+
},
|
492
|
+
{
|
493
|
+
"name": "Office WholeBuilding - Md Office -",
|
494
|
+
"value": true,
|
495
|
+
"condition": "MediumOffice"
|
496
|
+
},
|
497
|
+
{
|
498
|
+
"name": "Retail Retail -",
|
499
|
+
"value": true,
|
500
|
+
"condition": "RetailStandalone"
|
501
|
+
},
|
502
|
+
{
|
503
|
+
"name": "Retail Point_of_Sale -",
|
504
|
+
"value": true,
|
505
|
+
"condition": "RetailStandalone"
|
506
|
+
},
|
507
|
+
{
|
508
|
+
"name": "Retail Entry -",
|
509
|
+
"value": true,
|
510
|
+
"condition": "RetailStandalone"
|
511
|
+
},
|
512
|
+
{
|
513
|
+
"name": "Retail Back_Space -",
|
514
|
+
"value": true,
|
515
|
+
"condition": "RetailStandalone"
|
516
|
+
}
|
517
|
+
]
|
518
|
+
}
|
519
|
+
},
|
520
|
+
{
|
521
|
+
"Replace HVAC system type to PZHP": {
|
522
|
+
"measure_dir_name": "add_apszhp_to_each_zone",
|
523
|
+
"arguments": [{
|
524
|
+
"name": "__SKIP__",
|
525
|
+
"value": false,
|
526
|
+
"condition": ""
|
527
|
+
},
|
528
|
+
{
|
529
|
+
"name": "delete_existing",
|
530
|
+
"value": true,
|
531
|
+
"condition": ""
|
532
|
+
},
|
533
|
+
{
|
534
|
+
"name": "cop_cooling",
|
535
|
+
"value": 3.1,
|
536
|
+
"condition": ""
|
537
|
+
},
|
538
|
+
{
|
539
|
+
"name": "cop_heating",
|
540
|
+
"value": 3.1,
|
541
|
+
"condition": ""
|
542
|
+
},
|
543
|
+
{
|
544
|
+
"name": "has_electric_coil",
|
545
|
+
"value": true,
|
546
|
+
"condition": ""
|
547
|
+
},
|
548
|
+
{
|
549
|
+
"name": "has_dcv",
|
550
|
+
"value": false,
|
551
|
+
"condition": ""
|
552
|
+
},
|
553
|
+
{
|
554
|
+
"name": "fan_type",
|
555
|
+
"value": "Constant Volume (default)",
|
556
|
+
"condition": ""
|
557
|
+
},
|
558
|
+
{
|
559
|
+
"name": "fan_pressure_rise",
|
560
|
+
"value": 0,
|
561
|
+
"condition": ""
|
562
|
+
},
|
563
|
+
{
|
564
|
+
"name": "filter_type",
|
565
|
+
"value": "By Space Type",
|
566
|
+
"condition": ""
|
567
|
+
},
|
568
|
+
{
|
569
|
+
"name": "space_type",
|
570
|
+
"value": "Office WholeBuilding - Sm Office -",
|
571
|
+
"condition": "SmallOffice"
|
572
|
+
},
|
573
|
+
{
|
574
|
+
"name": "system_type",
|
575
|
+
"value": "PSZ-AC with gas coil heat",
|
576
|
+
"condition": "MediumOffice"
|
577
|
+
},
|
578
|
+
{
|
579
|
+
"name": "space_type",
|
580
|
+
"value": "Office WholeBuilding - Md Office -",
|
581
|
+
"condition": "MediumOffice"
|
582
|
+
},
|
583
|
+
{
|
584
|
+
"name": "space_type",
|
585
|
+
"value": "Retail Retail -",
|
586
|
+
"condition": "RetailStandalone"
|
587
|
+
},
|
588
|
+
{
|
589
|
+
"name": "space_type",
|
590
|
+
"value": "Retail Point_of_Sale -",
|
591
|
+
"condition": "RetailStandalone"
|
592
|
+
},
|
593
|
+
{
|
594
|
+
"name": "space_type",
|
595
|
+
"value": "Retail Entry -",
|
596
|
+
"condition": "RetailStandalone"
|
597
|
+
},
|
598
|
+
{
|
599
|
+
"name": "space_type",
|
600
|
+
"value": "Retail Back_Space -",
|
601
|
+
"condition": "RetailStandalone"
|
602
|
+
}
|
603
|
+
]
|
604
|
+
}
|
605
|
+
}
|
606
|
+
],
|
607
|
+
"General Controls and Operations": [{
|
608
|
+
"Upgrade operating protocols, calibration, and/or sequencing": {
|
609
|
+
"measure_dir_name": "AdjustThermostatSetpointsByDegrees",
|
610
|
+
"arguments": [{
|
611
|
+
"name": "__SKIP__",
|
612
|
+
"value": false,
|
613
|
+
"condition": ""
|
614
|
+
},
|
615
|
+
{
|
616
|
+
"name": "cooling_adjustment",
|
617
|
+
"value": 1.0,
|
618
|
+
"condition": ""
|
619
|
+
},
|
620
|
+
{
|
621
|
+
"name": "heating_adjustment",
|
622
|
+
"value": -1.0,
|
623
|
+
"condition": ""
|
624
|
+
}
|
625
|
+
]
|
626
|
+
}
|
627
|
+
}],
|
628
|
+
"Fan": [{
|
629
|
+
"Replace with higher efficiency": {
|
630
|
+
"measure_dir_name": "ReplaceFanTotalEfficiency",
|
631
|
+
"arguments": [{
|
632
|
+
"name": "__SKIP__",
|
633
|
+
"value": false,
|
634
|
+
"condition": ""
|
635
|
+
},
|
636
|
+
{
|
637
|
+
"name": "motor_eff",
|
638
|
+
"value": 80.0,
|
639
|
+
"condition": ""
|
640
|
+
}
|
641
|
+
]
|
642
|
+
}
|
643
|
+
}],
|
644
|
+
"Air Distribution": [{
|
645
|
+
"Improve ventilation fans": {
|
646
|
+
"measure_dir_name": "ImproveFanTotalEfficiencybyPercentage",
|
647
|
+
"arguments": [{
|
648
|
+
"name": "__SKIP__",
|
649
|
+
"value": false,
|
650
|
+
"condition": ""
|
651
|
+
},
|
652
|
+
{
|
653
|
+
"name": "motor_eff",
|
654
|
+
"value": 10.0,
|
655
|
+
"condition": ""
|
656
|
+
}
|
657
|
+
]
|
658
|
+
}
|
659
|
+
},
|
660
|
+
{
|
661
|
+
"Install demand control ventilation": {
|
662
|
+
"measure_dir_name": "EnableDemandControlledVentilation",
|
663
|
+
"arguments": [{
|
664
|
+
"name": "__SKIP__",
|
665
|
+
"value": false,
|
666
|
+
"condition": ""
|
667
|
+
},
|
668
|
+
{
|
669
|
+
"name": "dcv_type",
|
670
|
+
"value": "EnableDCV",
|
671
|
+
"condition": ""
|
672
|
+
}
|
673
|
+
]
|
674
|
+
}
|
675
|
+
},
|
676
|
+
{
|
677
|
+
"Add or repair economizer": {
|
678
|
+
"measure_dir_name": "EnableEconomizerControl",
|
679
|
+
"arguments": [{
|
680
|
+
"name": "__SKIP__",
|
681
|
+
"value": false,
|
682
|
+
"condition": ""
|
683
|
+
},
|
684
|
+
{
|
685
|
+
"name": "economizer_type",
|
686
|
+
"value": "FixedDryBulb",
|
687
|
+
"condition": ""
|
688
|
+
}
|
689
|
+
]
|
690
|
+
}
|
691
|
+
}
|
692
|
+
],
|
693
|
+
"Heat Recovery": [{
|
694
|
+
"Add energy recovery": {
|
695
|
+
"measure_dir_name": "add_energy_recovery_ventilator",
|
696
|
+
"arguments": [{
|
697
|
+
"name": "__SKIP__",
|
698
|
+
"value": false,
|
699
|
+
"condition": ""
|
700
|
+
},
|
701
|
+
{
|
702
|
+
"name": "sensible_eff_at_100_heating",
|
703
|
+
"value": 0,
|
704
|
+
"condition": ""
|
705
|
+
},
|
706
|
+
{
|
707
|
+
"name": "latent_eff_at_100_heating",
|
708
|
+
"value": 0,
|
709
|
+
"condition": ""
|
710
|
+
},
|
711
|
+
{
|
712
|
+
"name": "sensible_eff_at_75_heating",
|
713
|
+
"value": 0,
|
714
|
+
"condition": ""
|
715
|
+
},
|
716
|
+
{
|
717
|
+
"name": "latent_eff_at_75_heating",
|
718
|
+
"value": 0,
|
719
|
+
"condition": ""
|
720
|
+
},
|
721
|
+
{
|
722
|
+
"name": "sensible_eff_at_100_cooling",
|
723
|
+
"value": 1,
|
724
|
+
"condition": ""
|
725
|
+
},
|
726
|
+
{
|
727
|
+
"name": "latent_eff_at_100_cooling",
|
728
|
+
"value": 1,
|
729
|
+
"condition": ""
|
730
|
+
},
|
731
|
+
{
|
732
|
+
"name": "sensible_eff_at_75_cooling",
|
733
|
+
"value": 1,
|
734
|
+
"condition": ""
|
735
|
+
},
|
736
|
+
{
|
737
|
+
"name": "latent_eff_at_75_cooling",
|
738
|
+
"value": 1,
|
739
|
+
"condition": ""
|
740
|
+
}
|
741
|
+
]
|
742
|
+
}
|
743
|
+
}],
|
744
|
+
"Domestic Hot Water": [{
|
745
|
+
"Replace or upgrade water heater": {
|
746
|
+
"measure_dir_name": "set_water_heater_efficiency_heat_lossand_peak_water_flow_rate",
|
747
|
+
"arguments": [{
|
748
|
+
"name": "__SKIP__",
|
749
|
+
"value": false,
|
750
|
+
"condition": ""
|
751
|
+
},
|
752
|
+
{
|
753
|
+
"name": "heater_fuel_type_widget",
|
754
|
+
"value": "NaturalGas",
|
755
|
+
"condition": ""
|
756
|
+
},
|
757
|
+
{
|
758
|
+
"name": "heater_thermal_efficiency",
|
759
|
+
"value": 0.88,
|
760
|
+
"condition": ""
|
761
|
+
}
|
762
|
+
]
|
763
|
+
}
|
764
|
+
}, {
|
765
|
+
"Add pipe insulation": {
|
766
|
+
"measure_dir_name": "set_water_heater_efficiency_heat_lossand_peak_water_flow_rate",
|
767
|
+
"arguments": [{
|
768
|
+
"name": "__SKIP__",
|
769
|
+
"value": false,
|
770
|
+
"condition": ""
|
771
|
+
},
|
772
|
+
{
|
773
|
+
"name": "onoff_cycle_loss_coefficient_to_ambient_temperature",
|
774
|
+
"value": 0.25,
|
775
|
+
"condition": ""
|
776
|
+
}
|
777
|
+
]
|
778
|
+
}
|
779
|
+
}, {
|
780
|
+
"Add recirculating pumps": {
|
781
|
+
"measure_dir_name": "set_water_heater_efficiency_heat_lossand_peak_water_flow_rate",
|
782
|
+
"arguments": [{
|
783
|
+
"name": "__SKIP__",
|
784
|
+
"value": false,
|
785
|
+
"condition": ""
|
786
|
+
},
|
787
|
+
{
|
788
|
+
"name": "onoff_cycle_loss_coefficient_to_ambient_temperature",
|
789
|
+
"value": 0.1,
|
790
|
+
"condition": ""
|
791
|
+
}
|
792
|
+
]
|
793
|
+
}
|
794
|
+
}],
|
795
|
+
"Water Use": [{
|
796
|
+
"Install low-flow faucets and showerheads": {
|
797
|
+
"measure_dir_name": "reduce_water_use_by_percentage",
|
798
|
+
"arguments": [{
|
799
|
+
"name": "__SKIP__",
|
800
|
+
"value": false,
|
801
|
+
"condition": ""
|
802
|
+
},
|
803
|
+
{
|
804
|
+
"name": "water_use_reduction_percent",
|
805
|
+
"value": 50.0,
|
806
|
+
"condition": ""
|
807
|
+
}
|
808
|
+
]
|
809
|
+
}
|
810
|
+
}]
|
811
|
+
}
|