openstudio-geb 0.0.3r → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95736fe58727e0f60da222a3f643c02dc5e5465dc77b5e6513012a59949d9d85
4
- data.tar.gz: 55105af8ce0bf75e1005123a36f77e61268136554663d6b476091e1995396bae
3
+ metadata.gz: 347d9430484e0647ed589317e8c8324f250e08d4d6f95bcd17e3a66fa84237cd
4
+ data.tar.gz: bd0f0c3f362792e18e8bddba9dea2c4d2cf8310cf6759fa91b4f50af864d914a
5
5
  SHA512:
6
- metadata.gz: 63d3ff9b2cc8415a52ba1906a61146ed28ba6a977da91393e84fa0ed7e6845240beea11c03d20483b86f92b56b4f779fff42a08f093544bc59e43dcce0453605
7
- data.tar.gz: 02f4cfd1f7b5e87d3c14c142a15cf370aa19793a3f280fd772b39a972c844680d817fb40123caf7c8f914a4686c85a14de4375078de197c77196b79a619ef390
6
+ metadata.gz: 01a593ed9e93044ee79e09dd8b98d697b7a609def6ba532cd37603e06dfef767b519730e443f946f52cffa2b357a0784dbf9ead1a47f5a00c665b5b61b6f9925
7
+ data.tar.gz: c2e3606e8c44287fe02e60caac0e6c57b4d0bdd82aa266d1701d47125bfeae7f869e55f89b0a8c65b88d530e634cc102118b38f6a32afe2e914d89d431d73ddb
@@ -673,7 +673,7 @@ class AdjustThermostatSetpointsByDegreesForPeakHours < OpenStudio::Measure::Mode
673
673
  elsif vec_time[i]>time_begin && vec_time[i]<=time_end && count==1
674
674
  sch_day.addValue(vec_time[i], vec_value[i])
675
675
  elsif vec_time[i]>time_end && count == 1
676
- sch_day.addValue(time_end, target_temp_si.value)
676
+ sch_day.addValue(time_end, target_temp_si)
677
677
  sch_day.addValue(vec_time[i], vec_value[i])
678
678
  count = 2
679
679
  else
@@ -49,7 +49,7 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
49
49
  loop_choices << loop.name.to_s
50
50
  end
51
51
  end
52
- loop_choices << ""
52
+
53
53
  # Make choice argument for primary loop selection
54
54
  selected_primary_loop_name = OpenStudio::Measure::OSArgument.makeChoiceArgument('selected_primary_loop_name', loop_choices, false)
55
55
  selected_primary_loop_name.setDisplayName('Select Primary Loop:')
@@ -62,7 +62,6 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
62
62
  selected_primary_loop_name.setDefaultValue(pri_loop_name)
63
63
  else
64
64
  selected_primary_loop_name.setDescription('Error: No Cooling Loop Found')
65
- selected_primary_loop_name.setDefaultValue("")
66
65
  end
67
66
  args << selected_primary_loop_name
68
67
 
@@ -189,9 +188,7 @@ class AddChilledWaterStorageTank < OpenStudio::Measure::ModelMeasure
189
188
  # assign the user inputs to variables
190
189
  objective = runner.getStringArgumentValue('objective', user_arguments)
191
190
  selected_primary_loop_name = runner.getStringArgumentValue('selected_primary_loop_name', user_arguments)
192
- # if user_arguments['selected_primary_loop_name'].hasValue
193
- # selected_primary_loop_name = runner.getStringArgumentValue('selected_primary_loop_name', user_arguments)
194
- if !selected_primary_loop_name.empty?
191
+ if selected_primary_loop_name
195
192
  # get the primary cooling loop
196
193
  selected_primary_loop = model.getModelObjectByName(selected_primary_loop_name)
197
194
  if selected_primary_loop.is_initialized
@@ -333,109 +333,110 @@ class ReduceEPDByPercentageForPeakHours < OpenStudio::Measure::ModelMeasure
333
333
  if equip_schedules.key?(equip_sch.get.name.to_s)
334
334
  new_equip_sch = equip_schedules[equip_sch.get.name.to_s]
335
335
  else
336
- if equip_sch.get.to_ScheduleRuleset.empty?
337
- runner.registerWarning("Schedule #{equip_sch.get.name} isn't a ScheduleRuleset object and won't be altered by this measure.")
338
- next
339
- else
340
- new_equip_sch = equip_sch.get.clone(model)
341
- new_equip_sch = new_equip_sch.to_Schedule.get
342
- new_equip_sch.setName("#{equip_sch.get.name.to_s} adjusted #{epd_factor}")
343
- # add to the hash
344
- equip_schedules[equip_sch.get.name.to_s] = new_equip_sch
345
- end
336
+ new_equip_sch = equip_sch.get.clone(model)
337
+ new_equip_sch = new_equip_sch.to_Schedule.get
338
+ new_equip_sch.setName("#{equip_sch.get.name.to_s} adjusted #{epd_factor}")
339
+ # add to the hash
340
+ equip_schedules[equip_sch.get.name.to_s] = new_equip_sch
346
341
  end
347
342
  equip.setSchedule(new_equip_sch)
348
- runner.registerInfo("Schedule #{equip_sch.get.name} of electric equipment #{equip.name} will be altered by this measure.")
349
343
  end
350
344
  end
351
345
 
352
346
  equip_schedules.each do |old_name, equip_sch|
353
- schedule_set = equip_sch.to_ScheduleRuleset.get
354
- default_rule = schedule_set.defaultDaySchedule
355
- rules = schedule_set.scheduleRules
356
- days_covered = Array.new(7, false)
357
- original_rule_number = rules.length
358
- if original_rule_number > 0
359
- runner.registerInfo("------------ schedule rule set #{old_name} has #{original_rule_number} rules.")
360
- current_index = 0
361
- # rules are in order of priority
362
- rules.each do |rule|
363
- runner.registerInfo("------------ Rule #{rule.ruleIndex}: #{rule.daySchedule.name.to_s}")
364
- rule_period1 = rule.clone(model).to_ScheduleRule.get # OpenStudio::Model::ScheduleRule.new(schedule_set, rule.daySchedule)
365
- rule_period1.setStartDate(os_start_date1)
366
- rule_period1.setEndDate(os_end_date1)
367
- checkDaysCovered(rule_period1, days_covered)
368
- runner.registerInfo("--------------- current days of week coverage: #{days_covered}")
369
-
370
- # set the order of the new cloned schedule rule, to make sure the modified rule has a higher priority than the original one
371
- # and different copies keep the same priority as their original orders
372
- unless schedule_set.setScheduleRuleIndex(rule_period1, current_index)
373
- runner.registerError("Fail to set rule index for #{day_rule_period1.name.to_s}.")
374
- end
375
- current_index += 1
376
-
377
- day_rule_period1 = rule_period1.daySchedule
378
- day_time_vector1 = day_rule_period1.times
379
- day_value_vector1 = day_rule_period1.values
380
- runner.registerInfo(" ------------ time: #{day_time_vector1.map {|os_time| os_time.toString}}")
381
- runner.registerInfo(" ------------ values: #{day_value_vector1}")
382
- unless day_value_vector1.empty?
383
- applicable = true
384
- end
385
- day_rule_period1.clearValues
386
- day_rule_period1 = updateDaySchedule(day_rule_period1, day_time_vector1, day_value_vector1, shift_time1, shift_time2, epd_factor)
387
- runner.registerInfo(" ------------ updated time: #{day_rule_period1.times.map {|os_time| os_time.toString}}")
388
- runner.registerInfo(" ------------ updated values: #{day_rule_period1.values}")
389
- runner.registerInfo("--------------- schedule updated for #{rule_period1.startDate.get} to #{rule_period1.endDate.get}")
390
-
391
- if os_start_date2 and os_end_date2
392
- rule_period2 = copy_sch_rule_for_period(model, rule_period1, rule_period1.daySchedule, os_start_date2, os_end_date2)
393
- unless schedule_set.setScheduleRuleIndex(rule_period2, 0)
394
- runner.registerError("Fail to set rule index for #{rule_period2.daySchedule.name.to_s}.")
347
+ if equip_sch.to_ScheduleRuleset.empty?
348
+ runner.registerWarning("Schedule #{old_name} isn't a ScheduleRuleset object and won't be altered by this measure.")
349
+ equip_sch.remove # remove un-used cloned schedule
350
+ else
351
+ schedule_set = equip_sch.to_ScheduleRuleset.get
352
+ default_rule = schedule_set.defaultDaySchedule
353
+ rules = schedule_set.scheduleRules
354
+ days_covered = Array.new(7, false)
355
+ original_rule_number = rules.length
356
+ if original_rule_number > 0
357
+ runner.registerInfo("------------ schedule rule set #{old_name} has #{original_rule_number} rules.")
358
+ current_index = 0
359
+ # rules are in order of priority
360
+ rules.each do |rule|
361
+ runner.registerInfo("------------ Rule #{rule.ruleIndex}: #{rule.daySchedule.name.to_s}")
362
+ rule_period1 = rule.clone(model).to_ScheduleRule.get # OpenStudio::Model::ScheduleRule.new(schedule_set, rule.daySchedule)
363
+ rule_period1.setStartDate(os_start_date1)
364
+ rule_period1.setEndDate(os_end_date1)
365
+ checkDaysCovered(rule_period1, days_covered)
366
+ runner.registerInfo("--------------- current days of week coverage: #{days_covered}")
367
+
368
+ # set the order of the new cloned schedule rule, to make sure the modified rule has a higher priority than the original one
369
+ # and different copies keep the same priority as their original orders
370
+ unless schedule_set.setScheduleRuleIndex(rule_period1, current_index)
371
+ runner.registerError("Fail to set rule index for #{day_rule_period1.name.to_s}.")
395
372
  end
396
373
  current_index += 1
397
- runner.registerInfo("--------------- schedule updated for #{rule_period2.startDate.get} to #{rule_period2.endDate.get}")
398
- end
399
374
 
400
- if os_start_date3 and os_end_date3
401
- rule_period3 = copy_sch_rule_for_period(model, rule_period1, rule_period1.daySchedule, os_start_date3, os_end_date3)
402
- unless schedule_set.setScheduleRuleIndex(rule_period3, 0)
403
- runner.registerError("Fail to set rule index for #{rule_period3.daySchedule.name.to_s}.")
375
+ day_rule_period1 = rule_period1.daySchedule
376
+ day_time_vector1 = day_rule_period1.times
377
+ day_value_vector1 = day_rule_period1.values
378
+ runner.registerInfo(" ------------ time: #{day_time_vector1.map {|os_time| os_time.toString}}")
379
+ runner.registerInfo(" ------------ values: #{day_value_vector1}")
380
+ unless day_value_vector1.empty?
381
+ applicable = true
382
+ end
383
+ day_rule_period1.clearValues
384
+ day_rule_period1 = updateDaySchedule(day_rule_period1, day_time_vector1, day_value_vector1, shift_time1, shift_time2, epd_factor)
385
+ runner.registerInfo(" ------------ updated time: #{day_rule_period1.times.map {|os_time| os_time.toString}}")
386
+ runner.registerInfo(" ------------ updated values: #{day_rule_period1.values}")
387
+ runner.registerInfo("--------------- schedule updated for #{rule_period1.startDate.get} to #{rule_period1.endDate.get}")
388
+
389
+ if os_start_date2 and os_end_date2
390
+ rule_period2 = copy_sch_rule_for_period(model, rule_period1, rule_period1.daySchedule, os_start_date2, os_end_date2)
391
+ unless schedule_set.setScheduleRuleIndex(rule_period2, 0)
392
+ runner.registerError("Fail to set rule index for #{rule_period2.daySchedule.name.to_s}.")
393
+ end
394
+ current_index += 1
395
+ runner.registerInfo("--------------- schedule updated for #{rule_period2.startDate.get} to #{rule_period2.endDate.get}")
404
396
  end
405
- current_index += 1
406
- runner.registerInfo("--------------- schedule updated for #{rule_period3.startDate.get} to #{rule_period3.endDate.get}")
407
- end
408
397
 
409
- # The original rule will be shifted to have the currently lowest priority
410
- unless schedule_set.setScheduleRuleIndex(rule, original_rule_number + current_index - 1)
411
- runner.registerError("Fail to set rule index for #{rule.daySchedule.name.to_s}.")
412
- end
398
+ if os_start_date3 and os_end_date3
399
+ rule_period3 = copy_sch_rule_for_period(model, rule_period1, rule_period1.daySchedule, os_start_date3, os_end_date3)
400
+ unless schedule_set.setScheduleRuleIndex(rule_period3, 0)
401
+ runner.registerError("Fail to set rule index for #{rule_period3.daySchedule.name.to_s}.")
402
+ end
403
+ current_index += 1
404
+ runner.registerInfo("--------------- schedule updated for #{rule_period3.startDate.get} to #{rule_period3.endDate.get}")
405
+ end
413
406
 
407
+ # The original rule will be shifted to have the currently lowest priority
408
+ unless schedule_set.setScheduleRuleIndex(rule, original_rule_number + current_index - 1)
409
+ runner.registerError("Fail to set rule index for #{rule.daySchedule.name.to_s}.")
410
+ end
411
+
412
+ end
413
+ else
414
+ runner.registerWarning("Electric equipment schedule #{old_name} is a ScheduleRuleSet, but has no ScheduleRules associated. It won't be altered by this measure.")
414
415
  end
415
- else
416
- runner.registerWarning("Electric equipment schedule #{old_name} is a ScheduleRuleSet, but has no ScheduleRules associated. It won't be altered by this measure.")
417
- end
418
- if days_covered.include?(false)
419
- new_default_rule = OpenStudio::Model::ScheduleRule.new(schedule_set)
420
- new_default_rule.setStartDate(os_start_date1)
421
- new_default_rule.setEndDate(os_end_date1)
422
- coverMissingDays(new_default_rule, days_covered)
423
- checkDaysCovered(new_default_rule, days_covered)
424
-
425
- cloned_default_day = default_rule.clone(model)
426
- cloned_default_day.setParent(new_default_rule)
427
-
428
- new_default_day = new_default_rule.daySchedule
429
- day_time_vector = new_default_day.times
430
- day_value_vector = new_default_day.values
431
- new_default_day.clearValues
432
- new_default_day = updateDaySchedule(new_default_day, day_time_vector, day_value_vector, shift_time1, shift_time2, epd_factor)
433
- if os_start_date2 and os_end_date2
434
- copy_sch_rule_for_period(model, new_default_rule, new_default_day, os_start_date2, os_end_date2)
435
- end
436
- if os_start_date3 and os_end_date3
437
- copy_sch_rule_for_period(model, new_default_rule, new_default_day, os_start_date3, os_end_date3)
416
+ if days_covered.include?(false)
417
+ new_default_rule = OpenStudio::Model::ScheduleRule.new(schedule_set)
418
+ new_default_rule.setStartDate(os_start_date1)
419
+ new_default_rule.setEndDate(os_end_date1)
420
+ coverMissingDays(new_default_rule, days_covered)
421
+ checkDaysCovered(new_default_rule, days_covered)
422
+
423
+ cloned_default_day = default_rule.clone(model)
424
+ cloned_default_day.setParent(new_default_rule)
425
+
426
+ new_default_day = new_default_rule.daySchedule
427
+ day_time_vector = new_default_day.times
428
+ day_value_vector = new_default_day.values
429
+ new_default_day.clearValues
430
+ new_default_day = updateDaySchedule(new_default_day, day_time_vector, day_value_vector, shift_time1, shift_time2, epd_factor)
431
+ if os_start_date2 and os_end_date2
432
+ copy_sch_rule_for_period(model, new_default_rule, new_default_day, os_start_date2, os_end_date2)
433
+ end
434
+ if os_start_date3 and os_end_date3
435
+ copy_sch_rule_for_period(model, new_default_rule, new_default_day, os_start_date3, os_end_date3)
436
+ end
437
+
438
438
  end
439
+
439
440
  end
440
441
 
441
442
  end
@@ -35,6 +35,6 @@
35
35
 
36
36
  module OpenStudio
37
37
  module Geb
38
- VERSION = '0.0.3r'.freeze
38
+ VERSION = '0.0.3'.freeze
39
39
  end
40
40
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstudio-geb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3r
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaiyu Sun
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-10-22 00:00:00.000000000 Z
12
+ date: 2022-10-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -166,7 +166,6 @@ files:
166
166
  - lib/measures/add_chilled_water_storage_tank/tests/CZ06RV2.epw
167
167
  - lib/measures/add_chilled_water_storage_tank/tests/add_chilled_water_storage_tank_test.rb
168
168
  - lib/measures/add_chilled_water_storage_tank/tests/example_model.osm
169
- - lib/measures/add_chilled_water_storage_tank/tests/restaurant.osm
170
169
  - lib/measures/add_electrochromic_window/LICENSE.md
171
170
  - lib/measures/add_electrochromic_window/README.md
172
171
  - lib/measures/add_electrochromic_window/README.md.erb
@@ -303,9 +302,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
303
302
  version: '0'
304
303
  required_rubygems_version: !ruby/object:Gem::Requirement
305
304
  requirements:
306
- - - ">"
305
+ - - ">="
307
306
  - !ruby/object:Gem::Version
308
- version: 1.3.1
307
+ version: '0'
309
308
  requirements: []
310
309
  rubygems_version: 3.1.4
311
310
  signing_key: