openstudio-calibration 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +5 -0
- data/lib/measures/ExteriorWallThermalPropertiesMultiplier/measure.xml +3 -4
- data/lib/measures/ExteriorWallThermalPropertiesPercentChange/measure.xml +3 -4
- data/lib/measures/HardSizeHvac/measure.rb +8 -6
- data/lib/measures/HardSizeHvac/measure.xml +16 -4
- data/lib/measures/RoofThermalPropertiesMultiplier/measure.xml +3 -4
- data/lib/measures/RoofThermalPropertiesPercentChange/measure.xml +3 -4
- data/lib/measures/TimeseriesObjectiveFunction/README.md +171 -5
- data/lib/measures/TimeseriesObjectiveFunction/measure.rb +1 -1
- data/lib/measures/TimeseriesObjectiveFunction/measure.xml +10 -84
- data/lib/measures/TimeseriesPlot/README.md +35 -5
- data/lib/measures/TimeseriesPlot/measure.rb +1 -1
- data/lib/measures/TimeseriesPlot/measure.xml +10 -24
- data/lib/openstudio/calibration/version.rb +1 -1
- metadata +6 -7
- data/lib/measures/inspect_and_edit_parametric_schedules/docs/.gitkeep +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae5db57508794a73f423c8ea2defcfce9d8b4b51dc3344903d1070cded32f93a
|
4
|
+
data.tar.gz: cdc258f217d2ab55a0c98c0ef25b59b433be718b3ac1874fdadfe4e416b768ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c48a1b3eecdf942d97b2eb21cbaf24b44b7e8b7843cae02d6266c318e6b0a83c6a9201317f92a2163725da4c3aaeba3639c01f3403ceee8da688073069b00934
|
7
|
+
data.tar.gz: 251482fc84d48c19a23a41c13c90c853b55b3df22c57bb0e0c35236fe01434df4a44bce48a28470d0383ff96e90726e3458715988a5c3c90ccbefb40dca0a90b
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# OpenStudio Calibration Measures Gem
|
2
2
|
|
3
|
+
## Version 0.5.1
|
4
|
+
* Fixed [#24]( https://github.com/NREL/openstudio-calibration-gem/pull/24 ), HardSizeHvac: undefined method `runSizingRun'
|
5
|
+
* Fixed [#42]( https://github.com/NREL/openstudio-calibration-gem/pull/42 ), Update reporting measures in repo to pass in model = nil
|
6
|
+
* Fixed [#43]( https://github.com/NREL/openstudio-calibration-gem/pull/43 ), Check all measures in this repo for multiple tags
|
7
|
+
|
3
8
|
## Version 0.5.0
|
4
9
|
* Support for OpenStudio 3.3 (upgrade to extension gem 0.5.1 and standards gem 0.2.15)
|
5
10
|
- Fixed [#35]( https://github.com/NREL/openstudio-calibration-gem/pull/35 ), adding compatibility matrix and contribution policy
|
@@ -3,9 +3,9 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>exterior_wall_thermal_properties_multiplier</name>
|
5
5
|
<uid>6ab39cf2-1f9e-4570-a797-360a814aaa74</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
8
|
-
<xml_checksum>
|
6
|
+
<version_id>cc91b451-1ab1-4b68-9bef-d4e7575e6500</version_id>
|
7
|
+
<version_modified>20220223T012552Z</version_modified>
|
8
|
+
<xml_checksum>EB1A0C08</xml_checksum>
|
9
9
|
<class_name>ExteriorWallThermalPropertiesMultiplier</class_name>
|
10
10
|
<display_name>Exterior Wall Thermal Properties Multiplier</display_name>
|
11
11
|
<description>Change exterior walls by altering the thermal resistance, density, and solar absorptance of the wall constructions by a Multiplier</description>
|
@@ -40,7 +40,6 @@
|
|
40
40
|
<provenances />
|
41
41
|
<tags>
|
42
42
|
<tag>Envelope.Opaque</tag>
|
43
|
-
<tag>Calibration</tag>
|
44
43
|
</tags>
|
45
44
|
<attributes>
|
46
45
|
<attribute>
|
@@ -3,9 +3,9 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>exterior_wall_thermal_properties_percent_change</name>
|
5
5
|
<uid>6ab39cf2-1f9e-4570-a797-360a814aaa64</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
8
|
-
<xml_checksum>
|
6
|
+
<version_id>900fc466-62cd-4726-8917-164d0e5c670f</version_id>
|
7
|
+
<version_modified>20220223T012552Z</version_modified>
|
8
|
+
<xml_checksum>EB1A0C08</xml_checksum>
|
9
9
|
<class_name>ExteriorWallThermalPropertiesPercentChange</class_name>
|
10
10
|
<display_name>Exterior Wall Thermal Percent Change</display_name>
|
11
11
|
<description>Change exterior walls by altering the thermal resistance, density, and solar absorptance of the wall constructions by a Percent Change</description>
|
@@ -40,7 +40,6 @@
|
|
40
40
|
<provenances />
|
41
41
|
<tags>
|
42
42
|
<tag>Envelope.Opaque</tag>
|
43
|
-
<tag>Calibration</tag>
|
44
43
|
</tags>
|
45
44
|
<attributes>
|
46
45
|
<attribute>
|
@@ -66,13 +66,15 @@ class HardSizeHVAC < OpenStudio::Measure::ModelMeasure
|
|
66
66
|
def run(model, runner, user_arguments)
|
67
67
|
super(model, runner, user_arguments)
|
68
68
|
|
69
|
-
#
|
70
|
-
|
69
|
+
# Make the standard applier
|
70
|
+
standard = Standard.build('90.1-2004') # template choice doesn't matter
|
71
71
|
|
72
|
-
#
|
73
|
-
|
74
|
-
|
75
|
-
|
72
|
+
# Perform a sizing run (2.5.1 and later)
|
73
|
+
sizing_run_path = OpenStudio::Path.new(File.dirname(__FILE__) + '/output/SR1').to_s
|
74
|
+
runner.registerInfo("Performing sizing run at #{sizing_run_path}.")
|
75
|
+
if standard.model_run_sizing_run(model, sizing_run_path) == false
|
76
|
+
return false
|
77
|
+
end
|
76
78
|
|
77
79
|
# Hard sizing every object in the model.
|
78
80
|
model.applySizingValues
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>hard_size_hvac</name>
|
5
5
|
<uid>d7da749f-6318-4077-b502-25994a713b27</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>0647d2b3-e8b0-4529-962f-dbb85d4945fa</version_id>
|
7
|
+
<version_modified>20220223T145950Z</version_modified>
|
8
8
|
<xml_checksum>2B526343</xml_checksum>
|
9
9
|
<class_name>HardSizeHVAC</class_name>
|
10
10
|
<display_name>Hard Size HVAC</display_name>
|
@@ -71,12 +71,24 @@
|
|
71
71
|
<version>
|
72
72
|
<software_program>OpenStudio</software_program>
|
73
73
|
<identifier>1.5.0</identifier>
|
74
|
-
<min_compatible>
|
74
|
+
<min_compatible>2.5.1</min_compatible>
|
75
75
|
</version>
|
76
76
|
<filename>measure.rb</filename>
|
77
77
|
<filetype>rb</filetype>
|
78
78
|
<usage_type>script</usage_type>
|
79
|
-
<checksum>
|
79
|
+
<checksum>0920138B</checksum>
|
80
|
+
</file>
|
81
|
+
<file>
|
82
|
+
<filename>small_office.osm</filename>
|
83
|
+
<filetype>osm</filetype>
|
84
|
+
<usage_type>test</usage_type>
|
85
|
+
<checksum>0FB2ACC8</checksum>
|
86
|
+
</file>
|
87
|
+
<file>
|
88
|
+
<filename>hard_size_hvac_test.rb</filename>
|
89
|
+
<filetype>rb</filetype>
|
90
|
+
<usage_type>test</usage_type>
|
91
|
+
<checksum>FA5BB28D</checksum>
|
80
92
|
</file>
|
81
93
|
</files>
|
82
94
|
</measure>
|
@@ -3,9 +3,9 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>roof_thermal_properties_multiplier</name>
|
5
5
|
<uid>6c4eb22b-770f-456c-bcd1-084cfad89eeb</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
8
|
-
<xml_checksum>
|
6
|
+
<version_id>5fbeb5c9-bf38-4798-876e-ec5f23962ef0</version_id>
|
7
|
+
<version_modified>20220223T012552Z</version_modified>
|
8
|
+
<xml_checksum>EB1A0C08</xml_checksum>
|
9
9
|
<class_name>RoofThermalPropertiesMultiplier</class_name>
|
10
10
|
<display_name>Roof Thermal Properties Multiplier</display_name>
|
11
11
|
<description>Change Roof by altering the thermal resistance, density, and solar absorptance of the wall constructions by a Multiplier</description>
|
@@ -40,7 +40,6 @@
|
|
40
40
|
<provenances />
|
41
41
|
<tags>
|
42
42
|
<tag>Envelope.Opaque</tag>
|
43
|
-
<tag>Calibration</tag>
|
44
43
|
</tags>
|
45
44
|
<attributes>
|
46
45
|
<attribute>
|
@@ -3,9 +3,9 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>roof_thermal_properties_percent_change</name>
|
5
5
|
<uid>07516685-60fd-4da8-9872-1154a995047d</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
8
|
-
<xml_checksum>
|
6
|
+
<version_id>19d0d728-74c8-4344-94ea-af1f1e406f16</version_id>
|
7
|
+
<version_modified>20220223T012552Z</version_modified>
|
8
|
+
<xml_checksum>EB1A0C08</xml_checksum>
|
9
9
|
<class_name>RoofThermalPropertiesPercentChange</class_name>
|
10
10
|
<display_name>Roof Thermal Properties Percent Change</display_name>
|
11
11
|
<description>Change Roof by altering the thermal resistance, density, and solar absorptance of the wall constructions by a Percent Change</description>
|
@@ -40,7 +40,6 @@
|
|
40
40
|
<provenances />
|
41
41
|
<tags>
|
42
42
|
<tag>Envelope.Opaque</tag>
|
43
|
-
<tag>Calibration</tag>
|
44
43
|
</tags>
|
45
44
|
<attributes>
|
46
45
|
<attribute>
|
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
###### (Automatically generated documentation)
|
4
4
|
|
5
|
-
#
|
5
|
+
# TimeSeries Objective Function
|
6
6
|
|
7
7
|
## Description
|
8
|
-
|
8
|
+
Creates Objective Function from Timeseries Data
|
9
9
|
|
10
10
|
## Modeler Description
|
11
|
-
|
11
|
+
Creates Objective Function from Timeseries Data. The measure applies a Norm at each timestep between the difference of CSV metered data and SQL model data. A timeseries plot can also be created. Possible outputs are 'cvrmse', 'nmbe', 'simdata' = sum of the simulated data, 'csvdata' = sum of metered data, 'diff' = P Norm between the metered and simulated data if Norm is 1 or 2, else its just the Difference.
|
12
12
|
|
13
13
|
## Measure Type
|
14
|
-
|
14
|
+
ReportingMeasure
|
15
15
|
|
16
16
|
## Taxonomy
|
17
17
|
|
@@ -19,9 +19,175 @@ ModelMeasure
|
|
19
19
|
## Arguments
|
20
20
|
|
21
21
|
|
22
|
+
### Path to CSV file for the metered data
|
23
|
+
Path to CSV file including file name.
|
24
|
+
**Name:** csv_name,
|
25
|
+
**Type:** String,
|
26
|
+
**Units:** ,
|
27
|
+
**Required:** true,
|
28
|
+
**Model Dependent:** false
|
29
|
+
|
30
|
+
### CSV Time Header
|
31
|
+
CSV Time Header Value. Used to determine the timestamp column in the CSV file
|
32
|
+
**Name:** csv_time_header,
|
33
|
+
**Type:** String,
|
34
|
+
**Units:** ,
|
35
|
+
**Required:** true,
|
36
|
+
**Model Dependent:** false
|
37
|
+
|
38
|
+
### CSV variable name
|
39
|
+
CSV variable name. Used to determine the variable column in the CSV file
|
40
|
+
**Name:** csv_var,
|
41
|
+
**Type:** String,
|
42
|
+
**Units:** ,
|
43
|
+
**Required:** true,
|
44
|
+
**Model Dependent:** false
|
45
|
+
|
46
|
+
### Convert Units
|
47
|
+
Convert Units in Metered Data
|
48
|
+
**Name:** convert_data,
|
49
|
+
**Type:** Choice,
|
50
|
+
**Units:** ,
|
51
|
+
**Required:** true,
|
52
|
+
**Model Dependent:** false
|
53
|
+
|
54
|
+
### CSV variable display name
|
55
|
+
CSV variable display name. Not yet Implemented
|
56
|
+
**Name:** csv_var_dn,
|
57
|
+
**Type:** String,
|
58
|
+
**Units:** ,
|
59
|
+
**Required:** true,
|
60
|
+
**Model Dependent:** false
|
61
|
+
|
62
|
+
### Year in csv data timestamp
|
63
|
+
Is the Year in the csv data timestamp => mm:dd:yy or mm:dd (true/false)
|
64
|
+
**Name:** year,
|
65
|
+
**Type:** Boolean,
|
66
|
+
**Units:** ,
|
67
|
+
**Required:** true,
|
68
|
+
**Model Dependent:** false
|
69
|
+
|
70
|
+
### Seconds in csv data timestamp
|
71
|
+
Is the Seconds in the csv data timestamp => hh:mm:ss or hh:mm (true/false)
|
72
|
+
**Name:** seconds,
|
73
|
+
**Type:** Boolean,
|
74
|
+
**Units:** ,
|
75
|
+
**Required:** true,
|
76
|
+
**Model Dependent:** false
|
77
|
+
|
78
|
+
### SQL key value
|
79
|
+
SQL key value for the SQL query to find the variable in the SQL file
|
80
|
+
**Name:** key_value,
|
81
|
+
**Type:** String,
|
82
|
+
**Units:** ,
|
83
|
+
**Required:** true,
|
84
|
+
**Model Dependent:** false
|
85
|
+
|
86
|
+
### TimeSeries Name
|
87
|
+
TimeSeries Name for the SQL query to find the variable in the SQL file
|
88
|
+
**Name:** timeseries_name,
|
89
|
+
**Type:** String,
|
90
|
+
**Units:** ,
|
91
|
+
**Required:** true,
|
92
|
+
**Model Dependent:** false
|
93
|
+
|
94
|
+
### Reporting Frequency
|
95
|
+
Reporting Frequency for SQL Query
|
96
|
+
**Name:** reporting_frequency,
|
97
|
+
**Type:** Choice,
|
98
|
+
**Units:** ,
|
99
|
+
**Required:** true,
|
100
|
+
**Model Dependent:** false
|
101
|
+
|
102
|
+
### Environment Period
|
103
|
+
Environment Period for SQL query
|
104
|
+
**Name:** environment_period,
|
105
|
+
**Type:** String,
|
106
|
+
**Units:** ,
|
107
|
+
**Required:** true,
|
108
|
+
**Model Dependent:** false
|
109
|
+
|
110
|
+
### Norm of the difference of csv and sql
|
111
|
+
Norm of the difference of csv and sql. 1 is absolute value. 2 is euclidean distance. 3 is raw difference.
|
112
|
+
**Name:** norm,
|
113
|
+
**Type:** Double,
|
114
|
+
**Units:** ,
|
115
|
+
**Required:** true,
|
116
|
+
**Model Dependent:** false
|
117
|
+
|
118
|
+
### Scale factor to apply to the difference
|
119
|
+
Scale factor to apply to the difference (1 is no scale)
|
120
|
+
**Name:** scale,
|
121
|
+
**Type:** Double,
|
122
|
+
**Units:** ,
|
123
|
+
**Required:** true,
|
124
|
+
**Model Dependent:** false
|
125
|
+
|
126
|
+
### Find Available data in the SQL file
|
127
|
+
Will RegisterInfo all the 'EnvPeriod', 'ReportingFrequencies', 'VariableNames', 'KeyValues' in the SQL file. Useful for debugging SQL issues.
|
128
|
+
**Name:** find_avail,
|
129
|
+
**Type:** Boolean,
|
130
|
+
**Units:** ,
|
131
|
+
**Required:** true,
|
132
|
+
**Model Dependent:** false
|
133
|
+
|
134
|
+
### algorithm_download
|
135
|
+
Make JSON data available for algorithm_download (true/false)
|
136
|
+
**Name:** algorithm_download,
|
137
|
+
**Type:** Boolean,
|
138
|
+
**Units:** ,
|
139
|
+
**Required:** true,
|
140
|
+
**Model Dependent:** false
|
141
|
+
|
142
|
+
### plot_flag timeseries data
|
143
|
+
Create plot of timeseries data (true/false)
|
144
|
+
**Name:** plot_flag,
|
145
|
+
**Type:** Boolean,
|
146
|
+
**Units:** ,
|
147
|
+
**Required:** true,
|
148
|
+
**Model Dependent:** false
|
149
|
+
|
150
|
+
### Plot name
|
151
|
+
Name to include in reporting file name.
|
152
|
+
**Name:** plot_name,
|
153
|
+
**Type:** String,
|
154
|
+
**Units:** ,
|
155
|
+
**Required:** true,
|
156
|
+
**Model Dependent:** false
|
157
|
+
|
158
|
+
### verbose_messages
|
159
|
+
verbose messages. Useful for debugging but MAJOR Performance Hit.
|
160
|
+
**Name:** verbose_messages,
|
161
|
+
**Type:** Boolean,
|
162
|
+
**Units:** ,
|
163
|
+
**Required:** true,
|
164
|
+
**Model Dependent:** false
|
165
|
+
|
166
|
+
### warning_messages
|
167
|
+
Warn on missing data.
|
168
|
+
**Name:** warning_messages,
|
169
|
+
**Type:** Boolean,
|
170
|
+
**Units:** ,
|
171
|
+
**Required:** true,
|
172
|
+
**Model Dependent:** false
|
173
|
+
|
174
|
+
### add_first_zero_for_plots
|
175
|
+
Add a point of zero value to the plot at the beginning of the runperiod.
|
176
|
+
**Name:** add_first_zero_for_plots,
|
177
|
+
**Type:** Boolean,
|
178
|
+
**Units:** ,
|
179
|
+
**Required:** true,
|
180
|
+
**Model Dependent:** false
|
181
|
+
|
182
|
+
### add_last_zero_for_plots
|
183
|
+
Add a point of zero value to the plot at the end of the runperiod.
|
184
|
+
**Name:** add_last_zero_for_plots,
|
185
|
+
**Type:** Boolean,
|
186
|
+
**Units:** ,
|
187
|
+
**Required:** true,
|
188
|
+
**Model Dependent:** false
|
22
189
|
|
23
190
|
|
24
|
-
This measure does not have any user arguments
|
25
191
|
|
26
192
|
|
27
193
|
|
@@ -59,7 +59,7 @@ class TimeseriesObjectiveFunction < OpenStudio::Measure::ReportingMeasure
|
|
59
59
|
end
|
60
60
|
|
61
61
|
# define the arguments that the user will input
|
62
|
-
def arguments
|
62
|
+
def arguments(model = nil)
|
63
63
|
args = OpenStudio::Measure::OSArgumentVector.new
|
64
64
|
|
65
65
|
# the name of the sql file
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>timeseries_objective_function</name>
|
5
5
|
<uid>6804217d-4737-45f3-82df-b81393c29ce3</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>300a1bda-e79c-4290-bbd9-bd1fe843264a</version_id>
|
7
|
+
<version_modified>20220223T012006Z</version_modified>
|
8
8
|
<xml_checksum>FFE04372</xml_checksum>
|
9
9
|
<class_name>TimeseriesObjectiveFunction</class_name>
|
10
10
|
<display_name>TimeSeries Objective Function</display_name>
|
@@ -16,43 +16,33 @@
|
|
16
16
|
<display_name>Path to CSV file for the metered data</display_name>
|
17
17
|
<description>Path to CSV file including file name.</description>
|
18
18
|
<type>String</type>
|
19
|
-
<units></units>
|
20
19
|
<required>true</required>
|
21
20
|
<model_dependent>false</model_dependent>
|
22
21
|
<default_value>../../../lib/resources/mtr.csv</default_value>
|
23
|
-
<min_value></min_value>
|
24
|
-
<max_value></max_value>
|
25
22
|
</argument>
|
26
23
|
<argument>
|
27
24
|
<name>csv_time_header</name>
|
28
25
|
<display_name>CSV Time Header</display_name>
|
29
26
|
<description>CSV Time Header Value. Used to determine the timestamp column in the CSV file</description>
|
30
27
|
<type>String</type>
|
31
|
-
<units></units>
|
32
28
|
<required>true</required>
|
33
29
|
<model_dependent>false</model_dependent>
|
34
30
|
<default_value>Date/Time</default_value>
|
35
|
-
<min_value></min_value>
|
36
|
-
<max_value></max_value>
|
37
31
|
</argument>
|
38
32
|
<argument>
|
39
33
|
<name>csv_var</name>
|
40
34
|
<display_name>CSV variable name</display_name>
|
41
35
|
<description>CSV variable name. Used to determine the variable column in the CSV file</description>
|
42
36
|
<type>String</type>
|
43
|
-
<units></units>
|
44
37
|
<required>true</required>
|
45
38
|
<model_dependent>false</model_dependent>
|
46
39
|
<default_value>Whole Building:Facility Total Electric Demand Power [W](TimeStep)</default_value>
|
47
|
-
<min_value></min_value>
|
48
|
-
<max_value></max_value>
|
49
40
|
</argument>
|
50
41
|
<argument>
|
51
42
|
<name>convert_data</name>
|
52
43
|
<display_name>Convert Units</display_name>
|
53
44
|
<description>Convert Units in Metered Data</description>
|
54
45
|
<type>Choice</type>
|
55
|
-
<units></units>
|
56
46
|
<required>true</required>
|
57
47
|
<model_dependent>false</model_dependent>
|
58
48
|
<default_value>None</default_value>
|
@@ -78,27 +68,21 @@
|
|
78
68
|
<display_name>None</display_name>
|
79
69
|
</choice>
|
80
70
|
</choices>
|
81
|
-
<min_value></min_value>
|
82
|
-
<max_value></max_value>
|
83
71
|
</argument>
|
84
72
|
<argument>
|
85
73
|
<name>csv_var_dn</name>
|
86
74
|
<display_name>CSV variable display name</display_name>
|
87
75
|
<description>CSV variable display name. Not yet Implemented</description>
|
88
76
|
<type>String</type>
|
89
|
-
<units></units>
|
90
77
|
<required>true</required>
|
91
78
|
<model_dependent>false</model_dependent>
|
92
79
|
<default_value></default_value>
|
93
|
-
<min_value></min_value>
|
94
|
-
<max_value></max_value>
|
95
80
|
</argument>
|
96
81
|
<argument>
|
97
82
|
<name>year</name>
|
98
83
|
<display_name>Year in csv data timestamp</display_name>
|
99
84
|
<description>Is the Year in the csv data timestamp => mm:dd:yy or mm:dd (true/false)</description>
|
100
85
|
<type>Boolean</type>
|
101
|
-
<units></units>
|
102
86
|
<required>true</required>
|
103
87
|
<model_dependent>false</model_dependent>
|
104
88
|
<default_value>true</default_value>
|
@@ -112,15 +96,12 @@
|
|
112
96
|
<display_name>false</display_name>
|
113
97
|
</choice>
|
114
98
|
</choices>
|
115
|
-
<min_value></min_value>
|
116
|
-
<max_value></max_value>
|
117
99
|
</argument>
|
118
100
|
<argument>
|
119
101
|
<name>seconds</name>
|
120
102
|
<display_name>Seconds in csv data timestamp</display_name>
|
121
103
|
<description>Is the Seconds in the csv data timestamp => hh:mm:ss or hh:mm (true/false)</description>
|
122
104
|
<type>Boolean</type>
|
123
|
-
<units></units>
|
124
105
|
<required>true</required>
|
125
106
|
<model_dependent>false</model_dependent>
|
126
107
|
<default_value>true</default_value>
|
@@ -134,42 +115,32 @@
|
|
134
115
|
<display_name>false</display_name>
|
135
116
|
</choice>
|
136
117
|
</choices>
|
137
|
-
<min_value></min_value>
|
138
|
-
<max_value></max_value>
|
139
118
|
</argument>
|
140
119
|
<argument>
|
141
120
|
<name>key_value</name>
|
142
121
|
<display_name>SQL key value</display_name>
|
143
122
|
<description>SQL key value for the SQL query to find the variable in the SQL file</description>
|
144
123
|
<type>String</type>
|
145
|
-
<units></units>
|
146
124
|
<required>true</required>
|
147
125
|
<model_dependent>false</model_dependent>
|
148
126
|
<default_value></default_value>
|
149
|
-
<min_value></min_value>
|
150
|
-
<max_value></max_value>
|
151
127
|
</argument>
|
152
128
|
<argument>
|
153
129
|
<name>timeseries_name</name>
|
154
130
|
<display_name>TimeSeries Name</display_name>
|
155
131
|
<description>TimeSeries Name for the SQL query to find the variable in the SQL file</description>
|
156
132
|
<type>String</type>
|
157
|
-
<units></units>
|
158
133
|
<required>true</required>
|
159
134
|
<model_dependent>false</model_dependent>
|
160
135
|
<default_value>Facility Total Electric Demand Power</default_value>
|
161
|
-
<min_value></min_value>
|
162
|
-
<max_value></max_value>
|
163
136
|
</argument>
|
164
137
|
<argument>
|
165
138
|
<name>reporting_frequency</name>
|
166
139
|
<display_name>Reporting Frequency</display_name>
|
167
140
|
<description>Reporting Frequency for SQL Query</description>
|
168
141
|
<type>Choice</type>
|
169
|
-
<units></units>
|
170
142
|
<required>true</required>
|
171
143
|
<model_dependent>false</model_dependent>
|
172
|
-
<default_value></default_value>
|
173
144
|
<choices>
|
174
145
|
<choice>
|
175
146
|
<value>Detailed</value>
|
@@ -196,51 +167,39 @@
|
|
196
167
|
<display_name>RunPeriod</display_name>
|
197
168
|
</choice>
|
198
169
|
</choices>
|
199
|
-
<min_value></min_value>
|
200
|
-
<max_value></max_value>
|
201
170
|
</argument>
|
202
171
|
<argument>
|
203
172
|
<name>environment_period</name>
|
204
173
|
<display_name>Environment Period</display_name>
|
205
174
|
<description>Environment Period for SQL query</description>
|
206
175
|
<type>String</type>
|
207
|
-
<units></units>
|
208
176
|
<required>true</required>
|
209
177
|
<model_dependent>false</model_dependent>
|
210
178
|
<default_value>RUN PERIOD 1</default_value>
|
211
|
-
<min_value></min_value>
|
212
|
-
<max_value></max_value>
|
213
179
|
</argument>
|
214
180
|
<argument>
|
215
181
|
<name>norm</name>
|
216
182
|
<display_name>Norm of the difference of csv and sql</display_name>
|
217
183
|
<description>Norm of the difference of csv and sql. 1 is absolute value. 2 is euclidean distance. 3 is raw difference.</description>
|
218
184
|
<type>Double</type>
|
219
|
-
<units></units>
|
220
185
|
<required>true</required>
|
221
186
|
<model_dependent>false</model_dependent>
|
222
187
|
<default_value>1</default_value>
|
223
|
-
<min_value></min_value>
|
224
|
-
<max_value></max_value>
|
225
188
|
</argument>
|
226
189
|
<argument>
|
227
190
|
<name>scale</name>
|
228
191
|
<display_name>Scale factor to apply to the difference</display_name>
|
229
192
|
<description>Scale factor to apply to the difference (1 is no scale)</description>
|
230
193
|
<type>Double</type>
|
231
|
-
<units></units>
|
232
194
|
<required>true</required>
|
233
195
|
<model_dependent>false</model_dependent>
|
234
196
|
<default_value>1</default_value>
|
235
|
-
<min_value></min_value>
|
236
|
-
<max_value></max_value>
|
237
197
|
</argument>
|
238
198
|
<argument>
|
239
199
|
<name>find_avail</name>
|
240
200
|
<display_name>Find Available data in the SQL file</display_name>
|
241
201
|
<description>Will RegisterInfo all the 'EnvPeriod', 'ReportingFrequencies', 'VariableNames', 'KeyValues' in the SQL file. Useful for debugging SQL issues.</description>
|
242
202
|
<type>Boolean</type>
|
243
|
-
<units></units>
|
244
203
|
<required>true</required>
|
245
204
|
<model_dependent>false</model_dependent>
|
246
205
|
<default_value>true</default_value>
|
@@ -254,15 +213,12 @@
|
|
254
213
|
<display_name>false</display_name>
|
255
214
|
</choice>
|
256
215
|
</choices>
|
257
|
-
<min_value></min_value>
|
258
|
-
<max_value></max_value>
|
259
216
|
</argument>
|
260
217
|
<argument>
|
261
218
|
<name>algorithm_download</name>
|
262
219
|
<display_name>algorithm_download</display_name>
|
263
220
|
<description>Make JSON data available for algorithm_download (true/false)</description>
|
264
221
|
<type>Boolean</type>
|
265
|
-
<units></units>
|
266
222
|
<required>true</required>
|
267
223
|
<model_dependent>false</model_dependent>
|
268
224
|
<default_value>false</default_value>
|
@@ -276,15 +232,12 @@
|
|
276
232
|
<display_name>false</display_name>
|
277
233
|
</choice>
|
278
234
|
</choices>
|
279
|
-
<min_value></min_value>
|
280
|
-
<max_value></max_value>
|
281
235
|
</argument>
|
282
236
|
<argument>
|
283
237
|
<name>plot_flag</name>
|
284
238
|
<display_name>plot_flag timeseries data</display_name>
|
285
239
|
<description>Create plot of timeseries data (true/false)</description>
|
286
240
|
<type>Boolean</type>
|
287
|
-
<units></units>
|
288
241
|
<required>true</required>
|
289
242
|
<model_dependent>false</model_dependent>
|
290
243
|
<default_value>true</default_value>
|
@@ -298,27 +251,21 @@
|
|
298
251
|
<display_name>false</display_name>
|
299
252
|
</choice>
|
300
253
|
</choices>
|
301
|
-
<min_value></min_value>
|
302
|
-
<max_value></max_value>
|
303
254
|
</argument>
|
304
255
|
<argument>
|
305
256
|
<name>plot_name</name>
|
306
257
|
<display_name>Plot name</display_name>
|
307
258
|
<description>Name to include in reporting file name.</description>
|
308
259
|
<type>String</type>
|
309
|
-
<units></units>
|
310
260
|
<required>true</required>
|
311
261
|
<model_dependent>false</model_dependent>
|
312
262
|
<default_value></default_value>
|
313
|
-
<min_value></min_value>
|
314
|
-
<max_value></max_value>
|
315
263
|
</argument>
|
316
264
|
<argument>
|
317
265
|
<name>verbose_messages</name>
|
318
266
|
<display_name>verbose_messages</display_name>
|
319
267
|
<description>verbose messages. Useful for debugging but MAJOR Performance Hit.</description>
|
320
268
|
<type>Boolean</type>
|
321
|
-
<units></units>
|
322
269
|
<required>true</required>
|
323
270
|
<model_dependent>false</model_dependent>
|
324
271
|
<default_value>false</default_value>
|
@@ -332,15 +279,12 @@
|
|
332
279
|
<display_name>false</display_name>
|
333
280
|
</choice>
|
334
281
|
</choices>
|
335
|
-
<min_value></min_value>
|
336
|
-
<max_value></max_value>
|
337
282
|
</argument>
|
338
283
|
<argument>
|
339
284
|
<name>warning_messages</name>
|
340
285
|
<display_name>warning_messages</display_name>
|
341
286
|
<description>Warn on missing data.</description>
|
342
287
|
<type>Boolean</type>
|
343
|
-
<units></units>
|
344
288
|
<required>true</required>
|
345
289
|
<model_dependent>false</model_dependent>
|
346
290
|
<default_value>true</default_value>
|
@@ -354,15 +298,12 @@
|
|
354
298
|
<display_name>false</display_name>
|
355
299
|
</choice>
|
356
300
|
</choices>
|
357
|
-
<min_value></min_value>
|
358
|
-
<max_value></max_value>
|
359
301
|
</argument>
|
360
302
|
<argument>
|
361
303
|
<name>add_first_zero_for_plots</name>
|
362
304
|
<display_name>add_first_zero_for_plots</display_name>
|
363
305
|
<description>Add a point of zero value to the plot at the beginning of the runperiod.</description>
|
364
306
|
<type>Boolean</type>
|
365
|
-
<units></units>
|
366
307
|
<required>true</required>
|
367
308
|
<model_dependent>false</model_dependent>
|
368
309
|
<default_value>false</default_value>
|
@@ -376,15 +317,12 @@
|
|
376
317
|
<display_name>false</display_name>
|
377
318
|
</choice>
|
378
319
|
</choices>
|
379
|
-
<min_value></min_value>
|
380
|
-
<max_value></max_value>
|
381
320
|
</argument>
|
382
321
|
<argument>
|
383
322
|
<name>add_last_zero_for_plots</name>
|
384
323
|
<display_name>add_last_zero_for_plots</display_name>
|
385
324
|
<description>Add a point of zero value to the plot at the end of the runperiod.</description>
|
386
325
|
<type>Boolean</type>
|
387
|
-
<units></units>
|
388
326
|
<required>true</required>
|
389
327
|
<model_dependent>false</model_dependent>
|
390
328
|
<default_value>false</default_value>
|
@@ -398,8 +336,6 @@
|
|
398
336
|
<display_name>false</display_name>
|
399
337
|
</choice>
|
400
338
|
</choices>
|
401
|
-
<min_value></min_value>
|
402
|
-
<max_value></max_value>
|
403
339
|
</argument>
|
404
340
|
</arguments>
|
405
341
|
<outputs>
|
@@ -407,45 +343,35 @@
|
|
407
343
|
<name>diff</name>
|
408
344
|
<display_name>diff</display_name>
|
409
345
|
<short_name>diff</short_name>
|
410
|
-
<description></description>
|
411
346
|
<type>Double</type>
|
412
|
-
<units></units>
|
413
347
|
<model_dependent>false</model_dependent>
|
414
348
|
</output>
|
415
349
|
<output>
|
416
350
|
<name>simdata</name>
|
417
351
|
<display_name>simdata</display_name>
|
418
352
|
<short_name>simdata</short_name>
|
419
|
-
<description></description>
|
420
353
|
<type>Double</type>
|
421
|
-
<units></units>
|
422
354
|
<model_dependent>false</model_dependent>
|
423
355
|
</output>
|
424
356
|
<output>
|
425
357
|
<name>csvdata</name>
|
426
358
|
<display_name>csvdata</display_name>
|
427
359
|
<short_name>csvdata</short_name>
|
428
|
-
<description></description>
|
429
360
|
<type>Double</type>
|
430
|
-
<units></units>
|
431
361
|
<model_dependent>false</model_dependent>
|
432
362
|
</output>
|
433
363
|
<output>
|
434
364
|
<name>cvrmse</name>
|
435
365
|
<display_name>cvrmse</display_name>
|
436
366
|
<short_name>cvrmse</short_name>
|
437
|
-
<description></description>
|
438
367
|
<type>Double</type>
|
439
|
-
<units></units>
|
440
368
|
<model_dependent>false</model_dependent>
|
441
369
|
</output>
|
442
370
|
<output>
|
443
371
|
<name>nmbe</name>
|
444
372
|
<display_name>nmbe</display_name>
|
445
373
|
<short_name>nmbe</short_name>
|
446
|
-
<description></description>
|
447
374
|
<type>Double</type>
|
448
|
-
<units></units>
|
449
375
|
<model_dependent>false</model_dependent>
|
450
376
|
</output>
|
451
377
|
</outputs>
|
@@ -477,12 +403,6 @@
|
|
477
403
|
<usage_type>readmeerb</usage_type>
|
478
404
|
<checksum>703C9964</checksum>
|
479
405
|
</file>
|
480
|
-
<file>
|
481
|
-
<filename>README.md</filename>
|
482
|
-
<filetype>md</filetype>
|
483
|
-
<usage_type>readme</usage_type>
|
484
|
-
<checksum>7DE1F2CF</checksum>
|
485
|
-
</file>
|
486
406
|
<file>
|
487
407
|
<filename>LICENSE.md</filename>
|
488
408
|
<filetype>md</filetype>
|
@@ -498,13 +418,19 @@
|
|
498
418
|
<filename>measure.rb</filename>
|
499
419
|
<filetype>rb</filetype>
|
500
420
|
<usage_type>script</usage_type>
|
501
|
-
<checksum>
|
421
|
+
<checksum>70C9D9FB</checksum>
|
422
|
+
</file>
|
423
|
+
<file>
|
424
|
+
<filename>README.md</filename>
|
425
|
+
<filetype>md</filetype>
|
426
|
+
<usage_type>readme</usage_type>
|
427
|
+
<checksum>3F176FE0</checksum>
|
502
428
|
</file>
|
503
429
|
<file>
|
504
430
|
<filename>report.html.erb</filename>
|
505
431
|
<filetype>erb</filetype>
|
506
432
|
<usage_type>resource</usage_type>
|
507
|
-
<checksum>
|
433
|
+
<checksum>4D36345D</checksum>
|
508
434
|
</file>
|
509
435
|
</files>
|
510
436
|
</measure>
|
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
###### (Automatically generated documentation)
|
4
4
|
|
5
|
-
#
|
5
|
+
# Timeseries Plot
|
6
6
|
|
7
7
|
## Description
|
8
|
-
|
8
|
+
Creates an interactive timeseries plot of selected variable.
|
9
9
|
|
10
10
|
## Modeler Description
|
11
|
-
|
11
|
+
NOTE: This will load and respond slowly in the OS app, especially if you select * on a variable with many possible keys or you select timestep data. Suggest you open it in a web browser like Chrome instead.
|
12
12
|
|
13
13
|
## Measure Type
|
14
|
-
|
14
|
+
ReportingMeasure
|
15
15
|
|
16
16
|
## Taxonomy
|
17
17
|
|
@@ -19,8 +19,38 @@ ModelMeasure
|
|
19
19
|
## Arguments
|
20
20
|
|
21
21
|
|
22
|
+
### Enter Variable Name.
|
23
|
+
Valid values can be found in the eplusout.rdd file after a simulation is run.
|
24
|
+
**Name:** variable_name,
|
25
|
+
**Type:** String,
|
26
|
+
**Units:** ,
|
27
|
+
**Required:** true,
|
28
|
+
**Model Dependent:** false
|
29
|
+
|
30
|
+
### Reporting Frequency.
|
31
|
+
|
32
|
+
**Name:** reporting_frequency,
|
33
|
+
**Type:** Choice,
|
34
|
+
**Units:** ,
|
35
|
+
**Required:** true,
|
36
|
+
**Model Dependent:** false
|
37
|
+
|
38
|
+
### Enter Key Name.
|
39
|
+
Enter * for all objects or the full name of a specific object to.
|
40
|
+
**Name:** key_value,
|
41
|
+
**Type:** String,
|
42
|
+
**Units:** ,
|
43
|
+
**Required:** true,
|
44
|
+
**Model Dependent:** false
|
45
|
+
|
46
|
+
### availableEnvPeriods
|
47
|
+
availableEnvPeriods
|
48
|
+
**Name:** env,
|
49
|
+
**Type:** String,
|
50
|
+
**Units:** ,
|
51
|
+
**Required:** true,
|
52
|
+
**Model Dependent:** false
|
22
53
|
|
23
54
|
|
24
|
-
This measure does not have any user arguments
|
25
55
|
|
26
56
|
|
@@ -56,7 +56,7 @@ class TimeseriesPlot < OpenStudio::Measure::ReportingMeasure
|
|
56
56
|
end
|
57
57
|
|
58
58
|
# define the arguments that the user will input
|
59
|
-
def arguments
|
59
|
+
def arguments(model = nil)
|
60
60
|
args = OpenStudio::Measure::OSArgumentVector.new
|
61
61
|
|
62
62
|
# make an argument for the variable name
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>timeseries_plot</name>
|
5
5
|
<uid>6804217d-4737-45f3-82df-b81393c29ce7</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>f98dc824-7042-4ea0-be6d-200a24b5757e</version_id>
|
7
|
+
<version_modified>20220223T012006Z</version_modified>
|
8
8
|
<xml_checksum>FFE04372</xml_checksum>
|
9
9
|
<class_name>TimeseriesPlot</class_name>
|
10
10
|
<display_name>Timeseries Plot</display_name>
|
@@ -16,19 +16,13 @@
|
|
16
16
|
<display_name>Enter Variable Name.</display_name>
|
17
17
|
<description>Valid values can be found in the eplusout.rdd file after a simulation is run.</description>
|
18
18
|
<type>String</type>
|
19
|
-
<units></units>
|
20
19
|
<required>true</required>
|
21
20
|
<model_dependent>false</model_dependent>
|
22
|
-
<default_value></default_value>
|
23
|
-
<min_value></min_value>
|
24
|
-
<max_value></max_value>
|
25
21
|
</argument>
|
26
22
|
<argument>
|
27
23
|
<name>reporting_frequency</name>
|
28
24
|
<display_name>Reporting Frequency.</display_name>
|
29
|
-
<description></description>
|
30
25
|
<type>Choice</type>
|
31
|
-
<units></units>
|
32
26
|
<required>true</required>
|
33
27
|
<model_dependent>false</model_dependent>
|
34
28
|
<default_value>Hourly</default_value>
|
@@ -62,32 +56,24 @@
|
|
62
56
|
<display_name>Runperiod</display_name>
|
63
57
|
</choice>
|
64
58
|
</choices>
|
65
|
-
<min_value></min_value>
|
66
|
-
<max_value></max_value>
|
67
59
|
</argument>
|
68
60
|
<argument>
|
69
61
|
<name>key_value</name>
|
70
62
|
<display_name>Enter Key Name.</display_name>
|
71
63
|
<description>Enter * for all objects or the full name of a specific object to.</description>
|
72
64
|
<type>String</type>
|
73
|
-
<units></units>
|
74
65
|
<required>true</required>
|
75
66
|
<model_dependent>false</model_dependent>
|
76
67
|
<default_value>*</default_value>
|
77
|
-
<min_value></min_value>
|
78
|
-
<max_value></max_value>
|
79
68
|
</argument>
|
80
69
|
<argument>
|
81
70
|
<name>env</name>
|
82
71
|
<display_name>availableEnvPeriods</display_name>
|
83
72
|
<description>availableEnvPeriods</description>
|
84
73
|
<type>String</type>
|
85
|
-
<units></units>
|
86
74
|
<required>true</required>
|
87
75
|
<model_dependent>false</model_dependent>
|
88
76
|
<default_value>RUN PERIOD 1</default_value>
|
89
|
-
<min_value></min_value>
|
90
|
-
<max_value></max_value>
|
91
77
|
</argument>
|
92
78
|
</arguments>
|
93
79
|
<outputs />
|
@@ -119,12 +105,6 @@
|
|
119
105
|
<usage_type>readmeerb</usage_type>
|
120
106
|
<checksum>703C9964</checksum>
|
121
107
|
</file>
|
122
|
-
<file>
|
123
|
-
<filename>README.md</filename>
|
124
|
-
<filetype>md</filetype>
|
125
|
-
<usage_type>readme</usage_type>
|
126
|
-
<checksum>0B68E96D</checksum>
|
127
|
-
</file>
|
128
108
|
<file>
|
129
109
|
<filename>LICENSE.md</filename>
|
130
110
|
<filetype>md</filetype>
|
@@ -140,13 +120,19 @@
|
|
140
120
|
<filename>measure.rb</filename>
|
141
121
|
<filetype>rb</filetype>
|
142
122
|
<usage_type>script</usage_type>
|
143
|
-
<checksum>
|
123
|
+
<checksum>210E98F2</checksum>
|
124
|
+
</file>
|
125
|
+
<file>
|
126
|
+
<filename>README.md</filename>
|
127
|
+
<filetype>md</filetype>
|
128
|
+
<usage_type>readme</usage_type>
|
129
|
+
<checksum>A3A04D6D</checksum>
|
144
130
|
</file>
|
145
131
|
<file>
|
146
132
|
<filename>report.html.erb</filename>
|
147
133
|
<filetype>erb</filetype>
|
148
134
|
<usage_type>resource</usage_type>
|
149
|
-
<checksum>
|
135
|
+
<checksum>279ABA14</checksum>
|
150
136
|
</file>
|
151
137
|
</files>
|
152
138
|
</measure>
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstudio-calibration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Ball
|
8
8
|
- Nicholas Long
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-02-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -276,7 +276,6 @@ files:
|
|
276
276
|
- lib/measures/inspect_and_edit_parametric_schedules/LICENSE.md
|
277
277
|
- lib/measures/inspect_and_edit_parametric_schedules/README.md
|
278
278
|
- lib/measures/inspect_and_edit_parametric_schedules/README.md.erb
|
279
|
-
- lib/measures/inspect_and_edit_parametric_schedules/docs/.gitkeep
|
280
279
|
- lib/measures/inspect_and_edit_parametric_schedules/docs/apply_measures_now.png
|
281
280
|
- lib/measures/inspect_and_edit_parametric_schedules/measure.rb
|
282
281
|
- lib/measures/inspect_and_edit_parametric_schedules/measure.xml
|
@@ -296,8 +295,8 @@ licenses: []
|
|
296
295
|
metadata:
|
297
296
|
bug_tracker_uri: https://github.com/NREL/openstudio-calibration-gem/issues
|
298
297
|
changelog_uri: https://github.com/NREL/openstudio-calibration-gem/blob/develop/CHANGELOG.md
|
299
|
-
source_code_uri: https://github.com/NREL/openstudio-calibration-gem/tree/v0.5.
|
300
|
-
post_install_message:
|
298
|
+
source_code_uri: https://github.com/NREL/openstudio-calibration-gem/tree/v0.5.1
|
299
|
+
post_install_message:
|
301
300
|
rdoc_options: []
|
302
301
|
require_paths:
|
303
302
|
- lib
|
@@ -313,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
312
|
version: '0'
|
314
313
|
requirements: []
|
315
314
|
rubygems_version: 3.1.4
|
316
|
-
signing_key:
|
315
|
+
signing_key:
|
317
316
|
specification_version: 4
|
318
317
|
summary: openstudio base gem for creating generic extensions with encapsulated data
|
319
318
|
and measures.
|
File without changes
|