honeybee-energy 1.116.106__py3-none-any.whl

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 (162) hide show
  1. honeybee_energy/__init__.py +24 -0
  2. honeybee_energy/__main__.py +4 -0
  3. honeybee_energy/_extend_honeybee.py +145 -0
  4. honeybee_energy/altnumber.py +21 -0
  5. honeybee_energy/baseline/__init__.py +2 -0
  6. honeybee_energy/baseline/create.py +608 -0
  7. honeybee_energy/baseline/data/__init__.py +1 -0
  8. honeybee_energy/baseline/data/constructions.csv +64 -0
  9. honeybee_energy/baseline/data/fen_ratios.csv +15 -0
  10. honeybee_energy/baseline/data/lpd_building.csv +21 -0
  11. honeybee_energy/baseline/data/pci_2016.csv +22 -0
  12. honeybee_energy/baseline/data/pci_2019.csv +22 -0
  13. honeybee_energy/baseline/data/pci_2022.csv +22 -0
  14. honeybee_energy/baseline/data/shw.csv +21 -0
  15. honeybee_energy/baseline/pci.py +512 -0
  16. honeybee_energy/baseline/result.py +371 -0
  17. honeybee_energy/boundarycondition.py +128 -0
  18. honeybee_energy/cli/__init__.py +69 -0
  19. honeybee_energy/cli/baseline.py +475 -0
  20. honeybee_energy/cli/edit.py +327 -0
  21. honeybee_energy/cli/lib.py +1154 -0
  22. honeybee_energy/cli/result.py +810 -0
  23. honeybee_energy/cli/setconfig.py +124 -0
  24. honeybee_energy/cli/settings.py +569 -0
  25. honeybee_energy/cli/simulate.py +380 -0
  26. honeybee_energy/cli/translate.py +1714 -0
  27. honeybee_energy/cli/validate.py +224 -0
  28. honeybee_energy/config.json +11 -0
  29. honeybee_energy/config.py +842 -0
  30. honeybee_energy/construction/__init__.py +1 -0
  31. honeybee_energy/construction/_base.py +374 -0
  32. honeybee_energy/construction/air.py +325 -0
  33. honeybee_energy/construction/dictutil.py +89 -0
  34. honeybee_energy/construction/dynamic.py +607 -0
  35. honeybee_energy/construction/opaque.py +460 -0
  36. honeybee_energy/construction/shade.py +319 -0
  37. honeybee_energy/construction/window.py +1096 -0
  38. honeybee_energy/construction/windowshade.py +847 -0
  39. honeybee_energy/constructionset.py +1655 -0
  40. honeybee_energy/dictutil.py +56 -0
  41. honeybee_energy/generator/__init__.py +5 -0
  42. honeybee_energy/generator/loadcenter.py +204 -0
  43. honeybee_energy/generator/pv.py +535 -0
  44. honeybee_energy/hvac/__init__.py +21 -0
  45. honeybee_energy/hvac/_base.py +124 -0
  46. honeybee_energy/hvac/_template.py +270 -0
  47. honeybee_energy/hvac/allair/__init__.py +22 -0
  48. honeybee_energy/hvac/allair/_base.py +349 -0
  49. honeybee_energy/hvac/allair/furnace.py +168 -0
  50. honeybee_energy/hvac/allair/psz.py +131 -0
  51. honeybee_energy/hvac/allair/ptac.py +163 -0
  52. honeybee_energy/hvac/allair/pvav.py +109 -0
  53. honeybee_energy/hvac/allair/vav.py +128 -0
  54. honeybee_energy/hvac/detailed.py +337 -0
  55. honeybee_energy/hvac/doas/__init__.py +28 -0
  56. honeybee_energy/hvac/doas/_base.py +345 -0
  57. honeybee_energy/hvac/doas/fcu.py +127 -0
  58. honeybee_energy/hvac/doas/radiant.py +329 -0
  59. honeybee_energy/hvac/doas/vrf.py +81 -0
  60. honeybee_energy/hvac/doas/wshp.py +91 -0
  61. honeybee_energy/hvac/heatcool/__init__.py +23 -0
  62. honeybee_energy/hvac/heatcool/_base.py +177 -0
  63. honeybee_energy/hvac/heatcool/baseboard.py +61 -0
  64. honeybee_energy/hvac/heatcool/evapcool.py +72 -0
  65. honeybee_energy/hvac/heatcool/fcu.py +92 -0
  66. honeybee_energy/hvac/heatcool/gasunit.py +53 -0
  67. honeybee_energy/hvac/heatcool/radiant.py +269 -0
  68. honeybee_energy/hvac/heatcool/residential.py +77 -0
  69. honeybee_energy/hvac/heatcool/vrf.py +54 -0
  70. honeybee_energy/hvac/heatcool/windowac.py +70 -0
  71. honeybee_energy/hvac/heatcool/wshp.py +62 -0
  72. honeybee_energy/hvac/idealair.py +699 -0
  73. honeybee_energy/internalmass.py +310 -0
  74. honeybee_energy/lib/__init__.py +1 -0
  75. honeybee_energy/lib/_loadconstructions.py +194 -0
  76. honeybee_energy/lib/_loadconstructionsets.py +117 -0
  77. honeybee_energy/lib/_loadmaterials.py +83 -0
  78. honeybee_energy/lib/_loadprogramtypes.py +125 -0
  79. honeybee_energy/lib/_loadschedules.py +87 -0
  80. honeybee_energy/lib/_loadtypelimits.py +64 -0
  81. honeybee_energy/lib/constructions.py +207 -0
  82. honeybee_energy/lib/constructionsets.py +95 -0
  83. honeybee_energy/lib/materials.py +67 -0
  84. honeybee_energy/lib/programtypes.py +125 -0
  85. honeybee_energy/lib/schedules.py +61 -0
  86. honeybee_energy/lib/scheduletypelimits.py +31 -0
  87. honeybee_energy/load/__init__.py +1 -0
  88. honeybee_energy/load/_base.py +190 -0
  89. honeybee_energy/load/daylight.py +397 -0
  90. honeybee_energy/load/dictutil.py +47 -0
  91. honeybee_energy/load/equipment.py +771 -0
  92. honeybee_energy/load/hotwater.py +543 -0
  93. honeybee_energy/load/infiltration.py +460 -0
  94. honeybee_energy/load/lighting.py +480 -0
  95. honeybee_energy/load/people.py +497 -0
  96. honeybee_energy/load/process.py +472 -0
  97. honeybee_energy/load/setpoint.py +816 -0
  98. honeybee_energy/load/ventilation.py +550 -0
  99. honeybee_energy/material/__init__.py +1 -0
  100. honeybee_energy/material/_base.py +166 -0
  101. honeybee_energy/material/dictutil.py +59 -0
  102. honeybee_energy/material/frame.py +367 -0
  103. honeybee_energy/material/gas.py +1087 -0
  104. honeybee_energy/material/glazing.py +854 -0
  105. honeybee_energy/material/opaque.py +1351 -0
  106. honeybee_energy/material/shade.py +1360 -0
  107. honeybee_energy/measure.py +472 -0
  108. honeybee_energy/programtype.py +723 -0
  109. honeybee_energy/properties/__init__.py +1 -0
  110. honeybee_energy/properties/aperture.py +333 -0
  111. honeybee_energy/properties/door.py +342 -0
  112. honeybee_energy/properties/extension.py +244 -0
  113. honeybee_energy/properties/face.py +274 -0
  114. honeybee_energy/properties/model.py +2640 -0
  115. honeybee_energy/properties/room.py +1747 -0
  116. honeybee_energy/properties/shade.py +314 -0
  117. honeybee_energy/properties/shademesh.py +262 -0
  118. honeybee_energy/reader.py +48 -0
  119. honeybee_energy/result/__init__.py +1 -0
  120. honeybee_energy/result/colorobj.py +648 -0
  121. honeybee_energy/result/emissions.py +290 -0
  122. honeybee_energy/result/err.py +101 -0
  123. honeybee_energy/result/eui.py +100 -0
  124. honeybee_energy/result/generation.py +160 -0
  125. honeybee_energy/result/loadbalance.py +890 -0
  126. honeybee_energy/result/match.py +202 -0
  127. honeybee_energy/result/osw.py +90 -0
  128. honeybee_energy/result/rdd.py +59 -0
  129. honeybee_energy/result/zsz.py +190 -0
  130. honeybee_energy/run.py +1577 -0
  131. honeybee_energy/schedule/__init__.py +1 -0
  132. honeybee_energy/schedule/day.py +626 -0
  133. honeybee_energy/schedule/dictutil.py +59 -0
  134. honeybee_energy/schedule/fixedinterval.py +1012 -0
  135. honeybee_energy/schedule/rule.py +619 -0
  136. honeybee_energy/schedule/ruleset.py +1867 -0
  137. honeybee_energy/schedule/typelimit.py +310 -0
  138. honeybee_energy/shw.py +315 -0
  139. honeybee_energy/simulation/__init__.py +1 -0
  140. honeybee_energy/simulation/control.py +214 -0
  141. honeybee_energy/simulation/daylightsaving.py +185 -0
  142. honeybee_energy/simulation/dictutil.py +51 -0
  143. honeybee_energy/simulation/output.py +646 -0
  144. honeybee_energy/simulation/parameter.py +606 -0
  145. honeybee_energy/simulation/runperiod.py +443 -0
  146. honeybee_energy/simulation/shadowcalculation.py +295 -0
  147. honeybee_energy/simulation/sizing.py +546 -0
  148. honeybee_energy/ventcool/__init__.py +5 -0
  149. honeybee_energy/ventcool/_crack_data.py +91 -0
  150. honeybee_energy/ventcool/afn.py +289 -0
  151. honeybee_energy/ventcool/control.py +269 -0
  152. honeybee_energy/ventcool/crack.py +126 -0
  153. honeybee_energy/ventcool/fan.py +493 -0
  154. honeybee_energy/ventcool/opening.py +365 -0
  155. honeybee_energy/ventcool/simulation.py +314 -0
  156. honeybee_energy/writer.py +1078 -0
  157. honeybee_energy-1.116.106.dist-info/METADATA +113 -0
  158. honeybee_energy-1.116.106.dist-info/RECORD +162 -0
  159. honeybee_energy-1.116.106.dist-info/WHEEL +5 -0
  160. honeybee_energy-1.116.106.dist-info/entry_points.txt +2 -0
  161. honeybee_energy-1.116.106.dist-info/licenses/LICENSE +661 -0
  162. honeybee_energy-1.116.106.dist-info/top_level.txt +1 -0
@@ -0,0 +1,177 @@
1
+ # coding=utf-8
2
+ """Base class for all heating/cooling systems without any ventilation."""
3
+ from __future__ import division
4
+ import os
5
+
6
+ from honeybee._lockable import lockable
7
+
8
+ from .._template import _TemplateSystem, _EnumerationBase
9
+ from ..idealair import IdealAirSystem
10
+ from ...properties.extension import HeatCoolSystemProperties
11
+
12
+
13
+ @lockable
14
+ class _HeatCoolBase(_TemplateSystem):
15
+ """Base class for all heating/cooling systems without any ventilation.
16
+
17
+ Args:
18
+ identifier: Text string for system identifier. Must be < 100 characters
19
+ and not contain any EnergyPlus special characters. This will be used to
20
+ identify the object across a model and in the exported IDF.
21
+ vintage: Text for the vintage of the template system. This will be used
22
+ to set efficiencies for various pieces of equipment within the system.
23
+ Choose from the following.
24
+
25
+ * DOE_Ref_Pre_1980
26
+ * DOE_Ref_1980_2004
27
+ * ASHRAE_2004
28
+ * ASHRAE_2007
29
+ * ASHRAE_2010
30
+ * ASHRAE_2013
31
+ * ASHRAE_2016
32
+ * ASHRAE_2019
33
+
34
+ equipment_type: Text for the specific type of the system and equipment.
35
+ For example, 'Baseboard gas boiler'.
36
+
37
+ Properties:
38
+ * identifier
39
+ * display_name
40
+ * vintage
41
+ * equipment_type
42
+ * has_district_heating
43
+ * has_district_cooling
44
+ * user_data
45
+ * properties
46
+ """
47
+ __slots__ = ('_properties',)
48
+ COOL_ONLY_TYPES = (
49
+ 'EvapCoolers', 'FCU_Chiller', 'FCU_ACChiller', 'FCU_DCW',
50
+ 'ResidentialAC', 'WindowAC'
51
+ )
52
+ HEAT_ONLY_TYPES = (
53
+ 'ElectricBaseboard', 'BoilerBaseboard', 'ASHPBaseboard',
54
+ 'DHWBaseboard', 'GasHeaters', 'ResidentialHPNoCool', 'ResidentialFurnace'
55
+ )
56
+
57
+ def __init__(self, identifier, vintage='ASHRAE_2019', equipment_type=None):
58
+ # initialize base HVAC system properties
59
+ _TemplateSystem.__init__(self, identifier, vintage, equipment_type)
60
+ self._properties = HeatCoolSystemProperties(self)
61
+
62
+ def to_ideal_air_equivalent(self):
63
+ """Get a version of this HVAC as an IdealAirSystem."""
64
+ i_sys = IdealAirSystem(self.identifier)
65
+ if self.equipment_type in self.COOL_ONLY_TYPES:
66
+ i_sys.heating_limit = 0
67
+ if self.equipment_type in self.HEAT_ONLY_TYPES:
68
+ i_sys.cooling_limit = 0
69
+ i_sys.economizer_type = 'NoEconomizer'
70
+ i_sys._display_name = self._display_name
71
+ return i_sys
72
+
73
+ @property
74
+ def properties(self):
75
+ """Get properties for extensions."""
76
+ return self._properties
77
+
78
+ @classmethod
79
+ def from_dict(cls, data):
80
+ """Create a HVAC object from a dictionary.
81
+
82
+ Args:
83
+ data: A HeatCool dictionary in following the format below.
84
+
85
+ .. code-block:: python
86
+
87
+ {
88
+ "type": "", # text for the class name of the HVAC
89
+ "identifier": "Classroom1_System", # identifier for the HVAC
90
+ "display_name": "Standard System", # name for the HVAC
91
+ "vintage": "ASHRAE_2019", # text for the vintage of the template
92
+ "equipment_type": "", # text for the HVAC equipment type
93
+ "properties": { ... } # HeatCoolSystemProperties as a dict
94
+ }
95
+ """
96
+ assert data['type'] == cls.__name__, \
97
+ 'Expected {} dictionary. Got {}.'.format(cls.__name__, data['type'])
98
+ new_obj = cls(data['identifier'], data['vintage'], data['equipment_type'])
99
+ if 'display_name' in data and data['display_name'] is not None:
100
+ new_obj.display_name = data['display_name']
101
+ if 'user_data' in data and data['user_data'] is not None:
102
+ new_obj.user_data = data['user_data']
103
+ if 'properties' in data and data['properties'] is not None:
104
+ new_obj.properties._load_extension_attr_from_dict(data['properties'])
105
+ return new_obj
106
+
107
+ @classmethod
108
+ def from_dict_abridged(cls, data, schedule_dict):
109
+ """Create a HVAC object from an abridged dictionary.
110
+
111
+ Args:
112
+ data: A HeatCool abridged dictionary in following the format below.
113
+ schedule_dict: A dictionary with schedule identifiers as keys and honeybee
114
+ schedule objects as values (either ScheduleRuleset or
115
+ ScheduleFixedInterval). These will be used to assign the schedules
116
+ to the Setpoint object.
117
+
118
+ .. code-block:: python
119
+
120
+ {
121
+ "type": "", # text for the class name of the HVAC
122
+ "identifier": "Classroom1_System", # identifier for the HVAC
123
+ "display_name": "Standard System", # name for the HVAC
124
+ "vintage": "ASHRAE_2019", # text for the vintage of the template
125
+ "equipment_type": "", # text for the HVAC equipment type
126
+ "properties": { ... } # dict of the HeatCoolSystemProperties
127
+ }
128
+ """
129
+ # this is the same as the from_dict method for as long as there are not schedules
130
+ return cls.from_dict(data)
131
+
132
+ def to_dict(self, abridged=False):
133
+ """HeatCool system dictionary representation.
134
+
135
+ Args:
136
+ abridged: Boolean to note whether the full dictionary describing the
137
+ object should be returned (False) or just an abridged version (True).
138
+ This input currently has no effect but may eventually have one if
139
+ schedule-type properties are exposed on this template.
140
+ """
141
+
142
+ """Get a base dictionary of the HeatCool system."""
143
+ base = {'type': self.__class__.__name__}
144
+ base['identifier'] = self.identifier
145
+ if self._display_name is not None:
146
+ base['display_name'] = self.display_name
147
+ base['vintage'] = self.vintage
148
+ base['equipment_type'] = self.equipment_type
149
+ if self._user_data is not None:
150
+ base['user_data'] = self.user_data
151
+ prop_dict = self.properties.to_dict()
152
+ if prop_dict is not None:
153
+ base['properties'] = prop_dict
154
+ return base
155
+
156
+ def __copy__(self):
157
+ new_obj = self.__class__(self._identifier, self.vintage, self._equipment_type)
158
+ new_obj._display_name = self._display_name
159
+ new_obj._user_data = None if self._user_data is None else self._user_data.copy()
160
+ new_obj._properties._duplicate_extension_attr(self._properties)
161
+ return new_obj
162
+
163
+
164
+ class _HeatCoolEnumeration(_EnumerationBase):
165
+ """Enumerates the systems that inherit from _HeatCoolBase."""
166
+
167
+ def __init__(self, import_modules=True):
168
+ if import_modules:
169
+ self._import_modules(
170
+ os.path.dirname(__file__), 'honeybee_energy.hvac.heatcool')
171
+
172
+ self._HVAC_TYPES = {}
173
+ self._EQUIPMENT_TYPES = {}
174
+ for clss in _HeatCoolBase.__subclasses__():
175
+ self._HVAC_TYPES[clss.__name__] = clss
176
+ for equip_type in clss.EQUIPMENT_TYPES:
177
+ self._EQUIPMENT_TYPES[equip_type] = clss
@@ -0,0 +1,61 @@
1
+ # coding=utf-8
2
+ """Baseboard heating system. Intended for spaces only requiring heating."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+
9
+
10
+ @lockable
11
+ class Baseboard(_HeatCoolBase):
12
+ """Baseboard heating system.
13
+
14
+ Baseboard systems are intended for spaces only requiring heating and
15
+ no ventilation or cooling. Each room/zone will get its own baseboard
16
+ heating unit that satisfies the heating load.
17
+
18
+ Args:
19
+ identifier: Text string for system identifier. Must be < 100 characters
20
+ and not contain any EnergyPlus special characters. This will be used to
21
+ identify the object across a model and in the exported IDF.
22
+ vintage: Text for the vintage of the template system. This will be used
23
+ to set efficiencies for various pieces of equipment within the system.
24
+ Choose from the following.
25
+
26
+ * DOE_Ref_Pre_1980
27
+ * DOE_Ref_1980_2004
28
+ * ASHRAE_2004
29
+ * ASHRAE_2007
30
+ * ASHRAE_2010
31
+ * ASHRAE_2013
32
+ * ASHRAE_2016
33
+ * ASHRAE_2019
34
+
35
+ equipment_type: Text for the specific type of the system and equipment. (Default:
36
+ the first option below) Choose from.
37
+
38
+ * ElectricBaseboard
39
+ * BoilerBaseboard
40
+ * ASHPBaseboard
41
+ * DHWBaseboard
42
+
43
+ Properties:
44
+ * identifier
45
+ * display_name
46
+ * vintage
47
+ * equipment_type
48
+ * schedules
49
+ * has_district_heating
50
+ * has_district_cooling
51
+ * user_data
52
+ * properties
53
+ """
54
+ __slots__ = ()
55
+
56
+ EQUIPMENT_TYPES = (
57
+ 'ElectricBaseboard',
58
+ 'BoilerBaseboard',
59
+ 'ASHPBaseboard',
60
+ 'DHWBaseboard'
61
+ )
@@ -0,0 +1,72 @@
1
+ # coding=utf-8
2
+ """Direct evaporative cooling systems (with optional heating)."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+
9
+
10
+ @lockable
11
+ class EvaporativeCooler(_HeatCoolBase):
12
+ """Direct evaporative cooling systems (with optional heating).
13
+
14
+ Each room/zone will receive its own air loop sized to meet the sensible load,
15
+ which contains an evaporative cooler that directly adds humidity to the room
16
+ air to cool it. The loop contains an outdoor air mixer, which is used whenever
17
+ the outdoor air has a lower wet bulb temperature than the return air from
18
+ the room. In the event that the combination of outdoor and room return air
19
+ air is too humid, a backup single-speed direct expansion (DX) cooling coil
20
+ will be used. Heating loads can be met with various options, including
21
+ several types of baseboards, a furnace, or gas unit heaters.
22
+
23
+ Args:
24
+ identifier: Text string for system identifier. Must be < 100 characters
25
+ and not contain any EnergyPlus special characters. This will be used to
26
+ identify the object across a model and in the exported IDF.
27
+ vintage: Text for the vintage of the template system. This will be used
28
+ to set efficiencies for various pieces of equipment within the system.
29
+ Choose from the following.
30
+
31
+ * DOE_Ref_Pre_1980
32
+ * DOE_Ref_1980_2004
33
+ * ASHRAE_2004
34
+ * ASHRAE_2007
35
+ * ASHRAE_2010
36
+ * ASHRAE_2013
37
+ * ASHRAE_2016
38
+ * ASHRAE_2019
39
+
40
+ equipment_type: Text for the specific type of the system and equipment. (Default:
41
+ the first option below) Choose from.
42
+
43
+ * EvapCoolers_ElectricBaseboard
44
+ * EvapCoolers_BoilerBaseboard
45
+ * EvapCoolers_ASHPBaseboard
46
+ * EvapCoolers_DHWBaseboard
47
+ * EvapCoolers_Furnace
48
+ * EvapCoolers_UnitHeaters
49
+ * EvapCoolers
50
+
51
+ Properties:
52
+ * identifier
53
+ * display_name
54
+ * vintage
55
+ * equipment_type
56
+ * schedules
57
+ * has_district_heating
58
+ * has_district_cooling
59
+ * user_data
60
+ * properties
61
+ """
62
+ __slots__ = ()
63
+
64
+ EQUIPMENT_TYPES = (
65
+ 'EvapCoolers_ElectricBaseboard',
66
+ 'EvapCoolers_BoilerBaseboard',
67
+ 'EvapCoolers_ASHPBaseboard',
68
+ 'EvapCoolers_DHWBaseboard',
69
+ 'EvapCoolers_Furnace',
70
+ 'EvapCoolers_UnitHeaters',
71
+ 'EvapCoolers'
72
+ )
@@ -0,0 +1,92 @@
1
+ # coding=utf-8
2
+ """Fan Coil Unit (FCU) heating/cooling system (with no ventilation)."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+
9
+
10
+ @lockable
11
+ class FCU(_HeatCoolBase):
12
+ """Fan Coil Unit (FCU) heating/cooling system (with no ventilation).
13
+
14
+ Each room/zone receives its own Fan Coil Unit (FCU), which meets the heating
15
+ and cooling loads of the space. The cooling coil in the FCU is always chilled
16
+ water cooling coil, which is connected to a chilled water loop operating
17
+ at 6.7C (44F). The heating coil is a hot water coil except when when electric
18
+ baseboards or gas heaters are specified. Hot water temperature is 82C (180F) for
19
+ boiler/district heating and 49C (120F) when ASHP is used.
20
+
21
+ Args:
22
+ identifier: Text string for system identifier. Must be < 100 characters
23
+ and not contain any EnergyPlus special characters. This will be used to
24
+ identify the object across a model and in the exported IDF.
25
+ vintage: Text for the vintage of the template system. This will be used
26
+ to set efficiencies for various pieces of equipment within the system.
27
+ Choose from the following.
28
+
29
+ * DOE_Ref_Pre_1980
30
+ * DOE_Ref_1980_2004
31
+ * ASHRAE_2004
32
+ * ASHRAE_2007
33
+ * ASHRAE_2010
34
+ * ASHRAE_2013
35
+ * ASHRAE_2016
36
+ * ASHRAE_2019
37
+
38
+ equipment_type: Text for the specific type of the system and equipment. (Default:
39
+ the first option below) Choose from.
40
+
41
+ * FCU_Chiller_Boiler
42
+ * FCU_Chiller_ASHP
43
+ * FCU_Chiller_DHW
44
+ * FCU_Chiller_ElectricBaseboard
45
+ * FCU_Chiller_GasHeaters
46
+ * FCU_Chiller
47
+ * FCU_ACChiller_Boiler
48
+ * FCU_ACChiller_ASHP
49
+ * FCU_ACChiller_DHW
50
+ * FCU_ACChiller_ElectricBaseboard
51
+ * FCU_ACChiller_GasHeaters
52
+ * FCU_ACChiller
53
+ * FCU_DCW_Boiler
54
+ * FCU_DCW_ASHP
55
+ * FCU_DCW_DHW
56
+ * FCU_DCW_ElectricBaseboard
57
+ * FCU_DCW_GasHeaters
58
+ * FCU_DCW
59
+
60
+ Properties:
61
+ * identifier
62
+ * display_name
63
+ * vintage
64
+ * equipment_type
65
+ * schedules
66
+ * has_district_heating
67
+ * has_district_cooling
68
+ * user_data
69
+ * properties
70
+ """
71
+ __slots__ = ()
72
+
73
+ EQUIPMENT_TYPES = (
74
+ 'FCU_Chiller_Boiler',
75
+ 'FCU_Chiller_ASHP',
76
+ 'FCU_Chiller_DHW',
77
+ 'FCU_Chiller_ElectricBaseboard',
78
+ 'FCU_Chiller_GasHeaters',
79
+ 'FCU_Chiller',
80
+ 'FCU_ACChiller_Boiler',
81
+ 'FCU_ACChiller_ASHP',
82
+ 'FCU_ACChiller_DHW',
83
+ 'FCU_ACChiller_ElectricBaseboard',
84
+ 'FCU_ACChiller_GasHeaters',
85
+ 'FCU_ACChiller',
86
+ 'FCU_DCW_Boiler',
87
+ 'FCU_DCW_ASHP',
88
+ 'FCU_DCW_DHW',
89
+ 'FCU_DCW_ElectricBaseboard',
90
+ 'FCU_DCW_GasHeaters',
91
+ 'FCU_DCW'
92
+ )
@@ -0,0 +1,53 @@
1
+ # coding=utf-8
2
+ """Gas unit heating system. Intended for spaces only requiring heating."""
3
+ from __future__ import division
4
+
5
+ from ._base import _HeatCoolBase
6
+
7
+ from honeybee._lockable import lockable
8
+
9
+
10
+ @lockable
11
+ class GasUnitHeater(_HeatCoolBase):
12
+ """Gas unit heating system.
13
+
14
+ Gas unit systems are intended for spaces only requiring heating and no
15
+ ventilation or cooling. Each room/zone will get its own gaa heating unit
16
+ that satisfies the heating load.
17
+
18
+ Args:
19
+ identifier: Text string for system identifier. Must be < 100 characters
20
+ and not contain any EnergyPlus special characters. This will be used to
21
+ identify the object across a model and in the exported IDF.
22
+ vintage: Text for the vintage of the template system. This will be used
23
+ to set efficiencies for various pieces of equipment within the system.
24
+ Choose from the following.
25
+
26
+ * DOE_Ref_Pre_1980
27
+ * DOE_Ref_1980_2004
28
+ * ASHRAE_2004
29
+ * ASHRAE_2007
30
+ * ASHRAE_2010
31
+ * ASHRAE_2013
32
+ * ASHRAE_2016
33
+ * ASHRAE_2019
34
+
35
+ equipment_type: Text for the specific type of the system and equipment. (Default:
36
+ the first option below) Choose from.
37
+
38
+ * GasHeaters
39
+
40
+ Properties:
41
+ * identifier
42
+ * display_name
43
+ * vintage
44
+ * equipment_type
45
+ * schedules
46
+ * has_district_heating
47
+ * has_district_cooling
48
+ * user_data
49
+ * properties
50
+ """
51
+ __slots__ = ()
52
+
53
+ EQUIPMENT_TYPES = ('GasHeaters',)