openstudio-standards 0.2.1 → 0.2.2

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/DEER_ERC.osm +2 -1
  3. data/data/geometry/DEER_MFm.osm +441 -70
  4. data/data/geometry/DEER_MFm_DXGF.json +210 -0
  5. data/data/geometry/DEER_MFm_DXHP.json +210 -0
  6. data/data/geometry/DEER_MFm_NCEH.json +163 -76
  7. data/data/geometry/DEER_MFm_NCGF.json +198 -44
  8. data/data/geometry/DEER_RtS.osm +0 -68
  9. data/data/geometry/DEER_SUn_Unc.json +2 -0
  10. data/data/standards/OpenStudio_Standards.xlsx +0 -0
  11. data/data/standards/OpenStudio_Standards_boilers.json +6 -6
  12. data/data/standards/OpenStudio_Standards_construction_properties.json +2304 -2304
  13. data/data/standards/OpenStudio_Standards_construction_sets.json +755 -125
  14. data/data/standards/OpenStudio_Standards_curves.json +51 -176
  15. data/data/standards/OpenStudio_Standards_entryways.json +11 -0
  16. data/data/standards/OpenStudio_Standards_exterior_lighting.json +30 -30
  17. data/data/standards/OpenStudio_Standards_ground_temperatures.json +288 -288
  18. data/data/standards/OpenStudio_Standards_heat_pumps.json +1320 -0
  19. data/data/standards/OpenStudio_Standards_heat_pumps_heating.json +840 -0
  20. data/data/standards/OpenStudio_Standards_materials.json +1 -1
  21. data/data/standards/OpenStudio_Standards_motors.json +11 -11
  22. data/data/standards/OpenStudio_Standards_parking.json +9 -0
  23. data/data/standards/OpenStudio_Standards_prototype_inputs.json +11877 -11301
  24. data/data/standards/OpenStudio_Standards_schedules.json +1847 -59
  25. data/data/standards/OpenStudio_Standards_space_types.json +88552 -75100
  26. data/data/standards/OpenStudio_Standards_templates.json +6 -6
  27. data/data/standards/OpenStudio_Standards_unitary_acs.json +1461 -185
  28. data/data/standards/OpenStudio_Standards_water_heaters.json +306 -0
  29. data/lib/openstudio-standards.rb +1 -0
  30. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +19 -1
  31. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +13 -2
  32. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +3 -3
  33. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +5 -0
  34. data/lib/openstudio-standards/standards/Standards.Construction.rb +26 -5
  35. data/lib/openstudio-standards/standards/Standards.Space.rb +1 -0
  36. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +1 -1
  37. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +1 -1
  38. data/lib/openstudio-standards/standards/deer/deer.Space.rb +17 -0
  39. data/lib/openstudio-standards/version.rb +1 -1
  40. metadata +5 -2
@@ -475,6 +475,312 @@
475
475
  "hourly_loss_volume_allowance": null,
476
476
  "thermal_efficiency": 0.8,
477
477
  "notes": "Same as 90.1-2013"
478
+ },
479
+ {
480
+ "template": "DEER Pre-1975",
481
+ "fuel_type": "NaturalGas",
482
+ "minimum_capacity": 0.0,
483
+ "maximum_capacity": 99999.99,
484
+ "start_date": "1919-09-10T00:00:00+00:00",
485
+ "end_date": "2999-09-10T00:00:00+00:00",
486
+ "energy_factor_base": 0.67,
487
+ "energy_factor_volume_derate": 0.00221,
488
+ "standby_loss_base": null,
489
+ "standby_loss_capacity_allowance": null,
490
+ "standby_loss_volume_allowance": null,
491
+ "hourly_loss_base": null,
492
+ "hourly_loss_volume_allowance": null,
493
+ "thermal_efficiency": null,
494
+ "notes": "From DEER Prototypes"
495
+ },
496
+ {
497
+ "template": "DEER 1985",
498
+ "fuel_type": "NaturalGas",
499
+ "minimum_capacity": 0.0,
500
+ "maximum_capacity": 99999.99,
501
+ "start_date": "1919-09-11T00:00:00+00:00",
502
+ "end_date": "2999-09-11T00:00:00+00:00",
503
+ "energy_factor_base": 0.67,
504
+ "energy_factor_volume_derate": 0.00221,
505
+ "standby_loss_base": null,
506
+ "standby_loss_capacity_allowance": null,
507
+ "standby_loss_volume_allowance": null,
508
+ "hourly_loss_base": null,
509
+ "hourly_loss_volume_allowance": null,
510
+ "thermal_efficiency": null,
511
+ "notes": "From DEER Prototypes"
512
+ },
513
+ {
514
+ "template": "DEER 1996",
515
+ "fuel_type": "NaturalGas",
516
+ "minimum_capacity": 0.0,
517
+ "maximum_capacity": 99999.99,
518
+ "start_date": "1919-09-12T00:00:00+00:00",
519
+ "end_date": "2999-09-12T00:00:00+00:00",
520
+ "energy_factor_base": 0.67,
521
+ "energy_factor_volume_derate": 0.00221,
522
+ "standby_loss_base": null,
523
+ "standby_loss_capacity_allowance": null,
524
+ "standby_loss_volume_allowance": null,
525
+ "hourly_loss_base": null,
526
+ "hourly_loss_volume_allowance": null,
527
+ "thermal_efficiency": null,
528
+ "notes": "From DEER Prototypes"
529
+ },
530
+ {
531
+ "template": "DEER 2003",
532
+ "fuel_type": "NaturalGas",
533
+ "minimum_capacity": 0.0,
534
+ "maximum_capacity": 99999.99,
535
+ "start_date": "1919-09-13T00:00:00+00:00",
536
+ "end_date": "2999-09-13T00:00:00+00:00",
537
+ "energy_factor_base": 0.67,
538
+ "energy_factor_volume_derate": 0.00221,
539
+ "standby_loss_base": null,
540
+ "standby_loss_capacity_allowance": null,
541
+ "standby_loss_volume_allowance": null,
542
+ "hourly_loss_base": null,
543
+ "hourly_loss_volume_allowance": null,
544
+ "thermal_efficiency": null,
545
+ "notes": "From DEER Prototypes"
546
+ },
547
+ {
548
+ "template": "DEER 2007",
549
+ "fuel_type": "NaturalGas",
550
+ "minimum_capacity": 0.0,
551
+ "maximum_capacity": 99999.99,
552
+ "start_date": "1919-09-14T00:00:00+00:00",
553
+ "end_date": "2999-09-14T00:00:00+00:00",
554
+ "energy_factor_base": 0.67,
555
+ "energy_factor_volume_derate": 0.00221,
556
+ "standby_loss_base": null,
557
+ "standby_loss_capacity_allowance": null,
558
+ "standby_loss_volume_allowance": null,
559
+ "hourly_loss_base": null,
560
+ "hourly_loss_volume_allowance": null,
561
+ "thermal_efficiency": null,
562
+ "notes": "From DEER Prototypes"
563
+ },
564
+ {
565
+ "template": "DEER 2011",
566
+ "fuel_type": "NaturalGas",
567
+ "minimum_capacity": 0.0,
568
+ "maximum_capacity": 99999.99,
569
+ "start_date": "1919-09-15T00:00:00+00:00",
570
+ "end_date": "2999-09-15T00:00:00+00:00",
571
+ "energy_factor_base": 0.67,
572
+ "energy_factor_volume_derate": 0.00221,
573
+ "standby_loss_base": null,
574
+ "standby_loss_capacity_allowance": null,
575
+ "standby_loss_volume_allowance": null,
576
+ "hourly_loss_base": null,
577
+ "hourly_loss_volume_allowance": null,
578
+ "thermal_efficiency": null,
579
+ "notes": "From DEER Prototypes"
580
+ },
581
+ {
582
+ "template": "DEER 2014",
583
+ "fuel_type": "NaturalGas",
584
+ "minimum_capacity": 0.0,
585
+ "maximum_capacity": 99999.99,
586
+ "start_date": "1919-09-16T00:00:00+00:00",
587
+ "end_date": "2999-09-16T00:00:00+00:00",
588
+ "energy_factor_base": 0.67,
589
+ "energy_factor_volume_derate": 0.00221,
590
+ "standby_loss_base": null,
591
+ "standby_loss_capacity_allowance": null,
592
+ "standby_loss_volume_allowance": null,
593
+ "hourly_loss_base": null,
594
+ "hourly_loss_volume_allowance": null,
595
+ "thermal_efficiency": null,
596
+ "notes": "From DEER Prototypes"
597
+ },
598
+ {
599
+ "template": "DEER 2015",
600
+ "fuel_type": "NaturalGas",
601
+ "minimum_capacity": 0.0,
602
+ "maximum_capacity": 99999.99,
603
+ "start_date": "1919-09-17T00:00:00+00:00",
604
+ "end_date": "2999-09-17T00:00:00+00:00",
605
+ "energy_factor_base": 0.67,
606
+ "energy_factor_volume_derate": 0.00221,
607
+ "standby_loss_base": null,
608
+ "standby_loss_capacity_allowance": null,
609
+ "standby_loss_volume_allowance": null,
610
+ "hourly_loss_base": null,
611
+ "hourly_loss_volume_allowance": null,
612
+ "thermal_efficiency": null,
613
+ "notes": "From DEER Prototypes"
614
+ },
615
+ {
616
+ "template": "DEER 2017",
617
+ "fuel_type": "NaturalGas",
618
+ "minimum_capacity": 0.0,
619
+ "maximum_capacity": 99999.99,
620
+ "start_date": "1919-09-18T00:00:00+00:00",
621
+ "end_date": "2999-09-18T00:00:00+00:00",
622
+ "energy_factor_base": 0.67,
623
+ "energy_factor_volume_derate": 0.00221,
624
+ "standby_loss_base": null,
625
+ "standby_loss_capacity_allowance": null,
626
+ "standby_loss_volume_allowance": null,
627
+ "hourly_loss_base": null,
628
+ "hourly_loss_volume_allowance": null,
629
+ "thermal_efficiency": null,
630
+ "notes": "From DEER Prototypes"
631
+ },
632
+ {
633
+ "template": "DEER Pre-1975",
634
+ "fuel_type": "NaturalGas",
635
+ "minimum_capacity": 100000.0,
636
+ "maximum_capacity": "9.9999999E7",
637
+ "start_date": "1919-09-19T00:00:00+00:00",
638
+ "end_date": "2999-09-19T00:00:00+00:00",
639
+ "energy_factor_base": null,
640
+ "energy_factor_volume_derate": null,
641
+ "standby_loss_base": null,
642
+ "standby_loss_capacity_allowance": 2053.0,
643
+ "standby_loss_volume_allowance": 54.67,
644
+ "hourly_loss_base": null,
645
+ "hourly_loss_volume_allowance": null,
646
+ "thermal_efficiency": 0.8,
647
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
648
+ },
649
+ {
650
+ "template": "DEER 1985",
651
+ "fuel_type": "NaturalGas",
652
+ "minimum_capacity": 100000.0,
653
+ "maximum_capacity": "9.9999999E7",
654
+ "start_date": "1919-09-20T00:00:00+00:00",
655
+ "end_date": "2999-09-20T00:00:00+00:00",
656
+ "energy_factor_base": null,
657
+ "energy_factor_volume_derate": null,
658
+ "standby_loss_base": null,
659
+ "standby_loss_capacity_allowance": 2053.0,
660
+ "standby_loss_volume_allowance": 54.67,
661
+ "hourly_loss_base": null,
662
+ "hourly_loss_volume_allowance": null,
663
+ "thermal_efficiency": 0.8,
664
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
665
+ },
666
+ {
667
+ "template": "DEER 1996",
668
+ "fuel_type": "NaturalGas",
669
+ "minimum_capacity": 100000.0,
670
+ "maximum_capacity": "9.9999999E7",
671
+ "start_date": "1919-09-21T00:00:00+00:00",
672
+ "end_date": "2999-09-21T00:00:00+00:00",
673
+ "energy_factor_base": null,
674
+ "energy_factor_volume_derate": null,
675
+ "standby_loss_base": null,
676
+ "standby_loss_capacity_allowance": 2053.0,
677
+ "standby_loss_volume_allowance": 54.67,
678
+ "hourly_loss_base": null,
679
+ "hourly_loss_volume_allowance": null,
680
+ "thermal_efficiency": 0.8,
681
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
682
+ },
683
+ {
684
+ "template": "DEER 2003",
685
+ "fuel_type": "NaturalGas",
686
+ "minimum_capacity": 100000.0,
687
+ "maximum_capacity": "9.9999999E7",
688
+ "start_date": "1919-09-22T00:00:00+00:00",
689
+ "end_date": "2999-09-22T00:00:00+00:00",
690
+ "energy_factor_base": null,
691
+ "energy_factor_volume_derate": null,
692
+ "standby_loss_base": null,
693
+ "standby_loss_capacity_allowance": 2053.0,
694
+ "standby_loss_volume_allowance": 54.67,
695
+ "hourly_loss_base": null,
696
+ "hourly_loss_volume_allowance": null,
697
+ "thermal_efficiency": 0.8,
698
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
699
+ },
700
+ {
701
+ "template": "DEER 2007",
702
+ "fuel_type": "NaturalGas",
703
+ "minimum_capacity": 100000.0,
704
+ "maximum_capacity": "9.9999999E7",
705
+ "start_date": "1919-09-23T00:00:00+00:00",
706
+ "end_date": "2999-09-23T00:00:00+00:00",
707
+ "energy_factor_base": null,
708
+ "energy_factor_volume_derate": null,
709
+ "standby_loss_base": null,
710
+ "standby_loss_capacity_allowance": 2053.0,
711
+ "standby_loss_volume_allowance": 54.67,
712
+ "hourly_loss_base": null,
713
+ "hourly_loss_volume_allowance": null,
714
+ "thermal_efficiency": 0.8,
715
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
716
+ },
717
+ {
718
+ "template": "DEER 2011",
719
+ "fuel_type": "NaturalGas",
720
+ "minimum_capacity": 100000.0,
721
+ "maximum_capacity": "9.9999999E7",
722
+ "start_date": "1919-09-24T00:00:00+00:00",
723
+ "end_date": "2999-09-24T00:00:00+00:00",
724
+ "energy_factor_base": null,
725
+ "energy_factor_volume_derate": null,
726
+ "standby_loss_base": null,
727
+ "standby_loss_capacity_allowance": 2053.0,
728
+ "standby_loss_volume_allowance": 54.67,
729
+ "hourly_loss_base": null,
730
+ "hourly_loss_volume_allowance": null,
731
+ "thermal_efficiency": 0.8,
732
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
733
+ },
734
+ {
735
+ "template": "DEER 2014",
736
+ "fuel_type": "NaturalGas",
737
+ "minimum_capacity": 100000.0,
738
+ "maximum_capacity": "9.9999999E7",
739
+ "start_date": "1919-09-25T00:00:00+00:00",
740
+ "end_date": "2999-09-25T00:00:00+00:00",
741
+ "energy_factor_base": null,
742
+ "energy_factor_volume_derate": null,
743
+ "standby_loss_base": null,
744
+ "standby_loss_capacity_allowance": 2053.0,
745
+ "standby_loss_volume_allowance": 54.67,
746
+ "hourly_loss_base": null,
747
+ "hourly_loss_volume_allowance": null,
748
+ "thermal_efficiency": 0.8,
749
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
750
+ },
751
+ {
752
+ "template": "DEER 2015",
753
+ "fuel_type": "NaturalGas",
754
+ "minimum_capacity": 100000.0,
755
+ "maximum_capacity": "9.9999999E7",
756
+ "start_date": "1919-09-26T00:00:00+00:00",
757
+ "end_date": "2999-09-26T00:00:00+00:00",
758
+ "energy_factor_base": null,
759
+ "energy_factor_volume_derate": null,
760
+ "standby_loss_base": null,
761
+ "standby_loss_capacity_allowance": 2053.0,
762
+ "standby_loss_volume_allowance": 54.67,
763
+ "hourly_loss_base": null,
764
+ "hourly_loss_volume_allowance": null,
765
+ "thermal_efficiency": 0.8,
766
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
767
+ },
768
+ {
769
+ "template": "DEER 2017",
770
+ "fuel_type": "NaturalGas",
771
+ "minimum_capacity": 100000.0,
772
+ "maximum_capacity": "9.9999999E7",
773
+ "start_date": "1919-09-27T00:00:00+00:00",
774
+ "end_date": "2999-09-27T00:00:00+00:00",
775
+ "energy_factor_base": null,
776
+ "energy_factor_volume_derate": null,
777
+ "standby_loss_base": null,
778
+ "standby_loss_capacity_allowance": 2053.0,
779
+ "standby_loss_volume_allowance": 54.67,
780
+ "hourly_loss_base": null,
781
+ "hourly_loss_volume_allowance": null,
782
+ "thermal_efficiency": 0.8,
783
+ "notes": "From DEER Prototypes, values optimized to match % loss/hr in eQuest"
478
784
  }
479
785
  ]
480
786
  }
@@ -174,6 +174,7 @@ module OpenstudioStandards
174
174
  # DEER Common
175
175
  require_relative "#{stds}/deer/deer.Model"
176
176
  require_relative "#{stds}/deer/deer.AirLoopHVAC"
177
+ require_relative "#{stds}/deer/deer.Space"
177
178
 
178
179
  ### Prototypes ###
179
180
  # Building Types
@@ -363,6 +363,24 @@ class Standard
363
363
  thermal_zones,
364
364
  ventilation=true)
365
365
 
366
+ when 'Baseboards'
367
+ case system['heating_type']
368
+ when 'Gas', 'DistrictHeating'
369
+ hot_water_loop = model_get_or_add_hot_water_loop(model, main_heat_fuel)
370
+ when 'Electricity'
371
+ hot_water_loop = nil
372
+ when nil
373
+ # TODO: Error, Baseboard systems must have a main_heat_fuel
374
+ # return ??
375
+ end
376
+
377
+ model_add_baseboard(model,
378
+ hot_water_loop,
379
+ thermal_zones)
380
+
381
+ when 'Unconditioned'
382
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "System type is Unconditioned. No system will be added.")
383
+
366
384
  else
367
385
 
368
386
  OpenStudio.logFree(OpenStudio::Error, 'openstudio.model.Model', "System type '#{system['type']}' is not recognized for system named '#{system['name']}'. This system will not be added.")
@@ -370,7 +388,7 @@ class Standard
370
388
  end
371
389
  end
372
390
 
373
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', 'Finished adding HVAC')
391
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "Finished adding HVAC")
374
392
 
375
393
  return true
376
394
  end # add hvac
@@ -89,6 +89,7 @@ class Standard
89
89
  end
90
90
 
91
91
  elsif prototype_input['main_service_water_peak_flowrate']
92
+ OpenStudio.logFree(OpenStudio::Debug, 'openstudio.model.Model', 'Adding shw by main_service_water_peak_flowrate')
92
93
 
93
94
  # Attaches the end uses if specified as a lump value in the prototype_input
94
95
  model_add_swh_end_uses(model,
@@ -101,6 +102,7 @@ class Standard
101
102
  building_type)
102
103
 
103
104
  else
105
+ OpenStudio.logFree(OpenStudio::Debug, 'openstudio.model.Model', 'Adding shw by space_type_map')
104
106
 
105
107
  # Attaches the end uses if specified by space type
106
108
  space_type_map = @space_type_map
@@ -109,6 +111,10 @@ class Standard
109
111
  building_type = 'Space Function'
110
112
  end
111
113
 
114
+ # Log how many water fixtures are added
115
+ water_fixtures = []
116
+
117
+ # Loop through spaces types and add service hot water if specified
112
118
  space_type_map.sort.each do |space_type_name, space_names|
113
119
  search_criteria = {
114
120
  'template' => template,
@@ -121,7 +127,7 @@ class Standard
121
127
  next if data.nil?
122
128
 
123
129
  # Skip space types with no water use, unless it is a NECB archetype (these do not have peak flow rates defined)
124
- next unless template == 'NECB2011' || !data['service_water_heating_peak_flow_rate'].nil?
130
+ next unless template == 'NECB2011' || !data['service_water_heating_peak_flow_rate'].nil? || !data['service_water_heating_peak_flow_per_area'].nil?
125
131
 
126
132
  # Add a service water use for each space
127
133
  space_names.sort.each do |space_name|
@@ -135,15 +141,20 @@ class Standard
135
141
  space.multiplier
136
142
  end
137
143
 
138
- model_add_swh_end_uses_by_space(model, model_get_lookup_name(building_type),
144
+ water_fixture = model_add_swh_end_uses_by_space(model, model_get_lookup_name(building_type),
139
145
  climate_zone,
140
146
  main_swh_loop,
141
147
  space_type_name,
142
148
  space_name,
143
149
  space_multiplier)
150
+ if !water_fixture.nil?
151
+ water_fixtures << water_fixture
152
+ end
144
153
  end
145
154
  end
146
155
 
156
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Model', "Added #{water_fixtures.size} water fixtures to model")
157
+
147
158
  end
148
159
 
149
160
  end
@@ -4027,7 +4027,7 @@ class Standard
4027
4027
  parasitic_fuel_consumption_rate,
4028
4028
  building_type = nil)
4029
4029
 
4030
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', 'Adding service water loop.')
4030
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', 'Adding service water loop')
4031
4031
 
4032
4032
  # Service water heating loop
4033
4033
  service_water_loop = OpenStudio::Model::PlantLoop.new(model)
@@ -4159,7 +4159,7 @@ class Standard
4159
4159
  water_heater_thermal_zone,
4160
4160
  building_type = nil)
4161
4161
 
4162
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', 'Adding water heater.')
4162
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', 'Adding water heater')
4163
4163
 
4164
4164
  # Water heater
4165
4165
  # TODO Standards - Change water heater methodology to follow
@@ -4275,7 +4275,7 @@ class Standard
4275
4275
  booster_water_heater_thermal_zone,
4276
4276
  building_type = nil)
4277
4277
 
4278
- OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding booster water heater to #{main_service_water_loop.name}.")
4278
+ OpenStudio.logFree(OpenStudio::Info, 'openstudio.Model.Model', "Adding booster water heater to #{main_service_water_loop.name}")
4279
4279
 
4280
4280
  # Booster water heating loop
4281
4281
  booster_service_water_loop = OpenStudio::Model::PlantLoop.new(model)
@@ -386,6 +386,11 @@ def create_deer_class_array
386
386
  'SVVE',
387
387
  'SVVG',
388
388
  'WLHP'],
389
+ 'MFm' => [
390
+ 'DXGF',
391
+ 'DXHP',
392
+ 'NCEH',
393
+ 'NCGF'],
389
394
  'MLI' => [
390
395
  'DXEH',
391
396
  'DXGF',