openstudio-analysis 0.1.10 → 0.1.11

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.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/lib/openstudio/analysis/server_api.rb +1 -1
  4. data/lib/openstudio/analysis/translator/excel.rb +55 -7
  5. data/lib/openstudio/analysis/version.rb +1 -1
  6. data/lib/openstudio/helpers/string.rb +7 -1
  7. data/lib/openstudio/templates/analysis.json.erb +1 -0
  8. data/spec/files/discrete_variables.xlsx +0 -0
  9. data/spec/files/export/analysis/discrete_seed.json +81 -75
  10. data/spec/files/export/analysis/discrete_seed.zip +0 -0
  11. data/spec/files/export/analysis/output_vars.json +654 -0
  12. data/spec/files/export/analysis/output_vars.zip +0 -0
  13. data/spec/files/export/analysis/small_seed.json +83 -77
  14. data/spec/files/export/analysis/small_seed.zip +0 -0
  15. data/spec/files/no_variables.xlsx +0 -0
  16. data/spec/files/outputvars.xlsx +0 -0
  17. data/spec/files/proxy.xlsx +0 -0
  18. data/spec/files/proxy_user.xlsx +0 -0
  19. data/spec/files/setup_version_2.xlsx +0 -0
  20. data/spec/files/small_list.xlsx +0 -0
  21. data/spec/files/small_list_incomplete.xlsx +0 -0
  22. data/spec/files/small_list_repeat_vars.xlsx +0 -0
  23. data/spec/files/small_list_validation_errors.xlsx +0 -0
  24. data/spec/files/template_input_0.1.10.xlsx +0 -0
  25. data/spec/openstudio/analysis/translator/excel_spec.rb +86 -2
  26. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi-create-a-new-localhost-instance.47.xml +9 -0
  27. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi-create-a-new-localhost-instance.48.xml +9 -0
  28. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi-create-a-new-localhost-instance.49.xml +9 -0
  29. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi-create-a-new-localhost-instance.50.xml +9 -0
  30. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi-test-not-localhost.47.xml +9 -0
  31. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi-test-not-localhost.48.xml +9 -0
  32. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi-test-not-localhost.49.xml +9 -0
  33. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi-test-not-localhost.50.xml +9 -0
  34. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi.47.xml +7 -0
  35. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi.48.xml +7 -0
  36. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi.49.xml +7 -0
  37. data/spec/reports/SPEC-OpenStudio-Analysis-ServerApi.50.xml +7 -0
  38. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-discrete-variables.5.xml +21 -0
  39. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-discrete-variables.6.xml +21 -0
  40. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-discrete-variables.7.xml +21 -0
  41. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-discrete-variables.8.xml +21 -0
  42. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-no-variables-defined.47.xml +20 -0
  43. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-no-variables-defined.48.xml +20 -0
  44. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-no-variables-defined.49.xml +20 -0
  45. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-no-variables-defined.50.xml +20 -0
  46. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-proxy-setup-with-user.13.xml +9 -0
  47. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-proxy-setup-with-user.14.xml +9 -0
  48. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-proxy-setup-with-user.15.xml +9 -0
  49. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-proxy-setup-with-user.16.xml +9 -0
  50. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-proxy-setup.19.xml +9 -0
  51. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-proxy-setup.20.xml +9 -0
  52. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-proxy-setup.21.xml +9 -0
  53. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-proxy-setup.22.xml +9 -0
  54. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-setup-output-variables.0.xml +35 -0
  55. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-setup-output-variables.1.xml +35 -0
  56. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-setup-output-variables.2.xml +37 -0
  57. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-setup-output-variables.xml +35 -0
  58. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-setup-version-0-1-9.xml +21 -0
  59. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-setup-version-2.40.xml +21 -0
  60. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-setup-version-2.41.xml +21 -0
  61. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-setup-version-2.42.xml +21 -0
  62. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-incomplete-variables.47.xml +9 -0
  63. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-incomplete-variables.48.xml +9 -0
  64. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-incomplete-variables.49.xml +9 -0
  65. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-incomplete-variables.50.xml +9 -0
  66. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-variables-should-not-validate.47.xml +9 -0
  67. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-variables-should-not-validate.48.xml +9 -0
  68. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-variables-should-not-validate.49.xml +9 -0
  69. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-variables-should-not-validate.50.xml +9 -0
  70. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-variables.47.xml +24 -0
  71. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-variables.48.xml +24 -0
  72. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-variables.49.xml +24 -0
  73. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-of-variables.50.xml +24 -0
  74. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-with-with-repeated-variable-names.47.xml +9 -0
  75. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-with-with-repeated-variable-names.48.xml +9 -0
  76. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-with-with-repeated-variable-names.49.xml +9 -0
  77. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-small-list-with-with-repeated-variable-names.50.xml +9 -0
  78. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel-version-0-1-10.xml +13 -0
  79. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel.47.xml +7 -0
  80. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel.48.xml +7 -0
  81. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel.49.xml +7 -0
  82. data/spec/reports/SPEC-OpenStudio-Analysis-Translator-Excel.50.xml +7 -0
  83. metadata +124 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c063b5657c75befc82e2d5a1c49e1cf0539e9726
4
- data.tar.gz: 961cb0c4a6b7ccf53e6169d923c358fba57abe29
3
+ metadata.gz: 012a689f9bf233df7fe3b4be501f767957e59e1b
4
+ data.tar.gz: 27f15a3639dff8a0a1fe3c820eabc77b20989ad6
5
5
  SHA512:
6
- metadata.gz: 0d29a191923c94245b7d1bce9e91bd0f082802a54b3d96ada89aee009749b71bf89471740d05cbf482493208b0edad493e4840c71722e809e5af3532b6f6b893
7
- data.tar.gz: 712c23f2a93578a7fd9e6d2f7de0a5a7805d1dab5c5b56b2eb7fad35b0b0f2c5c347b1daf65c886bbf6d4e4ca93a4e496e3d8c0f2fd6b244efa17124259537b7
6
+ metadata.gz: ab15fa60fe2550024153cc657f1d91e4662704a2edd07ee62c485ad0140b29192968f21bcb7d518cc2c7a0a8761a4bf66167899fb3816482e8e2d4d27f0d2b15
7
+ data.tar.gz: 4ca3acacf965c8a19f3450a28ee8e5dfdaab7c358d218cc4d10f345234551d209bb1e1fd93f00e5f3a27271d43742d5a795c432a032f0c85b04c65f3cf8d5c4d
data/CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
1
  OpenStudio Analysis Gem Change Log
2
2
  ==================================
3
3
 
4
+ Version 0.1.11
5
+ -------------
6
+
7
+ * Add cluster name and openstudio server version
8
+
9
+ * Make the booleans in run_options actual booleans
10
+
11
+
12
+ Version 0.1.10
13
+ -------------
14
+
15
+ * Add output variables to the spreadsheet as a separate tab
16
+
4
17
  Version 0.1.9
5
18
  -------------
6
19
 
@@ -83,7 +83,7 @@ module OpenStudio
83
83
 
84
84
  puts "new project created with ID: #{project_id}"
85
85
  #grab the project id
86
- elsif response.code == 500
86
+ elsif response.status == 500
87
87
  puts "500 Error"
88
88
  puts response.inspect
89
89
  end
@@ -5,13 +5,16 @@ module OpenStudio
5
5
  attr_reader :version
6
6
  attr_reader :settings
7
7
  attr_reader :variables
8
+ attr_reader :outputs
8
9
  attr_reader :models
9
10
  attr_reader :weather_files
10
11
  attr_reader :measure_path
11
12
  attr_reader :export_path
13
+ attr_reader :cluster_name
12
14
  attr_reader :variables
13
15
  attr_reader :algorithm
14
16
  attr_reader :problem
17
+ attr_reader :run_setup
15
18
 
16
19
  # remove these once we have classes to construct the JSON file
17
20
  attr_reader :name
@@ -36,6 +39,7 @@ module OpenStudio
36
39
  @version = '0.0.1'
37
40
  @name = nil
38
41
  @machine_name = nil
42
+ @cluster_name = nil
39
43
  @settings = {}
40
44
  @weather_files = []
41
45
  @models = []
@@ -46,6 +50,8 @@ module OpenStudio
46
50
  @problem = {}
47
51
  @algorithm = {}
48
52
  @template_json = nil
53
+ @outputs = {}
54
+ @run_setup = {}
49
55
  end
50
56
 
51
57
  def process
@@ -56,6 +62,8 @@ module OpenStudio
56
62
 
57
63
  @variables = parse_variables()
58
64
 
65
+ @outputs = parse_outputs()
66
+
59
67
  # call validate to make sure everything that is needed exists (i.e. directories)
60
68
  validate_analysis()
61
69
  end
@@ -184,7 +192,7 @@ module OpenStudio
184
192
 
185
193
  openstudio_analysis_json['analysis']['problem'].merge!(@problem)
186
194
  openstudio_analysis_json['analysis']['problem']['algorithm'].merge!(@algorithm)
187
-
195
+ openstudio_analysis_json['analysis'].merge!(@outputs)
188
196
 
189
197
  @measure_index = -1
190
198
  @variables['data'].each do |measure|
@@ -247,18 +255,18 @@ module OpenStudio
247
255
  if @variable['distribution']['discrete_weights'] && @variable['distribution']['discrete_weights'] != ''
248
256
  weights = eval(@variable['distribution']['discrete_weights'])
249
257
  end
250
-
258
+
251
259
  values = nil
252
260
  if variable['type'].downcase == 'bool'
253
261
  values = eval(@variable['distribution']['discrete_values'])
254
- values.map!{|v| v.downcase == 'true'}
262
+ values.map! { |v| v.downcase == 'true' }
255
263
  else
256
264
  values = eval(@variable['distribution']['discrete_values'])
257
265
  end
258
266
 
259
267
  if weights
260
268
  raise "Discrete variable #{@variable['name']} does not have equal length of values and weights" if values.size != weights.size
261
- @values_and_weights = values.zip( weights ).map { |v,w| {value: v, weight: w} }.to_json
269
+ @values_and_weights = values.zip(weights).map { |v, w| {value: v, weight: w} }.to_json
262
270
  else
263
271
  @values_and_weights = values.map { |v| {value: v} }.to_json
264
272
  end
@@ -423,15 +431,22 @@ module OpenStudio
423
431
  if b_settings
424
432
  @version = row[1].chomp if row[0] == "Spreadsheet Version"
425
433
  @settings["#{row[0].snake_case}"] = row[1] if row[0]
426
-
434
+ @cluster_name = @settings["cluster_name"].snake_case if @settings["cluster_name"]
435
+
427
436
  # type some of the values that we know
428
437
  @settings["proxy_port"] = @settings["proxy_port"].to_i if @settings["proxy_port"]
429
-
430
438
  elsif b_run_setup
431
439
  @name = row[1].chomp if row[0] == "Analysis Name"
432
440
  @machine_name = @name.snake_case
433
441
  @export_path = File.expand_path(File.join(@root_path, row[1])) if row[0] == "Export Directory"
434
442
  @measure_path = File.expand_path(File.join(@root_path, row[1])) if row[0] == "Measure Directory"
443
+
444
+ @run_setup["#{row[0].snake_case}"] = row[1] if row[0]
445
+
446
+ # type cast
447
+ @run_setup["allow_multiple_jobs"] = @run_setup["allow_multiple_jobs"].to_s.to_bool if @run_setup["allow_multiple_jobs"]
448
+ @run_setup["use_server_as_worker"] = @run_setup["use_server_as_worker"].to_s.to_bool if @run_setup["use_server_as_worker"]
449
+
435
450
  elsif b_problem_setup
436
451
  if row[0]
437
452
  v = row[1]
@@ -457,7 +472,6 @@ module OpenStudio
457
472
  end
458
473
  end
459
474
 
460
-
461
475
  # parse_variables will parse the XLS spreadsheet and save the data into
462
476
  # a higher level JSON file. The JSON file is historic and it should really
463
477
  # be omitted as an intermediate step
@@ -563,6 +577,40 @@ module OpenStudio
563
577
  data
564
578
  end
565
579
 
580
+ def parse_outputs()
581
+ rows = @xls.sheet('Outputs').parse()
582
+
583
+ if !rows
584
+ raise "Could not find the sheet name 'Outputs' in excel file #{@root_path}"
585
+ end
586
+
587
+ data = {}
588
+ data['output_variables'] = []
589
+
590
+ icnt = 0
591
+ variable_index = -1
592
+ @algorithm['objective_functions'] = []
593
+
594
+ rows.each do |row|
595
+ icnt += 1
596
+ # puts "Parsing line: #{icnt}"
597
+ next if icnt <= 3 # skip the first 3 lines of the file
598
+ variable_index += 1
599
+ var = {}
600
+ var['display_name'] = row[0].strip
601
+ var['name'] = row[1]
602
+ var['units'] = row[2]
603
+ var['objective_function'] = row[3].downcase == "true" ? true : false
604
+ if var['objective_function'] == true
605
+ @algorithm['objective_functions'] << var['name']
606
+ end
607
+ var['objective_function_target'] = row[4]
608
+ var['objective_function_index'] = variable_index
609
+ data['output_variables'] << var
610
+ end
611
+
612
+ data
613
+ end
566
614
  end
567
615
  end
568
616
  end
@@ -1,5 +1,5 @@
1
1
  module OpenStudio
2
2
  module Analysis
3
- VERSION = "0.1.10"
3
+ VERSION = "0.1.11"
4
4
  end
5
5
  end
@@ -8,9 +8,15 @@ class String
8
8
  tr("-", "_").
9
9
  downcase
10
10
  end
11
-
11
+
12
12
  def snake_case
13
13
  self.gsub(" ", "_").downcase
14
14
  end
15
+
16
+ def to_bool
17
+ return true if self == true || self =~ (/(true|t|yes|y|1)$/i)
18
+ return false if self == false || self =~ (/(false|f|no|n|0)$/i)
19
+ raise ArgumentError.new("invalid value for Boolean: \"#{self}\"")
20
+ end
15
21
  end
16
22
 
@@ -3,6 +3,7 @@
3
3
  "display_name": "<%= @name %>",
4
4
  "name": "<%= @name.downcase.gsub(" ", "_") %>",
5
5
  "parameter_space": [],
6
+ "output_variables": [],
6
7
  "problem": {
7
8
  "algorithm": {
8
9
  },
Binary file
@@ -4,12 +4,18 @@
4
4
  "name": "example_analysis",
5
5
  "parameter_space": [
6
6
 
7
+ ],
8
+ "output_variables": [
9
+
7
10
  ],
8
11
  "problem": {
9
12
  "algorithm": {
10
13
  "sample_method": "all_variables",
11
14
  "number_of_samples": 100,
12
- "number_of_generations": 20
15
+ "number_of_generations": 20,
16
+ "objective_functions": [
17
+
18
+ ]
13
19
  },
14
20
  "name": "Problem",
15
21
  "workflow": [
@@ -20,64 +26,64 @@
20
26
  "machine_name": "apply_the_measure_to_a_specific_space_type_or_to_the_entire_model.",
21
27
  "name": "space_type",
22
28
  "value": "*Entire Building*",
23
- "uuid": "3f96bc70-6ad6-0131-5ad4-14109fdf0b37",
24
- "version_uuid": "3f96de10-6ad6-0131-5ad5-14109fdf0b37"
29
+ "uuid": "07f74880-6dfc-0131-dbb5-14109fdf0b37",
30
+ "version_uuid": "07f76270-6dfc-0131-dbb6-14109fdf0b37"
25
31
  },
26
32
  {
27
33
  "display_name": "Increase in Material and Installation Cost for Lighting per Floor Area (%).",
28
34
  "machine_name": "increase_in_material_and_installation_cost_for_lighting_per_floor_area_(%).",
29
35
  "name": "material_and_installation_cost",
30
36
  "value": 0.0,
31
- "uuid": "3f970630-6ad6-0131-5ad6-14109fdf0b37",
32
- "version_uuid": "3f972e50-6ad6-0131-5ad7-14109fdf0b37"
37
+ "uuid": "07f78610-6dfc-0131-dbb7-14109fdf0b37",
38
+ "version_uuid": "07f7a5e0-6dfc-0131-dbb8-14109fdf0b37"
33
39
  },
34
40
  {
35
41
  "display_name": "Increase in Demolition Costs for Lighting per Floor Area (%).",
36
42
  "machine_name": "increase_in_demolition_costs_for_lighting_per_floor_area_(%).",
37
43
  "name": "demolition_cost",
38
44
  "value": 0.0,
39
- "uuid": "3f975390-6ad6-0131-5ad8-14109fdf0b37",
40
- "version_uuid": "3f977290-6ad6-0131-5ad9-14109fdf0b37"
45
+ "uuid": "07f7c1c0-6dfc-0131-dbb9-14109fdf0b37",
46
+ "version_uuid": "07f7dc60-6dfc-0131-dbba-14109fdf0b37"
41
47
  },
42
48
  {
43
49
  "display_name": "Years Until Costs Start (whole years).",
44
50
  "machine_name": "years_until_costs_start_(whole_years).",
45
51
  "name": "years_until_costs_start",
46
52
  "value": 0,
47
- "uuid": "3f979400-6ad6-0131-5ada-14109fdf0b37",
48
- "version_uuid": "3f97b0c0-6ad6-0131-5adb-14109fdf0b37"
53
+ "uuid": "07f7f970-6dfc-0131-dbbb-14109fdf0b37",
54
+ "version_uuid": "07f81230-6dfc-0131-dbbc-14109fdf0b37"
49
55
  },
50
56
  {
51
57
  "display_name": "Demolition Costs Occur During Initial Construction?",
52
58
  "machine_name": "demolition_costs_occur_during_initial_construction?",
53
59
  "name": "demo_cost_initial_const",
54
60
  "value": true,
55
- "uuid": "3f97ce50-6ad6-0131-5adc-14109fdf0b37",
56
- "version_uuid": "3f97ebd0-6ad6-0131-5add-14109fdf0b37"
61
+ "uuid": "07f82fe0-6dfc-0131-dbbd-14109fdf0b37",
62
+ "version_uuid": "07f84d60-6dfc-0131-dbbe-14109fdf0b37"
57
63
  },
58
64
  {
59
65
  "display_name": "Expected Life (whole years).",
60
66
  "machine_name": "expected_life_(whole_years).",
61
67
  "name": "expected_life",
62
68
  "value": 15,
63
- "uuid": "3f980f40-6ad6-0131-5ade-14109fdf0b37",
64
- "version_uuid": "3f983350-6ad6-0131-5adf-14109fdf0b37"
69
+ "uuid": "07f86e90-6dfc-0131-dbbf-14109fdf0b37",
70
+ "version_uuid": "07f88a30-6dfc-0131-dbc0-14109fdf0b37"
65
71
  },
66
72
  {
67
73
  "display_name": "Increase O & M Costs for Lighting per Floor Area (%).",
68
74
  "machine_name": "increase_o_&_m_costs_for_lighting_per_floor_area_(%).",
69
75
  "name": "om_cost",
70
76
  "value": 0.0,
71
- "uuid": "3f9850c0-6ad6-0131-5ae0-14109fdf0b37",
72
- "version_uuid": "3f986cb0-6ad6-0131-5ae1-14109fdf0b37"
77
+ "uuid": "07f8aab0-6dfc-0131-dbc1-14109fdf0b37",
78
+ "version_uuid": "07f8c7d0-6dfc-0131-dbc2-14109fdf0b37"
73
79
  },
74
80
  {
75
81
  "display_name": "O & M Frequency (whole years).",
76
82
  "machine_name": "o_&_m_frequency_(whole_years).",
77
83
  "name": "om_frequency",
78
84
  "value": 1,
79
- "uuid": "3f9888d0-6ad6-0131-5ae2-14109fdf0b37",
80
- "version_uuid": "3f98a2c0-6ad6-0131-5ae3-14109fdf0b37"
85
+ "uuid": "07f8f350-6dfc-0131-dbc3-14109fdf0b37",
86
+ "version_uuid": "07f919c0-6dfc-0131-dbc4-14109fdf0b37"
81
87
  }
82
88
  ],
83
89
  "bcl_measure_directory": "./measures/reduce_lighting_loads_by_percentage",
@@ -85,14 +91,14 @@
85
91
  "bcl_measure_class_name_ADDME": "ReduceLightingLoadsByPercentage",
86
92
  "measure_definition_class_name_CHANGE_TO_ME": "ReduceLightingLoadsByPercentage",
87
93
  "measure_definition_class_name": "ReduceLightingLoadsByPercentage",
88
- "bcl_measure_uuid": "3f95bc60-6ad6-0131-5ace-14109fdf0b37",
89
- "measure_definition_uuid_CHANGE_TO_ME": "3f962bc0-6ad6-0131-5acf-14109fdf0b37",
90
- "bcl_measure_version_uuid": "3f964860-6ad6-0131-5ad0-14109fdf0b37",
91
- "measure_definition_version_uuid_CHANGE_TO_ME": "3f966530-6ad6-0131-5ad1-14109fdf0b37",
94
+ "bcl_measure_uuid": "07f63180-6dfc-0131-dbaf-14109fdf0b37",
95
+ "measure_definition_uuid_CHANGE_TO_ME": "07f6b340-6dfc-0131-dbb0-14109fdf0b37",
96
+ "bcl_measure_version_uuid": "07f6d0f0-6dfc-0131-dbb1-14109fdf0b37",
97
+ "measure_definition_version_uuid_CHANGE_TO_ME": "07f6efe0-6dfc-0131-dbb2-14109fdf0b37",
92
98
  "measure_type": "RubyMeasure",
93
99
  "name": "reduce_lighting_loads_by_percentage",
94
100
  "display_name": "Reduce Lighting Loads by Percentage",
95
- "uuid": "3f967e00-6ad6-0131-5ad2-14109fdf0b37",
101
+ "uuid": "07f70e20-6dfc-0131-dbb3-14109fdf0b37",
96
102
  "variables": [
97
103
  {
98
104
  "argument": {
@@ -141,7 +147,7 @@
141
147
  "version_uuid": "26e7d8de-83e3-4a53-938b-45d3e0f29953"
142
148
  }
143
149
  ],
144
- "version_uuid": "3f9698c0-6ad6-0131-5ad3-14109fdf0b37",
150
+ "version_uuid": "07f72b60-6dfc-0131-dbb4-14109fdf0b37",
145
151
  "workflow_index": 0,
146
152
  "workflow_step_type": "Measure"
147
153
  },
@@ -152,32 +158,32 @@
152
158
  "machine_name": "apply_the_measure_to_a_specific_space_type_or_to_the_entire_model.",
153
159
  "name": "space_type",
154
160
  "value": "*Entire Building*",
155
- "uuid": "3f998cb0-6ad6-0131-5aea-14109fdf0b37",
156
- "version_uuid": "3f99a910-6ad6-0131-5aeb-14109fdf0b37"
161
+ "uuid": "07f9f060-6dfc-0131-dbcb-14109fdf0b37",
162
+ "version_uuid": "07fa0a60-6dfc-0131-dbcc-14109fdf0b37"
157
163
  },
158
164
  {
159
165
  "display_name": "Increase in Material and Installation Costs for Building per Affected Floor Area ($/ft^2).",
160
166
  "machine_name": "increase_in_material_and_installation_costs_for_building_per_affected_floor_area_($/ft^2).",
161
167
  "name": "material_and_installation_cost",
162
168
  "value": 0.0,
163
- "uuid": "3f99da20-6ad6-0131-5aec-14109fdf0b37",
164
- "version_uuid": "3f9a0170-6ad6-0131-5aed-14109fdf0b37"
169
+ "uuid": "07fa3680-6dfc-0131-dbcd-14109fdf0b37",
170
+ "version_uuid": "07fa5ac0-6dfc-0131-dbce-14109fdf0b37"
165
171
  },
166
172
  {
167
173
  "display_name": "O & M Costs for Construction per Affected Floor Area ($/ft^2).",
168
174
  "machine_name": "o_&_m_costs_for_construction_per_affected_floor_area_($/ft^2).",
169
175
  "name": "om_cost",
170
176
  "value": 0.0,
171
- "uuid": "3f9a2280-6ad6-0131-5aee-14109fdf0b37",
172
- "version_uuid": "3f9a3e70-6ad6-0131-5aef-14109fdf0b37"
177
+ "uuid": "07fa7fc0-6dfc-0131-dbcf-14109fdf0b37",
178
+ "version_uuid": "07fa9b60-6dfc-0131-dbd0-14109fdf0b37"
173
179
  },
174
180
  {
175
181
  "display_name": "O & M Frequency (whole years).",
176
182
  "machine_name": "o_&_m_frequency_(whole_years).",
177
183
  "name": "om_frequency",
178
184
  "value": 1,
179
- "uuid": "3f9a5e00-6ad6-0131-5af0-14109fdf0b37",
180
- "version_uuid": "3f9a7ca0-6ad6-0131-5af1-14109fdf0b37"
185
+ "uuid": "07fac610-6dfc-0131-dbd1-14109fdf0b37",
186
+ "version_uuid": "07fae0c0-6dfc-0131-dbd2-14109fdf0b37"
181
187
  }
182
188
  ],
183
189
  "bcl_measure_directory": "./measures/reduce_space_infiltration_by_percentage",
@@ -185,14 +191,14 @@
185
191
  "bcl_measure_class_name_ADDME": "ReduceSpaceInfiltrationByPercentage",
186
192
  "measure_definition_class_name_CHANGE_TO_ME": "ReduceSpaceInfiltrationByPercentage",
187
193
  "measure_definition_class_name": "ReduceSpaceInfiltrationByPercentage",
188
- "bcl_measure_uuid": "3f98c3e0-6ad6-0131-5ae4-14109fdf0b37",
189
- "measure_definition_uuid_CHANGE_TO_ME": "3f98dee0-6ad6-0131-5ae5-14109fdf0b37",
190
- "bcl_measure_version_uuid": "3f98fc50-6ad6-0131-5ae6-14109fdf0b37",
191
- "measure_definition_version_uuid_CHANGE_TO_ME": "3f9923a0-6ad6-0131-5ae7-14109fdf0b37",
194
+ "bcl_measure_uuid": "07f93dc0-6dfc-0131-dbc5-14109fdf0b37",
195
+ "measure_definition_uuid_CHANGE_TO_ME": "07f95870-6dfc-0131-dbc6-14109fdf0b37",
196
+ "bcl_measure_version_uuid": "07f97860-6dfc-0131-dbc7-14109fdf0b37",
197
+ "measure_definition_version_uuid_CHANGE_TO_ME": "07f99790-6dfc-0131-dbc8-14109fdf0b37",
192
198
  "measure_type": "RubyMeasure",
193
199
  "name": "reducespaceinfiltrationbypercentage",
194
200
  "display_name": "ReduceSpaceInfiltrationByPercentage",
195
- "uuid": "3f994290-6ad6-0131-5ae8-14109fdf0b37",
201
+ "uuid": "07f9b490-6dfc-0131-dbc9-14109fdf0b37",
196
202
  "variables": [
197
203
  {
198
204
  "argument": {
@@ -237,7 +243,7 @@
237
243
  "version_uuid": "26e7d8de-83e3-4a53-938b-45d3e0f29953"
238
244
  }
239
245
  ],
240
- "version_uuid": "3f996c70-6ad6-0131-5ae9-14109fdf0b37",
246
+ "version_uuid": "07f9cfe0-6dfc-0131-dbca-14109fdf0b37",
241
247
  "workflow_index": 1,
242
248
  "workflow_step_type": "Measure"
243
249
  },
@@ -250,14 +256,14 @@
250
256
  "bcl_measure_class_name_ADDME": "AdjustTheromstatSetpointsByDegrees",
251
257
  "measure_definition_class_name_CHANGE_TO_ME": "AdjustTheromstatSetpointsByDegrees",
252
258
  "measure_definition_class_name": "AdjustTheromstatSetpointsByDegrees",
253
- "bcl_measure_uuid": "3f9aa330-6ad6-0131-5af2-14109fdf0b37",
254
- "measure_definition_uuid_CHANGE_TO_ME": "3f9ac150-6ad6-0131-5af3-14109fdf0b37",
255
- "bcl_measure_version_uuid": "3f9ae9a0-6ad6-0131-5af4-14109fdf0b37",
256
- "measure_definition_version_uuid_CHANGE_TO_ME": "3f9b0910-6ad6-0131-5af5-14109fdf0b37",
259
+ "bcl_measure_uuid": "07fb0510-6dfc-0131-dbd3-14109fdf0b37",
260
+ "measure_definition_uuid_CHANGE_TO_ME": "07fb22d0-6dfc-0131-dbd4-14109fdf0b37",
261
+ "bcl_measure_version_uuid": "07fb41f0-6dfc-0131-dbd5-14109fdf0b37",
262
+ "measure_definition_version_uuid_CHANGE_TO_ME": "07fb5c30-6dfc-0131-dbd6-14109fdf0b37",
257
263
  "measure_type": "RubyMeasure",
258
264
  "name": "adjust_thermostat_setpoints_by_degrees",
259
265
  "display_name": "Adjust Thermostat Setpoints by Degrees",
260
- "uuid": "3f9b2830-6ad6-0131-5af6-14109fdf0b37",
266
+ "uuid": "07fb78c0-6dfc-0131-dbd7-14109fdf0b37",
261
267
  "variables": [
262
268
  {
263
269
  "argument": {
@@ -382,7 +388,7 @@
382
388
  "version_uuid": "26e7d8de-83e3-4a53-938b-45d3e0f29953"
383
389
  }
384
390
  ],
385
- "version_uuid": "3f9b46a0-6ad6-0131-5af7-14109fdf0b37",
391
+ "version_uuid": "07fb9640-6dfc-0131-dbd8-14109fdf0b37",
386
392
  "workflow_index": 2,
387
393
  "workflow_step_type": "Measure"
388
394
  },
@@ -393,24 +399,24 @@
393
399
  "machine_name": "increase_in_material_and_installation_costs_for_construction_per_area_used_($/ft^2).",
394
400
  "name": "material_cost_increase_ip",
395
401
  "value": 0.0,
396
- "uuid": "3f9c4390-6ad6-0131-5afe-14109fdf0b37",
397
- "version_uuid": "3f9c5f00-6ad6-0131-5aff-14109fdf0b37"
402
+ "uuid": "07fcc430-6dfc-0131-dbdf-14109fdf0b37",
403
+ "version_uuid": "07fce100-6dfc-0131-dbe0-14109fdf0b37"
398
404
  },
399
405
  {
400
406
  "display_name": "One Time Retrofit Cost to Add Insulation to Construction ($/ft^2).",
401
407
  "machine_name": "one_time_retrofit_cost_to_add_insulation_to_construction_($/ft^2).",
402
408
  "name": "one_time_retrofit_cost_ip",
403
409
  "value": 0.0,
404
- "uuid": "3f9c7e70-6ad6-0131-5b00-14109fdf0b37",
405
- "version_uuid": "3f9c9d30-6ad6-0131-5b01-14109fdf0b37"
410
+ "uuid": "07fcff60-6dfc-0131-dbe1-14109fdf0b37",
411
+ "version_uuid": "07fd1930-6dfc-0131-dbe2-14109fdf0b37"
406
412
  },
407
413
  {
408
414
  "display_name": "Year to Incur One Time Retrofit Cost (whole years).",
409
415
  "machine_name": "year_to_incur_one_time_retrofit_cost_(whole_years).",
410
416
  "name": "years_until_retrofit_cost",
411
417
  "value": 0,
412
- "uuid": "3f9cbd10-6ad6-0131-5b02-14109fdf0b37",
413
- "version_uuid": "3f9cdad0-6ad6-0131-5b03-14109fdf0b37"
418
+ "uuid": "07fd3620-6dfc-0131-dbe3-14109fdf0b37",
419
+ "version_uuid": "07fd5780-6dfc-0131-dbe4-14109fdf0b37"
414
420
  }
415
421
  ],
416
422
  "bcl_measure_directory": "./measures/increase_insulation_r_value_for_exterior_walls",
@@ -418,14 +424,14 @@
418
424
  "bcl_measure_class_name_ADDME": "IncreaseInsulationRValueForExteriorWalls",
419
425
  "measure_definition_class_name_CHANGE_TO_ME": "IncreaseInsulationRValueForExteriorWalls",
420
426
  "measure_definition_class_name": "IncreaseInsulationRValueForExteriorWalls",
421
- "bcl_measure_uuid": "3f9b8960-6ad6-0131-5af8-14109fdf0b37",
422
- "measure_definition_uuid_CHANGE_TO_ME": "3f9ba660-6ad6-0131-5af9-14109fdf0b37",
423
- "bcl_measure_version_uuid": "3f9bc740-6ad6-0131-5afa-14109fdf0b37",
424
- "measure_definition_version_uuid_CHANGE_TO_ME": "3f9be380-6ad6-0131-5afb-14109fdf0b37",
427
+ "bcl_measure_uuid": "07fbd890-6dfc-0131-dbd9-14109fdf0b37",
428
+ "measure_definition_uuid_CHANGE_TO_ME": "07fbffb0-6dfc-0131-dbda-14109fdf0b37",
429
+ "bcl_measure_version_uuid": "07fc1f50-6dfc-0131-dbdb-14109fdf0b37",
430
+ "measure_definition_version_uuid_CHANGE_TO_ME": "07fc3fa0-6dfc-0131-dbdc-14109fdf0b37",
425
431
  "measure_type": "RubyMeasure",
426
432
  "name": "set_r_value_of_insulation_for_exterior_walls_to_a_specific_value",
427
433
  "display_name": "Set R-value of Insulation for Exterior Walls to a Specific Value",
428
- "uuid": "3f9bfe10-6ad6-0131-5afc-14109fdf0b37",
434
+ "uuid": "07fc6ad0-6dfc-0131-dbdd-14109fdf0b37",
429
435
  "variables": [
430
436
  {
431
437
  "argument": {
@@ -470,7 +476,7 @@
470
476
  "version_uuid": "26e7d8de-83e3-4a53-938b-45d3e0f29953"
471
477
  }
472
478
  ],
473
- "version_uuid": "3f9c1af0-6ad6-0131-5afd-14109fdf0b37",
479
+ "version_uuid": "07fc9490-6dfc-0131-dbde-14109fdf0b37",
474
480
  "workflow_index": 3,
475
481
  "workflow_step_type": "Measure"
476
482
  },
@@ -481,24 +487,24 @@
481
487
  "machine_name": "increase_in_material_and_installation_costs_for_construction_per_area_used_($/ft^2).",
482
488
  "name": "material_cost_increase_ip",
483
489
  "value": 0.0,
484
- "uuid": "3f9da6a0-6ad6-0131-5b0a-14109fdf0b37",
485
- "version_uuid": "3f9dc400-6ad6-0131-5b0b-14109fdf0b37"
490
+ "uuid": "07fe2780-6dfc-0131-dbeb-14109fdf0b37",
491
+ "version_uuid": "07fe43d0-6dfc-0131-dbec-14109fdf0b37"
486
492
  },
487
493
  {
488
494
  "display_name": "One Time Retrofit Cost to Add Insulation to Construction ($/ft^2).",
489
495
  "machine_name": "one_time_retrofit_cost_to_add_insulation_to_construction_($/ft^2).",
490
496
  "name": "one_time_retrofit_cost_ip",
491
497
  "value": 0.0,
492
- "uuid": "3f9de4b0-6ad6-0131-5b0c-14109fdf0b37",
493
- "version_uuid": "3f9e00f0-6ad6-0131-5b0d-14109fdf0b37"
498
+ "uuid": "07fe63d0-6dfc-0131-dbed-14109fdf0b37",
499
+ "version_uuid": "07fe82f0-6dfc-0131-dbee-14109fdf0b37"
494
500
  },
495
501
  {
496
502
  "display_name": "Year to Incur One Time Retrofit Cost (whole years).",
497
503
  "machine_name": "year_to_incur_one_time_retrofit_cost_(whole_years).",
498
504
  "name": "years_until_retrofit_cost",
499
505
  "value": 0,
500
- "uuid": "3f9e20b0-6ad6-0131-5b0e-14109fdf0b37",
501
- "version_uuid": "3f9e3db0-6ad6-0131-5b0f-14109fdf0b37"
506
+ "uuid": "07fe9e30-6dfc-0131-dbef-14109fdf0b37",
507
+ "version_uuid": "07fec500-6dfc-0131-dbf0-14109fdf0b37"
502
508
  }
503
509
  ],
504
510
  "bcl_measure_directory": "./measures/increase_insulation_r_value_for_roofs",
@@ -506,14 +512,14 @@
506
512
  "bcl_measure_class_name_ADDME": "IncreaseInsulationRValueForRoofs",
507
513
  "measure_definition_class_name_CHANGE_TO_ME": "IncreaseInsulationRValueForRoofs",
508
514
  "measure_definition_class_name": "IncreaseInsulationRValueForRoofs",
509
- "bcl_measure_uuid": "3f9d0180-6ad6-0131-5b04-14109fdf0b37",
510
- "measure_definition_uuid_CHANGE_TO_ME": "3f9d1ed0-6ad6-0131-5b05-14109fdf0b37",
511
- "bcl_measure_version_uuid": "3f9d38d0-6ad6-0131-5b06-14109fdf0b37",
512
- "measure_definition_version_uuid_CHANGE_TO_ME": "3f9d51d0-6ad6-0131-5b07-14109fdf0b37",
515
+ "bcl_measure_uuid": "07fd7a70-6dfc-0131-dbe5-14109fdf0b37",
516
+ "measure_definition_uuid_CHANGE_TO_ME": "07fd9640-6dfc-0131-dbe6-14109fdf0b37",
517
+ "bcl_measure_version_uuid": "07fdb250-6dfc-0131-dbe7-14109fdf0b37",
518
+ "measure_definition_version_uuid_CHANGE_TO_ME": "07fdcf30-6dfc-0131-dbe8-14109fdf0b37",
513
519
  "measure_type": "RubyMeasure",
514
520
  "name": "set_r_value_of_insulation_for_roofs_to_a_specific_value",
515
521
  "display_name": "Set R-value of Insulation for Roofs to a Specific Value",
516
- "uuid": "3f9d6a40-6ad6-0131-5b08-14109fdf0b37",
522
+ "uuid": "07fde9d0-6dfc-0131-dbe9-14109fdf0b37",
517
523
  "variables": [
518
524
  {
519
525
  "argument": {
@@ -558,7 +564,7 @@
558
564
  "version_uuid": "26e7d8de-83e3-4a53-938b-45d3e0f29953"
559
565
  }
560
566
  ],
561
- "version_uuid": "3f9d8280-6ad6-0131-5b09-14109fdf0b37",
567
+ "version_uuid": "07fe02b0-6dfc-0131-dbea-14109fdf0b37",
562
568
  "workflow_index": 4,
563
569
  "workflow_step_type": "Measure"
564
570
  },
@@ -569,8 +575,8 @@
569
575
  "machine_name": "apply_the_measure_to_a_specific_space_type_or_to_the_entire_model.",
570
576
  "name": "space_type",
571
577
  "value": "*Entire Building*",
572
- "uuid": "3f9f5730-6ad6-0131-5b16-14109fdf0b37",
573
- "version_uuid": "3f9f75e0-6ad6-0131-5b17-14109fdf0b37"
578
+ "uuid": "07ffa070-6dfc-0131-dbf7-14109fdf0b37",
579
+ "version_uuid": "07ffb990-6dfc-0131-dbf8-14109fdf0b37"
574
580
  }
575
581
  ],
576
582
  "bcl_measure_directory": "./measures/reduce_ventilation_by_percentage",
@@ -578,14 +584,14 @@
578
584
  "bcl_measure_class_name_ADDME": "ReduceVentilationByPercentage",
579
585
  "measure_definition_class_name_CHANGE_TO_ME": "ReduceVentilationByPercentage",
580
586
  "measure_definition_class_name": "ReduceVentilationByPercentage",
581
- "bcl_measure_uuid": "3f9e6650-6ad6-0131-5b10-14109fdf0b37",
582
- "measure_definition_uuid_CHANGE_TO_ME": "3f9e86a0-6ad6-0131-5b11-14109fdf0b37",
583
- "bcl_measure_version_uuid": "3f9ea890-6ad6-0131-5b12-14109fdf0b37",
584
- "measure_definition_version_uuid_CHANGE_TO_ME": "3f9ed760-6ad6-0131-5b13-14109fdf0b37",
587
+ "bcl_measure_uuid": "07fee940-6dfc-0131-dbf1-14109fdf0b37",
588
+ "measure_definition_uuid_CHANGE_TO_ME": "07ff06c0-6dfc-0131-dbf2-14109fdf0b37",
589
+ "bcl_measure_version_uuid": "07ff2550-6dfc-0131-dbf3-14109fdf0b37",
590
+ "measure_definition_version_uuid_CHANGE_TO_ME": "07ff4280-6dfc-0131-dbf4-14109fdf0b37",
585
591
  "measure_type": "RubyMeasure",
586
592
  "name": "reduce_ventilation_by_percentage",
587
593
  "display_name": "Reduce Ventilation By Percentage",
588
- "uuid": "3f9efeb0-6ad6-0131-5b14-14109fdf0b37",
594
+ "uuid": "07ff5ec0-6dfc-0131-dbf5-14109fdf0b37",
589
595
  "variables": [
590
596
  {
591
597
  "argument": {
@@ -633,7 +639,7 @@
633
639
  "version_uuid": "26e7d8de-83e3-4a53-938b-45d3e0f29953"
634
640
  }
635
641
  ],
636
- "version_uuid": "3f9f1d50-6ad6-0131-5b15-14109fdf0b37",
642
+ "version_uuid": "07ff7f20-6dfc-0131-dbf6-14109fdf0b37",
637
643
  "workflow_index": 5,
638
644
  "workflow_step_type": "Measure"
639
645
  }