openstudio-geb 0.0.3r → 0.0.3

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