honeybee-schema 1.59.1__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 (57) hide show
  1. honeybee_schema/__init__.py +1 -0
  2. honeybee_schema/__main__.py +4 -0
  3. honeybee_schema/_base.py +42 -0
  4. honeybee_schema/altnumber.py +18 -0
  5. honeybee_schema/boundarycondition.py +81 -0
  6. honeybee_schema/cli.py +115 -0
  7. honeybee_schema/comparison.py +208 -0
  8. honeybee_schema/doe2/__init__.py +0 -0
  9. honeybee_schema/doe2/properties.py +75 -0
  10. honeybee_schema/energy/__init__.py +0 -0
  11. honeybee_schema/energy/_base.py +64 -0
  12. honeybee_schema/energy/construction.py +324 -0
  13. honeybee_schema/energy/constructionset.py +359 -0
  14. honeybee_schema/energy/daylight.py +62 -0
  15. honeybee_schema/energy/designday.py +212 -0
  16. honeybee_schema/energy/generator.py +140 -0
  17. honeybee_schema/energy/global_constructionset.py +129 -0
  18. honeybee_schema/energy/hvac/__init__.py +0 -0
  19. honeybee_schema/energy/hvac/_template.py +38 -0
  20. honeybee_schema/energy/hvac/allair.py +257 -0
  21. honeybee_schema/energy/hvac/detailed.py +20 -0
  22. honeybee_schema/energy/hvac/doas.py +248 -0
  23. honeybee_schema/energy/hvac/heatcool.py +309 -0
  24. honeybee_schema/energy/hvac/idealair.py +107 -0
  25. honeybee_schema/energy/internalmass.py +25 -0
  26. honeybee_schema/energy/load.py +627 -0
  27. honeybee_schema/energy/material.py +949 -0
  28. honeybee_schema/energy/programtype.py +117 -0
  29. honeybee_schema/energy/properties.py +382 -0
  30. honeybee_schema/energy/schedule.py +350 -0
  31. honeybee_schema/energy/shw.py +53 -0
  32. honeybee_schema/energy/simulation.py +440 -0
  33. honeybee_schema/energy/ventcool.py +337 -0
  34. honeybee_schema/geometry.py +161 -0
  35. honeybee_schema/model.py +473 -0
  36. honeybee_schema/projectinfo.py +94 -0
  37. honeybee_schema/radiance/__init__.py +0 -0
  38. honeybee_schema/radiance/_base.py +22 -0
  39. honeybee_schema/radiance/asset.py +191 -0
  40. honeybee_schema/radiance/global_modifierset.py +92 -0
  41. honeybee_schema/radiance/modifier.py +373 -0
  42. honeybee_schema/radiance/modifierset.py +296 -0
  43. honeybee_schema/radiance/properties.py +149 -0
  44. honeybee_schema/radiance/state.py +69 -0
  45. honeybee_schema/updater/__init__.py +0 -0
  46. honeybee_schema/updater/version_1_39_12.py +14 -0
  47. honeybee_schema/updater/version_1_40_1.py +153 -0
  48. honeybee_schema/updater/version_1_43_1.py +18 -0
  49. honeybee_schema/updater/version_1_43_2.py +12 -0
  50. honeybee_schema/updater/version_1_43_5.py +11 -0
  51. honeybee_schema/validation.py +205 -0
  52. honeybee_schema-1.59.1.dist-info/METADATA +108 -0
  53. honeybee_schema-1.59.1.dist-info/RECORD +57 -0
  54. honeybee_schema-1.59.1.dist-info/WHEEL +5 -0
  55. honeybee_schema-1.59.1.dist-info/entry_points.txt +2 -0
  56. honeybee_schema-1.59.1.dist-info/licenses/LICENSE +23 -0
  57. honeybee_schema-1.59.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,257 @@
1
+ """All-air HVAC systems, providing ventilation and meeting thermal demand with air."""
2
+ from pydantic import Field, constr
3
+ from enum import Enum
4
+
5
+ from ._template import _TemplateSystem
6
+
7
+
8
+ class AllAirEconomizerType(str, Enum):
9
+ no_economizer = 'NoEconomizer'
10
+ differential_dry_bulb = 'DifferentialDryBulb'
11
+ differential_enthalpy = 'DifferentialEnthalpy'
12
+ differential_dry_bulb_and_enthalpy = 'DifferentialDryBulbAndEnthalpy'
13
+ fixed_dry_bulb = 'FixedDryBulb'
14
+ fixed_enthalpy = 'FixedEnthalpy'
15
+ electronic_enthalpy = 'ElectronicEnthalpy'
16
+
17
+
18
+ class _AllAirBase(_TemplateSystem):
19
+ """Base class for all-air systems.
20
+
21
+ All-air systems provide both ventilation and heating + cooling demand with
22
+ the same stream of warm/cool air. As such, they often grant tight control
23
+ over zone humidity. However, because such systems often involve the
24
+ cooling of air only to reheat it again, they are often more energy intensive
25
+ than systems that separate ventilation from the meeting of thermal loads.
26
+ """
27
+
28
+ economizer_type: AllAirEconomizerType = Field(
29
+ AllAirEconomizerType.no_economizer,
30
+ description='Text to indicate the type of air-side economizer used on '
31
+ 'the system (from the AllAirEconomizerType enumeration).'
32
+ )
33
+
34
+ sensible_heat_recovery: float = Field(
35
+ 0,
36
+ ge=0,
37
+ le=1,
38
+ description='A number between 0 and 1 for the effectiveness of sensible '
39
+ 'heat recovery within the system.'
40
+ )
41
+
42
+ latent_heat_recovery: float = Field(
43
+ 0,
44
+ ge=0,
45
+ le=1,
46
+ description='A number between 0 and 1 for the effectiveness of latent '
47
+ 'heat recovery within the system.'
48
+ )
49
+
50
+ demand_controlled_ventilation: bool = Field(
51
+ False,
52
+ description='Boolean to note whether demand controlled ventilation should be '
53
+ 'used on the system, which will vary the amount of ventilation air according '
54
+ 'to the occupancy schedule of the Rooms.'
55
+ )
56
+
57
+
58
+ class VAVEquipmentType(str, Enum):
59
+ vav_chill_gbr = 'VAV_Chiller_Boiler'
60
+ vav_chill_ashp = 'VAV_Chiller_ASHP'
61
+ vav_chill_dhw = 'VAV_Chiller_DHW'
62
+ vav_chill_pfp = 'VAV_Chiller_PFP'
63
+ vav_chill_gcr = 'VAV_Chiller_GasCoil'
64
+ vav_ac_chill_gbr = 'VAV_ACChiller_Boiler'
65
+ vav_ac_chill_ashp = 'VAV_ACChiller_ASHP'
66
+ vav_ac_chill_dhw = 'VAV_ACChiller_DHW'
67
+ vav_ac_chill_pfp = 'VAV_ACChiller_PFP'
68
+ vav_ac_chill_gcr = 'VAV_ACChiller_GasCoil'
69
+ vav_dcw_gbr = 'VAV_DCW_Boiler'
70
+ vav_dcw_ashp = 'VAV_DCW_ASHP'
71
+ vav_dcw_dhw = 'VAV_DCW_DHW'
72
+ vav_dcw_pfp = 'VAV_DCW_PFP'
73
+ vav_dcw_gcr = 'VAV_DCW_GasCoil'
74
+
75
+
76
+ class PVAVEquipmentType(str, Enum):
77
+ pvav_gbr = 'PVAV_Boiler'
78
+ pvav_ashp = 'PVAV_ASHP'
79
+ pvav_dhw = 'PVAV_DHW'
80
+ pvav_pfp = 'PVAV_PFP'
81
+ pvav_ger = 'PVAV_BoilerElectricReheat'
82
+
83
+
84
+ class PSZEquipmentType(str, Enum):
85
+ psz_e_base = 'PSZAC_ElectricBaseboard'
86
+ psz_gb_base = 'PSZAC_BoilerBaseboard'
87
+ psz_dhw_base = 'PSZAC_DHWBaseboard'
88
+ psz_guh = 'PSZAC_GasHeaters'
89
+ psz_ec = 'PSZAC_ElectricCoil'
90
+ psz_gc = 'PSZAC_GasCoil'
91
+ psz_gb = 'PSZAC_Boiler'
92
+ psz_ashp = 'PSZAC_ASHP'
93
+ psz_dhw = 'PSZAC_DHW'
94
+ psz_ac = 'PSZAC'
95
+ psz_dcw_e_base = 'PSZAC_DCW_ElectricBaseboard'
96
+ psz_dcw_gb_base = 'PSZAC_DCW_BoilerBaseboard'
97
+ psz_dcw_guh = 'PSZAC_DCW_GasHeaters'
98
+ psz_dcw_ec = 'PSZAC_DCW_ElectricCoil'
99
+ psz_dcw_gc = 'PSZAC_DCW_GasCoil'
100
+ psz_dcw_gb = 'PSZAC_DCW_Boiler'
101
+ psz_dcw_ashp = 'PSZAC_DCW_ASHP'
102
+ psz_dcw_dhw = 'PSZAC_DCW_DHW'
103
+ psz_dcw_ac = 'PSZAC_DCW'
104
+ psz_hp = 'PSZHP'
105
+
106
+
107
+ class PTACEquipmentType(str, Enum):
108
+ ptac_e_base = 'PTAC_ElectricBaseboard'
109
+ ptac_gb_base = 'PTAC_BoilerBaseboard'
110
+ ptac_dhw_base = 'PTAC_DHWBaseboard'
111
+ ptac_guh = 'PTAC_GasHeaters'
112
+ ptac_ec = 'PTAC_ElectricCoil'
113
+ ptac_gc = 'PTAC_GasCoil'
114
+ ptac_gb = 'PTAC_Boiler'
115
+ ptac_ashp = 'PTAC_ASHP'
116
+ ptac_dhw = 'PTAC_DHW'
117
+ ptac = 'PTAC'
118
+ pthp = 'PTHP'
119
+
120
+
121
+ class FurnaceEquipmentType(str, Enum):
122
+ furnace = 'Furnace'
123
+ furnace_electric = 'Furnace_Electric'
124
+
125
+
126
+ class VAV(_AllAirBase):
127
+ """Variable Air Volume (VAV) HVAC system (aka. System 7 or 8).
128
+
129
+ All rooms/zones are connected to a central air loop that is kept at a constant
130
+ central temperature of 12.8C (55F). The central temperature is maintained by a
131
+ cooling coil, which runs whenever the combination of return air and fresh outdoor
132
+ air is greater than 12.8C, as well as a heating coil, which runs whenever
133
+ the combination of return air and fresh outdoor air is less than 12.8C.
134
+
135
+ Each air terminal for the connected rooms/zones contains its own reheat coil,
136
+ which runs whenever the room is not in need of the cooling supplied by the 12.8C
137
+ central air.
138
+
139
+ The central cooling coil is always a chilled water coil, which is connected to a
140
+ chilled water loop operating at 6.7C (44F). All heating coils are hot water coils
141
+ except when Gas Coil equipment_type is used (in which case coils are gas)
142
+ or when Parallel Fan-Powered (PFP) boxes equipment_type is used (in which case
143
+ coils are electric resistance). Hot water temperature is 82C (180F) for
144
+ boiler/district heating and 49C (120F) when ASHP is used.
145
+
146
+ VAV systems are the traditional baseline system for commercial buildings
147
+ taller than 5 stories or larger than 14,000 m2 (150,000 ft2) of floor area.
148
+ """
149
+
150
+ type: constr(regex='^VAV$') = 'VAV'
151
+
152
+ equipment_type: VAVEquipmentType = Field(
153
+ VAVEquipmentType.vav_chill_gbr,
154
+ description='Text for the specific type of system equipment from the '
155
+ 'VAVEquipmentType enumeration.'
156
+ )
157
+
158
+
159
+ class PVAV(_AllAirBase):
160
+ """Packaged Variable Air Volume (PVAV) HVAC system (aka. System 5 or 6).
161
+
162
+ All rooms/zones are connected to a central air loop that is kept at a constant
163
+ central temperature of 12.8C (55F). The central temperature is maintained by a
164
+ cooling coil, which runs whenever the combination of return air and fresh outdoor
165
+ air is greater than 12.8C, as well as a heating coil, which runs whenever
166
+ the combination of return air and fresh outdoor air is less than 12.8C.
167
+
168
+ Each air terminal for the connected rooms/zones contains its own reheat coil,
169
+ which runs whenever the room is not in need of the cooling supplied by the 12.8C
170
+ central air.
171
+
172
+ The central cooling coil is always a two-speed direct expansion (DX) coil.
173
+ All heating coils are hot water coils except when Gas Coil equipment_type is
174
+ used (in which case the central coil is gas and all reheat is electric)
175
+ or when Parallel Fan-Powered (PFP) boxes equipment_type is used (in which case
176
+ coils are electric resistance). Hot water temperature is 82C (180F) for
177
+ boiler/district heating and 49C (120F) when ASHP is used.
178
+
179
+ PVAV systems are the traditional baseline system for commercial buildings
180
+ with than 4-5 stories or between 2,300 m2 and 14,000 m2 (25,000 ft2 and
181
+ 150,000 ft2) of floor area.
182
+ """
183
+
184
+ type: constr(regex='^PVAV$') = 'PVAV'
185
+
186
+ equipment_type: PVAVEquipmentType = Field(
187
+ PVAVEquipmentType.pvav_gbr,
188
+ description='Text for the specific type of system equipment from the '
189
+ 'VAVEquipmentType enumeration.'
190
+ )
191
+
192
+
193
+ class PSZ(_AllAirBase):
194
+ """Packaged Single-Zone (PSZ) HVAC system (aka. System 3 or 4).
195
+
196
+ Each room/zone receives its own air loop with its own single-speed direct expansion
197
+ (DX) cooling coil, which will condition the supply air to a value in between
198
+ 12.8C (55F) and 50C (122F) depending on the heating/cooling needs of the room/zone.
199
+ As long as a Baseboard equipment_type is NOT selected, heating will be supplied
200
+ by a heating coil in the air loop. Otherwise, heating is accomplished with
201
+ baseboards and the air loop only supplies cooling and ventilation air.
202
+ Fans are constant volume.
203
+
204
+ PSZ systems are the traditional baseline system for commercial buildings
205
+ with less than 4 stories or less than 2,300 m2 (25,000 ft2) of floor area.
206
+ They are also the default for all retail with less than 3 stories and all public
207
+ assembly spaces.
208
+ """
209
+
210
+ type: constr(regex='^PSZ$') = 'PSZ'
211
+
212
+ equipment_type: PSZEquipmentType = Field(
213
+ PSZEquipmentType.psz_e_base,
214
+ description='Text for the specific type of system equipment from the '
215
+ 'PVAVEquipmentType enumeration.'
216
+ )
217
+
218
+
219
+ class PTAC(_TemplateSystem):
220
+ """Packaged Terminal Air Conditioning (PTAC/HP) HVAC system. (aka. System 1 or 2).
221
+
222
+ Each room/zone receives its own packaged unit that supplies heating, cooling
223
+ and ventilation. Cooling is always done via a single-speed direct expansion (DX)
224
+ cooling coil. Heating can be done via a heating coil in the unit or via an
225
+ external baseboard. Fans are constant volume.
226
+
227
+ PTAC/HP systems are the traditional baseline system for residential buildings.
228
+ """
229
+
230
+ type: constr(regex='^PTAC$') = 'PTAC'
231
+
232
+ equipment_type: PTACEquipmentType = Field(
233
+ PTACEquipmentType.ptac_e_base,
234
+ description='Text for the specific type of system equipment from the '
235
+ 'PTACEquipmentType enumeration.'
236
+ )
237
+
238
+
239
+ class ForcedAirFurnace(_TemplateSystem):
240
+ """Forced Air Furnace HVAC system (aka. System 9 or 10).
241
+
242
+ Forced air furnaces are intended only for spaces only requiring heating and
243
+ ventilation. Each room/zone receives its own air loop with its own gas heating
244
+ coil, which will supply air at a temperature up to 50C (122F) to meet the
245
+ heating needs of the room/zone. Fans are constant volume.
246
+
247
+ ForcedAirFurnace systems are the traditional baseline system for storage
248
+ spaces that only require heating.
249
+ """
250
+
251
+ type: constr(regex='^ForcedAirFurnace$') = 'ForcedAirFurnace'
252
+
253
+ equipment_type: FurnaceEquipmentType = Field(
254
+ FurnaceEquipmentType.furnace,
255
+ description='Text for the specific type of system equipment from the '
256
+ 'FurnaceEquipmentType enumeration.'
257
+ )
@@ -0,0 +1,20 @@
1
+ """Detailed HVAC system schema defined using Ironbug."""
2
+ from pydantic import Field, constr
3
+ from .._base import IDdEnergyBaseModel
4
+
5
+
6
+ class DetailedHVAC(IDdEnergyBaseModel):
7
+ """Detailed HVAC system object defined using IronBug or OpenStudio .NET bindings."""
8
+
9
+ type: constr(regex='^DetailedHVAC$') = 'DetailedHVAC'
10
+
11
+ specification: dict = Field(
12
+ ...,
13
+ description='A JSON-serializable dictionary representing the full '
14
+ 'specification of the detailed system. This can be obtained by calling '
15
+ 'the ToJson() method on any IronBug HVAC system and then serializing '
16
+ 'the resulting JSON string into a Python dictionary using the native '
17
+ 'Python json package. Note that the Rooms that the HVAC is assigned to '
18
+ 'must be specified as ThermalZones under this specification in order '
19
+ 'for the resulting Model this HVAC is a part of to be valid.'
20
+ )
@@ -0,0 +1,248 @@
1
+ """HVAC systems with DOAS, separating ventilation and meeting thermal demand."""
2
+ from pydantic import Field, constr
3
+ from enum import Enum
4
+
5
+ from ._template import _TemplateSystem, RadiantFaceTypes
6
+
7
+
8
+ class _DOASBase(_TemplateSystem):
9
+ """Base class for Dedicated Outdoor Air System (DOAS) HVACs.
10
+
11
+ DOAS systems separate minimum ventilation supply from the satisfaction of heating
12
+ + cooling demand. Ventilation air tends to be supplied at neutral temperatures
13
+ (close to room air temperature) and heating / cooling loads are met with additional
14
+ pieces of zone equipment (eg. Fan Coil Units (FCUs)).
15
+
16
+ Because DOAS systems only have to cool down and re-heat the minimum ventilation air,
17
+ they tend to use less energy than all-air systems. They also tend to use less energy
18
+ to distribute heating + cooling by pumping around hot/cold water or refrigerant
19
+ instead of blowing hot/cold air. However, they do not provide as good of control
20
+ over humidity and so they may not be appropriate for rooms with high latent loads
21
+ like auditoriums, kitchens, laundromats, etc.
22
+ """
23
+
24
+ sensible_heat_recovery: float = Field(
25
+ 0,
26
+ ge=0,
27
+ le=1,
28
+ description='A number between 0 and 1 for the effectiveness of sensible '
29
+ 'heat recovery within the system.'
30
+ )
31
+
32
+ latent_heat_recovery: float = Field(
33
+ 0,
34
+ ge=0,
35
+ le=1,
36
+ description='A number between 0 and 1 for the effectiveness of latent '
37
+ 'heat recovery within the system.'
38
+ )
39
+
40
+ demand_controlled_ventilation: bool = Field(
41
+ False,
42
+ description='Boolean to note whether demand controlled ventilation should be '
43
+ 'used on the system, which will vary the amount of ventilation air according '
44
+ 'to the occupancy schedule of the Rooms.'
45
+ )
46
+
47
+ doas_availability_schedule: str = Field(
48
+ None,
49
+ min_length=1,
50
+ max_length=100,
51
+ description='An optional On/Off discrete schedule to set when the dedicated '
52
+ 'outdoor air system (DOAS) shuts off. This will not only prevent any outdoor '
53
+ 'air from flowing thorough the system but will also shut off the fans, which '
54
+ 'can result in more energy savings when spaces served by the DOAS are '
55
+ 'completely unoccupied. If None, the DOAS will be always on.'
56
+ )
57
+
58
+
59
+ class FCUwithDOASEquipmentType(str, Enum):
60
+ fcu_chill_gb = 'DOAS_FCU_Chiller_Boiler'
61
+ fcu_chill_ashp = 'DOAS_FCU_Chiller_ASHP'
62
+ fcu_chill_dhw = 'DOAS_FCU_Chiller_DHW'
63
+ fcu_chill_base = 'DOAS_FCU_Chiller_ElectricBaseboard'
64
+ fcu_chill_guh = 'DOAS_FCU_Chiller_GasHeaters'
65
+ fcu_chill = 'DOAS_FCU_Chiller'
66
+ fcu_ac_chill_gb = 'DOAS_FCU_ACChiller_Boiler'
67
+ fcu_ac_chill_ashp = 'DOAS_FCU_ACChiller_ASHP'
68
+ fcu_ac_chill_dhw = 'DOAS_FCU_ACChiller_DHW'
69
+ fcu_ac_chill_base = 'DOAS_FCU_ACChiller_ElectricBaseboard'
70
+ fcu_ac_chill_guh = 'DOAS_FCU_ACChiller_GasHeaters'
71
+ fcu_ac_chill = 'DOAS_FCU_ACChiller'
72
+ fcu_dcw_gb = 'DOAS_FCU_DCW_Boiler'
73
+ fcu_dcw_ashp = 'DOAS_FCU_DCW_ASHP'
74
+ fcu_dcw_dhw = 'DOAS_FCU_DCW_DHW'
75
+ fcu_dcw_base = 'DOAS_FCU_DCW_ElectricBaseboard'
76
+ fcu_dcw_guh = 'DOAS_FCU_DCW_GasHeaters'
77
+ fcu_dcw = 'DOAS_FCU_DCW'
78
+
79
+
80
+ class WSHPwithDOASEquipmentType(str, Enum):
81
+ wshp_fc_gb = 'DOAS_WSHP_FluidCooler_Boiler'
82
+ wshp_ct_gb = 'DOAS_WSHP_CoolingTower_Boiler'
83
+ wshp_gshp = 'DOAS_WSHP_GSHP'
84
+ wshp_dcw_dhw = 'DOAS_WSHP_DCW_DHW'
85
+
86
+
87
+ class VRFwithDOASEquipmentType(str, Enum):
88
+ vrf = 'DOAS_VRF'
89
+
90
+
91
+ class RadiantwithDOASEquipmentType(str, Enum):
92
+ radiant_chill_gb = 'DOAS_Radiant_Chiller_Boiler'
93
+ radiant_chill_ashp = 'DOAS_Radiant_Chiller_ASHP'
94
+ radiant_chill_dhw = 'DOAS_Radiant_Chiller_DHW'
95
+ radiant_ac_chill_gb = 'DOAS_Radiant_ACChiller_Boiler'
96
+ radiant_ac_chill_ashp = 'DOAS_Radiant_ACChiller_ASHP'
97
+ radiant_ac_chill_dhw = 'DOAS_Radiant_ACChiller_DHW'
98
+ radiant_dcw_gb = 'DOAS_Radiant_DCW_Boiler'
99
+ radiant_dcw_ashp = 'DOAS_Radiant_DCW_ASHP'
100
+ radiant_dcw_dhw = 'DOAS_Radiant_DCW_DHW'
101
+
102
+
103
+ class FCUwithDOASAbridged(_DOASBase):
104
+ """Fan Coil Unit (FCU) with DOAS HVAC system.
105
+
106
+ All rooms/zones in the system are connected to a Dedicated Outdoor Air System
107
+ (DOAS) that supplies a constant volume of ventilation air at the same temperature
108
+ to all rooms/zones. The ventilation air temperature will vary from 21.1C (70F)
109
+ to 15.5C (60F) depending on the outdoor air temperature (the DOAS supplies cooler air
110
+ when outdoor conditions are warmer). The ventilation air temperature is maintained
111
+ by a chilled water cooling coil and a heating coil. The heating coil is a hot
112
+ water coil except when electric baseboards or gas heaters are specified, in
113
+ which case the heating coil is a single-speed direct expansion (DX) heat pump
114
+ with a backup electrical resistance coil.
115
+
116
+ Each room/zone also receives its own Fan Coil Unit (FCU), which meets the heating
117
+ and cooling loads of the space. The cooling coil in the FCU is always chilled
118
+ water cooling coil, which is connected to a chilled water loop operating
119
+ at 6.7C (44F). The heating coil is a hot water coil except when when electric
120
+ baseboards or gas heaters are specified. Hot water temperature is 82C (180F) for
121
+ boiler/district heating and 49C (120F) when ASHP is used.
122
+
123
+ The FCU with DOAS template is relatively close in performance to active chilled
124
+ beams (ACBs). When using this template to represent ACBs, care must be taken
125
+ to ensure that the DOAS ventilation air requirement is sufficient to extract
126
+ the heating cooling from the ACB. If so, then this FCUwithDOAS template can be
127
+ used but with the energy use of the FCU fans ignored.
128
+ """
129
+
130
+ type: constr(regex='^FCUwithDOASAbridged$') = 'FCUwithDOASAbridged'
131
+
132
+ equipment_type: FCUwithDOASEquipmentType = Field(
133
+ FCUwithDOASEquipmentType.fcu_chill_gb,
134
+ description='Text for the specific type of system equipment from the '
135
+ 'FCUwithDOASEquipmentType enumeration.'
136
+ )
137
+
138
+
139
+ class WSHPwithDOASAbridged(_DOASBase):
140
+ """Water Source Heat Pump (WSHP) with DOAS HVAC system.
141
+
142
+ All rooms/zones in the system are connected to a Dedicated Outdoor Air System
143
+ (DOAS) that supplies a constant volume of ventilation air at the same temperature
144
+ to all rooms/zones. The ventilation air temperature will vary from 21.1C (70F)
145
+ to 15.5C (60F) depending on the outdoor air temperature (the DOAS supplies cooler air
146
+ when outdoor conditions are warmer). The ventilation air temperature is maintained
147
+ by a chilled water cooling coil and a hot water heating coil except when the
148
+ ground source heat pump (GSHP) option is selected. In this case, the ventilation
149
+ air temperature is maintained by a two-speed direct expansion (DX) cooling coil
150
+ and a single-speed DX heating coil with backup electrical resistance heat.
151
+
152
+ Each room/zone also receives its own Water Source Heat Pump (WSHP), which meets
153
+ the heating and cooling loads of the space. All WSHPs are connected to the
154
+ same water condenser loop, which has its temperature maintained by the
155
+ equipment_type (eg. Boiler with Cooling Tower).
156
+ """
157
+
158
+ type: constr(regex='^WSHPwithDOASAbridged$') = 'WSHPwithDOASAbridged'
159
+
160
+ equipment_type: WSHPwithDOASEquipmentType = Field(
161
+ WSHPwithDOASEquipmentType.wshp_fc_gb,
162
+ description='Text for the specific type of system equipment from the '
163
+ 'WSHPwithDOASEquipmentType enumeration.'
164
+ )
165
+
166
+
167
+ class VRFwithDOASAbridged(_DOASBase):
168
+ """Variable Refrigerant Flow (VRF) with DOAS HVAC system.
169
+
170
+ All rooms/zones in the system are connected to a Dedicated Outdoor Air System
171
+ (DOAS) that supplies a constant volume of ventilation air at the same temperature
172
+ to all rooms/zones. The ventilation air temperature will vary from 21.1C (70F)
173
+ to 15.5C (60F) depending on the outdoor air temperature (the DOAS supplies cooler air
174
+ when outdoor conditions are warmer). The ventilation air temperature is maintained
175
+ by a single speed direct expansion (DX) cooling coil along with a single-speed
176
+ direct expansion (DX) heat pump with a backup electrical resistance coil.
177
+
178
+ Each room/zone also receives its own Variable Refrigerant Flow (VRF) terminal,
179
+ which meets the heating and cooling loads of the space. All room/zone terminals
180
+ are connected to the same outdoor unit, meaning that either all rooms must be
181
+ in cooling or heating mode together.
182
+ """
183
+
184
+ type: constr(regex='^VRFwithDOASAbridged$') = 'VRFwithDOASAbridged'
185
+
186
+ equipment_type: VRFwithDOASEquipmentType = Field(
187
+ VRFwithDOASEquipmentType.vrf,
188
+ description='Text for the specific type of system equipment from the '
189
+ 'VRFwithDOASEquipmentType enumeration.'
190
+ )
191
+
192
+
193
+ class RadiantwithDOASAbridged(_DOASBase):
194
+ """Low Temperature Radiant with DOAS HVAC system.
195
+
196
+ This HVAC template will change the floor and/or ceiling constructions
197
+ of the Rooms that it is applied to, replacing them with a construction that
198
+ aligns with the radiant_type property (eg. CeilingMetalPanel).
199
+
200
+ All rooms/zones in the system are connected to a Dedicated Outdoor Air System
201
+ (DOAS) that supplies a constant volume of ventilation air at the same temperature
202
+ to all rooms/zones. The ventilation air temperature will vary from 21.1C (70F)
203
+ to 15.5C (60F) depending on the outdoor air temperature (the DOAS supplies cooler air
204
+ when outdoor conditions are warmer). The ventilation air temperature is maintained
205
+ by a two-speed direct expansion (DX) cooling coil and a single-speed DX
206
+ heating coil with backup electrical resistance heat.
207
+
208
+ The heating and cooling needs of the space are met with the radiant constructions,
209
+ which use chilled water at 12.8C (55F) and a hot water temperature somewhere
210
+ between 32.2C (90F) and 49C (120F) (warmer temperatures are used in colder
211
+ climate zones).
212
+
213
+ Note that radiant systems are particularly limited in cooling capacity and
214
+ using them may result in many unmet hours. To reduce unmet hours, one can
215
+ remove carpets, reduce internal loads, reduce solar and envelope gains during
216
+ peak times, add thermal mass, and use an expanded comfort range.
217
+ """
218
+
219
+ type: constr(regex='^RadiantwithDOASAbridged$') = 'RadiantwithDOASAbridged'
220
+
221
+ equipment_type: RadiantwithDOASEquipmentType = Field(
222
+ RadiantwithDOASEquipmentType.radiant_chill_gb,
223
+ description='Text for the specific type of system equipment from the '
224
+ 'RadiantwithDOASEquipmentType enumeration.'
225
+ )
226
+
227
+ radiant_face_type: RadiantFaceTypes = Field(
228
+ RadiantFaceTypes.floor,
229
+ description='Text to indicate which faces are thermally active by default. '
230
+ 'Note that this property has no effect when the rooms to which the HVAC '
231
+ 'system is assigned have constructions with internal source materials. '
232
+ 'In this case, those constructions will dictate the thermally active '
233
+ 'surfaces.'
234
+ )
235
+
236
+ minimum_operation_time: float = Field(
237
+ 1.0,
238
+ gt=0,
239
+ description='A number for the minimum number of hours of operation '
240
+ 'for the radiant system before it shuts off.'
241
+ )
242
+
243
+ switch_over_time: float = Field(
244
+ 24.0,
245
+ gt=0,
246
+ description='A number for the minimum number of hours for when the system '
247
+ 'can switch between heating and cooling.'
248
+ )