honeybee-openstudio 0

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 (130) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/ci.yaml +88 -0
  3. data/.gitignore +33 -0
  4. data/.releaserc.json +7 -0
  5. data/Gemfile +14 -0
  6. data/LICENSE.md +23 -0
  7. data/README.md +95 -0
  8. data/Rakefile +16 -0
  9. data/doc_templates/LICENSE.md +23 -0
  10. data/doc_templates/README.md.erb +42 -0
  11. data/doc_templates/copyright_erb.txt +32 -0
  12. data/doc_templates/copyright_js.txt +5 -0
  13. data/doc_templates/copyright_ruby.txt +30 -0
  14. data/honeybee-openstudio.gemspec +38 -0
  15. data/lib/files/Honeybee.rb +113 -0
  16. data/lib/files/honeybee_workflow.osw +48 -0
  17. data/lib/files/urbanopt_Gemfile +32 -0
  18. data/lib/from_openstudio.rb +49 -0
  19. data/lib/from_openstudio/geometry/aperture.rb +136 -0
  20. data/lib/from_openstudio/geometry/door.rb +136 -0
  21. data/lib/from_openstudio/geometry/face.rb +174 -0
  22. data/lib/from_openstudio/geometry/room.rb +121 -0
  23. data/lib/from_openstudio/geometry/shade.rb +87 -0
  24. data/lib/from_openstudio/model.rb +123 -0
  25. data/lib/from_openstudio/model_object.rb +43 -0
  26. data/lib/from_openstudio/simulation/design_day.rb +123 -0
  27. data/lib/from_openstudio/simulation/parameter_model.rb +93 -0
  28. data/lib/from_openstudio/simulation/simulation_output.rb +67 -0
  29. data/lib/honeybee.rb +93 -0
  30. data/lib/honeybee/_defaults/energy_default.json +1682 -0
  31. data/lib/honeybee/_defaults/model.json +11311 -0
  32. data/lib/honeybee/_defaults/simulation-parameter.json +973 -0
  33. data/lib/honeybee/construction/air.rb +42 -0
  34. data/lib/honeybee/construction/opaque.rb +42 -0
  35. data/lib/honeybee/construction/shade.rb +42 -0
  36. data/lib/honeybee/construction/window.rb +51 -0
  37. data/lib/honeybee/construction/windowshade.rb +43 -0
  38. data/lib/honeybee/construction_set.rb +42 -0
  39. data/lib/honeybee/extension.rb +129 -0
  40. data/lib/honeybee/geometry/aperture.rb +42 -0
  41. data/lib/honeybee/geometry/door.rb +42 -0
  42. data/lib/honeybee/geometry/face.rb +48 -0
  43. data/lib/honeybee/geometry/room.rb +56 -0
  44. data/lib/honeybee/geometry/shade.rb +42 -0
  45. data/lib/honeybee/hvac/ideal_air.rb +42 -0
  46. data/lib/honeybee/hvac/template.rb +73 -0
  47. data/lib/honeybee/load/electric_equipment.rb +42 -0
  48. data/lib/honeybee/load/gas_equipment.rb +42 -0
  49. data/lib/honeybee/load/infiltration.rb +42 -0
  50. data/lib/honeybee/load/lighting.rb +43 -0
  51. data/lib/honeybee/load/people.rb +42 -0
  52. data/lib/honeybee/load/setpoint_humidistat.rb +46 -0
  53. data/lib/honeybee/load/setpoint_thermostat.rb +46 -0
  54. data/lib/honeybee/load/ventilation.rb +42 -0
  55. data/lib/honeybee/material/opaque.rb +42 -0
  56. data/lib/honeybee/material/opaque_no_mass.rb +42 -0
  57. data/lib/honeybee/material/window_blind.rb +42 -0
  58. data/lib/honeybee/material/window_gas.rb +42 -0
  59. data/lib/honeybee/material/window_gas_custom.rb +42 -0
  60. data/lib/honeybee/material/window_gas_mixture.rb +42 -0
  61. data/lib/honeybee/material/window_glazing.rb +42 -0
  62. data/lib/honeybee/material/window_shade.rb +42 -0
  63. data/lib/honeybee/material/window_simpleglazsys.rb +42 -0
  64. data/lib/honeybee/model.rb +87 -0
  65. data/lib/honeybee/model_object.rb +108 -0
  66. data/lib/honeybee/program_type.rb +56 -0
  67. data/lib/honeybee/schedule/fixed_interval.rb +42 -0
  68. data/lib/honeybee/schedule/ruleset.rb +42 -0
  69. data/lib/honeybee/schedule/type_limit.rb +42 -0
  70. data/lib/honeybee/simulation/design_day.rb +42 -0
  71. data/lib/honeybee/simulation/parameter_model.rb +86 -0
  72. data/lib/honeybee/simulation/simulation_output.rb +42 -0
  73. data/lib/honeybee/ventcool/control.rb +42 -0
  74. data/lib/honeybee/ventcool/opening.rb +46 -0
  75. data/lib/honeybee/ventcool/simulation.rb +42 -0
  76. data/lib/measures/.gitkeep +0 -0
  77. data/lib/measures/from_honeybee_model/LICENSE.md +23 -0
  78. data/lib/measures/from_honeybee_model/README.md +32 -0
  79. data/lib/measures/from_honeybee_model/measure.rb +91 -0
  80. data/lib/measures/from_honeybee_model/measure.xml +80 -0
  81. data/lib/measures/from_honeybee_model/tests/from_honeybee_model_test.rb +126 -0
  82. data/lib/measures/from_honeybee_simulation_parameter/LICENSE.md +23 -0
  83. data/lib/measures/from_honeybee_simulation_parameter/README.md +32 -0
  84. data/lib/measures/from_honeybee_simulation_parameter/measure.rb +95 -0
  85. data/lib/measures/from_honeybee_simulation_parameter/measure.xml +86 -0
  86. data/lib/measures/from_honeybee_simulation_parameter/tests/from_honeybee_simulation_parameter_test.rb +109 -0
  87. data/lib/to_openstudio.rb +92 -0
  88. data/lib/to_openstudio/construction/air.rb +56 -0
  89. data/lib/to_openstudio/construction/opaque.rb +67 -0
  90. data/lib/to_openstudio/construction/shade.rb +99 -0
  91. data/lib/to_openstudio/construction/window.rb +70 -0
  92. data/lib/to_openstudio/construction/windowshade.rb +196 -0
  93. data/lib/to_openstudio/construction_set.rb +266 -0
  94. data/lib/to_openstudio/geometry/aperture.rb +157 -0
  95. data/lib/to_openstudio/geometry/door.rb +150 -0
  96. data/lib/to_openstudio/geometry/face.rb +178 -0
  97. data/lib/to_openstudio/geometry/room.rb +442 -0
  98. data/lib/to_openstudio/geometry/shade.rb +79 -0
  99. data/lib/to_openstudio/hvac/Model.hvac.rb +641 -0
  100. data/lib/to_openstudio/hvac/ideal_air.rb +141 -0
  101. data/lib/to_openstudio/hvac/template.rb +169 -0
  102. data/lib/to_openstudio/load/electric_equipment.rb +87 -0
  103. data/lib/to_openstudio/load/gas_equipment.rb +88 -0
  104. data/lib/to_openstudio/load/infiltration.rb +86 -0
  105. data/lib/to_openstudio/load/lighting.rb +89 -0
  106. data/lib/to_openstudio/load/people.rb +91 -0
  107. data/lib/to_openstudio/load/setpoint_humidistat.rb +66 -0
  108. data/lib/to_openstudio/load/setpoint_thermostat.rb +62 -0
  109. data/lib/to_openstudio/load/ventilation.rb +87 -0
  110. data/lib/to_openstudio/material/opaque.rb +85 -0
  111. data/lib/to_openstudio/material/opaque_no_mass.rb +85 -0
  112. data/lib/to_openstudio/material/window_blind.rb +229 -0
  113. data/lib/to_openstudio/material/window_gas.rb +67 -0
  114. data/lib/to_openstudio/material/window_gas_custom.rb +108 -0
  115. data/lib/to_openstudio/material/window_gas_mixture.rb +70 -0
  116. data/lib/to_openstudio/material/window_glazing.rb +157 -0
  117. data/lib/to_openstudio/material/window_shade.rb +151 -0
  118. data/lib/to_openstudio/material/window_simpleglazsys.rb +64 -0
  119. data/lib/to_openstudio/model.rb +497 -0
  120. data/lib/to_openstudio/model_object.rb +52 -0
  121. data/lib/to_openstudio/program_type.rb +104 -0
  122. data/lib/to_openstudio/schedule/fixed_interval.rb +105 -0
  123. data/lib/to_openstudio/schedule/ruleset.rb +164 -0
  124. data/lib/to_openstudio/schedule/type_limit.rb +76 -0
  125. data/lib/to_openstudio/simulation/design_day.rb +96 -0
  126. data/lib/to_openstudio/simulation/parameter_model.rb +243 -0
  127. data/lib/to_openstudio/ventcool/control.rb +185 -0
  128. data/lib/to_openstudio/ventcool/opening.rb +189 -0
  129. data/lib/to_openstudio/ventcool/simulation.rb +101 -0
  130. metadata +301 -0
@@ -0,0 +1,43 @@
1
+ # *******************************************************************************
2
+ # Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
3
+ # Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # (1) Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # (3) Neither the name of the copyright holder nor the names of any contributors
16
+ # may be used to endorse or promote products derived from this software without
17
+ # specific prior written permission from the respective party.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
20
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
23
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
24
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
26
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ # *******************************************************************************
31
+
32
+ module Honeybee
33
+ class ModelObject
34
+ # Base class from which all other objects in this module inherit.
35
+ # Attributes and methods of this class should be overwritten in each inheriting object.
36
+
37
+ # create a new object in the openstudio model and return it
38
+ def to_openstudio(openstudio_model)
39
+ raise 'to_openstudio is not yet implemented for this ModelObject.'
40
+ end
41
+
42
+ end # ModelObject
43
+ end # Honeybee
@@ -0,0 +1,123 @@
1
+ # *******************************************************************************
2
+ # Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
3
+ # Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # (1) Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # (3) Neither the name of the copyright holder nor the names of any contributors
16
+ # may be used to endorse or promote products derived from this software without
17
+ # specific prior written permission from the respective party.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
20
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
23
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
24
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
26
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ # *******************************************************************************
31
+
32
+ require 'honeybee/model_object'
33
+
34
+ module Honeybee
35
+ class DesignDay
36
+
37
+ def self.from_design_day(design_day)
38
+ hash = {}
39
+ hash[:type] = 'DesignDay'
40
+ hash[:name] = design_day.nameString
41
+ hash[:day_type] = day_type_from_design_day(design_day)
42
+ hash[:dry_bulb_condition] = dry_bulb_condition_from_design_day(design_day)
43
+ hash[:humidity_condition] = humidity_condition_from_design_day(design_day)
44
+ hash[:wind_condition] = wind_condition_from_design_day(design_day)
45
+ hash[:sky_condition] = sky_condition_from_design_day(design_day)
46
+
47
+ hash
48
+ end
49
+
50
+ def self.day_type_from_design_day(design_day)
51
+ design_day.dayType
52
+ end
53
+
54
+ def self.dry_bulb_condition_from_design_day(design_day)
55
+ hash = {}
56
+ hash[:type] = 'DryBulbCondition'
57
+ hash[:dry_bulb_max] = design_day.maximumDryBulbTemperature
58
+ hash[:dry_bulb_range] = design_day.dailyDryBulbTemperatureRange
59
+ hash
60
+ end
61
+
62
+ def self.humidity_type_from_design_day(design_day)
63
+ humidity_type = design_day.humidityIndicatingType
64
+ allowed_types = ['WetBulb', 'Dewpoint', 'HumidityRatio', 'Enthalpy']
65
+ if !allowed_types.any?{ |s| s.casecmp(humidity_type)==0 }
66
+ raise "'#{humidity_type}' is not an allowed humidity type"
67
+ end
68
+ humidity_type.gsub('WetBulb', 'Wetbulb')
69
+ end
70
+
71
+ def self.humidity_condition_from_design_day(design_day)
72
+ hash = {}
73
+ hash[:type] = 'HumidityCondition'
74
+ hash[:humidity_type] = humidity_type_from_design_day(design_day)
75
+ hash[:humidity_value] = design_day.humidityIndicatingConditionsAtMaximumDryBulb
76
+ hash[:barometric_pressure] = design_day.barometricPressure
77
+ hash[:rain] = design_day.rainIndicator
78
+ hash[:snow_on_ground] = design_day.snowIndicator
79
+ hash
80
+ end
81
+
82
+ def self.wind_condition_from_design_day(design_day)
83
+ hash = {}
84
+ hash[:type] = 'WindCondition'
85
+ hash[:wind_speed] = design_day.windSpeed
86
+ hash[:wind_direction] = design_day.windDirection
87
+ hash
88
+ end
89
+
90
+ def self.ashrae_clear_sky_from_design_day(design_day)
91
+ hash = {}
92
+ hash[:type] = 'ASHRAEClearSky'
93
+ hash[:date] = [design_day.month, design_day.dayOfMonth]
94
+ hash[:clearness] = design_day.skyClearness
95
+ hash[:daylight_savings] = design_day.daylightSavingTimeIndicator
96
+ hash
97
+ end
98
+
99
+ def self.ashrae_tau_from_design_day(design_day)
100
+ hash = {}
101
+ hash[:type] = 'ASHRAETau'
102
+ hash[:date] = [design_day.month, design_day.dayOfMonth]
103
+ hash[:tau_b] = design_day.ashraeTaub
104
+ hash[:tau_d] = design_day.ashraeTaud
105
+ hash[:daylight_savings] = design_day.daylightSavingTimeIndicator
106
+ hash
107
+ end
108
+
109
+ def self.sky_condition_from_design_day(design_day)
110
+ solar_model_indicator = design_day.solarModelIndicator
111
+ allowed_types = ['ASHRAEClearSky', 'ASHRAETau', 'ASHRAETau2017']
112
+ if !allowed_types.any?{ |s| s.casecmp(solar_model_indicator)==0 }
113
+ raise "'#{solar_model_indicator}' is not an allowed solar model indicator"
114
+ end
115
+ if solar_model_indicator == 'ASHRAEClearSky'
116
+ return ashrae_clear_sky_from_design_day(design_day)
117
+ else
118
+ return ashrae_tau_from_design_day(design_day)
119
+ end
120
+ end
121
+
122
+ end # DesignDay
123
+ end # Honeybee
@@ -0,0 +1,93 @@
1
+ # *******************************************************************************
2
+ # Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
3
+ # Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # (1) Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # (3) Neither the name of the copyright holder nor the names of any contributors
16
+ # may be used to endorse or promote products derived from this software without
17
+ # specific prior written permission from the respective party.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
20
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
23
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
24
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
26
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ # *******************************************************************************
31
+
32
+ require 'honeybee/simulation/parameter_model'
33
+
34
+ require 'from_openstudio/simulation/design_day'
35
+
36
+ module Honeybee
37
+
38
+ class SimulationParameter
39
+
40
+ # Create Ladybug SimulationParameter JSON from OpenStudio Model
41
+ def self.translate_from_openstudio(openstudio_model)
42
+ hash = {}
43
+ hash[:type] = 'SimulationParameter'
44
+
45
+ hash[:output] = SimulationOutput.from_model(openstudio_model)
46
+ hash[:sizing_parameter] = sizing_parameter_from_model(openstudio_model)
47
+
48
+ SimulationParameter.new(hash)
49
+ end
50
+
51
+ # Create Ladybug Energy Model JSON from OSM file
52
+ def self.translate_from_osm_file(file)
53
+ vt = OpenStudio::OSVersion::VersionTranslator.new
54
+ openstudio_model = vt.loadModel(file)
55
+ raise "Cannot load OSM file at '#{}'" if openstudio_model.empty?
56
+ self.translate_from_openstudio(openstudio_model.get)
57
+ end
58
+
59
+ # Create Ladybug Energy Model JSON from gbXML file
60
+ def self.translate_from_gbxml_file(file)
61
+ translator = OpenStudio::GbXML::GbXMLReverseTranslator.new
62
+ openstudio_model = translator.loadModel(file)
63
+ raise "Cannot load gbXML file at '#{}'" if openstudio_model.empty?
64
+ self.translate_from_openstudio(openstudio_model.get)
65
+ end
66
+
67
+ # Create Ladybug Energy Model JSON from IDF file
68
+ def self.translate_from_idf_file(file)
69
+ translator = OpenStudio::EnergyPlus::ReverseTranslator.new
70
+ openstudio_model = translator.loadModel(file)
71
+ raise "Cannot load IDF file at '#{}'" if openstudio_model.empty?
72
+ self.translate_from_openstudio(openstudio_model.get)
73
+ end
74
+
75
+ def self.sizing_parameter_from_model(openstudio_model)
76
+ hash = {}
77
+ hash[:type] = 'SizingParameter'
78
+ hash[:design_days] = []
79
+ openstudio_model.getDesignDays.each do |design_day|
80
+ begin
81
+ hash[:design_days] << DesignDay.from_design_day(design_day)
82
+ rescue
83
+ end
84
+ end
85
+
86
+ sizing_parameters = openstudio_model.getSizingParameters
87
+ hash[:heating_factor] = sizing_parameters.heatingSizingFactor
88
+ hash[:cooling_factor] = sizing_parameters.coolingSizingFactor
89
+ hash
90
+ end
91
+
92
+ end #SimulationParameter
93
+ end #Honeybee
@@ -0,0 +1,67 @@
1
+ # *******************************************************************************
2
+ # Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
3
+ # Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # (1) Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # (3) Neither the name of the copyright holder nor the names of any contributors
16
+ # may be used to endorse or promote products derived from this software without
17
+ # specific prior written permission from the respective party.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
20
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
23
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
24
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
26
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ # *******************************************************************************
31
+
32
+ require 'honeybee/model_object'
33
+
34
+ module Honeybee
35
+ class SimulationOutput
36
+
37
+ def self.from_model(openstudio_model)
38
+ hash = {}
39
+ hash[:type] = 'SimulationOutput'
40
+ hash[:reporting_frequency] = 'Hourly'
41
+ hash[:include_sqlite] = true
42
+ hash[:include_html] = true
43
+ hash[:outputs] = outputs_from_model(openstudio_model)
44
+ hash[:summary_reports] = summary_reports_from_model(openstudio_model)
45
+
46
+ hash
47
+ end
48
+
49
+ def self.outputs_from_model(openstudio_model)
50
+ result = []
51
+ openstudio_model.getOutputVariables.each do |output|
52
+ result << output.variableName
53
+ end
54
+ result
55
+ end
56
+
57
+ def self.summary_reports_from_model(openstudio_model)
58
+ result = []
59
+ summary_reports = openstudio_model.getOutputTableSummaryReports
60
+ summary_reports.summaryReports.each do |summary_report|
61
+ result << summary_report
62
+ end
63
+ result
64
+ end
65
+
66
+ end # SimulationOutput
67
+ end # Honeybee
@@ -0,0 +1,93 @@
1
+ # *******************************************************************************
2
+ # Honeybee OpenStudio Gem, Copyright (c) 2020, Alliance for Sustainable
3
+ # Energy, LLC, Ladybug Tools LLC and other contributors. All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # (1) Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # (2) Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # (3) Neither the name of the copyright holder nor the names of any contributors
16
+ # may be used to endorse or promote products derived from this software without
17
+ # specific prior written permission from the respective party.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS
20
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
+ # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE
23
+ # UNITED STATES GOVERNMENT, OR THE UNITED STATES DEPARTMENT OF ENERGY, NOR ANY OF
24
+ # THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
+ # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
26
+ # OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
28
+ # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29
+ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ # *******************************************************************************
31
+
32
+ # import the core objects from which everything inherits
33
+ require 'honeybee/extension'
34
+ require 'honeybee/model_object'
35
+
36
+ # import the compound objects that house the other objects
37
+ require 'honeybee/model'
38
+ require 'honeybee/construction_set'
39
+ require 'honeybee/program_type'
40
+
41
+ # import the geometry objects
42
+ require 'honeybee/geometry/shade'
43
+ require 'honeybee/geometry/door'
44
+ require 'honeybee/geometry/aperture'
45
+ require 'honeybee/geometry/face'
46
+ require 'honeybee/geometry/room'
47
+
48
+ # import the HVAC objects
49
+ require 'honeybee/hvac/ideal_air'
50
+ require 'honeybee/hvac/template'
51
+
52
+ # import the construction objects
53
+ require 'honeybee/construction/opaque'
54
+ require 'honeybee/construction/window'
55
+ require 'honeybee/construction/windowshade'
56
+ require 'honeybee/construction/shade'
57
+ require 'honeybee/construction/air'
58
+
59
+ # import the material objects
60
+ require 'honeybee/material/opaque'
61
+ require 'honeybee/material/opaque_no_mass'
62
+ require 'honeybee/material/window_gas'
63
+ require 'honeybee/material/window_gas_mixture'
64
+ require 'honeybee/material/window_gas_custom'
65
+ require 'honeybee/material/window_blind'
66
+ require 'honeybee/material/window_glazing'
67
+ require 'honeybee/material/window_shade'
68
+ require 'honeybee/material/window_simpleglazsys'
69
+
70
+ # import the load objects
71
+ require 'honeybee/load/people'
72
+ require 'honeybee/load/lighting'
73
+ require 'honeybee/load/electric_equipment'
74
+ require 'honeybee/load/gas_equipment'
75
+ require 'honeybee/load/infiltration'
76
+ require 'honeybee/load/ventilation'
77
+ require 'honeybee/load/setpoint_thermostat'
78
+ require 'honeybee/load/setpoint_humidistat'
79
+
80
+ # import the schedule objects
81
+ require 'honeybee/schedule/type_limit'
82
+ require 'honeybee/schedule/fixed_interval'
83
+ require 'honeybee/schedule/ruleset'
84
+
85
+ # import the ventilation objects
86
+ require 'honeybee/ventcool/control'
87
+ require 'honeybee/ventcool/opening'
88
+ require 'honeybee/ventcool/simulation'
89
+
90
+ # import the simulation objects
91
+ require 'honeybee/simulation/design_day'
92
+ require 'honeybee/simulation/parameter_model'
93
+ require 'honeybee/simulation/simulation_output'
@@ -0,0 +1,1682 @@
1
+ {
2
+ "type": "ModelEnergyProperties",
3
+ "construction_sets": [
4
+ {
5
+ "type": "ConstructionSetAbridged",
6
+ "identifier": "Default Generic Construction Set",
7
+ "wall_set": {
8
+ "type": "WallConstructionSetAbridged",
9
+ "exterior_construction": "Generic Exterior Wall",
10
+ "interior_construction": "Generic Interior Wall",
11
+ "ground_construction": "Generic Underground Wall"
12
+ },
13
+ "floor_set": {
14
+ "type": "FloorConstructionSetAbridged",
15
+ "exterior_construction": "Generic Exposed Floor",
16
+ "interior_construction": "Generic Interior Floor",
17
+ "ground_construction": "Generic Ground Slab"
18
+ },
19
+ "roof_ceiling_set": {
20
+ "type": "RoofCeilingConstructionSetAbridged",
21
+ "exterior_construction": "Generic Roof",
22
+ "interior_construction": "Generic Interior Ceiling",
23
+ "ground_construction": "Generic Underground Roof"
24
+ },
25
+ "aperture_set": {
26
+ "type": "ApertureConstructionSetAbridged",
27
+ "window_construction": "Generic Double Pane",
28
+ "interior_construction": "Generic Single Pane",
29
+ "skylight_construction": "Generic Double Pane",
30
+ "operable_construction": "Generic Double Pane"
31
+ },
32
+ "door_set": {
33
+ "type": "DoorConstructionSetAbridged",
34
+ "exterior_construction": "Generic Exterior Door",
35
+ "interior_construction": "Generic Interior Door",
36
+ "exterior_glass_construction": "Generic Double Pane",
37
+ "interior_glass_construction": "Generic Single Pane",
38
+ "overhead_construction": "Generic Exterior Door"
39
+ },
40
+ "shade_construction": "Generic Shade",
41
+ "air_boundary_construction": "Generic Air Boundary"
42
+ }
43
+ ],
44
+ "constructions": [
45
+ {
46
+ "type": "OpaqueConstructionAbridged",
47
+ "identifier": "Generic Interior Door",
48
+ "layers": [
49
+ "Generic 25mm Wood"
50
+ ]
51
+ },
52
+ {
53
+ "type": "WindowConstructionAbridged",
54
+ "identifier": "Generic Single Pane",
55
+ "layers": [
56
+ "Generic Clear Glass"
57
+ ]
58
+ },
59
+ {
60
+ "type": "ShadeConstruction",
61
+ "identifier": "Generic Shade",
62
+ "solar_reflectance": 0.35,
63
+ "visible_reflectance": 0.35,
64
+ "is_specular": false
65
+ },
66
+ {
67
+ "type": "ShadeConstruction",
68
+ "identifier": "Generic Context",
69
+ "solar_reflectance": 0.2,
70
+ "visible_reflectance": 0.2,
71
+ "is_specular": false
72
+ },
73
+ {
74
+ "type": "OpaqueConstructionAbridged",
75
+ "identifier": "Generic Interior Ceiling",
76
+ "layers": [
77
+ "Generic LW Concrete",
78
+ "Generic Ceiling Air Gap",
79
+ "Generic Acoustic Tile"
80
+ ]
81
+ },
82
+ {
83
+ "type": "OpaqueConstructionAbridged",
84
+ "identifier": "Generic Interior Wall",
85
+ "layers": [
86
+ "Generic Gypsum Board",
87
+ "Generic Wall Air Gap",
88
+ "Generic Gypsum Board"
89
+ ]
90
+ },
91
+ {
92
+ "type": "OpaqueConstructionAbridged",
93
+ "identifier": "Generic Exposed Floor",
94
+ "layers": [
95
+ "Generic Painted Metal",
96
+ "Generic Ceiling Air Gap",
97
+ "Generic 50mm Insulation",
98
+ "Generic LW Concrete"
99
+ ]
100
+ },
101
+ {
102
+ "type": "OpaqueConstructionAbridged",
103
+ "identifier": "Generic Interior Floor",
104
+ "layers": [
105
+ "Generic Acoustic Tile",
106
+ "Generic Ceiling Air Gap",
107
+ "Generic LW Concrete"
108
+ ]
109
+ },
110
+ {
111
+ "type": "OpaqueConstructionAbridged",
112
+ "identifier": "Generic Ground Slab",
113
+ "layers": [
114
+ "Generic 50mm Insulation",
115
+ "Generic HW Concrete"
116
+ ]
117
+ },
118
+ {
119
+ "type": "OpaqueConstructionAbridged",
120
+ "identifier": "Generic Roof",
121
+ "layers": [
122
+ "Generic Roof Membrane",
123
+ "Generic 50mm Insulation",
124
+ "Generic LW Concrete",
125
+ "Generic Ceiling Air Gap",
126
+ "Generic Acoustic Tile"
127
+ ]
128
+ },
129
+ {
130
+ "type": "OpaqueConstructionAbridged",
131
+ "identifier": "Generic Exterior Wall",
132
+ "layers": [
133
+ "Generic Brick",
134
+ "Generic LW Concrete",
135
+ "Generic 50mm Insulation",
136
+ "Generic Wall Air Gap",
137
+ "Generic Gypsum Board"
138
+ ]
139
+ },
140
+ {
141
+ "type": "OpaqueConstructionAbridged",
142
+ "identifier": "Generic Underground Wall",
143
+ "layers": [
144
+ "Generic 50mm Insulation",
145
+ "Generic HW Concrete",
146
+ "Generic Wall Air Gap",
147
+ "Generic Gypsum Board"
148
+ ]
149
+ },
150
+ {
151
+ "type": "AirBoundaryConstructionAbridged",
152
+ "identifier": "Generic Air Boundary",
153
+ "air_mixing_per_area": 0.1,
154
+ "air_mixing_schedule": "Always On"
155
+ },
156
+ {
157
+ "type": "OpaqueConstructionAbridged",
158
+ "identifier": "Generic Underground Roof",
159
+ "layers": [
160
+ "Generic 50mm Insulation",
161
+ "Generic HW Concrete",
162
+ "Generic Ceiling Air Gap",
163
+ "Generic Acoustic Tile"
164
+ ]
165
+ },
166
+ {
167
+ "type": "WindowConstructionAbridged",
168
+ "identifier": "Generic Double Pane",
169
+ "layers": [
170
+ "Generic Low-e Glass",
171
+ "Generic Window Air Gap",
172
+ "Generic Clear Glass"
173
+ ]
174
+ },
175
+ {
176
+ "type": "OpaqueConstructionAbridged",
177
+ "identifier": "Generic Exterior Door",
178
+ "layers": [
179
+ "Generic Painted Metal",
180
+ "Generic 25mm Insulation",
181
+ "Generic Painted Metal"
182
+ ]
183
+ }
184
+ ],
185
+ "materials": [
186
+ {
187
+ "type": "EnergyMaterial",
188
+ "identifier": "Generic Roof Membrane",
189
+ "roughness": "MediumRough",
190
+ "thickness": 0.01,
191
+ "conductivity": 0.16,
192
+ "density": 1120.0,
193
+ "specific_heat": 1460.0,
194
+ "thermal_absorptance": 0.9,
195
+ "solar_absorptance": 0.65,
196
+ "visible_absorptance": 0.65
197
+ },
198
+ {
199
+ "type": "EnergyMaterial",
200
+ "identifier": "Generic Acoustic Tile",
201
+ "roughness": "MediumSmooth",
202
+ "thickness": 0.02,
203
+ "conductivity": 0.06,
204
+ "density": 368.0,
205
+ "specific_heat": 590.0,
206
+ "thermal_absorptance": 0.9,
207
+ "solar_absorptance": 0.2,
208
+ "visible_absorptance": 0.2
209
+ },
210
+ {
211
+ "type": "EnergyMaterial",
212
+ "identifier": "Generic 25mm Wood",
213
+ "roughness": "MediumSmooth",
214
+ "thickness": 0.0254,
215
+ "conductivity": 0.15,
216
+ "density": 608.0,
217
+ "specific_heat": 1630.0,
218
+ "thermal_absorptance": 0.9,
219
+ "solar_absorptance": 0.5,
220
+ "visible_absorptance": 0.5
221
+ },
222
+ {
223
+ "type": "EnergyMaterial",
224
+ "identifier": "Generic HW Concrete",
225
+ "roughness": "MediumRough",
226
+ "thickness": 0.2,
227
+ "conductivity": 1.95,
228
+ "density": 2240.0,
229
+ "specific_heat": 900.0,
230
+ "thermal_absorptance": 0.9,
231
+ "solar_absorptance": 0.8,
232
+ "visible_absorptance": 0.8
233
+ },
234
+ {
235
+ "type": "EnergyWindowMaterialGas",
236
+ "identifier": "Generic Window Air Gap",
237
+ "thickness": 0.0127,
238
+ "gas_type": "Air"
239
+ },
240
+ {
241
+ "gas_type": "Argon",
242
+ "thickness": 0.0127,
243
+ "identifier": "Generic Window Argon Gap",
244
+ "type": "EnergyWindowMaterialGas"
245
+ },
246
+ {
247
+ "type": "EnergyMaterial",
248
+ "identifier": "Generic Gypsum Board",
249
+ "roughness": "MediumSmooth",
250
+ "thickness": 0.0127,
251
+ "conductivity": 0.16,
252
+ "density": 800.0,
253
+ "specific_heat": 1090.0,
254
+ "thermal_absorptance": 0.9,
255
+ "solar_absorptance": 0.5,
256
+ "visible_absorptance": 0.5
257
+ },
258
+ {
259
+ "type": "EnergyMaterial",
260
+ "identifier": "Generic Wall Air Gap",
261
+ "roughness": "Smooth",
262
+ "thickness": 0.1,
263
+ "conductivity": 0.667,
264
+ "density": 1.28,
265
+ "specific_heat": 1000.0,
266
+ "thermal_absorptance": 0.9,
267
+ "solar_absorptance": 0.7,
268
+ "visible_absorptance": 0.7
269
+ },
270
+ {
271
+ "type": "EnergyMaterial",
272
+ "identifier": "Generic Ceiling Air Gap",
273
+ "roughness": "Smooth",
274
+ "thickness": 0.1,
275
+ "conductivity": 0.556,
276
+ "density": 1.28,
277
+ "specific_heat": 1000.0,
278
+ "thermal_absorptance": 0.9,
279
+ "solar_absorptance": 0.7,
280
+ "visible_absorptance": 0.7
281
+ },
282
+ {
283
+ "type": "EnergyMaterial",
284
+ "identifier": "Generic Brick",
285
+ "roughness": "MediumRough",
286
+ "thickness": 0.1,
287
+ "conductivity": 0.9,
288
+ "density": 1920.0,
289
+ "specific_heat": 790.0,
290
+ "thermal_absorptance": 0.9,
291
+ "solar_absorptance": 0.65,
292
+ "visible_absorptance": 0.65
293
+ },
294
+ {
295
+ "type": "EnergyMaterial",
296
+ "identifier": "Generic 50mm Insulation",
297
+ "roughness": "MediumRough",
298
+ "thickness": 0.05,
299
+ "conductivity": 0.03,
300
+ "density": 43.0,
301
+ "specific_heat": 1210.0,
302
+ "thermal_absorptance": 0.9,
303
+ "solar_absorptance": 0.7,
304
+ "visible_absorptance": 0.7
305
+ },
306
+ {
307
+ "type": "EnergyWindowMaterialGlazing",
308
+ "identifier": "Generic Low-e Glass",
309
+ "thickness": 0.006,
310
+ "solar_transmittance": 0.45,
311
+ "solar_reflectance": 0.36,
312
+ "solar_reflectance_back": 0.36,
313
+ "visible_transmittance": 0.71,
314
+ "visible_reflectance": 0.21,
315
+ "visible_reflectance_back": 0.21,
316
+ "infrared_transmittance": 0.0,
317
+ "emissivity": 0.84,
318
+ "emissivity_back": 0.047,
319
+ "conductivity": 1.0,
320
+ "dirt_correction": 1.0,
321
+ "solar_diffusing": false
322
+ },
323
+ {
324
+ "type": "EnergyMaterial",
325
+ "identifier": "Generic Painted Metal",
326
+ "roughness": "Smooth",
327
+ "thickness": 0.0015,
328
+ "conductivity": 45.0,
329
+ "density": 7690.0,
330
+ "specific_heat": 410.0,
331
+ "thermal_absorptance": 0.9,
332
+ "solar_absorptance": 0.5,
333
+ "visible_absorptance": 0.5
334
+ },
335
+ {
336
+ "type": "EnergyMaterial",
337
+ "identifier": "Generic LW Concrete",
338
+ "roughness": "MediumRough",
339
+ "thickness": 0.1,
340
+ "conductivity": 0.53,
341
+ "density": 1280.0,
342
+ "specific_heat": 840.0,
343
+ "thermal_absorptance": 0.9,
344
+ "solar_absorptance": 0.8,
345
+ "visible_absorptance": 0.8
346
+ },
347
+ {
348
+ "type": "EnergyMaterial",
349
+ "identifier": "Generic 25mm Insulation",
350
+ "roughness": "MediumRough",
351
+ "thickness": 0.05,
352
+ "conductivity": 0.03,
353
+ "density": 43.0,
354
+ "specific_heat": 1210.0,
355
+ "thermal_absorptance": 0.9,
356
+ "solar_absorptance": 0.7,
357
+ "visible_absorptance": 0.7
358
+ },
359
+ {
360
+ "type": "EnergyWindowMaterialGlazing",
361
+ "identifier": "Generic Clear Glass",
362
+ "thickness": 0.006,
363
+ "solar_transmittance": 0.77,
364
+ "solar_reflectance": 0.07,
365
+ "solar_reflectance_back": 0.07,
366
+ "visible_transmittance": 0.88,
367
+ "visible_reflectance": 0.08,
368
+ "visible_reflectance_back": 0.08,
369
+ "infrared_transmittance": 0.0,
370
+ "emissivity": 0.84,
371
+ "emissivity_back": 0.84,
372
+ "conductivity": 1.0,
373
+ "dirt_correction": 1.0,
374
+ "solar_diffusing": false
375
+ }
376
+ ],
377
+ "program_types": [
378
+ {
379
+ "type": "ProgramTypeAbridged",
380
+ "identifier": "Plenum"
381
+ },
382
+ {
383
+ "type": "ProgramTypeAbridged",
384
+ "identifier": "Generic Office Program",
385
+ "people": {
386
+ "type": "PeopleAbridged",
387
+ "identifier": "Generic Office People",
388
+ "people_per_area": 0.0565,
389
+ "radiant_fraction": 0.3,
390
+ "latent_fraction": {
391
+ "type": "Autocalculate"
392
+ },
393
+ "occupancy_schedule": "Generic Office Occupancy",
394
+ "activity_schedule": "Seated Adult Activity"
395
+ },
396
+ "lighting": {
397
+ "type": "LightingAbridged",
398
+ "identifier": "Generic Office Lighting",
399
+ "watts_per_area": 10.55,
400
+ "return_air_fraction": 0.0,
401
+ "radiant_fraction": 0.7,
402
+ "visible_fraction": 0.2,
403
+ "schedule": "Generic Office Lighting"
404
+ },
405
+ "electric_equipment": {
406
+ "type": "ElectricEquipmentAbridged",
407
+ "identifier": "Generic Office Equipment",
408
+ "watts_per_area": 10.33,
409
+ "radiant_fraction": 0.5,
410
+ "latent_fraction": 0.0,
411
+ "lost_fraction": 0.0,
412
+ "schedule": "Generic Office Equipment"
413
+ },
414
+ "infiltration": {
415
+ "type": "InfiltrationAbridged",
416
+ "identifier": "Generic Office Infiltration",
417
+ "flow_per_exterior_area": 0.0002266,
418
+ "schedule": "Generic Office Infiltration"
419
+ },
420
+ "ventilation": {
421
+ "type": "VentilationAbridged",
422
+ "identifier": "Generic Office Ventilation",
423
+ "flow_per_person": 0.00236,
424
+ "flow_per_area": 0.000305
425
+ },
426
+ "setpoint": {
427
+ "type": "SetpointAbridged",
428
+ "identifier": "Generic Office Setpoints",
429
+ "heating_schedule": "Generic Office Heating",
430
+ "cooling_schedule": "Generic Office Cooling"
431
+ }
432
+ }
433
+ ],
434
+ "schedules": [
435
+ {
436
+ "type": "ScheduleRulesetAbridged",
437
+ "identifier": "Generic Office Lighting",
438
+ "day_schedules": [
439
+ {
440
+ "type": "ScheduleDay",
441
+ "identifier": "OfficeMedium BLDG_LIGHT_SCH_2013_Sun",
442
+ "values": [
443
+ 0.05,
444
+ 0.04311628,
445
+ 0.05
446
+ ],
447
+ "times": [
448
+ [
449
+ 0,
450
+ 0
451
+ ],
452
+ [
453
+ 6,
454
+ 0
455
+ ],
456
+ [
457
+ 18,
458
+ 0
459
+ ]
460
+ ],
461
+ "interpolate": false
462
+ },
463
+ {
464
+ "type": "ScheduleDay",
465
+ "identifier": "OfficeMedium BLDG_LIGHT_SCH_2013_SmrDsn",
466
+ "values": [
467
+ 1.0
468
+ ],
469
+ "times": [
470
+ [
471
+ 0,
472
+ 0
473
+ ]
474
+ ],
475
+ "interpolate": false
476
+ },
477
+ {
478
+ "type": "ScheduleDay",
479
+ "identifier": "OfficeMedium BLDG_LIGHT_SCH_2013_WntrDsn",
480
+ "values": [
481
+ 0.0
482
+ ],
483
+ "times": [
484
+ [
485
+ 0,
486
+ 0
487
+ ]
488
+ ],
489
+ "interpolate": false
490
+ },
491
+ {
492
+ "type": "ScheduleDay",
493
+ "identifier": "OfficeMedium BLDG_LIGHT_SCH_2013_Sat",
494
+ "values": [
495
+ 0.05,
496
+ 0.08623256,
497
+ 0.25869768,
498
+ 0.12934884,
499
+ 0.04311628,
500
+ 0.05
501
+ ],
502
+ "times": [
503
+ [
504
+ 0,
505
+ 0
506
+ ],
507
+ [
508
+ 6,
509
+ 0
510
+ ],
511
+ [
512
+ 8,
513
+ 0
514
+ ],
515
+ [
516
+ 12,
517
+ 0
518
+ ],
519
+ [
520
+ 17,
521
+ 0
522
+ ],
523
+ [
524
+ 19,
525
+ 0
526
+ ]
527
+ ],
528
+ "interpolate": false
529
+ },
530
+ {
531
+ "type": "ScheduleDay",
532
+ "identifier": "OfficeMedium BLDG_LIGHT_SCH_2013_Wkdy",
533
+ "values": [
534
+ 0.05,
535
+ 0.1,
536
+ 0.08623256,
537
+ 0.25869768,
538
+ 0.77609304,
539
+ 0.4311628,
540
+ 0.25869768,
541
+ 0.17246512,
542
+ 0.08623256,
543
+ 0.04311628
544
+ ],
545
+ "times": [
546
+ [
547
+ 0,
548
+ 0
549
+ ],
550
+ [
551
+ 5,
552
+ 0
553
+ ],
554
+ [
555
+ 6,
556
+ 0
557
+ ],
558
+ [
559
+ 7,
560
+ 0
561
+ ],
562
+ [
563
+ 8,
564
+ 0
565
+ ],
566
+ [
567
+ 17,
568
+ 0
569
+ ],
570
+ [
571
+ 18,
572
+ 0
573
+ ],
574
+ [
575
+ 20,
576
+ 0
577
+ ],
578
+ [
579
+ 22,
580
+ 0
581
+ ],
582
+ [
583
+ 23,
584
+ 0
585
+ ]
586
+ ],
587
+ "interpolate": false
588
+ }
589
+ ],
590
+ "default_day_schedule": "OfficeMedium BLDG_LIGHT_SCH_2013_Sun",
591
+ "schedule_rules": [
592
+ {
593
+ "type": "ScheduleRuleAbridged",
594
+ "schedule_day": "OfficeMedium BLDG_LIGHT_SCH_2013_Wkdy",
595
+ "apply_sunday": false,
596
+ "apply_monday": true,
597
+ "apply_tuesday": true,
598
+ "apply_wednesday": true,
599
+ "apply_thursday": true,
600
+ "apply_friday": true,
601
+ "apply_saturday": false,
602
+ "start_date": [
603
+ 1,
604
+ 1
605
+ ],
606
+ "end_date": [
607
+ 12,
608
+ 31
609
+ ]
610
+ },
611
+ {
612
+ "type": "ScheduleRuleAbridged",
613
+ "schedule_day": "OfficeMedium BLDG_LIGHT_SCH_2013_Sat",
614
+ "apply_sunday": false,
615
+ "apply_monday": false,
616
+ "apply_tuesday": false,
617
+ "apply_wednesday": false,
618
+ "apply_thursday": false,
619
+ "apply_friday": false,
620
+ "apply_saturday": true,
621
+ "start_date": [
622
+ 1,
623
+ 1
624
+ ],
625
+ "end_date": [
626
+ 12,
627
+ 31
628
+ ]
629
+ }
630
+ ],
631
+ "holiday_schedule": "OfficeMedium BLDG_LIGHT_SCH_2013_Sat",
632
+ "summer_designday_schedule": "OfficeMedium BLDG_LIGHT_SCH_2013_SmrDsn",
633
+ "winter_designday_schedule": "OfficeMedium BLDG_LIGHT_SCH_2013_WntrDsn",
634
+ "schedule_type_limit": "Fractional"
635
+ },
636
+ {
637
+ "type": "ScheduleRulesetAbridged",
638
+ "identifier": "Generic Office Heating",
639
+ "day_schedules": [
640
+ {
641
+ "type": "ScheduleDay",
642
+ "identifier": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Default",
643
+ "values": [
644
+ 15.6
645
+ ],
646
+ "times": [
647
+ [
648
+ 0,
649
+ 0
650
+ ]
651
+ ],
652
+ "interpolate": false
653
+ },
654
+ {
655
+ "type": "ScheduleDay",
656
+ "identifier": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Default_SmrDsn",
657
+ "values": [
658
+ 15.6
659
+ ],
660
+ "times": [
661
+ [
662
+ 0,
663
+ 0
664
+ ]
665
+ ],
666
+ "interpolate": false
667
+ },
668
+ {
669
+ "type": "ScheduleDay",
670
+ "identifier": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_WntrDsn",
671
+ "values": [
672
+ 15.6,
673
+ 17.6,
674
+ 19.6,
675
+ 21.0,
676
+ 15.6
677
+ ],
678
+ "times": [
679
+ [
680
+ 0,
681
+ 0
682
+ ],
683
+ [
684
+ 5,
685
+ 0
686
+ ],
687
+ [
688
+ 6,
689
+ 0
690
+ ],
691
+ [
692
+ 7,
693
+ 0
694
+ ],
695
+ [
696
+ 22,
697
+ 0
698
+ ]
699
+ ],
700
+ "interpolate": false
701
+ },
702
+ {
703
+ "type": "ScheduleDay",
704
+ "identifier": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Wkdy",
705
+ "values": [
706
+ 15.6,
707
+ 17.8,
708
+ 20.0,
709
+ 21.0,
710
+ 15.6
711
+ ],
712
+ "times": [
713
+ [
714
+ 0,
715
+ 0
716
+ ],
717
+ [
718
+ 5,
719
+ 0
720
+ ],
721
+ [
722
+ 6,
723
+ 0
724
+ ],
725
+ [
726
+ 7,
727
+ 0
728
+ ],
729
+ [
730
+ 22,
731
+ 0
732
+ ]
733
+ ],
734
+ "interpolate": false
735
+ },
736
+ {
737
+ "type": "ScheduleDay",
738
+ "identifier": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Sat",
739
+ "values": [
740
+ 15.6,
741
+ 17.8,
742
+ 20.0,
743
+ 21.0,
744
+ 15.6
745
+ ],
746
+ "times": [
747
+ [
748
+ 0,
749
+ 0
750
+ ],
751
+ [
752
+ 5,
753
+ 0
754
+ ],
755
+ [
756
+ 6,
757
+ 0
758
+ ],
759
+ [
760
+ 7,
761
+ 0
762
+ ],
763
+ [
764
+ 17,
765
+ 0
766
+ ]
767
+ ],
768
+ "interpolate": false
769
+ }
770
+ ],
771
+ "default_day_schedule": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Default",
772
+ "schedule_rules": [
773
+ {
774
+ "type": "ScheduleRuleAbridged",
775
+ "schedule_day": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Wkdy",
776
+ "apply_sunday": false,
777
+ "apply_monday": true,
778
+ "apply_tuesday": true,
779
+ "apply_wednesday": true,
780
+ "apply_thursday": true,
781
+ "apply_friday": true,
782
+ "apply_saturday": false,
783
+ "start_date": [
784
+ 1,
785
+ 1
786
+ ],
787
+ "end_date": [
788
+ 12,
789
+ 31
790
+ ]
791
+ },
792
+ {
793
+ "type": "ScheduleRuleAbridged",
794
+ "schedule_day": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Sat",
795
+ "apply_sunday": false,
796
+ "apply_monday": false,
797
+ "apply_tuesday": false,
798
+ "apply_wednesday": false,
799
+ "apply_thursday": false,
800
+ "apply_friday": false,
801
+ "apply_saturday": true,
802
+ "start_date": [
803
+ 1,
804
+ 1
805
+ ],
806
+ "end_date": [
807
+ 12,
808
+ 31
809
+ ]
810
+ }
811
+ ],
812
+ "holiday_schedule": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Default",
813
+ "summer_designday_schedule": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_Default_SmrDsn",
814
+ "winter_designday_schedule": "OfficeMedium HTGSETP_SCH_YES_OPTIMUM_WntrDsn",
815
+ "schedule_type_limit": "Temperature"
816
+ },
817
+ {
818
+ "type": "ScheduleRulesetAbridged",
819
+ "identifier": "Generic Office Infiltration",
820
+ "day_schedules": [
821
+ {
822
+ "type": "ScheduleDay",
823
+ "identifier": "OfficeMedium INFIL_SCH_PNNL_Default",
824
+ "values": [
825
+ 1.0
826
+ ],
827
+ "times": [
828
+ [
829
+ 0,
830
+ 0
831
+ ]
832
+ ],
833
+ "interpolate": false
834
+ },
835
+ {
836
+ "type": "ScheduleDay",
837
+ "identifier": "OfficeMedium INFIL_SCH_PNNL_Wkdy_SmrDsn",
838
+ "values": [
839
+ 1.0,
840
+ 0.25,
841
+ 1.0
842
+ ],
843
+ "times": [
844
+ [
845
+ 0,
846
+ 0
847
+ ],
848
+ [
849
+ 6,
850
+ 0
851
+ ],
852
+ [
853
+ 22,
854
+ 0
855
+ ]
856
+ ],
857
+ "interpolate": false
858
+ },
859
+ {
860
+ "type": "ScheduleDay",
861
+ "identifier": "OfficeMedium INFIL_SCH_PNNL_Sat_WntrDsn",
862
+ "values": [
863
+ 1.0,
864
+ 0.25,
865
+ 1.0
866
+ ],
867
+ "times": [
868
+ [
869
+ 0,
870
+ 0
871
+ ],
872
+ [
873
+ 6,
874
+ 0
875
+ ],
876
+ [
877
+ 18,
878
+ 0
879
+ ]
880
+ ],
881
+ "interpolate": false
882
+ },
883
+ {
884
+ "type": "ScheduleDay",
885
+ "identifier": "OfficeMedium INFIL_SCH_PNNL_Wkdy",
886
+ "values": [
887
+ 1.0,
888
+ 0.25,
889
+ 1.0
890
+ ],
891
+ "times": [
892
+ [
893
+ 0,
894
+ 0
895
+ ],
896
+ [
897
+ 6,
898
+ 0
899
+ ],
900
+ [
901
+ 22,
902
+ 0
903
+ ]
904
+ ],
905
+ "interpolate": false
906
+ },
907
+ {
908
+ "type": "ScheduleDay",
909
+ "identifier": "OfficeMedium INFIL_SCH_PNNL_Sat",
910
+ "values": [
911
+ 1.0,
912
+ 0.25,
913
+ 1.0
914
+ ],
915
+ "times": [
916
+ [
917
+ 0,
918
+ 0
919
+ ],
920
+ [
921
+ 6,
922
+ 0
923
+ ],
924
+ [
925
+ 18,
926
+ 0
927
+ ]
928
+ ],
929
+ "interpolate": false
930
+ }
931
+ ],
932
+ "default_day_schedule": "OfficeMedium INFIL_SCH_PNNL_Default",
933
+ "schedule_rules": [
934
+ {
935
+ "type": "ScheduleRuleAbridged",
936
+ "schedule_day": "OfficeMedium INFIL_SCH_PNNL_Wkdy",
937
+ "apply_sunday": false,
938
+ "apply_monday": true,
939
+ "apply_tuesday": true,
940
+ "apply_wednesday": true,
941
+ "apply_thursday": true,
942
+ "apply_friday": true,
943
+ "apply_saturday": false,
944
+ "start_date": [
945
+ 1,
946
+ 1
947
+ ],
948
+ "end_date": [
949
+ 12,
950
+ 31
951
+ ]
952
+ },
953
+ {
954
+ "type": "ScheduleRuleAbridged",
955
+ "schedule_day": "OfficeMedium INFIL_SCH_PNNL_Sat",
956
+ "apply_sunday": false,
957
+ "apply_monday": false,
958
+ "apply_tuesday": false,
959
+ "apply_wednesday": false,
960
+ "apply_thursday": false,
961
+ "apply_friday": false,
962
+ "apply_saturday": true,
963
+ "start_date": [
964
+ 1,
965
+ 1
966
+ ],
967
+ "end_date": [
968
+ 12,
969
+ 31
970
+ ]
971
+ }
972
+ ],
973
+ "holiday_schedule": "OfficeMedium INFIL_SCH_PNNL_Default",
974
+ "summer_designday_schedule": "OfficeMedium INFIL_SCH_PNNL_Wkdy_SmrDsn",
975
+ "winter_designday_schedule": "OfficeMedium INFIL_SCH_PNNL_Sat_WntrDsn",
976
+ "schedule_type_limit": "Fractional"
977
+ },
978
+ {
979
+ "type": "ScheduleRulesetAbridged",
980
+ "identifier": "Generic Office Occupancy",
981
+ "day_schedules": [
982
+ {
983
+ "type": "ScheduleDay",
984
+ "identifier": "OfficeMedium BLDG_OCC_SCH_Default",
985
+ "values": [
986
+ 0.0,
987
+ 0.05,
988
+ 0.0
989
+ ],
990
+ "times": [
991
+ [
992
+ 0,
993
+ 0
994
+ ],
995
+ [
996
+ 6,
997
+ 0
998
+ ],
999
+ [
1000
+ 18,
1001
+ 0
1002
+ ]
1003
+ ],
1004
+ "interpolate": false
1005
+ },
1006
+ {
1007
+ "type": "ScheduleDay",
1008
+ "identifier": "OfficeMedium BLDG_OCC_SCH_SmrDsn",
1009
+ "values": [
1010
+ 0.0,
1011
+ 1.0,
1012
+ 0.05
1013
+ ],
1014
+ "times": [
1015
+ [
1016
+ 0,
1017
+ 0
1018
+ ],
1019
+ [
1020
+ 6,
1021
+ 0
1022
+ ],
1023
+ [
1024
+ 22,
1025
+ 0
1026
+ ]
1027
+ ],
1028
+ "interpolate": false
1029
+ },
1030
+ {
1031
+ "type": "ScheduleDay",
1032
+ "identifier": "OfficeMedium BLDG_OCC_SCH_WntrDsn",
1033
+ "values": [
1034
+ 0.0
1035
+ ],
1036
+ "times": [
1037
+ [
1038
+ 0,
1039
+ 0
1040
+ ]
1041
+ ],
1042
+ "interpolate": false
1043
+ },
1044
+ {
1045
+ "type": "ScheduleDay",
1046
+ "identifier": "OfficeMedium BLDG_OCC_SCH_Wkdy",
1047
+ "values": [
1048
+ 0.0,
1049
+ 0.1,
1050
+ 0.2,
1051
+ 0.95,
1052
+ 0.5,
1053
+ 0.95,
1054
+ 0.3,
1055
+ 0.1,
1056
+ 0.05
1057
+ ],
1058
+ "times": [
1059
+ [
1060
+ 0,
1061
+ 0
1062
+ ],
1063
+ [
1064
+ 6,
1065
+ 0
1066
+ ],
1067
+ [
1068
+ 7,
1069
+ 0
1070
+ ],
1071
+ [
1072
+ 8,
1073
+ 0
1074
+ ],
1075
+ [
1076
+ 12,
1077
+ 0
1078
+ ],
1079
+ [
1080
+ 13,
1081
+ 0
1082
+ ],
1083
+ [
1084
+ 17,
1085
+ 0
1086
+ ],
1087
+ [
1088
+ 18,
1089
+ 0
1090
+ ],
1091
+ [
1092
+ 22,
1093
+ 0
1094
+ ]
1095
+ ],
1096
+ "interpolate": false
1097
+ },
1098
+ {
1099
+ "type": "ScheduleDay",
1100
+ "identifier": "OfficeMedium BLDG_OCC_SCH_Sat",
1101
+ "values": [
1102
+ 0.0,
1103
+ 0.1,
1104
+ 0.3,
1105
+ 0.1,
1106
+ 0.05,
1107
+ 0.0
1108
+ ],
1109
+ "times": [
1110
+ [
1111
+ 0,
1112
+ 0
1113
+ ],
1114
+ [
1115
+ 6,
1116
+ 0
1117
+ ],
1118
+ [
1119
+ 8,
1120
+ 0
1121
+ ],
1122
+ [
1123
+ 12,
1124
+ 0
1125
+ ],
1126
+ [
1127
+ 17,
1128
+ 0
1129
+ ],
1130
+ [
1131
+ 19,
1132
+ 0
1133
+ ]
1134
+ ],
1135
+ "interpolate": false
1136
+ }
1137
+ ],
1138
+ "default_day_schedule": "OfficeMedium BLDG_OCC_SCH_Default",
1139
+ "schedule_rules": [
1140
+ {
1141
+ "type": "ScheduleRuleAbridged",
1142
+ "schedule_day": "OfficeMedium BLDG_OCC_SCH_Wkdy",
1143
+ "apply_sunday": false,
1144
+ "apply_monday": true,
1145
+ "apply_tuesday": true,
1146
+ "apply_wednesday": true,
1147
+ "apply_thursday": true,
1148
+ "apply_friday": true,
1149
+ "apply_saturday": false,
1150
+ "start_date": [
1151
+ 1,
1152
+ 1
1153
+ ],
1154
+ "end_date": [
1155
+ 12,
1156
+ 31
1157
+ ]
1158
+ },
1159
+ {
1160
+ "type": "ScheduleRuleAbridged",
1161
+ "schedule_day": "OfficeMedium BLDG_OCC_SCH_Sat",
1162
+ "apply_sunday": false,
1163
+ "apply_monday": false,
1164
+ "apply_tuesday": false,
1165
+ "apply_wednesday": false,
1166
+ "apply_thursday": false,
1167
+ "apply_friday": false,
1168
+ "apply_saturday": true,
1169
+ "start_date": [
1170
+ 1,
1171
+ 1
1172
+ ],
1173
+ "end_date": [
1174
+ 12,
1175
+ 31
1176
+ ]
1177
+ }
1178
+ ],
1179
+ "holiday_schedule": "OfficeMedium BLDG_OCC_SCH_Default",
1180
+ "summer_designday_schedule": "OfficeMedium BLDG_OCC_SCH_SmrDsn",
1181
+ "winter_designday_schedule": "OfficeMedium BLDG_OCC_SCH_WntrDsn",
1182
+ "schedule_type_limit": "Fractional"
1183
+ },
1184
+ {
1185
+ "type": "ScheduleRulesetAbridged",
1186
+ "identifier": "Seated Adult Activity",
1187
+ "default_day_schedule": "Seated Adult Activity_Day Schedule",
1188
+ "schedule_type_limit": "Activity Level",
1189
+ "day_schedules": [
1190
+ {
1191
+ "identifier": "Seated Adult Activity_Day Schedule",
1192
+ "times": [
1193
+ [
1194
+ 0,
1195
+ 0
1196
+ ]
1197
+ ],
1198
+ "values": [
1199
+ 120.0
1200
+ ],
1201
+ "type": "ScheduleDay",
1202
+ "interpolate": false
1203
+ }
1204
+ ]
1205
+ },
1206
+ {
1207
+ "type": "ScheduleRulesetAbridged",
1208
+ "identifier": "Always On",
1209
+ "day_schedules": [
1210
+ {
1211
+ "type": "ScheduleDay",
1212
+ "identifier": "Always On_Day Schedule",
1213
+ "values": [
1214
+ 1.0
1215
+ ],
1216
+ "times": [
1217
+ [
1218
+ 0,
1219
+ 0
1220
+ ]
1221
+ ],
1222
+ "interpolate": false
1223
+ }
1224
+ ],
1225
+ "default_day_schedule": "Always On_Day Schedule",
1226
+ "schedule_type_limit": "Fractional"
1227
+ },
1228
+ {
1229
+ "type": "ScheduleRulesetAbridged",
1230
+ "identifier": "Generic Office Equipment",
1231
+ "day_schedules": [
1232
+ {
1233
+ "type": "ScheduleDay",
1234
+ "identifier": "OfficeMedium BLDG_EQUIP_SCH_2013_Sun",
1235
+ "values": [
1236
+ 0.2307553806,
1237
+ 0.288107175,
1238
+ 0.2307553806
1239
+ ],
1240
+ "times": [
1241
+ [
1242
+ 0,
1243
+ 0
1244
+ ],
1245
+ [
1246
+ 6,
1247
+ 0
1248
+ ],
1249
+ [
1250
+ 18,
1251
+ 0
1252
+ ]
1253
+ ],
1254
+ "interpolate": false
1255
+ },
1256
+ {
1257
+ "type": "ScheduleDay",
1258
+ "identifier": "OfficeMedium BLDG_EQUIP_SCH_2013_SmrDsn",
1259
+ "values": [
1260
+ 1.0
1261
+ ],
1262
+ "times": [
1263
+ [
1264
+ 0,
1265
+ 0
1266
+ ]
1267
+ ],
1268
+ "interpolate": false
1269
+ },
1270
+ {
1271
+ "type": "ScheduleDay",
1272
+ "identifier": "OfficeMedium BLDG_EQUIP_SCH_2013_WntrDsn",
1273
+ "values": [
1274
+ 0.0
1275
+ ],
1276
+ "times": [
1277
+ [
1278
+ 0,
1279
+ 0
1280
+ ]
1281
+ ],
1282
+ "interpolate": false
1283
+ },
1284
+ {
1285
+ "type": "ScheduleDay",
1286
+ "identifier": "OfficeMedium BLDG_EQUIP_SCH_2013_Sat",
1287
+ "values": [
1288
+ 0.2307553806,
1289
+ 0.381234796,
1290
+ 0.476543495,
1291
+ 0.3335804465,
1292
+ 0.285926097,
1293
+ 0.2307553806
1294
+ ],
1295
+ "times": [
1296
+ [
1297
+ 0,
1298
+ 0
1299
+ ],
1300
+ [
1301
+ 6,
1302
+ 0
1303
+ ],
1304
+ [
1305
+ 8,
1306
+ 0
1307
+ ],
1308
+ [
1309
+ 12,
1310
+ 0
1311
+ ],
1312
+ [
1313
+ 17,
1314
+ 0
1315
+ ],
1316
+ [
1317
+ 19,
1318
+ 0
1319
+ ]
1320
+ ],
1321
+ "interpolate": false
1322
+ },
1323
+ {
1324
+ "type": "ScheduleDay",
1325
+ "identifier": "OfficeMedium BLDG_EQUIP_SCH_2013_Wkdy",
1326
+ "values": [
1327
+ 0.3076738408,
1328
+ 0.381234796,
1329
+ 0.857778291,
1330
+ 0.762469592,
1331
+ 0.857778291,
1332
+ 0.476543495,
1333
+ 0.381234796
1334
+ ],
1335
+ "times": [
1336
+ [
1337
+ 0,
1338
+ 0
1339
+ ],
1340
+ [
1341
+ 6,
1342
+ 0
1343
+ ],
1344
+ [
1345
+ 8,
1346
+ 0
1347
+ ],
1348
+ [
1349
+ 12,
1350
+ 0
1351
+ ],
1352
+ [
1353
+ 13,
1354
+ 0
1355
+ ],
1356
+ [
1357
+ 17,
1358
+ 0
1359
+ ],
1360
+ [
1361
+ 18,
1362
+ 0
1363
+ ]
1364
+ ],
1365
+ "interpolate": false
1366
+ }
1367
+ ],
1368
+ "default_day_schedule": "OfficeMedium BLDG_EQUIP_SCH_2013_Sun",
1369
+ "schedule_rules": [
1370
+ {
1371
+ "type": "ScheduleRuleAbridged",
1372
+ "schedule_day": "OfficeMedium BLDG_EQUIP_SCH_2013_Wkdy",
1373
+ "apply_sunday": false,
1374
+ "apply_monday": true,
1375
+ "apply_tuesday": true,
1376
+ "apply_wednesday": true,
1377
+ "apply_thursday": true,
1378
+ "apply_friday": true,
1379
+ "apply_saturday": false,
1380
+ "start_date": [
1381
+ 1,
1382
+ 1
1383
+ ],
1384
+ "end_date": [
1385
+ 12,
1386
+ 31
1387
+ ]
1388
+ },
1389
+ {
1390
+ "type": "ScheduleRuleAbridged",
1391
+ "schedule_day": "OfficeMedium BLDG_EQUIP_SCH_2013_Sat",
1392
+ "apply_sunday": false,
1393
+ "apply_monday": false,
1394
+ "apply_tuesday": false,
1395
+ "apply_wednesday": false,
1396
+ "apply_thursday": false,
1397
+ "apply_friday": false,
1398
+ "apply_saturday": true,
1399
+ "start_date": [
1400
+ 1,
1401
+ 1
1402
+ ],
1403
+ "end_date": [
1404
+ 12,
1405
+ 31
1406
+ ]
1407
+ }
1408
+ ],
1409
+ "holiday_schedule": "OfficeMedium BLDG_EQUIP_SCH_2013_Sat",
1410
+ "summer_designday_schedule": "OfficeMedium BLDG_EQUIP_SCH_2013_SmrDsn",
1411
+ "winter_designday_schedule": "OfficeMedium BLDG_EQUIP_SCH_2013_WntrDsn",
1412
+ "schedule_type_limit": "Fractional"
1413
+ },
1414
+ {
1415
+ "type": "ScheduleRulesetAbridged",
1416
+ "identifier": "Generic Office Cooling",
1417
+ "day_schedules": [
1418
+ {
1419
+ "type": "ScheduleDay",
1420
+ "identifier": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Default",
1421
+ "values": [
1422
+ 26.7
1423
+ ],
1424
+ "times": [
1425
+ [
1426
+ 0,
1427
+ 0
1428
+ ]
1429
+ ],
1430
+ "interpolate": false
1431
+ },
1432
+ {
1433
+ "type": "ScheduleDay",
1434
+ "identifier": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_SmrDsn",
1435
+ "values": [
1436
+ 26.7,
1437
+ 25.7,
1438
+ 25.0,
1439
+ 24.0,
1440
+ 26.7
1441
+ ],
1442
+ "times": [
1443
+ [
1444
+ 0,
1445
+ 0
1446
+ ],
1447
+ [
1448
+ 5,
1449
+ 0
1450
+ ],
1451
+ [
1452
+ 6,
1453
+ 0
1454
+ ],
1455
+ [
1456
+ 7,
1457
+ 0
1458
+ ],
1459
+ [
1460
+ 22,
1461
+ 0
1462
+ ]
1463
+ ],
1464
+ "interpolate": false
1465
+ },
1466
+ {
1467
+ "type": "ScheduleDay",
1468
+ "identifier": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Default_WntrDsn",
1469
+ "values": [
1470
+ 26.7
1471
+ ],
1472
+ "times": [
1473
+ [
1474
+ 0,
1475
+ 0
1476
+ ]
1477
+ ],
1478
+ "interpolate": false
1479
+ },
1480
+ {
1481
+ "type": "ScheduleDay",
1482
+ "identifier": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Wkdy",
1483
+ "values": [
1484
+ 26.7,
1485
+ 25.6,
1486
+ 25.0,
1487
+ 24.0,
1488
+ 26.7
1489
+ ],
1490
+ "times": [
1491
+ [
1492
+ 0,
1493
+ 0
1494
+ ],
1495
+ [
1496
+ 5,
1497
+ 0
1498
+ ],
1499
+ [
1500
+ 6,
1501
+ 0
1502
+ ],
1503
+ [
1504
+ 7,
1505
+ 0
1506
+ ],
1507
+ [
1508
+ 22,
1509
+ 0
1510
+ ]
1511
+ ],
1512
+ "interpolate": false
1513
+ },
1514
+ {
1515
+ "type": "ScheduleDay",
1516
+ "identifier": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Sat",
1517
+ "values": [
1518
+ 26.7,
1519
+ 25.7,
1520
+ 25.0,
1521
+ 24.0,
1522
+ 26.7
1523
+ ],
1524
+ "times": [
1525
+ [
1526
+ 0,
1527
+ 0
1528
+ ],
1529
+ [
1530
+ 5,
1531
+ 0
1532
+ ],
1533
+ [
1534
+ 6,
1535
+ 0
1536
+ ],
1537
+ [
1538
+ 7,
1539
+ 0
1540
+ ],
1541
+ [
1542
+ 17,
1543
+ 0
1544
+ ]
1545
+ ],
1546
+ "interpolate": false
1547
+ }
1548
+ ],
1549
+ "default_day_schedule": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Default",
1550
+ "schedule_rules": [
1551
+ {
1552
+ "type": "ScheduleRuleAbridged",
1553
+ "schedule_day": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Wkdy",
1554
+ "apply_sunday": false,
1555
+ "apply_monday": true,
1556
+ "apply_tuesday": true,
1557
+ "apply_wednesday": true,
1558
+ "apply_thursday": true,
1559
+ "apply_friday": true,
1560
+ "apply_saturday": false,
1561
+ "start_date": [
1562
+ 1,
1563
+ 1
1564
+ ],
1565
+ "end_date": [
1566
+ 12,
1567
+ 31
1568
+ ]
1569
+ },
1570
+ {
1571
+ "type": "ScheduleRuleAbridged",
1572
+ "schedule_day": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Sat",
1573
+ "apply_sunday": false,
1574
+ "apply_monday": false,
1575
+ "apply_tuesday": false,
1576
+ "apply_wednesday": false,
1577
+ "apply_thursday": false,
1578
+ "apply_friday": false,
1579
+ "apply_saturday": true,
1580
+ "start_date": [
1581
+ 1,
1582
+ 1
1583
+ ],
1584
+ "end_date": [
1585
+ 12,
1586
+ 31
1587
+ ]
1588
+ }
1589
+ ],
1590
+ "holiday_schedule": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Default",
1591
+ "summer_designday_schedule": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_SmrDsn",
1592
+ "winter_designday_schedule": "OfficeMedium CLGSETP_SCH_YES_OPTIMUM_Default_WntrDsn",
1593
+ "schedule_type_limit": "Temperature"
1594
+ }
1595
+ ],
1596
+ "schedule_type_limits": [
1597
+ {
1598
+ "type": "ScheduleTypeLimit",
1599
+ "identifier": "Activity Level",
1600
+ "upper_limit": {
1601
+ "type": "NoLimit"
1602
+ },
1603
+ "lower_limit": 0.0,
1604
+ "numeric_type": "Continuous",
1605
+ "unit_type": "ActivityLevel"
1606
+ },
1607
+ {
1608
+ "type": "ScheduleTypeLimit",
1609
+ "identifier": "Angle",
1610
+ "upper_limit": 180.0,
1611
+ "lower_limit": 0.0,
1612
+ "numeric_type": "Continuous",
1613
+ "unit_type": "Angle"
1614
+ },
1615
+ {
1616
+ "type": "ScheduleTypeLimit",
1617
+ "identifier": "Delta Temperature",
1618
+ "upper_limit": {
1619
+ "type": "NoLimit"
1620
+ },
1621
+ "lower_limit": {
1622
+ "type": "NoLimit"
1623
+ },
1624
+ "numeric_type": "Continuous",
1625
+ "unit_type": "DeltaTemperature"
1626
+ },
1627
+ {
1628
+ "type": "ScheduleTypeLimit",
1629
+ "identifier": "Fractional",
1630
+ "upper_limit": 1.0,
1631
+ "lower_limit": 0.0,
1632
+ "numeric_type": "Continuous",
1633
+ "unit_type": "Dimensionless"
1634
+ },
1635
+ {
1636
+ "type": "ScheduleTypeLimit",
1637
+ "identifier": "Humidity",
1638
+ "upper_limit": 100.0,
1639
+ "lower_limit": 0.0,
1640
+ "numeric_type": "Continuous",
1641
+ "unit_type": "Percent"
1642
+ },
1643
+ {
1644
+ "type": "ScheduleTypeLimit",
1645
+ "identifier": "On-Off",
1646
+ "upper_limit": 1.0,
1647
+ "lower_limit": 0.0,
1648
+ "numeric_type": "Discrete",
1649
+ "unit_type": "Dimensionless"
1650
+ },
1651
+ {
1652
+ "type": "ScheduleTypeLimit",
1653
+ "identifier": "Power",
1654
+ "upper_limit": {
1655
+ "type": "NoLimit"
1656
+ },
1657
+ "lower_limit": {
1658
+ "type": "NoLimit"
1659
+ },
1660
+ "numeric_type": "Continuous",
1661
+ "unit_type": "Power"
1662
+ },
1663
+ {
1664
+ "type": "ScheduleTypeLimit",
1665
+ "identifier": "Temperature",
1666
+ "upper_limit": {
1667
+ "type": "NoLimit"
1668
+ },
1669
+ "lower_limit": -273.15,
1670
+ "numeric_type": "Continuous",
1671
+ "unit_type": "Temperature"
1672
+ },
1673
+ {
1674
+ "type": "ScheduleTypeLimit",
1675
+ "identifier": "Thermostat Control",
1676
+ "upper_limit": 4.0,
1677
+ "lower_limit": 0.0,
1678
+ "numeric_type": "Discrete",
1679
+ "unit_type": "Dimensionless"
1680
+ }
1681
+ ]
1682
+ }