openstudio-analysis 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
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
  }