comcheck-api 1.0.0__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 (54) hide show
  1. comcheck_api/DISCLAIMER.md +24 -0
  2. comcheck_api/__init__.py +99 -0
  3. comcheck_api/ai/__init__.py +30 -0
  4. comcheck_api/ai/skill/SKILL.md +285 -0
  5. comcheck_api/ai/skill/__init__.py +5 -0
  6. comcheck_api/ai/skill/reference/operations.md +101 -0
  7. comcheck_api/ai/skill/reference/simulation.md +99 -0
  8. comcheck_api/ai/skill/reference/types.md +90 -0
  9. comcheck_api/ai/skill/scripts/__init__.py +1 -0
  10. comcheck_api/ai/skill/scripts/validate_code.py +210 -0
  11. comcheck_api/api/__init__.py +1 -0
  12. comcheck_api/api/api_services.py +273 -0
  13. comcheck_api/cli.py +136 -0
  14. comcheck_api/client/__init__.py +1 -0
  15. comcheck_api/client/comcheck_client.py +335 -0
  16. comcheck_api/constants/__init__.py +0 -0
  17. comcheck_api/constants/building_area_constants.py +35 -0
  18. comcheck_api/constants/common_constants.py +116 -0
  19. comcheck_api/constants/envelope_constants.py +250 -0
  20. comcheck_api/defaults.py +150 -0
  21. comcheck_api/exceptions.py +54 -0
  22. comcheck_api/introspection.py +188 -0
  23. comcheck_api/managers/__init__.py +0 -0
  24. comcheck_api/managers/components/__init__.py +0 -0
  25. comcheck_api/managers/components/building_area.py +11 -0
  26. comcheck_api/managers/components/envelope/__init__.py +0 -0
  27. comcheck_api/managers/components/envelope/ag_wall.py +97 -0
  28. comcheck_api/managers/components/envelope/bg_wall.py +39 -0
  29. comcheck_api/managers/components/envelope/door.py +11 -0
  30. comcheck_api/managers/components/envelope/floor.py +11 -0
  31. comcheck_api/managers/components/envelope/roof.py +30 -0
  32. comcheck_api/managers/components/envelope/skylight.py +11 -0
  33. comcheck_api/managers/components/envelope/window.py +11 -0
  34. comcheck_api/managers/data_manager.py +369 -0
  35. comcheck_api/project_operations/__init__.py +8 -0
  36. comcheck_api/project_operations/project_building_area_operations.py +107 -0
  37. comcheck_api/project_operations/project_envelope_operations.py +899 -0
  38. comcheck_api/schemas/comCheck.schema.json +6463 -0
  39. comcheck_api/types/__init__.py +49 -0
  40. comcheck_api/types/api_types.py +127 -0
  41. comcheck_api/types/common_types.py +32 -0
  42. comcheck_api/types/core_types.py +4198 -0
  43. comcheck_api/types/custom_base_model.py +314 -0
  44. comcheck_api/utilities/__init__.py +5 -0
  45. comcheck_api/utilities/common.py +50 -0
  46. comcheck_api/utilities/envelope_utilities.py +46 -0
  47. comcheck_api/utilities/id_registry.py +79 -0
  48. comcheck_api/utilities/project_utilities.py +60 -0
  49. comcheck_api/validation.py +64 -0
  50. comcheck_api-1.0.0.dist-info/METADATA +244 -0
  51. comcheck_api-1.0.0.dist-info/RECORD +54 -0
  52. comcheck_api-1.0.0.dist-info/WHEEL +4 -0
  53. comcheck_api-1.0.0.dist-info/entry_points.txt +2 -0
  54. comcheck_api-1.0.0.dist-info/licenses/LICENSE +24 -0
@@ -0,0 +1,4198 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: comCheck.schema.json
3
+ # timestamp: 2026-06-10T04:00:05+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import IntEnum, StrEnum
8
+ from typing import Annotated, Any
9
+
10
+ from comcheck_api.types.custom_base_model import CustomBaseModel
11
+ from pydantic import ConfigDict, Field, RootModel
12
+
13
+
14
+ class EnergyCodeOptions(StrEnum):
15
+ CEZ_IECC2015 = 'CEZ_IECC2015'
16
+ CEZ_IECC2018 = 'CEZ_IECC2018'
17
+ CEZ_IECC2021 = 'CEZ_IECC2021'
18
+ CEZ_IECC2024 = 'CEZ_IECC2024'
19
+ CEZ_90_1_2013 = 'CEZ_90_1_2013'
20
+ CEZ_90_1_2016 = 'CEZ_90_1_2016'
21
+ CEZ_90_1_2019 = 'CEZ_90_1_2019'
22
+ CEZ_90_1_2022 = 'CEZ_90_1_2022'
23
+
24
+
25
+ class RequirementAnswerStatus(StrEnum):
26
+ NOT_SATISFIED = 'NOT_SATISFIED'
27
+ SATISFIED = 'SATISFIED'
28
+ EXCEPTION = 'EXCEPTION'
29
+ MULTIPLE = 'MULTIPLE'
30
+
31
+
32
+ class Project(CustomBaseModel):
33
+ model_config = ConfigDict(
34
+ extra='ignore',
35
+ )
36
+ id: Annotated[
37
+ str | int | None,
38
+ Field(
39
+ description='Scope-unique reference identifier for instances of this data group.'
40
+ ),
41
+ ] = None
42
+ projectTitle: Annotated[str | None, Field(description='Project title')] = (
43
+ 'New Project'
44
+ )
45
+ projectPermitNumber: Annotated[
46
+ str | None, Field(description='Project permit ID')
47
+ ] = None
48
+ projectPermitDate: Annotated[
49
+ str | None, Field(description='Project permit submission date')
50
+ ] = None
51
+ projectTaxMap: Annotated[str | None, Field(description='Project tax map')] = None
52
+ projectLotNumber: Annotated[str | None, Field(description='Project lot number')] = (
53
+ None
54
+ )
55
+ projectAddress: Annotated[
56
+ str | None, Field(description='Project address - street')
57
+ ] = None
58
+ projectAddress2: Annotated[
59
+ str | None, Field(description='Project address - street number')
60
+ ] = None
61
+ projectCity: Annotated[str | None, Field(description='City')] = None
62
+ projectState: Annotated[str | None, Field(description='State')] = None
63
+ projectZipCode: Annotated[str | None, Field(description='Zip code')] = None
64
+ projectComplete: Annotated[
65
+ bool | None, Field(description='Project completion status')
66
+ ] = None
67
+ ownerFirstName: Annotated[
68
+ str | None, Field(description='Project owner first name')
69
+ ] = None
70
+ ownerLastName: Annotated[
71
+ str | None, Field(description='Project owner last name')
72
+ ] = None
73
+ ownerCompany: Annotated[
74
+ str | None, Field(description="Project owner's company")
75
+ ] = None
76
+ ownerAddress: Annotated[
77
+ str | None, Field(description="Project owner's address - street")
78
+ ] = None
79
+ ownerAddress2: Annotated[
80
+ str | None, Field(description="Project owner's address - street number")
81
+ ] = None
82
+ ownerCity: Annotated[str | None, Field(description='City')] = None
83
+ ownerState: Annotated[str | None, Field(description='State')] = None
84
+ ownerZipCode: Annotated[str | None, Field(description='Zip code')] = None
85
+ ownerPhone: Annotated[str | None, Field(description='Phone number')] = None
86
+ ownerEmail: Annotated[str | None, Field(description='Email address')] = None
87
+ developerFirstName: Annotated[
88
+ str | None, Field(description='Project developer first name')
89
+ ] = None
90
+ developerLastName: Annotated[
91
+ str | None, Field(description='Project developer last name')
92
+ ] = None
93
+ developerCompany: Annotated[
94
+ str | None, Field(description="Project developer's company")
95
+ ] = None
96
+ developerAddress: Annotated[
97
+ str | None, Field(description="Project developer's address - street")
98
+ ] = None
99
+ developerAddress2: Annotated[
100
+ str | None, Field(description="Project developer's address - street number")
101
+ ] = None
102
+ developerCity: Annotated[str | None, Field(description='City')] = None
103
+ developerState: Annotated[str | None, Field(description='State')] = None
104
+ developerZipCode: Annotated[str | None, Field(description='Zip code')] = None
105
+ developerPhone: Annotated[str | None, Field(description='Phone number')] = None
106
+ developerEmail: Annotated[str | None, Field(description='Email address')] = None
107
+ notes: Annotated[str | None, Field(description='$comment')] = None
108
+
109
+
110
+ class WallTypeOptions(StrEnum):
111
+ WOOD_FRAME_16_AG_WALL = 'WOOD_FRAME_16_AG_WALL'
112
+ WOOD_FRAME_24_AG_WALL = 'WOOD_FRAME_24_AG_WALL'
113
+ METAL_FRAME_16_AG_WALL = 'METAL_FRAME_16_AG_WALL'
114
+ METAL_FRAME_24_AG_WALL = 'METAL_FRAME_24_AG_WALL'
115
+ METAL_WALL_WO_TB_AG_WALL = 'METAL_WALL_WO_TB_AG_WALL'
116
+ METAL_BLDG_AG_WALL = 'METAL_BLDG_AG_WALL'
117
+ CONCRETE_AG_WALL = 'CONCRETE_AG_WALL'
118
+ MASONRY_AG_WALL = 'MASONRY_AG_WALL'
119
+ OTHER_AG_WALL = 'OTHER_AG_WALL'
120
+
121
+
122
+ class Location(CustomBaseModel):
123
+ model_config = ConfigDict(
124
+ extra='ignore',
125
+ )
126
+ id: Annotated[
127
+ str | int | None,
128
+ Field(
129
+ description='Scope-unique reference identifier for instances of this data group.'
130
+ ),
131
+ ] = None
132
+ state: Annotated[
133
+ str,
134
+ Field(
135
+ description='United States states, spell the full name, e.g., Washington'
136
+ ),
137
+ ]
138
+ epwFilename: Annotated[
139
+ str | None, Field(deprecated=True, description='file name')
140
+ ] = None
141
+ county: Annotated[
142
+ str | None, Field(description='county name, spell the full name')
143
+ ] = None
144
+ city: Annotated[str | None, Field(description='city, spell the full name')]
145
+ climateZone: Annotated[int, Field(description='Climate zone number', ge=1, le=8)]
146
+
147
+
148
+ class BgWallTypeOptions(StrEnum):
149
+ SOLID_CONCRETE_LE_8IN_BG_WALL = 'SOLID_CONCRETE_LE_8IN_BG_WALL'
150
+ SOLID_CONCRETE_GT_8IN_BG_WALL = 'SOLID_CONCRETE_GT_8IN_BG_WALL'
151
+ CMU_LE_8IN_EMPTY_CELLS_BG_WALL = 'CMU_LE_8IN_EMPTY_CELLS_BG_WALL'
152
+ CMU_GT_8IN_EMPTY_CELLS_BG_WALL = 'CMU_GT_8IN_EMPTY_CELLS_BG_WALL'
153
+ CMU_LE_8IN_INTEGRAL_INS_BG_WALL = 'CMU_LE_8IN_INTEGRAL_INS_BG_WALL'
154
+ CMU_GT_8IN_INTEGRAL_INS_BG_WALL = 'CMU_GT_8IN_INTEGRAL_INS_BG_WALL'
155
+ CONCRETE_BG_WALL = 'CONCRETE_BG_WALL'
156
+ WOOD_BG_WALL = 'WOOD_BG_WALL'
157
+ MASONRY_BG_WALL = 'MASONRY_BG_WALL'
158
+ OTHER_BG_WALL = 'OTHER_BG_WALL'
159
+
160
+
161
+ class AdjacentSpaceTypeOptions(StrEnum):
162
+ ADJACENT_SPACE_UNSPECIFIED = 'ADJACENT_SPACE_UNSPECIFIED'
163
+ ADJACENT_SPACE_EXTERIOR = 'ADJACENT_SPACE_EXTERIOR'
164
+ ADJACENT_SPACE_SEMI_EXTERIOR = 'ADJACENT_SPACE_SEMI_EXTERIOR'
165
+ ADJACENT_SPACE_UNCONDITIONED = 'ADJACENT_SPACE_UNCONDITIONED'
166
+ ADJACENT_SPACE_CONDITIONED = 'ADJACENT_SPACE_CONDITIONED'
167
+
168
+
169
+ class WholeBuildingTypeOptions(StrEnum):
170
+ WHOLE_BUILDING_ASSEMBLY = 'WHOLE_BUILDING_ASSEMBLY'
171
+ WHOLE_BUILDING_AUTOMOTIVE = 'WHOLE_BUILDING_AUTOMOTIVE'
172
+ WHOLE_BUILDING_CONVENTION_CENTER = 'WHOLE_BUILDING_CONVENTION_CENTER'
173
+ WHOLE_BUILDING_COURT_HOUSE = 'WHOLE_BUILDING_COURT_HOUSE'
174
+ WHOLE_BUILDING_DINING_BAR = 'WHOLE_BUILDING_DINING_BAR'
175
+ WHOLE_BUILDING_DINING_CAFETERIA = 'WHOLE_BUILDING_DINING_CAFETERIA'
176
+ WHOLE_BUILDING_DINING_FAMILY = 'WHOLE_BUILDING_DINING_FAMILY'
177
+ WHOLE_BUILDING_DORM = 'WHOLE_BUILDING_DORM'
178
+ WHOLE_BUILDING_EXERCISE_CENTER = 'WHOLE_BUILDING_EXERCISE_CENTER'
179
+ WHOLE_BUILDING_GROCERY = 'WHOLE_BUILDING_GROCERY'
180
+ WHOLE_BUILDING_GYM = 'WHOLE_BUILDING_GYM'
181
+ WHOLE_BUILDING_HEALTH_CLINIC = 'WHOLE_BUILDING_HEALTH_CLINIC'
182
+ WHOLE_BUILDING_HOSPITAL = 'WHOLE_BUILDING_HOSPITAL'
183
+ WHOLE_BUILDING_HOTEL = 'WHOLE_BUILDING_HOTEL'
184
+ WHOLE_BUILDING_LIBRARY = 'WHOLE_BUILDING_LIBRARY'
185
+ WHOLE_BUILDING_MANUFACTURING = 'WHOLE_BUILDING_MANUFACTURING'
186
+ WHOLE_BUILDING_MOTEL = 'WHOLE_BUILDING_MOTEL'
187
+ WHOLE_BUILDING_MOVIE_THEATER = 'WHOLE_BUILDING_MOVIE_THEATER'
188
+ WHOLE_BUILDING_MULTIFAMILY = 'WHOLE_BUILDING_MULTIFAMILY'
189
+ WHOLE_BUILDING_MUSEUM = 'WHOLE_BUILDING_MUSEUM'
190
+ WHOLE_BUILDING_OFFICE = 'WHOLE_BUILDING_OFFICE'
191
+ WHOLE_BUILDING_OTHER = 'WHOLE_BUILDING_OTHER'
192
+ WHOLE_BUILDING_PARKING_GARAGE = 'WHOLE_BUILDING_PARKING_GARAGE'
193
+ WHOLE_BUILDING_PENITENTIARY = 'WHOLE_BUILDING_PENITENTIARY'
194
+ WHOLE_BUILDING_PERFORM_THEATER = 'WHOLE_BUILDING_PERFORM_THEATER'
195
+ WHOLE_BUILDING_POLICE_FIRE_STATION = 'WHOLE_BUILDING_POLICE_FIRE_STATION'
196
+ WHOLE_BUILDING_POLICE_STATION = 'WHOLE_BUILDING_POLICE_STATION'
197
+ WHOLE_BUILDING_FIRE_STATION = 'WHOLE_BUILDING_FIRE_STATION'
198
+ WHOLE_BUILDING_POST_OFFICE = 'WHOLE_BUILDING_POST_OFFICE'
199
+ WHOLE_BUILDING_RELIGIOUS = 'WHOLE_BUILDING_RELIGIOUS'
200
+ WHOLE_BUILDING_RETAIL = 'WHOLE_BUILDING_RETAIL'
201
+ WHOLE_BUILDING_SCHOOL = 'WHOLE_BUILDING_SCHOOL'
202
+ WHOLE_BUILDING_SPORTS_ARENA = 'WHOLE_BUILDING_SPORTS_ARENA'
203
+ WHOLE_BUILDING_STORAGE = 'WHOLE_BUILDING_STORAGE'
204
+ WHOLE_BUILDING_TOWN_HALL = 'WHOLE_BUILDING_TOWN_HALL'
205
+ WHOLE_BUILDING_TRANSPORTATION = 'WHOLE_BUILDING_TRANSPORTATION'
206
+ WHOLE_BUILDING_WAREHOUSE = 'WHOLE_BUILDING_WAREHOUSE'
207
+ WHOLE_BUILDING_WORKSHOP = 'WHOLE_BUILDING_WORKSHOP'
208
+
209
+
210
+ class OrientationOptions(StrEnum):
211
+ NORTH = 'NORTH'
212
+ EAST = 'EAST'
213
+ SOUTH = 'SOUTH'
214
+ WEST = 'WEST'
215
+ NORTHWEST = 'NORTHWEST'
216
+ NORTHEAST = 'NORTHEAST'
217
+ SOUTHWEST = 'SOUTHWEST'
218
+ SOUTHEAST = 'SOUTHEAST'
219
+ UNSPECIFIED_ORIENTATION = 'UNSPECIFIED_ORIENTATION'
220
+
221
+
222
+ class EnvelopeAssemblyAllowanceTypeOptions(StrEnum):
223
+ ENV_ALLOWANCE_NONE = 'ENV_ALLOWANCE_NONE'
224
+ ENV_ALLOWANCE_FEN_SIX_FEET_ABOVE_FLOOR = 'ENV_ALLOWANCE_FEN_SIX_FEET_ABOVE_FLOOR'
225
+ ENV_ALLOWANCE_SKYLIGHT_HAS_DAYLIGHT_AND_AUTOCONTROLS = (
226
+ 'ENV_ALLOWANCE_SKYLIGHT_HAS_DAYLIGHT_AND_AUTOCONTROLS'
227
+ )
228
+ ENV_ALLOWANCE_DYNAMIC_GLAZING = 'ENV_ALLOWANCE_DYNAMIC_GLAZING'
229
+
230
+
231
+ class ConstructionTypeOptions(StrEnum):
232
+ NON_RESIDENTIAL = 'NON_RESIDENTIAL'
233
+ RESIDENTIAL = 'RESIDENTIAL'
234
+ SEMI_HEATED = 'SEMI_HEATED'
235
+
236
+
237
+ class AltExemptTypeOptions(StrEnum):
238
+ EXEMPT_NOT_SET = 'EXEMPT_NOT_SET'
239
+ EXEMPT_NOT_APPLICABLE = 'EXEMPT_NOT_APPLICABLE'
240
+ EXEMPT_ROOF_NO_DECK_EXPOSED = 'EXEMPT_ROOF_NO_DECK_EXPOSED'
241
+ EXEMPT_ROOF_INSUL_EXISTS = 'EXEMPT_ROOF_INSUL_EXISTS'
242
+ EXEMPT_ROOF_CAV_FILLED_TO_MIN = 'EXEMPT_ROOF_CAV_FILLED_TO_MIN'
243
+ EXEMPT_WALL_NO_CAV = 'EXEMPT_WALL_NO_CAV'
244
+ EXEMPT_WALL_CAV_FILLED_TO_MIN = 'EXEMPT_WALL_CAV_FILLED_TO_MIN'
245
+ EXEMPT_FLOOR_NO_CAV = 'EXEMPT_FLOOR_NO_CAV'
246
+ EXEMPT_FLOOR_CAV_FILLED_TO_MIN = 'EXEMPT_FLOOR_CAV_FILLED_TO_MIN'
247
+ EXEMPT_GLAZING_STORM_ONLY = 'EXEMPT_GLAZING_STORM_ONLY'
248
+ EXEMPT_GLAZING_GLAZING_REPLACEMENT = 'EXEMPT_GLAZING_GLAZING_REPLACEMENT'
249
+ EXEMPT_GLAZING_UNIT_REPLACEMENT_LT_25_PCT = (
250
+ 'EXEMPT_GLAZING_UNIT_REPLACEMENT_LT_25_PCT'
251
+ )
252
+ EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_50_PCT = (
253
+ 'EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_50_PCT'
254
+ )
255
+ EXEMPT_MECH_REPAIR_ONLY = 'EXEMPT_MECH_REPAIR_ONLY'
256
+ EXEMPT_MECH_EXTENSIVE_OTHER_MODS = 'EXEMPT_MECH_EXTENSIVE_OTHER_MODS'
257
+ EXEMPT_MECH_REFRIGERANT_ONLY = 'EXEMPT_MECH_REFRIGERANT_ONLY'
258
+ EXEMPT_MECH_RELOCATE_ONLY = 'EXEMPT_MECH_RELOCATE_ONLY'
259
+ EXEMPT_MECH_DUCTWORK_PIPE_SPACE_CONSTRAINT = (
260
+ 'EXEMPT_MECH_DUCTWORK_PIPE_SPACE_CONSTRAINT'
261
+ )
262
+ EXEMPT_MECH_DUCTWORK_PIPE_LEAKAGE_INSUL_CONSTRAINT = (
263
+ 'EXEMPT_MECH_DUCTWORK_PIPE_LEAKAGE_INSUL_CONSTRAINT'
264
+ )
265
+ EXEMPT_MECH_SECTION_7_CONSTRAINT = 'EXEMPT_MECH_SECTION_7_CONSTRAINT'
266
+ EXEMPT_LIGHTING_SPACE_NON_LIGHTING_ALTERATION = (
267
+ 'EXEMPT_LIGHTING_SPACE_NON_LIGHTING_ALTERATION'
268
+ )
269
+ EXEMPT_SKYLIGHT_UNIT_REPLACEMENT_LT_25_PCT = (
270
+ 'EXEMPT_SKYLIGHT_UNIT_REPLACEMENT_LT_25_PCT'
271
+ )
272
+ EXEMPT_NO_CAVITY_EXPOSED = 'EXEMPT_NO_CAVITY_EXPOSED'
273
+ EXEMPT_CAVITY_FILLED = 'EXEMPT_CAVITY_FILLED'
274
+ EXEMPT_ROOF_NO_SHEATH_NOR_INSUL_EXPOSED = 'EXEMPT_ROOF_NO_SHEATH_NOR_INSUL_EXPOSED'
275
+ EXEMPT_LIGHTING_BULBS_BALLASTS_ONLY = 'EXEMPT_LIGHTING_BULBS_BALLASTS_ONLY'
276
+ EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_10_PCT = (
277
+ 'EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_10_PCT'
278
+ )
279
+ EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_10_FIXTURES = (
280
+ 'EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_10_FIXTURES'
281
+ )
282
+ EXEMPT_LIGHTING_SPACE_BULB_BALLAST_ONLY_ON_LT_50_PCT = (
283
+ 'EXEMPT_LIGHTING_SPACE_BULB_BALLAST_ONLY_ON_LT_50_PCT'
284
+ )
285
+ EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_10_PCT_LOAD = (
286
+ 'EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_10_PCT_LOAD'
287
+ )
288
+ EXEMPT_GLAZING_SINGLE_PANE_FILM = 'EXEMPT_GLAZING_SINGLE_PANE_FILM'
289
+ EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_20_PCT = (
290
+ 'EXEMPT_LIGHTING_SPACE_REPLACEMENT_LT_20_PCT'
291
+ )
292
+
293
+
294
+ class CondenserTypeOptions(StrEnum):
295
+ UNKNOWN_CONDENSER = 'UNKNOWN_CONDENSER'
296
+ NO_CONDENSER = 'NO_CONDENSER'
297
+ AIR_COOLED = 'AIR_COOLED'
298
+ EVAPORATIVELY_COOLED = 'EVAPORATIVELY_COOLED'
299
+ WATER_COOLED = 'WATER_COOLED'
300
+ GROUND_COUPLED = 'GROUND_COUPLED'
301
+ GLYCOL_COOLED = 'GLYCOL_COOLED'
302
+ AIR_COOLED_FAD_CONDENSER = 'AIR_COOLED_FAD_CONDENSER'
303
+ AIR_COOLED_DUCTED_CONDENSER = 'AIR_COOLED_DUCTED_CONDENSER'
304
+ CHILLED_WATER = 'CHILLED_WATER'
305
+
306
+
307
+ class ActivityTypeOptions(StrEnum):
308
+ ACTIVITY_INVALID_USE = 'ACTIVITY_INVALID_USE'
309
+ ACTIVITY_AUTO_REPAIR = 'ACTIVITY_AUTO_REPAIR'
310
+ ACTIVITY_AUTO_REPAIR_INDUSTRIAL = 'ACTIVITY_AUTO_REPAIR_INDUSTRIAL'
311
+ ACTIVITY_BANK_ACTIVITY = 'ACTIVITY_BANK_ACTIVITY'
312
+ ACTIVITY_COMMON_ACTIVE_STORAGE = 'ACTIVITY_COMMON_ACTIVE_STORAGE'
313
+ ACTIVITY_COMMON_ATRIUM_ADDITIONAL_FLOOR = 'ACTIVITY_COMMON_ATRIUM_ADDITIONAL_FLOOR'
314
+ ACTIVITY_COMMON_ATRIUM_FIRST_THREE_FLOOR = (
315
+ 'ACTIVITY_COMMON_ATRIUM_FIRST_THREE_FLOOR'
316
+ )
317
+ ACTIVITY_COMMON_ATRIUM = 'ACTIVITY_COMMON_ATRIUM'
318
+ ACTIVITY_COMMON_ATRIUM_FIRST_40 = 'ACTIVITY_COMMON_ATRIUM_FIRST_40'
319
+ ACTIVITY_COMMON_ATRIUM_ABOVE_40 = 'ACTIVITY_COMMON_ATRIUM_ABOVE_40'
320
+ ACTIVITY_COMMON_AUDIENCE_AREA = 'ACTIVITY_COMMON_AUDIENCE_AREA'
321
+ ACTIVITY_COMMON_AUDITORIUM = 'ACTIVITY_COMMON_AUDITORIUM'
322
+ ACTIVITY_COMMON_CONFERENCE_HALL = 'ACTIVITY_COMMON_CONFERENCE_HALL'
323
+ ACTIVITY_COMMON_CORRIDOR = 'ACTIVITY_COMMON_CORRIDOR'
324
+ ACTIVITY_COMMON_CORRIDOR_LT_8_FEET = 'ACTIVITY_COMMON_CORRIDOR_LT_8_FEET'
325
+ ACTIVITY_COMMON_CORRIDOR_GTE_8_FEET = 'ACTIVITY_COMMON_CORRIDOR_GTE_8_FEET'
326
+ ACTIVITY_COMMON_DINING_BAR = 'ACTIVITY_COMMON_DINING_BAR'
327
+ ACTIVITY_COMMON_DINING_GENERAL = 'ACTIVITY_COMMON_DINING_GENERAL'
328
+ ACTIVITY_COMMON_DINING_RESTAURANT = 'ACTIVITY_COMMON_DINING_RESTAURANT'
329
+ ACTIVITY_COMMON_DORM = 'ACTIVITY_COMMON_DORM'
330
+ ACTIVITY_COMMON_DRESSING_ROOM = 'ACTIVITY_COMMON_DRESSING_ROOM'
331
+ ACTIVITY_COMMON_ELECTRICAL_MECHANICAL = 'ACTIVITY_COMMON_ELECTRICAL_MECHANICAL'
332
+ ACTIVITY_COMMON_EXHIBITION = 'ACTIVITY_COMMON_EXHIBITION'
333
+ ACTIVITY_COMMON_FOOD_PREP = 'ACTIVITY_COMMON_FOOD_PREP'
334
+ ACTIVITY_COMMON_GROCERY_STORE = 'ACTIVITY_COMMON_GROCERY_STORE'
335
+ ACTIVITY_COMMON_HOSPITAL = 'ACTIVITY_COMMON_HOSPITAL'
336
+ ACTIVITY_COMMON_HOTEL = 'ACTIVITY_COMMON_HOTEL'
337
+ ACTIVITY_COMMON_INACTIVE_STORAGE = 'ACTIVITY_COMMON_INACTIVE_STORAGE'
338
+ ACTIVITY_COMMON_KITCHEN = 'ACTIVITY_COMMON_KITCHEN'
339
+ ACTIVITY_COMMON_LABORATORY = 'ACTIVITY_COMMON_LABORATORY'
340
+ ACTIVITY_COMMON_LABORATORY_CLASSROOM = 'ACTIVITY_COMMON_LABORATORY_CLASSROOM'
341
+ ACTIVITY_COMMON_LABORATORY_MED = 'ACTIVITY_COMMON_LABORATORY_MED'
342
+ ACTIVITY_COMMON_LECTURE_HALL = 'ACTIVITY_COMMON_LECTURE_HALL'
343
+ ACTIVITY_COMMON_LIBRARY = 'ACTIVITY_COMMON_LIBRARY'
344
+ ACTIVITY_COMMON_LOBBY = 'ACTIVITY_COMMON_LOBBY'
345
+ ACTIVITY_COMMON_LOBBY_ELEVATOR = 'ACTIVITY_COMMON_LOBBY_ELEVATOR'
346
+ ACTIVITY_COMMON_LOCKER_ROOM = 'ACTIVITY_COMMON_LOCKER_ROOM'
347
+ ACTIVITY_COMMON_LOUNGE = 'ACTIVITY_COMMON_LOUNGE'
348
+ ACTIVITY_COMMON_MANUFACTURING = 'ACTIVITY_COMMON_MANUFACTURING'
349
+ ACTIVITY_COMMON_MOTEL = 'ACTIVITY_COMMON_MOTEL'
350
+ ACTIVITY_COMMON_MOVIE = 'ACTIVITY_COMMON_MOVIE'
351
+ ACTIVITY_COMMON_OFFICE = 'ACTIVITY_COMMON_OFFICE'
352
+ ACTIVITY_COMMON_OFFICE_ENCLOSED = 'ACTIVITY_COMMON_OFFICE_ENCLOSED'
353
+ ACTIVITY_COMMON_OFFICE_OPEN = 'ACTIVITY_COMMON_OFFICE_OPEN'
354
+ ACTIVITY_COMMON_OTHER = 'ACTIVITY_COMMON_OTHER'
355
+ ACTIVITY_COMMON_POLICE = 'ACTIVITY_COMMON_POLICE'
356
+ ACTIVITY_COMMON_POST = 'ACTIVITY_COMMON_POST'
357
+ ACTIVITY_COMMON_RELIGIOUS = 'ACTIVITY_COMMON_RELIGIOUS'
358
+ ACTIVITY_COMMON_RESTROOM = 'ACTIVITY_COMMON_RESTROOM'
359
+ ACTIVITY_COMMON_SALES = 'ACTIVITY_COMMON_SALES'
360
+ ACTIVITY_COMMON_SCHOOL = 'ACTIVITY_COMMON_SCHOOL'
361
+ ACTIVITY_COMMON_STAIRS = 'ACTIVITY_COMMON_STAIRS'
362
+ ACTIVITY_COMMON_STORAGE = 'ACTIVITY_COMMON_STORAGE'
363
+ ACTIVITY_COMMON_THEATER = 'ACTIVITY_COMMON_THEATER'
364
+ ACTIVITY_COMMON_TRANS = 'ACTIVITY_COMMON_TRANS'
365
+ ACTIVITY_COMMON_WAREHOUSE = 'ACTIVITY_COMMON_WAREHOUSE'
366
+ ACTIVITY_COMMON_WORKSHOP = 'ACTIVITY_COMMON_WORKSHOP'
367
+ ACTIVITY_CONVENTION_AUDIENCE = 'ACTIVITY_CONVENTION_AUDIENCE'
368
+ ACTIVITY_CONVENTION_EXHIBIT_SPACE = 'ACTIVITY_CONVENTION_EXHIBIT_SPACE'
369
+ ACTIVITY_FIRE_ENGINE_ROOM = 'ACTIVITY_FIRE_ENGINE_ROOM'
370
+ ACTIVITY_FIRE_QUARTERS = 'ACTIVITY_FIRE_QUARTERS'
371
+ ACTIVITY_FOOD_CAFETERIA = 'ACTIVITY_FOOD_CAFETERIA'
372
+ ACTIVITY_FOOD_FAMILY_RESTAURANT = 'ACTIVITY_FOOD_FAMILY_RESTAURANT'
373
+ ACTIVITY_FOOD_LOUNGE = 'ACTIVITY_FOOD_LOUNGE'
374
+ ACTIVITY_GYM_EXERCISE = 'ACTIVITY_GYM_EXERCISE'
375
+ ACTIVITY_GYM_EXERCISE_CENTER_AUDIENCE = 'ACTIVITY_GYM_EXERCISE_CENTER_AUDIENCE'
376
+ ACTIVITY_GYM_GYM_AUDIENCE = 'ACTIVITY_GYM_GYM_AUDIENCE'
377
+ ACTIVITY_GYM_LOCKER_ROOM = 'ACTIVITY_GYM_LOCKER_ROOM'
378
+ ACTIVITY_GYM_PLAY = 'ACTIVITY_GYM_PLAY'
379
+ ACTIVITY_HOSPITAL_ACTIVE_STORAGE = 'ACTIVITY_HOSPITAL_ACTIVE_STORAGE'
380
+ ACTIVITY_HOSPITAL_CLINIC = 'ACTIVITY_HOSPITAL_CLINIC'
381
+ ACTIVITY_HOSPITAL_CORRIDOR = 'ACTIVITY_HOSPITAL_CORRIDOR'
382
+ ACTIVITY_HOSPITAL_CORRIDOR_LT_8_FEET = 'ACTIVITY_HOSPITAL_CORRIDOR_LT_8_FEET'
383
+ ACTIVITY_HOSPITAL_CORRIDOR_GTE_8_FEET = 'ACTIVITY_HOSPITAL_CORRIDOR_GTE_8_FEET'
384
+ ACTIVITY_HOSPITAL_EMERGENCY = 'ACTIVITY_HOSPITAL_EMERGENCY'
385
+ ACTIVITY_HOSPITAL_EXAM = 'ACTIVITY_HOSPITAL_EXAM'
386
+ ACTIVITY_HOSPITAL_LAUNDRY = 'ACTIVITY_HOSPITAL_LAUNDRY'
387
+ ACTIVITY_HOSPITAL_LOUNGE = 'ACTIVITY_HOSPITAL_LOUNGE'
388
+ ACTIVITY_HOSPITAL_NURSE_STATION = 'ACTIVITY_HOSPITAL_NURSE_STATION'
389
+ ACTIVITY_HOSPITAL_NURSERY = 'ACTIVITY_HOSPITAL_NURSERY'
390
+ ACTIVITY_HOSPITAL_OPERATION = 'ACTIVITY_HOSPITAL_OPERATION'
391
+ ACTIVITY_HOSPITAL_PATIENT = 'ACTIVITY_HOSPITAL_PATIENT'
392
+ ACTIVITY_HOSPITAL_PHARMACY = 'ACTIVITY_HOSPITAL_PHARMACY'
393
+ ACTIVITY_HOSPITAL_PHYSICAL_THERAPY = 'ACTIVITY_HOSPITAL_PHYSICAL_THERAPY'
394
+ ACTIVITY_HOSPITAL_RADIOLOGY = 'ACTIVITY_HOSPITAL_RADIOLOGY'
395
+ ACTIVITY_HOSPITAL_RECOVERY = 'ACTIVITY_HOSPITAL_RECOVERY'
396
+ ACTIVITY_HOSPITAL_SUPPLY = 'ACTIVITY_HOSPITAL_SUPPLY'
397
+ ACTIVITY_HOSPITAL_CONTROL = 'ACTIVITY_HOSPITAL_CONTROL'
398
+ ACTIVITY_HOTEL_DINING = 'ACTIVITY_HOTEL_DINING'
399
+ ACTIVITY_HOTEL_FUNCTION = 'ACTIVITY_HOTEL_FUNCTION'
400
+ ACTIVITY_HOTEL_LOBBY = 'ACTIVITY_HOTEL_LOBBY'
401
+ ACTIVITY_HOTEL_MOTEL_DINING = 'ACTIVITY_HOTEL_MOTEL_DINING'
402
+ ACTIVITY_HOTEL_ROOMS = 'ACTIVITY_HOTEL_ROOMS'
403
+ ACTIVITY_MOTEL_ROOMS = 'ACTIVITY_MOTEL_ROOMS'
404
+ ACTIVITY_INDUSTRIAL_HIGH_CEILING = 'ACTIVITY_INDUSTRIAL_HIGH_CEILING'
405
+ ACTIVITY_INDUSTRIAL_LOW_CEILING = 'ACTIVITY_INDUSTRIAL_LOW_CEILING'
406
+ ACTIVITY_LAW_CONFINEMENT_CELL = 'ACTIVITY_LAW_CONFINEMENT_CELL'
407
+ ACTIVITY_LAW_COURTHOUSE = 'ACTIVITY_LAW_COURTHOUSE'
408
+ ACTIVITY_LAW_COURTHOUSE_AUDIENCE = 'ACTIVITY_LAW_COURTHOUSE_AUDIENCE'
409
+ ACTIVITY_LAW_COURTROOM = 'ACTIVITY_LAW_COURTROOM'
410
+ ACTIVITY_LAW_JUDGE_CHAMBER = 'ACTIVITY_LAW_JUDGE_CHAMBER'
411
+ ACTIVITY_LAW_PEN = 'ACTIVITY_LAW_PEN'
412
+ ACTIVITY_LAW_PEN_AUDIENCE = 'ACTIVITY_LAW_PEN_AUDIENCE'
413
+ ACTIVITY_LAW_PEN_DINING = 'ACTIVITY_LAW_PEN_DINING'
414
+ ACTIVITY_LAW_PEN_LECTURE = 'ACTIVITY_LAW_PEN_LECTURE'
415
+ ACTIVITY_LAW_TOWNHALL = 'ACTIVITY_LAW_TOWNHALL'
416
+ ACTIVITY_LIBRARY_CARD_FILE = 'ACTIVITY_LIBRARY_CARD_FILE'
417
+ ACTIVITY_LIBRARY_READING = 'ACTIVITY_LIBRARY_READING'
418
+ ACTIVITY_LIBRARY_STACKS = 'ACTIVITY_LIBRARY_STACKS'
419
+ ACTIVITY_MANUFACTURING_CONTROL_ROOM = 'ACTIVITY_MANUFACTURING_CONTROL_ROOM'
420
+ ACTIVITY_MANUFACTURING_CORRIDOR = 'ACTIVITY_MANUFACTURING_CORRIDOR'
421
+ ACTIVITY_MANUFACTURING_CORRIDOR_LT_8_FEET = (
422
+ 'ACTIVITY_MANUFACTURING_CORRIDOR_LT_8_FEET'
423
+ )
424
+ ACTIVITY_MANUFACTURING_CORRIDOR_GTE_8_FEET = (
425
+ 'ACTIVITY_MANUFACTURING_CORRIDOR_GTE_8_FEET'
426
+ )
427
+ ACTIVITY_MANUFACTURING_DETAILED = 'ACTIVITY_MANUFACTURING_DETAILED'
428
+ ACTIVITY_MANUFACTURING_EQUIPMENT = 'ACTIVITY_MANUFACTURING_EQUIPMENT'
429
+ ACTIVITY_MANUFACTURING_EXTRA_HIGH_BAY = 'ACTIVITY_MANUFACTURING_EXTRA_HIGH_BAY'
430
+ ACTIVITY_MANUFACTURING_HIGH_BAY = 'ACTIVITY_MANUFACTURING_HIGH_BAY'
431
+ ACTIVITY_MANUFACTURING_LOW_BAY = 'ACTIVITY_MANUFACTURING_LOW_BAY'
432
+ ACTIVITY_MANUFACTURING_WORKSHOP = 'ACTIVITY_MANUFACTURING_WORKSHOP'
433
+ ACTIVITY_MOVIE_LOBBY = 'ACTIVITY_MOVIE_LOBBY'
434
+ ACTIVITY_MOVIE_SEATING = 'ACTIVITY_MOVIE_SEATING'
435
+ ACTIVITY_MULTIFAMILY = 'ACTIVITY_MULTIFAMILY'
436
+ ACTIVITY_MUSEUM_ACTIVE_STORAGE = 'ACTIVITY_MUSEUM_ACTIVE_STORAGE'
437
+ ACTIVITY_MUSEUM_GENERAL_EXHIBITION = 'ACTIVITY_MUSEUM_GENERAL_EXHIBITION'
438
+ ACTIVITY_MUSEUM_INACTIVE_STORAGE = 'ACTIVITY_MUSEUM_INACTIVE_STORAGE'
439
+ ACTIVITY_MUSEUM_RESTORATION = 'ACTIVITY_MUSEUM_RESTORATION'
440
+ ACTIVITY_PARKING_ATTENDANT = 'ACTIVITY_PARKING_ATTENDANT'
441
+ ACTIVITY_PARKING_GARAGE_AREA = 'ACTIVITY_PARKING_GARAGE_AREA'
442
+ ACTIVITY_PARKING_PEDESTRIAN = 'ACTIVITY_PARKING_PEDESTRIAN'
443
+ ACTIVITY_PARKING_DAYLIGHT_ZONE = 'ACTIVITY_PARKING_DAYLIGHT_ZONE'
444
+ ACTIVITY_POST_SORTING = 'ACTIVITY_POST_SORTING'
445
+ ACTIVITY_RELIGIOUS_AUDIENCE = 'ACTIVITY_RELIGIOUS_AUDIENCE'
446
+ ACTIVITY_RELIGIOUS_FELLOWSHIP_HALL = 'ACTIVITY_RELIGIOUS_FELLOWSHIP_HALL'
447
+ ACTIVITY_RELIGIOUS_PULPIT = 'ACTIVITY_RELIGIOUS_PULPIT'
448
+ ACTIVITY_RETAIL_FITTING = 'ACTIVITY_RETAIL_FITTING'
449
+ ACTIVITY_RETAIL_MALL = 'ACTIVITY_RETAIL_MALL'
450
+ ACTIVITY_RETAIL_SALES = 'ACTIVITY_RETAIL_SALES'
451
+ ACTIVITY_RETAIL_HAIRCARE = 'ACTIVITY_RETAIL_HAIRCARE'
452
+ ACTIVITY_RETAIL_MASSAGE = 'ACTIVITY_RETAIL_MASSAGE'
453
+ ACTIVITY_RETAIL_NAILCARE = 'ACTIVITY_RETAIL_NAILCARE'
454
+ ACTIVITY_SPORTS_AUDIENCE = 'ACTIVITY_SPORTS_AUDIENCE'
455
+ ACTIVITY_SPORTS_COURT = 'ACTIVITY_SPORTS_COURT'
456
+ ACTIVITY_SPORTS_COURT_CLASS1 = 'ACTIVITY_SPORTS_COURT_CLASS1'
457
+ ACTIVITY_SPORTS_COURT_CLASS2 = 'ACTIVITY_SPORTS_COURT_CLASS2'
458
+ ACTIVITY_SPORTS_COURT_CLASS3 = 'ACTIVITY_SPORTS_COURT_CLASS3'
459
+ ACTIVITY_SPORTS_COURT_CLASS4 = 'ACTIVITY_SPORTS_COURT_CLASS4'
460
+ ACTIVITY_SPORTS_INDOOR_PLAY_FIELD = 'ACTIVITY_SPORTS_INDOOR_PLAY_FIELD'
461
+ ACTIVITY_SPORTS_RING = 'ACTIVITY_SPORTS_RING'
462
+ ACTIVITY_THEATER_AUDIENCE = 'ACTIVITY_THEATER_AUDIENCE'
463
+ ACTIVITY_THEATER_LOBBY = 'ACTIVITY_THEATER_LOBBY'
464
+ ACTIVITY_THEATER_DRESSING = 'ACTIVITY_THEATER_DRESSING'
465
+ ACTIVITY_TRANS_BAGGAGE = 'ACTIVITY_TRANS_BAGGAGE'
466
+ ACTIVITY_TRANS_CONCOURSE = 'ACTIVITY_TRANS_CONCOURSE'
467
+ ACTIVITY_TRANS_SEATING = 'ACTIVITY_TRANS_SEATING'
468
+ ACTIVITY_TRANS_TERMINAL = 'ACTIVITY_TRANS_TERMINAL'
469
+ ACTIVITY_TRANS_AIR_HANGER = 'ACTIVITY_TRANS_AIR_HANGER'
470
+ ACTIVITY_TRANS_PASSENGER = 'ACTIVITY_TRANS_PASSENGER'
471
+ ACTIVITY_NATATO_COURT_CLASS1 = 'ACTIVITY_NATATO_COURT_CLASS1'
472
+ ACTIVITY_NATATO_COURT_CLASS2 = 'ACTIVITY_NATATO_COURT_CLASS2'
473
+ ACTIVITY_NATATO_COURT_CLASS3 = 'ACTIVITY_NATATO_COURT_CLASS3'
474
+ ACTIVITY_NATATO_COURT_CLASS4 = 'ACTIVITY_NATATO_COURT_CLASS4'
475
+ ACTIVITY_WAREHOUSE_FINE_STORAGE = 'ACTIVITY_WAREHOUSE_FINE_STORAGE'
476
+ ACTIVITY_WAREHOUSE_MEDIUM_BULKY_STORAGE = 'ACTIVITY_WAREHOUSE_MEDIUM_BULKY_STORAGE'
477
+ ACTIVITY_COMMON_DORM_BEDROOM = 'ACTIVITY_COMMON_DORM_BEDROOM'
478
+ ACTIVITY_COMMON_DORM_STUDY = 'ACTIVITY_COMMON_DORM_STUDY'
479
+ ACTIVITY_GYM_EXERCISE_CENTER_LOCKER = 'ACTIVITY_GYM_EXERCISE_CENTER_LOCKER'
480
+ ACTIVITY_GYM_EXERCISE_CENTER_EXERCISE = 'ACTIVITY_GYM_EXERCISE_CENTER_EXERCISE'
481
+ ACTIVITY_HOTEL_MOTEL_RECEPTION = 'ACTIVITY_HOTEL_MOTEL_RECEPTION'
482
+ ACTIVITY_HOTEL_RECEPTION = 'ACTIVITY_HOTEL_RECEPTION'
483
+ ACTIVITY_LAW_DRESSING_ROOM = 'ACTIVITY_LAW_DRESSING_ROOM'
484
+ ACTIVITY_LIBRARY_AUDIO_VISUAL = 'ACTIVITY_LIBRARY_AUDIO_VISUAL'
485
+ ACTIVITY_POST_LOBBY = 'ACTIVITY_POST_LOBBY'
486
+ ACTIVITY_RETAIL_DEPT_SALES = 'ACTIVITY_RETAIL_DEPT_SALES'
487
+ ACTIVITY_RETAIL_FINE_MERCH_SALES = 'ACTIVITY_RETAIL_FINE_MERCH_SALES'
488
+ ACTIVITY_RETAIL_MASS_MERCH_SALES = 'ACTIVITY_RETAIL_MASS_MERCH_SALES'
489
+ ACTIVITY_RETAIL_PERSONAL_SVCS_SALES = 'ACTIVITY_RETAIL_PERSONAL_SVCS_SALES'
490
+ ACTIVITY_RETAIL_SPECIALTY_SALES = 'ACTIVITY_RETAIL_SPECIALTY_SALES'
491
+ ACTIVITY_RETAIL_SUPERMARKET_SALES = 'ACTIVITY_RETAIL_SUPERMARKET_SALES'
492
+ ACTIVITY_SCHOOL_AUDIENCE = 'ACTIVITY_SCHOOL_AUDIENCE'
493
+ ACTIVITY_SCHOOL_CLASSROOM = 'ACTIVITY_SCHOOL_CLASSROOM'
494
+ ACTIVITY_SCHOOL_CORRIDOR = 'ACTIVITY_SCHOOL_CORRIDOR'
495
+ ACTIVITY_SCHOOL_DINING = 'ACTIVITY_SCHOOL_DINING'
496
+ ACTIVITY_SCHOOL_LABORATORY = 'ACTIVITY_SCHOOL_LABORATORY'
497
+ ACTIVITY_SCHOOL_OFFICE = 'ACTIVITY_SCHOOL_OFFICE'
498
+ ACTIVITY_SCHOOL_STORAGE = 'ACTIVITY_SCHOOL_STORAGE'
499
+ ACTIVITY_TRANS_DINING = 'ACTIVITY_TRANS_DINING'
500
+ ACTIVITY_HOSPITAL_PUBLIC_STAFF_LOUNGE = 'ACTIVITY_HOSPITAL_PUBLIC_STAFF_LOUNGE'
501
+ ACTIVITY_ASSISTED_LIVING_FACILITY_CHAPEL = (
502
+ 'ACTIVITY_ASSISTED_LIVING_FACILITY_CHAPEL'
503
+ )
504
+ ACTIVITY_ASSISTED_LIVING_FACILITY_DINING = (
505
+ 'ACTIVITY_ASSISTED_LIVING_FACILITY_DINING'
506
+ )
507
+ ACTIVITY_ASSISTED_LIVING_FACILITY_LOBBY = 'ACTIVITY_ASSISTED_LIVING_FACILITY_LOBBY'
508
+ ACTIVITY_ASSISTED_LIVING_FACILITY_REC_ROOM = (
509
+ 'ACTIVITY_ASSISTED_LIVING_FACILITY_REC_ROOM'
510
+ )
511
+ ACTIVITY_ASSISTED_LIVING_FACILITY_RESTROOM = (
512
+ 'ACTIVITY_ASSISTED_LIVING_FACILITY_RESTROOM'
513
+ )
514
+ ACTIVITY_COMMON_GENERAL_SEATING_AREA = 'ACTIVITY_COMMON_GENERAL_SEATING_AREA'
515
+ ACTIVITY_COMMON_LOADING_DOCK = 'ACTIVITY_COMMON_LOADING_DOCK'
516
+ ACTIVITY_COMMON_GUEST_ROOM = 'ACTIVITY_COMMON_GUEST_ROOM'
517
+ ACTIVITY_COMMON_DINING_CAFETERIA_FAST_FOOR = (
518
+ 'ACTIVITY_COMMON_DINING_CAFETERIA_FAST_FOOR'
519
+ )
520
+ ACTIVITY_COMMON_COMPUTER_ROOM = 'ACTIVITY_COMMON_COMPUTER_ROOM'
521
+ ACTIVITY_COMMON_COPY_PRINT_ROOM = 'ACTIVITY_COMMON_COPY_PRINT_ROOM'
522
+ ACTIVITY_COMMON_AUDIENCE_AREA_OTHER = 'ACTIVITY_COMMON_AUDIENCE_AREA_OTHER'
523
+ ACTIVITY_FAC_VISUAL_IMPARIED_CORRIDOR_LT_8_FEET = (
524
+ 'ACTIVITY_FAC_VISUAL_IMPARIED_CORRIDOR_LT_8_FEET'
525
+ )
526
+ ACTIVITY_FAC_VISUAL_IMPARIED_CORRIDOR_GTE_8_FEET = (
527
+ 'ACTIVITY_FAC_VISUAL_IMPARIED_CORRIDOR_GTE_8_FEET'
528
+ )
529
+ ACTIVITY_FAC_VISUAL_IMPARIED_DINING_AREA = (
530
+ 'ACTIVITY_FAC_VISUAL_IMPARIED_DINING_AREA'
531
+ )
532
+ ACTIVITY_FAC_VISUAL_IMPARIED_LOBBY = 'ACTIVITY_FAC_VISUAL_IMPARIED_LOBBY'
533
+ ACTIVITY_FAC_VISUAL_IMPARIED_RESTROOM = 'ACTIVITY_FAC_VISUAL_IMPARIED_RESTROOM'
534
+ ACTIVITY_COMMON_STORAGE_LT50 = 'ACTIVITY_COMMON_STORAGE_LT50'
535
+ ACTIVITY_COMMON_STORAGE_GT50_LT1000 = 'ACTIVITY_COMMON_STORAGE_GT50_LT1000'
536
+ ACTIVITY_COMMON_STORAGE_GT1000 = 'ACTIVITY_COMMON_STORAGE_GT1000'
537
+ ACTIVITY_FAC_VISUAL_REC_COMMON_AREA = 'ACTIVITY_FAC_VISUAL_REC_COMMON_AREA'
538
+ ACTIVITY_COMMON_EMERGENCY_VEHICLE_GARAGE = (
539
+ 'ACTIVITY_COMMON_EMERGENCY_VEHICLE_GARAGE'
540
+ )
541
+ ACTIVITY_COMMON_LAUNDRY_WASH_AREA = 'ACTIVITY_COMMON_LAUNDRY_WASH_AREA'
542
+ ACTIVITY_FAC_VISUAL_IMPARIED_CHAPEL = 'ACTIVITY_FAC_VISUAL_IMPARIED_CHAPEL'
543
+ ACTIVITY_COMMON_ELEVATOR = 'ACTIVITY_COMMON_ELEVATOR'
544
+ ACTIVITY_FAC_VISUAL_IMPARIED_ELEVATOR = 'ACTIVITY_FAC_VISUAL_IMPARIED_ELEVATOR'
545
+ ACTIVITY_THEATER_ELEVATOR = 'ACTIVITY_THEATER_ELEVATOR'
546
+ ACTIVITY_HOTEL_ELEVATOR = 'ACTIVITY_HOTEL_ELEVATOR'
547
+ ACTIVITY_MOVIE_ELEVATOR = 'ACTIVITY_MOVIE_ELEVATOR'
548
+ ACTIVITY_UNFINISHED = 'ACTIVITY_UNFINISHED'
549
+ ACTIVITY_COMMON_OFFICE_ENCLOSED_GT250 = 'ACTIVITY_COMMON_OFFICE_ENCLOSED_GT250'
550
+ ACTIVITY_COMMON_OFFICE_ENCLOSED_GT300 = 'ACTIVITY_COMMON_OFFICE_ENCLOSED_GT300'
551
+
552
+
553
+ class ExteriorUseTypeOptions(StrEnum):
554
+ EXTERIOR_INVALID_USE = 'EXTERIOR_INVALID_USE'
555
+ EXTERIOR_ATM_NIGHT_DEPOSIT = 'EXTERIOR_ATM_NIGHT_DEPOSIT'
556
+ EXTERIOR_ATTACHED_CANOPY = 'EXTERIOR_ATTACHED_CANOPY'
557
+ EXTERIOR_DRIVE_UP_WINDOW = 'EXTERIOR_DRIVE_UP_WINDOW'
558
+ EXTERIOR_DRIVEWAY = 'EXTERIOR_DRIVEWAY'
559
+ EXTERIOR_EMERGENCY_SERVICES = 'EXTERIOR_EMERGENCY_SERVICES'
560
+ EXTERIOR_ENTRY_CANOPY = 'EXTERIOR_ENTRY_CANOPY'
561
+ EXTERIOR_FREE_STANDING_CANOPY = 'EXTERIOR_FREE_STANDING_CANOPY'
562
+ EXTERIOR_GUARDED_FACILITY = 'EXTERIOR_GUARDED_FACILITY'
563
+ EXTERIOR_ILLUMINATED_AREA_WALL = 'EXTERIOR_ILLUMINATED_AREA_WALL'
564
+ EXTERIOR_ILLUMINATED_LENGTH_WALL = 'EXTERIOR_ILLUMINATED_LENGTH_WALL'
565
+ EXTERIOR_LOADING_DOCK = 'EXTERIOR_LOADING_DOCK'
566
+ EXTERIOR_MAIN_ENTRY = 'EXTERIOR_MAIN_ENTRY'
567
+ EXTERIOR_OTHER_ENTRY = 'EXTERIOR_OTHER_ENTRY'
568
+ EXTERIOR_OUTDOOR_SALES = 'EXTERIOR_OUTDOOR_SALES'
569
+ EXTERIOR_PARKING_AREA = 'EXTERIOR_PARKING_AREA'
570
+ EXTERIOR_PARKING_NEAR_24_HOUR_RETAIL = 'EXTERIOR_PARKING_NEAR_24_HOUR_RETAIL'
571
+ EXTERIOR_PLAZA_AREA = 'EXTERIOR_PLAZA_AREA'
572
+ EXTERIOR_PEDESTRIAN_TUNNEL = 'EXTERIOR_PEDESTRIAN_TUNNEL'
573
+ EXTERIOR_SALES_LOT_STREET_FRONTAGE = 'EXTERIOR_SALES_LOT_STREET_FRONTAGE'
574
+ EXTERIOR_SALES_CANOPY = 'EXTERIOR_SALES_CANOPY'
575
+ EXTERIOR_SPECIAL_FEATURE = 'EXTERIOR_SPECIAL_FEATURE'
576
+ EXTERIOR_STAIRWAY = 'EXTERIOR_STAIRWAY'
577
+ EXTERIOR_WALKWAY_LT_10_FEET = 'EXTERIOR_WALKWAY_LT_10_FEET'
578
+ EXTERIOR_WALKWAY_GTE_10_FEET = 'EXTERIOR_WALKWAY_GTE_10_FEET'
579
+ EXTERIOR_UNDEVELOPED_ROADWAY_ENTRY = 'EXTERIOR_UNDEVELOPED_ROADWAY_ENTRY'
580
+ EXTERIOR_UNDEVELOPED_TRAILHEAD = 'EXTERIOR_UNDEVELOPED_TRAILHEAD'
581
+ EXTERIOR_UNDEVELOPED_TOILET = 'EXTERIOR_UNDEVELOPED_TOILET'
582
+ EXTERIOR_UNDEVELOPED_OTHER = 'EXTERIOR_UNDEVELOPED_OTHER'
583
+ EXTERIOR_LANDSCAPING = 'EXTERIOR_LANDSCAPING'
584
+ EXTERIOR_DINING_AREA = 'EXTERIOR_DINING_AREA'
585
+ EXTERIOR_AUDIENCE_SEATING = 'EXTERIOR_AUDIENCE_SEATING'
586
+ EXTERIOR_EXTERIOR_LOBBY = 'EXTERIOR_EXTERIOR_LOBBY'
587
+ EXTERIOR_RETAIL_MALL = 'EXTERIOR_RETAIL_MALL'
588
+ EXTERIOR_SPORTS_LIGHTING = 'EXTERIOR_SPORTS_LIGHTING'
589
+ TOTAL_EXTERIOR_USES = 'TOTAL_EXTERIOR_USES'
590
+
591
+
592
+ class AdvancedControlsAllowanceTypeOptions(StrEnum):
593
+ ALLOWANCE_ADV_CONTROLS_NOT_SPECIFIED = 'ALLOWANCE_ADV_CONTROLS_NOT_SPECIFIED'
594
+ ALLOWANCE_ADV_CONTROLS_DIM_MANUAL_CONT = 'ALLOWANCE_ADV_CONTROLS_DIM_MANUAL_CONT'
595
+ ALLOWANCE_ADV_CONTROLS_DIM_PROG_MULTI_LEVEL = (
596
+ 'ALLOWANCE_ADV_CONTROLS_DIM_PROG_MULTI_LEVEL'
597
+ )
598
+ ALLOWANCE_ADV_CONTROLS_DIM_PROG_MULTI_LEVEL_PROG_TIME_SCHEDULE = (
599
+ 'ALLOWANCE_ADV_CONTROLS_DIM_PROG_MULTI_LEVEL_PROG_TIME_SCHEDULE'
600
+ )
601
+ ALLOWANCE_ADV_CONTROLS_MULT_LEVEL_OCC_SENSORS = (
602
+ 'ALLOWANCE_ADV_CONTROLS_MULT_LEVEL_OCC_SENSORS'
603
+ )
604
+ ALLOWANCE_ADV_CONTROLS_OCC_SENSORS_WORKSTATION_CONT_DIM = (
605
+ 'ALLOWANCE_ADV_CONTROLS_OCC_SENSORS_WORKSTATION_CONT_DIM'
606
+ )
607
+ ALLOWANCE_ADV_CONTROLS_OCC_SENSORS_WORKSTATION_CONT_DIM_PLUS_MANUAL_DIM = (
608
+ 'ALLOWANCE_ADV_CONTROLS_OCC_SENSORS_WORKSTATION_CONT_DIM_PLUS_MANUAL_DIM'
609
+ )
610
+ ALLOWANCE_ADV_CONTROLS_AUTO_BILEVEL = 'ALLOWANCE_ADV_CONTROLS_AUTO_BILEVEL'
611
+
612
+
613
+ class LightingTypeOptions(StrEnum):
614
+ LONG_FLUOR = 'LONG_FLUOR'
615
+ COMP_FLUOR = 'COMP_FLUOR'
616
+ HID = 'HID'
617
+ INCANDESCENT = 'INCANDESCENT'
618
+ HALOGEN = 'HALOGEN'
619
+ TRACK_LIGHTING = 'TRACK_LIGHTING'
620
+ LED = 'LED'
621
+ INDUCTION = 'INDUCTION'
622
+ OTHER_LIGHTING_TYPE = 'OTHER_LIGHTING_TYPE'
623
+
624
+
625
+ class BoilerDraftTypeOptions(StrEnum):
626
+ NATURAL_DRAFT = 'NATURAL_DRAFT'
627
+ FORCED_DRAFT = 'FORCED_DRAFT'
628
+
629
+
630
+ class FanSystemComplianceMethodOptions(StrEnum):
631
+ FAN_SYSTEM_MOTOR_NAMEPLATE_HP = 'FAN_SYSTEM_MOTOR_NAMEPLATE_HP'
632
+ FAN_SYSTEM_MOTOR_BRAKE_HP = 'FAN_SYSTEM_MOTOR_BRAKE_HP'
633
+
634
+
635
+ class FanEfficiencyExceptionTypeOptions(StrEnum):
636
+ FAN_EFFICIENCY_EXCEPTION_TYPE_UNSPECIFIED = (
637
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_UNSPECIFIED'
638
+ )
639
+ FAN_EFFICIENCY_EXCEPTION_TYPE_SINGLE_LOW_POWER = (
640
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_SINGLE_LOW_POWER'
641
+ )
642
+ FAN_EFFICIENCY_EXCEPTION_TYPE_SINGLE_LOW_POWER_ENERGY = (
643
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_SINGLE_LOW_POWER_ENERGY'
644
+ )
645
+ FAN_EFFICIENCY_EXCEPTION_TYPE_ARRAY_LOW_POWER = (
646
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_ARRAY_LOW_POWER'
647
+ )
648
+ FAN_EFFICIENCY_EXCEPTION_TYPE_ARRAY_LOW_POWER_ENERGY = (
649
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_ARRAY_LOW_POWER_ENERGY'
650
+ )
651
+ FAN_EFFICIENCY_EXCEPTION_TYPE_IN_EQUIPMENT = (
652
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_IN_EQUIPMENT'
653
+ )
654
+ FAN_EFFICIENCY_EXCEPTION_TYPE_3RD_CERTIFIED = (
655
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_3RD_CERTIFIED'
656
+ )
657
+ FAN_EFFICIENCY_EXCEPTION_TYPE_WALL_ROOF_VENT = (
658
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_WALL_ROOF_VENT'
659
+ )
660
+ FAN_EFFICIENCY_EXCEPTION_TYPE_CEILING = 'FAN_EFFICIENCY_EXCEPTION_TYPE_CEILING'
661
+ FAN_EFFICIENCY_EXCEPTION_TYPE_NOT_AMCA_205 = (
662
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_NOT_AMCA_205'
663
+ )
664
+ FAN_EFFICIENCY_EXCEPTION_TYPE_NOT_AMCA_208 = (
665
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_NOT_AMCA_208'
666
+ )
667
+ FAN_EFFICIENCY_EXCEPTION_TYPE_EMERGENCY = 'FAN_EFFICIENCY_EXCEPTION_TYPE_EMERGENCY'
668
+ FAN_EFFICIENCY_EXCEPTION_TYPE_HIGH_TEMPERATURE = (
669
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_HIGH_TEMPERATURE'
670
+ )
671
+ FAN_EFFICIENCY_EXCEPTION_TYPE_EXPLOSIVE = 'FAN_EFFICIENCY_EXCEPTION_TYPE_EXPLOSIVE'
672
+ FAN_EFFICIENCY_EXCEPTION_TYPE_REVERSIBLE_TUNNEL_VENT = (
673
+ 'FAN_EFFICIENCY_EXCEPTION_TYPE_REVERSIBLE_TUNNEL_VENT'
674
+ )
675
+
676
+
677
+ class PressureDropTypeOptions(StrEnum):
678
+ PRESSURE_DROP_CREDIT_TYPE_UNSPECIFIED = 'PRESSURE_DROP_CREDIT_TYPE_UNSPECIFIED'
679
+ FULLY_DUCTED_RETURN_ANDOR_EXHAUST_AIR_SYSTEMS = (
680
+ 'FULLY_DUCTED_RETURN_ANDOR_EXHAUST_AIR_SYSTEMS'
681
+ )
682
+ FULLY_DUCTED_RETURN_ANDOR_EXHAUST_AIR_SYSTEMS_IN_LABORATORIES_OR_VIVARIUM_SYSTEMS = 'FULLY_DUCTED_RETURN_ANDOR_EXHAUST_AIR_SYSTEMS_IN_LABORATORIES_OR_VIVARIUM_SYSTEMS'
683
+ RETURN_ANDOR_EXHAUST_AIR_FLOW_CONTROL_DEVICES = (
684
+ 'RETURN_ANDOR_EXHAUST_AIR_FLOW_CONTROL_DEVICES'
685
+ )
686
+ EXHAUST_FILTERS_SCRUBBERS_OR_OTHER_EXHAUST_TREATMENT = (
687
+ 'EXHAUST_FILTERS_SCRUBBERS_OR_OTHER_EXHAUST_TREATMENT'
688
+ )
689
+ PARTICULATE_FILTRATION_CREDIT_MERV_9_THRU_12 = (
690
+ 'PARTICULATE_FILTRATION_CREDIT_MERV_9_THRU_12'
691
+ )
692
+ PARTICULATE_FILTRATION_CREDIT_MERV_13_THRU_15 = (
693
+ 'PARTICULATE_FILTRATION_CREDIT_MERV_13_THRU_15'
694
+ )
695
+ PARTICULATE_FILTRATION_CREDIT_MERV_16_AND_GREATER_AND_ELECTRONICALLY_ENHANCED_FILTERS = 'PARTICULATE_FILTRATION_CREDIT_MERV_16_AND_GREATER_AND_ELECTRONICALLY_ENHANCED_FILTERS'
696
+ CARBON_AND_OTHER_GAS_PHASE_AIR_CLEANERS = 'CARBON_AND_OTHER_GAS_PHASE_AIR_CLEANERS'
697
+ BIOSAFETY_CABINET = 'BIOSAFETY_CABINET'
698
+ COIL_RUNAROUND_LOOP = 'COIL_RUNAROUND_LOOP'
699
+ EVAPORATIVE_HUMIDIFIER_COOLER_IN_SERIES_WITH_ANOTHER_COOLING_COIL = (
700
+ 'EVAPORATIVE_HUMIDIFIER_COOLER_IN_SERIES_WITH_ANOTHER_COOLING_COIL'
701
+ )
702
+ SOUND_ATTENUATION_SECTION = 'SOUND_ATTENUATION_SECTION'
703
+ EXHAUST_SYSTEM_SERVING_FUME_HOODS = 'EXHAUST_SYSTEM_SERVING_FUME_HOODS'
704
+ LABORATORY_AND_VIVARIUM_EXHAUST_SYSTEMS_IN_HIGH_RISE_BUILDINGS = (
705
+ 'LABORATORY_AND_VIVARIUM_EXHAUST_SYSTEMS_IN_HIGH_RISE_BUILDINGS'
706
+ )
707
+ HEAT_RECOVERY_DEVICE_PRESSURE_DROP_OF_DEVICE = (
708
+ 'HEAT_RECOVERY_DEVICE_PRESSURE_DROP_OF_DEVICE'
709
+ )
710
+ HEAT_RECOVERY_DEVICE_OTHER_THAN_COIL_RUNAROUND_LOOP = (
711
+ 'HEAT_RECOVERY_DEVICE_OTHER_THAN_COIL_RUNAROUND_LOOP'
712
+ )
713
+
714
+
715
+ class SWHSystemDrawPatternTypeOptions(StrEnum):
716
+ NONE = 'NONE'
717
+ UNKNOWN_DRAW_PATTERN = 'UNKNOWN_DRAW_PATTERN'
718
+ VERY_SMALL_DRAW_PATTERN = 'VERY_SMALL_DRAW_PATTERN'
719
+ HIGH_DRAW_PATTERN = 'HIGH_DRAW_PATTERN'
720
+ LOW_DRAW_PATTERN = 'LOW_DRAW_PATTERN'
721
+ MEDIUM_DRAW_PATTERN = 'MEDIUM_DRAW_PATTERN'
722
+
723
+
724
+ class EnergyCreditRenewableTypeOptions(StrEnum):
725
+ SOLAR_THERMAL = 'SOLAR_THERMAL'
726
+ PV_ELECTRIC = 'PV_ELECTRIC'
727
+
728
+
729
+ class RenewableExceptionOptions(StrEnum):
730
+ RENEWABLE_ONSITE_EXCEPTION_NONE = 'RENEWABLE_ONSITE_EXCEPTION_NONE'
731
+ RENEWABLE_ONSITE_EXCEPTION_LOW_SOLAR_RAD = (
732
+ 'RENEWABLE_ONSITE_EXCEPTION_LOW_SOLAR_RAD'
733
+ )
734
+ RENEWABLE_ONSITE_EXCEPTION_ROOF_COVERED80 = (
735
+ 'RENEWABLE_ONSITE_EXCEPTION_ROOF_COVERED80'
736
+ )
737
+ RENEWABLE_ONSITE_EXCEPTION_ROOF_COVERED50 = (
738
+ 'RENEWABLE_ONSITE_EXCEPTION_ROOF_COVERED50'
739
+ )
740
+ RENEWABLE_ONSITE_EXCEPTION_LOW_FLOOR_AREA = (
741
+ 'RENEWABLE_ONSITE_EXCEPTION_LOW_FLOOR_AREA'
742
+ )
743
+
744
+
745
+ class RenewableSystemTypeOptions(StrEnum):
746
+ RENEWABLE_SYSTEM_TYPE_UNSPECIFIED = 'RENEWABLE_SYSTEM_TYPE_UNSPECIFIED'
747
+ RENEWABLE_SYSTEM_TYPE_SOLAR = 'RENEWABLE_SYSTEM_TYPE_SOLAR'
748
+ RENEWABLE_SYSTEM_TYPE_WIND = 'RENEWABLE_SYSTEM_TYPE_WIND'
749
+ RENEWABLE_SYSTEM_BIOMASS = 'RENEWABLE_SYSTEM_BIOMASS'
750
+ RENEWABLE_SYSTEM_HYDRO = 'RENEWABLE_SYSTEM_HYDRO'
751
+ RENEWABLE_SYSTEM_HOTFLUID = 'RENEWABLE_SYSTEM_HOTFLUID'
752
+ RENEWABLE_SYSTEM_TYPE_OTHER = 'RENEWABLE_SYSTEM_TYPE_OTHER'
753
+
754
+
755
+ class OffsiteRenewableProcurementType(StrEnum):
756
+ OFFSITE_RENEWABLE_PROCUREMENT_PHYSICAL_AGREEMENT = (
757
+ 'OFFSITE_RENEWABLE_PROCUREMENT_PHYSICAL_AGREEMENT'
758
+ )
759
+ OFFSITE_RENEWABLE_PROCUREMENT_FINANCIAL_AGREEMENT = (
760
+ 'OFFSITE_RENEWABLE_PROCUREMENT_FINANCIAL_AGREEMENT'
761
+ )
762
+ OFFSITE_RENEWABLE_PROCUREMENT_COMMUNITY_FACILITY = (
763
+ 'OFFSITE_RENEWABLE_PROCUREMENT_COMMUNITY_FACILITY'
764
+ )
765
+ OFFSITE_RENEWABLE_PROCUREMENT_BLDG_OWNER = (
766
+ 'OFFSITE_RENEWABLE_PROCUREMENT_BLDG_OWNER'
767
+ )
768
+ OFFSITE_RENEWABLE_PROCUREMENT_INVESTMENT_FUND = (
769
+ 'OFFSITE_RENEWABLE_PROCUREMENT_INVESTMENT_FUND'
770
+ )
771
+ OFFSITE_RENEWABLE_PROCUREMENT_GREEN_RETAIL_TARIFF = (
772
+ 'OFFSITE_RENEWABLE_PROCUREMENT_GREEN_RETAIL_TARIFF'
773
+ )
774
+ OFFSITE_RENEWABLE_PROCUREMENT_UNSPECIFIED = (
775
+ 'OFFSITE_RENEWABLE_PROCUREMENT_UNSPECIFIED'
776
+ )
777
+
778
+
779
+ class LightingControlTypeOptions(StrEnum):
780
+ LIGHTING_CONTROL_UNSPECIFIED = 'LIGHTING_CONTROL_UNSPECIFIED'
781
+ LIGHTING_CONTROL_LOCAL = 'LIGHTING_CONTROL_LOCAL'
782
+ LIGHTING_CONTROL_MANUAL_ON = 'LIGHTING_CONTROL_MANUAL_ON'
783
+ LIGHTING_CONTROL_PARTIAL_AUTOMATIC_ON = 'LIGHTING_CONTROL_PARTIAL_AUTOMATIC_ON'
784
+ LIGHTING_CONTROL_BILEVEL_LIGHTING = 'LIGHTING_CONTROL_BILEVEL_LIGHTING'
785
+ LIGHTING_CONTROL_AUTOMATIC_DAYLIGHT_SIDE = (
786
+ 'LIGHTING_CONTROL_AUTOMATIC_DAYLIGHT_SIDE'
787
+ )
788
+ LIGHTING_CONTROL_AUTOMATIC_DAYLIGHT_TOP = 'LIGHTING_CONTROL_AUTOMATIC_DAYLIGHT_TOP'
789
+ LIGHTING_CONTROL_AUTOMATIC_FULL_OFF = 'LIGHTING_CONTROL_AUTOMATIC_FULL_OFF'
790
+ LIGHTING_CONTROL_AUTOMATIC_SCHEDULED_OFF = (
791
+ 'LIGHTING_CONTROL_AUTOMATIC_SCHEDULED_OFF'
792
+ )
793
+ LIGHTING_CONTROL_OCCUPANCY_SENSOR = 'LIGHTING_CONTROL_OCCUPANCY_SENSOR'
794
+ LIGHTING_CONTROL_INTERIOR_TIMESWITCH = 'LIGHTING_CONTROL_INTERIOR_TIMESWITCH'
795
+ LIGHTING_CONTROL_LIGHT_REDUCTION = 'LIGHTING_CONTROL_LIGHT_REDUCTION'
796
+ LIGHTING_CONTROL_DAYLIGHT_RESPONSIVE = 'LIGHTING_CONTROL_DAYLIGHT_RESPONSIVE'
797
+ LIGHTING_CONTROL_SPECIFIC_APPLICATION = 'LIGHTING_CONTROL_SPECIFIC_APPLICATION'
798
+ LIGHTING_CONTROL_RESTRICTED_MANUAL_ON = 'LIGHTING_CONTROL_RESTRICTED_MANUAL_ON'
799
+ LIGHTING_CONTROL_RESTRICTED_AUTO_PARTIAL_ON = (
800
+ 'LIGHTING_CONTROL_RESTRICTED_AUTO_PARTIAL_ON'
801
+ )
802
+ LIGHTING_CONTROL_DAYLIGHT_SHUTOFF = 'LIGHTING_CONTROL_DAYLIGHT_SHUTOFF'
803
+ LIGHTING_CONTROL_FACADE_LANDSCAPE = 'LIGHTING_CONTROL_FACADE_LANDSCAPE'
804
+ LIGHTING_CONTROL_SETBACK = 'LIGHTING_CONTROL_SETBACK'
805
+ LIGHTING_CONTROL_EXTERIOR_TIMESWITCH = 'LIGHTING_CONTROL_EXTERIOR_TIMESWITCH'
806
+ LIGHTING_CONTROL_PARKING_GARAGE = 'LIGHTING_CONTROL_PARKING_GARAGE'
807
+ LIGHTING_CONTROL_NIGHTTIME_AUTO_OFF = 'LIGHTING_CONTROL_NIGHTTIME_AUTO_OFF'
808
+ LIGHTING_CONTROL_AUTO_POWER_REDUCTION = 'LIGHTING_CONTROL_AUTO_POWER_REDUCTION'
809
+ LIGHTING_CONTROL_MOTION_SENSING = 'LIGHTING_CONTROL_MOTION_SENSING'
810
+
811
+
812
+ class ThermalBridgeTypeOptions(StrEnum):
813
+ THERMAL_BRIDGE_OTHER = 'THERMAL_BRIDGE_OTHER'
814
+ THERMAL_BRIDGE_ROOF_EDGE = 'THERMAL_BRIDGE_ROOF_EDGE'
815
+ THERMAL_BRIDGE_PARAPET = 'THERMAL_BRIDGE_PARAPET'
816
+ THERMAL_BRIDGE_FLOOR_TO_WALL_INTERSECTION = (
817
+ 'THERMAL_BRIDGE_FLOOR_TO_WALL_INTERSECTION'
818
+ )
819
+ THERMAL_BRIDGE_FLOOR_BALCONY_OVERHANG_TO_WALL_INTERSECTION = (
820
+ 'THERMAL_BRIDGE_FLOOR_BALCONY_OVERHANG_TO_WALL_INTERSECTION'
821
+ )
822
+ THERMAL_BRIDGE_FLOOR_BALCONY_TO_VERTICAL_FENESTRATION_CONTACT = (
823
+ 'THERMAL_BRIDGE_FLOOR_BALCONY_TO_VERTICAL_FENESTRATION_CONTACT'
824
+ )
825
+ THERMAL_BRIDGE_CLADDING_SUPPORT = 'THERMAL_BRIDGE_CLADDING_SUPPORT'
826
+ THERMAL_BRIDGE_WALL_TO_VERTICAL_FENESTRATION_INTERSECTION = (
827
+ 'THERMAL_BRIDGE_WALL_TO_VERTICAL_FENESTRATION_INTERSECTION'
828
+ )
829
+ THERMAL_BRIDGE_BALCONY_FLOOR_DECKS = 'THERMAL_BRIDGE_BALCONY_FLOOR_DECKS'
830
+ THERMAL_BRIDGE_VERTICAL_FENESTRATION = 'THERMAL_BRIDGE_VERTICAL_FENESTRATION'
831
+ THERMAL_BRIDGE_STRUCTURE_BEAMS_COLUMNS_CARBON_STEEL = (
832
+ 'THERMAL_BRIDGE_STRUCTURE_BEAMS_COLUMNS_CARBON_STEEL'
833
+ )
834
+ THERMAL_BRIDGE_STRUCTURE_BEAMS_COLUMNS_CONCRETE = (
835
+ 'THERMAL_BRIDGE_STRUCTURE_BEAMS_COLUMNS_CONCRETE'
836
+ )
837
+ THERMAL_BRIDGE_BRIDGE_SHELF_ANGLE = 'THERMAL_BRIDGE_BRIDGE_SHELF_ANGLE'
838
+ THERMAL_BRIDGE_INTERIOR_WALL_EXTERIOR_WALL_INTERSECTION = (
839
+ 'THERMAL_BRIDGE_INTERIOR_WALL_EXTERIOR_WALL_INTERSECTION'
840
+ )
841
+ THERMAL_BRIDGE_WALL_TO_GRADE_INTERSECTION = (
842
+ 'THERMAL_BRIDGE_WALL_TO_GRADE_INTERSECTION'
843
+ )
844
+ THERMAL_BRIDGE_WALL_TO_PLANE_TRANSITION = 'THERMAL_BRIDGE_WALL_TO_PLANE_TRANSITION'
845
+
846
+
847
+ class ProjectTypeOptions(StrEnum):
848
+ ADDITION = 'ADDITION'
849
+ ALTERATION = 'ALTERATION'
850
+ NEW_CONSTRUCTION = 'NEW_CONSTRUCTION'
851
+
852
+
853
+ class ProjectSubTypeOptions(StrEnum):
854
+ CONSTRUCTION_COMPLETE = 'CONSTRUCTION_COMPLETE'
855
+ CONSTRUCTION_CORE_AND_SHELL = 'CONSTRUCTION_CORE_AND_SHELL'
856
+ CONSTRUCTION_INITIAL_BUILD_OUT = 'CONSTRUCTION_INITIAL_BUILD_OUT'
857
+ CONSTRUCTION_SUBSTANTIAL_ALTERATION = 'CONSTRUCTION_SUBSTANTIAL_ALTERATION'
858
+ CONSTRUCTION_OTHER_ALTERATION = 'CONSTRUCTION_OTHER_ALTERATION'
859
+
860
+
861
+ class ProjectMechanicalTypeOptions(StrEnum):
862
+ PROJECT_HVAC_WITH_CENTRAL = 'PROJECT_HVAC_WITH_CENTRAL'
863
+ PROJECT_HVAC_WITHOUT_CENTER = 'PROJECT_HVAC_WITHOUT_CENTER'
864
+ PROJECT_HVAC_WITH_LOCAL = 'PROJECT_HVAC_WITH_LOCAL'
865
+ PROJECT_CORE_AND_SHELL = 'PROJECT_CORE_AND_SHELL'
866
+
867
+
868
+ class BuildingUseTypeOptions(StrEnum):
869
+ NONE = 'NONE'
870
+ WHOLE_BLDG = 'WHOLE_BLDG'
871
+ ACTIVITY = 'ACTIVITY'
872
+ UNKNOWN_BLDG_USE = 'UNKNOWN_BLDG_USE'
873
+
874
+
875
+ class ConditionTypeOptions(StrEnum):
876
+ COOLING = 'COOLING'
877
+ HEATING = 'HEATING'
878
+ HEATING_AND_COOLING = 'HEATING_AND_COOLING'
879
+ NONE = 'NONE'
880
+
881
+
882
+ class StateRegionEnergyCodeOptions(StrEnum):
883
+ CEZ_ONTARIO = 'CEZ_ONTARIO'
884
+ CEZ_DC2017 = 'CEZ_DC2017'
885
+ CEZ_PUERTO_RICO = 'CEZ_PUERTO_RICO'
886
+ CEZ_NYSTRETCH_90_1_2016 = 'CEZ_NYSTRETCH_90_1_2016'
887
+ CEZ_NYSTRETCH_NYC_90_1_2016 = 'CEZ_NYSTRETCH_NYC_90_1_2016'
888
+ CEZ_NYSTRETCH_90_1_11_G = 'CEZ_NYSTRETCH_90_1_11_G'
889
+ CEZ_NYSTRETCH_NYC_90_1_11_G = 'CEZ_NYSTRETCH_NYC_90_1_11_G'
890
+ CEZ_CHICAGO_IECC2022 = 'CEZ_CHICAGO_IECC2022'
891
+ CEZ_FL = 'CEZ_FL'
892
+ CEZ_VT = 'CEZ_VT'
893
+ CEZ_NY = 'CEZ_NY'
894
+ CEZ_NEWYORKCITY = 'CEZ_NEWYORKCITY'
895
+ CEZ_NYSTRETCH_NYC_IECC2018 = 'CEZ_NYSTRETCH_NYC_IECC2018'
896
+ CEZ_NYSTRETCH_IECC2018 = 'CEZ_NYSTRETCH_IECC2018'
897
+ CEZ_CO_BOULDER = 'CEZ_CO_BOULDER'
898
+ CEZ_CO_DENVER = 'CEZ_CO_DENVER'
899
+ CEZ_CO_DENVER_90_1_2016 = 'CEZ_CO_DENVER_90_1_2016'
900
+ CEZ_MN = 'CEZ_MN'
901
+ CEZ_MAS = 'CEZ_MAS'
902
+ CEZ_MAS_STRETCH_IECC2021 = 'CEZ_MAS_STRETCH_IECC2021'
903
+ CEZ_CO_DENVER_IECC2021 = 'CEZ_CO_DENVER_IECC2021'
904
+
905
+
906
+ class ComplianceModeOptions(StrEnum):
907
+ UA = 'UA'
908
+ PERFORMANCE = 'PERFORMANCE'
909
+ PRESCRIPTIVE = 'PRESCRIPTIVE'
910
+
911
+
912
+ class AirBarrierComplianceTypeOptions(StrEnum):
913
+ AIR_BARRIER_OPTION_UNKNOWN = 'AIR_BARRIER_OPTION_UNKNOWN'
914
+ AIR_BARRIER_OPTION_MATERIAL_PERM = 'AIR_BARRIER_OPTION_MATERIAL_PERM'
915
+ AIR_BARRIER_OPTION_ASSEMBLY_PERM = 'AIR_BARRIER_OPTION_ASSEMBLY_PERM'
916
+ AIR_BARRIER_OPTION_LEAKAGE_TEST = 'AIR_BARRIER_OPTION_LEAKAGE_TEST'
917
+
918
+
919
+ class RoofTypeOptions(StrEnum):
920
+ ABOVE_DECK_ROOF = 'ABOVE_DECK_ROOF'
921
+ METAL_BLDG_STANDING_SEAM_ROOF = 'METAL_BLDG_STANDING_SEAM_ROOF'
922
+ METAL_BLDG_SCREW_DOWN_ROOF = 'METAL_BLDG_SCREW_DOWN_ROOF'
923
+ WOOD_STD_JOIST_TRUSS = 'WOOD_STD_JOIST_TRUSS'
924
+ NON_WOOD_JOIST_TRUSS = 'NON_WOOD_JOIST_TRUSS'
925
+ OTHER_ROOF = 'OTHER_ROOF'
926
+
927
+
928
+ class RoofInsulationTypeOptions(StrEnum):
929
+ ROOF_INSUL_TYPE_UNSPECIFIED = 'ROOF_INSUL_TYPE_UNSPECIFIED'
930
+ MB_SINGLE_LAYER_W_THERMAL_BLOCK = 'MB_SINGLE_LAYER_W_THERMAL_BLOCK'
931
+ MB_SINGLE_LAYER_WO_THERMAL_BLOCK = 'MB_SINGLE_LAYER_WO_THERMAL_BLOCK'
932
+ MB_DOUBLE_LAYER_W_THERMAL_BLOCK = 'MB_DOUBLE_LAYER_W_THERMAL_BLOCK'
933
+ MB_DOUBLE_LAYER_WO_THERMAL_BLOCK = 'MB_DOUBLE_LAYER_WO_THERMAL_BLOCK'
934
+ MB_FILLED_CAVITY_W_THERMAL_BLOCK = 'MB_FILLED_CAVITY_W_THERMAL_BLOCK'
935
+ MB_FILLED_CAVITY_WO_THERMAL_BLOCK = 'MB_FILLED_CAVITY_WO_THERMAL_BLOCK'
936
+ MB_LINER_SYSTEM_W_THERMAL_BLOCK = 'MB_LINER_SYSTEM_W_THERMAL_BLOCK'
937
+ MB_LINER_SYSTEM_WO_THERMAL_BLOCK = 'MB_LINER_SYSTEM_WO_THERMAL_BLOCK'
938
+
939
+
940
+ class HighAlbedoRoofReqTypeOptions(StrEnum):
941
+ HA_ROOF_REQ_UNSPECIFIED = 'HA_ROOF_REQ_UNSPECIFIED'
942
+ HA_ROOF_REQ_SOLAR_REFLECTANCE_INDEX = 'HA_ROOF_REQ_SOLAR_REFLECTANCE_INDEX'
943
+ HA_ROOF_REQ_SOLAR_REFLECTANCE_INDEX_THERMAL_EMITTANCE = (
944
+ 'HA_ROOF_REQ_SOLAR_REFLECTANCE_INDEX_THERMAL_EMITTANCE'
945
+ )
946
+ HA_ROOF_EXEMPTION_VENTILATED_ATTIC = 'HA_ROOF_EXEMPTION_VENTILATED_ATTIC'
947
+ HA_ROOF_EXEMPTION_SEMIHEATED_SPACE = 'HA_ROOF_EXEMPTION_SEMIHEATED_SPACE'
948
+ HA_ROOF_EXEMPTION_NONCOOLED_COND_SPACE = 'HA_ROOF_EXEMPTION_NONCOOLED_COND_SPACE'
949
+ HA_ROOF_EXEMPTION_BALLASTED = 'HA_ROOF_EXEMPTION_BALLASTED'
950
+ HA_ROOF_EXEMPTION_VEGETATED = 'HA_ROOF_EXEMPTION_VEGETATED'
951
+ HA_ROOF_EXEMPTION_SHADED_OR_COVERED = 'HA_ROOF_EXEMPTION_SHADED_OR_COVERED'
952
+ HA_ROOF_EXEMPTION_ASPHALTIC_MEMBRANE = 'HA_ROOF_EXEMPTION_ASPHALTIC_MEMBRANE'
953
+ HA_ROOF_EXEMPTION_STEEP_SLOPED = 'HA_ROOF_EXEMPTION_STEEP_SLOPED'
954
+ HA_ROOF_EXEMPTION_LOW_SLOPED = 'HA_ROOF_EXEMPTION_LOW_SLOPED'
955
+ HA_ROOF_DATA_NOT_AVAILABLE = 'HA_ROOF_DATA_NOT_AVAILABLE'
956
+ HA_ROOF_REQ_NOT_APPLICABLE = 'HA_ROOF_REQ_NOT_APPLICABLE'
957
+
958
+
959
+ class OtherRoofTypeOptions(StrEnum):
960
+ ROOF_OTHER_UNSPECIFIED = 'ROOF_OTHER_UNSPECIFIED'
961
+ ROOF_OTHER_ABOVE_DECK = 'ROOF_OTHER_ABOVE_DECK'
962
+ ROOF_OTHER_METAL_BUILDING = 'ROOF_OTHER_METAL_BUILDING'
963
+ ROOF_OTHER_ATTIC = 'ROOF_OTHER_ATTIC'
964
+ ROOF_OTHER_OTHER = 'ROOF_OTHER_OTHER'
965
+
966
+
967
+ class FloorTypeOptions(StrEnum):
968
+ ALL_WOOD_JOIST_TRUSS_FLOOR = 'ALL_WOOD_JOIST_TRUSS_FLOOR'
969
+ NON_WOOD_JOIST_TRUSS_FLOOR = 'NON_WOOD_JOIST_TRUSS_FLOOR'
970
+ STRUCTURAL_SLAB_FLOOR = 'STRUCTURAL_SLAB_FLOOR'
971
+ HEATED_SLAB_ON_GRADE = 'HEATED_SLAB_ON_GRADE'
972
+ UNHEATED_SLAB_ON_GRADE = 'UNHEATED_SLAB_ON_GRADE'
973
+ OTHER_FLOOR = 'OTHER_FLOOR'
974
+
975
+
976
+ class FloorExposedFrameType(StrEnum):
977
+ FLOOR_EXPOSED_FRAME_TYPE_UNSPECIFIED = 'FLOOR_EXPOSED_FRAME_TYPE_UNSPECIFIED'
978
+ FLOOR_EXPOSED_FRAME_DEPTH_GT_10_INCH = 'FLOOR_EXPOSED_FRAME_DEPTH_GT_10_INCH'
979
+ FLOOR_EXPOSED_FRAME_DEPTH_LTE_10_INCH = 'FLOOR_EXPOSED_FRAME_DEPTH_LTE_10_INCH'
980
+ FLOOR_EXPOSED_FRAME_NOT_EXPOSED = 'FLOOR_EXPOSED_FRAME_NOT_EXPOSED'
981
+
982
+
983
+ class SlabInsulationPositionOptions(StrEnum):
984
+ HORIZONTAL = 'HORIZONTAL'
985
+ VERTICAL = 'VERTICAL'
986
+ NO_INSULATION = 'NO_INSULATION'
987
+
988
+
989
+ class AgWallConstructionDetailsTypeOptions(StrEnum):
990
+ AG_WALL_METAL_BLDG_SINGLE_LAYER_MINERAL_FIBER = (
991
+ 'AG_WALL_METAL_BLDG_SINGLE_LAYER_MINERAL_FIBER'
992
+ )
993
+ AG_WALL_METAL_BLDG_DOUBLE_LAYER_MINERAL_FIBER = (
994
+ 'AG_WALL_METAL_BLDG_DOUBLE_LAYER_MINERAL_FIBER'
995
+ )
996
+ AG_WALL_METAL_BLDG_SINGLE_LAYER_MINERAL_FIBER_IN_CAVITY = (
997
+ 'AG_WALL_METAL_BLDG_SINGLE_LAYER_MINERAL_FIBER_IN_CAVITY'
998
+ )
999
+ NONE = 'NONE'
1000
+
1001
+
1002
+ class AgWallExteriorFinishDetailsTypeOptions(StrEnum):
1003
+ AG_WALL_EXTERIOR_FINISH_DETAILS_UNKNOWN = 'AG_WALL_EXTERIOR_FINISH_DETAILS_UNKNOWN'
1004
+ AG_WALL_EXTERIOR_FINISH_DETAILS_BRICK_VENEER_SYSTEM = (
1005
+ 'AG_WALL_EXTERIOR_FINISH_DETAILS_BRICK_VENEER_SYSTEM'
1006
+ )
1007
+ AG_WALL_EXTERIOR_FINISH_DETAILS_DETAILS_CLADDING_SYSTEM = (
1008
+ 'AG_WALL_EXTERIOR_FINISH_DETAILS_DETAILS_CLADDING_SYSTEM'
1009
+ )
1010
+ AG_WALL_EXTERIOR_FINISH_DETAILS_DETAILS_CLADDING_SYSTEM_THERMAL_BREAK = (
1011
+ 'AG_WALL_EXTERIOR_FINISH_DETAILS_DETAILS_CLADDING_SYSTEM_THERMAL_BREAK'
1012
+ )
1013
+
1014
+
1015
+ class AgWallOtherTypeOptions(StrEnum):
1016
+ AG_WALL_OTHER_WOOD_FRAMED = 'AG_WALL_OTHER_WOOD_FRAMED'
1017
+ AG_WALL_OTHER_METAL_BUILDING = 'AG_WALL_OTHER_METAL_BUILDING'
1018
+ AG_WALL_OTHER_STEEL_FRAMED = 'AG_WALL_OTHER_STEEL_FRAMED'
1019
+ AG_WALL_OTHER_MASS = 'AG_WALL_OTHER_MASS'
1020
+ AG_WALL_OTHER_OTHER = 'AG_WALL_OTHER_OTHER'
1021
+ NONE = 'NONE'
1022
+
1023
+
1024
+ class CMUTypeOptions(StrEnum):
1025
+ CMU_SOLID_GROUT = 'CMU_SOLID_GROUT'
1026
+ CMU_PARTIAL_GROUT_CELLS_EMPTY = 'CMU_PARTIAL_GROUT_CELLS_EMPTY'
1027
+ CMU_PARTIAL_GROUT_CELLS_INSULATED = 'CMU_PARTIAL_GROUT_CELLS_INSULATED'
1028
+ CMU_UNREINFORCED_CELLS_EMPTY = 'CMU_UNREINFORCED_CELLS_EMPTY'
1029
+ CMU_UNREINFORCED_CELLS_INSULATED = 'CMU_UNREINFORCED_CELLS_INSULATED'
1030
+
1031
+
1032
+ class ConcreteDensityOptions(IntEnum):
1033
+ integer_0 = 0
1034
+ integer_95 = 95
1035
+ integer_115 = 115
1036
+ integer_144 = 144
1037
+
1038
+
1039
+ class ConcreteThicknessOptions(IntEnum):
1040
+ integer_0 = 0
1041
+ integer_6 = 6
1042
+ integer_8 = 8
1043
+ integer_10 = 10
1044
+ integer_12 = 12
1045
+
1046
+
1047
+ class EnvelopeAssemblyExemptionOptions(StrEnum):
1048
+ ENV_EXEMPTION_NONE = 'ENV_EXEMPTION_NONE'
1049
+ ENV_EXEMPTION_DYNAMIC_GLAZING = 'ENV_EXEMPTION_DYNAMIC_GLAZING'
1050
+
1051
+
1052
+ class FurringTypeOptions(StrEnum):
1053
+ WOOD_FURRING = 'WOOD_FURRING'
1054
+ METAL_FURRING = 'METAL_FURRING'
1055
+ NO_FURRING = 'NO_FURRING'
1056
+ OTHER_FURRING = 'OTHER_FURRING'
1057
+
1058
+
1059
+ class InsulationPositionOptions(StrEnum):
1060
+ HORIZONTAL = 'HORIZONTAL'
1061
+ VERTICAL = 'VERTICAL'
1062
+ NO_INSULATION = 'NO_INSULATION'
1063
+
1064
+
1065
+ class FenestrationFrameTypeOptions(StrEnum):
1066
+ METAL = 'METAL'
1067
+ METAL_W_THERMAL_BREAK = 'METAL_W_THERMAL_BREAK'
1068
+ WOOD = 'WOOD'
1069
+ VINYL = 'VINYL'
1070
+ CURTAIN_WALL = 'CURTAIN_WALL'
1071
+ CURTAIN_WALL_STOREFRONT = 'CURTAIN_WALL_STOREFRONT'
1072
+ OTHER_FRAME = 'OTHER_FRAME'
1073
+
1074
+
1075
+ class GlazingTypeOptions(StrEnum):
1076
+ SINGLE_PANE = 'SINGLE_PANE'
1077
+ DOUBLE_PANE = 'DOUBLE_PANE'
1078
+ DOUBLE_PANE_LOWE = 'DOUBLE_PANE_LOWE'
1079
+ TRIPLE_PANE = 'TRIPLE_PANE'
1080
+ TRIPLE_PANE_LOWE = 'TRIPLE_PANE_LOWE'
1081
+
1082
+
1083
+ class SolarTypeOptions(StrEnum):
1084
+ CLEAR = 'CLEAR'
1085
+ TINTED = 'TINTED'
1086
+ REFLECTIVE = 'REFLECTIVE'
1087
+ OTHER_SOLAR = 'OTHER_SOLAR'
1088
+
1089
+
1090
+ class WindowProductionTypeOptions(StrEnum):
1091
+ FACTORY_ASSEMBLED_WINDOW = 'FACTORY_ASSEMBLED_WINDOW'
1092
+ SITE_BUILT_WINDOW = 'SITE_BUILT_WINDOW'
1093
+
1094
+
1095
+ class PerfDataTypeOptions(StrEnum):
1096
+ PERF_TYPE_NFRC = 'PERF_TYPE_NFRC'
1097
+ PERF_TYPE_OTHER = 'PERF_TYPE_OTHER'
1098
+ PERF_TYPE_DEFAULT = 'PERF_TYPE_DEFAULT'
1099
+
1100
+
1101
+ class WindowOpenTypeOptions(StrEnum):
1102
+ NON_OPERABLE_WINDOW = 'NON_OPERABLE_WINDOW'
1103
+ OPERABLE_WINDOW = 'OPERABLE_WINDOW'
1104
+
1105
+
1106
+ class SkylightCurbTypeOptions(StrEnum):
1107
+ CURB_SKYLIGHT = 'CURB_SKYLIGHT'
1108
+ NO_CURB_SKYLIGHT = 'NO_CURB_SKYLIGHT'
1109
+
1110
+
1111
+ class GlazingMaterialTypeOptions(StrEnum):
1112
+ GLASS_GLAZING_MAT = 'GLASS_GLAZING_MAT'
1113
+ PLASTIC_GLAZING_MAT = 'PLASTIC_GLAZING_MAT'
1114
+
1115
+
1116
+ class DoorTypeOptions(StrEnum):
1117
+ NO_INSUL_SINGLE_METAL_DOOR = 'NO_INSUL_SINGLE_METAL_DOOR'
1118
+ NO_INSUL_DOUBLE_METAL_DOOR = 'NO_INSUL_DOUBLE_METAL_DOOR'
1119
+ INSUL_METAL_DOOR = 'INSUL_METAL_DOOR'
1120
+ WOOD_DOOR = 'WOOD_DOOR'
1121
+ GLASS_DOOR = 'GLASS_DOOR'
1122
+ OTHER_DOOR = 'OTHER_DOOR'
1123
+ UPWARD_ACTING_SECTIONAL = 'UPWARD_ACTING_SECTIONAL'
1124
+
1125
+
1126
+ class DoorOpenTypeOptions(StrEnum):
1127
+ SWINGING_DOOR = 'SWINGING_DOOR'
1128
+ NON_SWINGING_DOOR = 'NON_SWINGING_DOOR'
1129
+ GARAGE_DOOR = 'GARAGE_DOOR'
1130
+
1131
+
1132
+ class DoorEntranceTypeOptions(StrEnum):
1133
+ ENTRANCE_DOOR = 'ENTRANCE_DOOR'
1134
+ NON_ENTRANCE_DOOR = 'NON_ENTRANCE_DOOR'
1135
+ OTHER_ENTRANCE = 'OTHER_ENTRANCE'
1136
+
1137
+
1138
+ class DoorGlazingFrameTypeOptions(StrEnum):
1139
+ METAL = 'METAL'
1140
+ NON_METAL = 'NON_METAL'
1141
+
1142
+
1143
+ class LightingAllowanceTypeOptions(StrEnum):
1144
+ ALLOWANCE_NONE = 'ALLOWANCE_NONE'
1145
+ ALLOWANCE_DECORATIVE_APPEARANCE = 'ALLOWANCE_DECORATIVE_APPEARANCE'
1146
+ ALLOWANCE_DISPLAY_TERMINAL = 'ALLOWANCE_DISPLAY_TERMINAL'
1147
+ ALLOWANCE_VEHICLE_SPORT_ELECT_HIGHLIGHT = 'ALLOWANCE_VEHICLE_SPORT_ELECT_HIGHLIGHT'
1148
+ ALLOWANCE_FURNITURE_CLOTHES_COSMETIC_HIGHLIGHT = (
1149
+ 'ALLOWANCE_FURNITURE_CLOTHES_COSMETIC_HIGHLIGHT'
1150
+ )
1151
+ ALLOWANCE_JEWELRY_CRYSTAL_CHINA_HIGHLIGHT = (
1152
+ 'ALLOWANCE_JEWELRY_CRYSTAL_CHINA_HIGHLIGHT'
1153
+ )
1154
+ ALLOWANCE_OTHER_HIGHLIGHT = 'ALLOWANCE_OTHER_HIGHLIGHT'
1155
+
1156
+
1157
+ class LightingExemptionTypeOptions(StrEnum):
1158
+ EXEMPTION_NONE = 'EXEMPTION_NONE'
1159
+ EXEMPTION_ADVERTISING_OR_DIRECTION_SIGN = 'EXEMPTION_ADVERTISING_OR_DIRECTION_SIGN'
1160
+ EXEMPTION_ATHLETIC_PLAY_AREA = 'EXEMPTION_ATHLETIC_PLAY_AREA'
1161
+ EXEMPTION_CASINO_GAMING = 'EXEMPTION_CASINO_GAMING'
1162
+ EXEMPTION_DRESSING_ROOM_MIRROR = 'EXEMPTION_DRESSING_ROOM_MIRROR'
1163
+ EXEMPTION_EDUCATION = 'EXEMPTION_EDUCATION'
1164
+ EXEMPTION_EMERGENCY_LIGHT = 'EXEMPTION_EMERGENCY_LIGHT'
1165
+ EXEMPTION_EQUIPMENT = 'EXEMPTION_EQUIPMENT'
1166
+ EXEMPTION_EXIT_SIGN = 'EXEMPTION_EXIT_SIGN'
1167
+ EXEMPTION_FOOD_PREPERATION = 'EXEMPTION_FOOD_PREPERATION'
1168
+ EXEMPTION_FURNITURE_SUPPLEMENTAL = 'EXEMPTION_FURNITURE_SUPPLEMENTAL'
1169
+ EXEMPTION_HIGHLIGHT_LANDMARK = 'EXEMPTION_HIGHLIGHT_LANDMARK'
1170
+ EXEMPTION_MEDICAL_PROCEDURE = 'EXEMPTION_MEDICAL_PROCEDURE'
1171
+ EXEMPTION_PARKING_GARAGE_TRANSITION = 'EXEMPTION_PARKING_GARAGE_TRANSITION'
1172
+ EXEMPTION_PLANT = 'EXEMPTION_PLANT'
1173
+ EXEMPTION_REFRIGERATOR = 'EXEMPTION_REFRIGERATOR'
1174
+ EXEMPTION_RELIGIOUS_PULPIT_CHOIR = 'EXEMPTION_RELIGIOUS_PULPIT_CHOIR'
1175
+ EXEMPTION_RETAIL_DISPLAY = 'EXEMPTION_RETAIL_DISPLAY'
1176
+ EXEMPTION_THEATER_APPLICATION = 'EXEMPTION_THEATER_APPLICATION'
1177
+ EXEMPTION_HEALTH_SAFETY_REG = 'EXEMPTION_HEALTH_SAFETY_REG'
1178
+
1179
+
1180
+ class TrackLightingWattageBasisTypeOptions(StrEnum):
1181
+ WATTAGE_BASIS_NOT_SET = 'WATTAGE_BASIS_NOT_SET'
1182
+ TRACK_BASIS = 'TRACK_BASIS'
1183
+ CIRCUIT_BREAKER_CAPACITY = 'CIRCUIT_BREAKER_CAPACITY'
1184
+ CURRENT_LIMITING_DEVICE_CAPACITY = 'CURRENT_LIMITING_DEVICE_CAPACITY'
1185
+ TRANSFORMER_CAPACITY = 'TRANSFORMER_CAPACITY'
1186
+
1187
+
1188
+ class ExteriorLightingZoneTypeOptions(StrEnum):
1189
+ EXT_ZONE_UNSPECIFIED = 'EXT_ZONE_UNSPECIFIED'
1190
+ EXT_ZONE_RESIDENTIAL = 'EXT_ZONE_RESIDENTIAL'
1191
+ EXT_ZONE_RESIDENTIAL_COMMERCIAL_MIXED = 'EXT_ZONE_RESIDENTIAL_COMMERCIAL_MIXED'
1192
+ EXT_ZONE_NEIGHBORHOOD_BUS_DISTRICT = 'EXT_ZONE_NEIGHBORHOOD_BUS_DISTRICT'
1193
+ EXT_ZONE_METRO_COMMERCIAL = 'EXT_ZONE_METRO_COMMERCIAL'
1194
+ EXT_ZONE_LIGHT_INDUSTRIAL = 'EXT_ZONE_LIGHT_INDUSTRIAL'
1195
+ EXT_ZONE_PARKS = 'EXT_ZONE_PARKS'
1196
+ EXT_ZONE_FOREST = 'EXT_ZONE_FOREST'
1197
+ EXT_ZONE_RURAL = 'EXT_ZONE_RURAL'
1198
+ EXT_ZONE_OTHER = 'EXT_ZONE_OTHER'
1199
+
1200
+
1201
+ class ThermalBridgeCategoryOptions(StrEnum):
1202
+ THERMAL_BRIDGE_UNCATEGORIZED = 'THERMAL_BRIDGE_UNCATEGORIZED'
1203
+ THERMAL_BRIDGE_LINEAR = 'THERMAL_BRIDGE_LINEAR'
1204
+ THERMAL_BRIDGE_POINT = 'THERMAL_BRIDGE_POINT'
1205
+
1206
+
1207
+ class ThermalBridgeComplianceTypeOptions(StrEnum):
1208
+ THERMAL_BRIDGE_NON_PRESCRIPTIVE = 'THERMAL_BRIDGE_NON_PRESCRIPTIVE'
1209
+ THERMAL_BRIDGE_PRESCRIPTIVE = 'THERMAL_BRIDGE_PRESCRIPTIVE'
1210
+ field__THERMAL_BRIDGE_AS_DESIGNED = ' THERMAL_BRIDGE_AS_DESIGNED'
1211
+
1212
+
1213
+ class ThermalBridgeExceptionTypeOptions(StrEnum):
1214
+ THERMAL_BRIDGE_EXCEPTION_NONE = 'THERMAL_BRIDGE_EXCEPTION_NONE'
1215
+ THERMAL_BRIDGE_EXCEPTION_CLEAR_FIELD = 'THERMAL_BRIDGE_EXCEPTION_CLEAR_FIELD'
1216
+ THERMAL_BRIDGE_EXCEPTION_UNINSULATED_ASSEMBLIES = (
1217
+ 'THERMAL_BRIDGE_EXCEPTION_UNINSULATED_ASSEMBLIES'
1218
+ )
1219
+ THERMAL_BRIDGE_EXCEPTION_LOW_THERMAL_CONDUCTIVITY = (
1220
+ 'THERMAL_BRIDGE_EXCEPTION_LOW_THERMAL_CONDUCTIVITY'
1221
+ )
1222
+ THERMAL_BRIDGE_EXCEPTION_ALTERATION = 'THERMAL_BRIDGE_EXCEPTION_ALTERATION'
1223
+ THERMAL_BRIDGE_EXCEPTION_ROOF_PROJECTION = (
1224
+ 'THERMAL_BRIDGE_EXCEPTION_ROOF_PROJECTION'
1225
+ )
1226
+ THERMAL_BRIDGE_EXCEPTION_SEMIHEATED = 'THERMAL_BRIDGE_EXCEPTION_SEMIHEATED'
1227
+ THERMAL_BRIDGE_EXCEPTION_ROOF_COVERING_ATTACHMENT = (
1228
+ 'THERMAL_BRIDGE_EXCEPTION_ROOF_COVERING_ATTACHMENT'
1229
+ )
1230
+ THERMAL_BRIDGE_EXCEPTION_INTEGRATED_THERMAL_PERFORMANCE = (
1231
+ 'THERMAL_BRIDGE_EXCEPTION_INTEGRATED_THERMAL_PERFORMANCE'
1232
+ )
1233
+
1234
+
1235
+ class CoolingEquipmentTypeOptions(StrEnum):
1236
+ UNKNOWN_COOLING_EQUIPMENT = 'UNKNOWN_COOLING_EQUIPMENT'
1237
+ HEAT_PUMP_EQUIPMENT = 'HEAT_PUMP_EQUIPMENT'
1238
+ NO_COOLING_EQUIPMENT = 'NO_COOLING_EQUIPMENT'
1239
+ DX_COIL = 'DX_COIL'
1240
+ HYDRONIC_COIL = 'HYDRONIC_COIL'
1241
+ PACKAGED_TERMINAL_UNIT = 'PACKAGED_TERMINAL_UNIT'
1242
+ ROOFTOP_PACKAGE_UNIT = 'ROOFTOP_PACKAGE_UNIT'
1243
+ SINGLE_PACKAGE_VERTICAL_UNIT = 'SINGLE_PACKAGE_VERTICAL_UNIT'
1244
+ SINGLE_PACKAGE_VERTICAL_NONWEATHERIZED_SPACE_CONSTRAINED_UNIT = (
1245
+ 'SINGLE_PACKAGE_VERTICAL_NONWEATHERIZED_SPACE_CONSTRAINED_UNIT'
1246
+ )
1247
+ SPLIT_SYSTEM = 'SPLIT_SYSTEM'
1248
+ VARIABLE_REFRIGERANT_FLOW = 'VARIABLE_REFRIGERANT_FLOW'
1249
+ OTHER_COOLING_EQUIPMENT = 'OTHER_COOLING_EQUIPMENT'
1250
+ ROOM_AC_W_LOUVERED_SIDES = 'ROOM_AC_W_LOUVERED_SIDES'
1251
+ ROOM_AC_NO_LOUVERED_SIDES = 'ROOM_AC_NO_LOUVERED_SIDES'
1252
+ ROOM_AC_HP_W_LOUVERED_SIDES = 'ROOM_AC_HP_W_LOUVERED_SIDES'
1253
+ ROOM_AC_HP_NO_LOUVERED_SIDES = 'ROOM_AC_HP_NO_LOUVERED_SIDES'
1254
+ ROOM_AC_CASEMENT_ONLY = 'ROOM_AC_CASEMENT_ONLY'
1255
+ ROOM_AC_CASEMENT_SLIDER = 'ROOM_AC_CASEMENT_SLIDER'
1256
+ VRF_ZONE_FAN_UNIT = 'VRF_ZONE_FAN_UNIT'
1257
+ COMPUTER_ROOM_AC_UPFLOW_UNIT = 'COMPUTER_ROOM_AC_UPFLOW_UNIT'
1258
+ COMPUTER_ROOM_AC_DOWNFLOW_UNIT = 'COMPUTER_ROOM_AC_DOWNFLOW_UNIT'
1259
+ COMPUTER_ROOM_AC_UPFLOW_DUCTED_UNIT = 'COMPUTER_ROOM_AC_UPFLOW_DUCTED_UNIT'
1260
+ COMPUTER_ROOM_AC_UPFLOW_NONDUCTED_UNIT = 'COMPUTER_ROOM_AC_UPFLOW_NONDUCTED_UNIT'
1261
+ COMPUTER_ROOM_AC_HORIZONTAL_FLOW_UNIT = 'COMPUTER_ROOM_AC_HORIZONTAL_FLOW_UNIT'
1262
+ COMPUTER_ROOM_AC_CEILING_DUCTED_UNIT = 'COMPUTER_ROOM_AC_CEILING_DUCTED_UNIT'
1263
+ COMPUTER_ROOM_AC_CEILING_NONDUCTED_UNIT = 'COMPUTER_ROOM_AC_CEILING_NONDUCTED_UNIT'
1264
+ PASSIVE_CHILLED_WATER_UNIT = 'PASSIVE_CHILLED_WATER_UNIT'
1265
+ DX_DOAS = 'DX_DOAS'
1266
+ DX_DOAS_W_HEAT_RECOVERY = 'DX_DOAS_W_HEAT_RECOVERY'
1267
+
1268
+
1269
+ class DistributionTypeOptions(StrEnum):
1270
+ UNKNOWN_DISTRIBUTION = 'UNKNOWN_DISTRIBUTION'
1271
+ SINGLE_DUCT = 'SINGLE_DUCT'
1272
+ SINGLE_FAN_DUAL_DUCT = 'SINGLE_FAN_DUAL_DUCT'
1273
+ DUAL_FAN_DUAL_DUCT = 'DUAL_FAN_DUAL_DUCT'
1274
+ THREE_DUCT = 'THREE_DUCT'
1275
+
1276
+
1277
+ class EconomizerTypeOptions(StrEnum):
1278
+ UNKNOWN_ECONOMIZER = 'UNKNOWN_ECONOMIZER'
1279
+ NO_ECONOMIZER = 'NO_ECONOMIZER'
1280
+ AIR_ECONOMIZER = 'AIR_ECONOMIZER'
1281
+ WATER_ECONOMIZER = 'WATER_ECONOMIZER'
1282
+
1283
+
1284
+ class EconomizerExceptionOptions(StrEnum):
1285
+ UNKNOWN_ECONOMIZER_EXCEPTION = 'UNKNOWN_ECONOMIZER_EXCEPTION'
1286
+ NO_ECONOMIZER_EXCEPTION = 'NO_ECONOMIZER_EXCEPTION'
1287
+ HIGH_EFFICIENCY_EQUIPMENT = 'HIGH_EFFICIENCY_EQUIPMENT'
1288
+ HUMIDITY_REQUIREMENTS = 'HUMIDITY_REQUIREMENTS'
1289
+ FILTRATION_REQUIREMENTS = 'FILTRATION_REQUIREMENTS'
1290
+ OPENCASE_REFRIGERATION = 'OPENCASE_REFRIGERATION'
1291
+ LOW_OPERATING_HOURS = 'LOW_OPERATING_HOURS'
1292
+ LOW_CAP_RESIDENTIAL = 'LOW_CAP_RESIDENTIAL'
1293
+ COMPUTER_ROOM_APP = 'COMPUTER_ROOM_APP'
1294
+ CONDENSER_HEAT_RECOVERY_SWH = 'CONDENSER_HEAT_RECOVERY_SWH'
1295
+ NET_COOL_LOAD_LT_TRAN_INFIL_LOSS = 'NET_COOL_LOAD_LT_TRAN_INFIL_LOSS'
1296
+ HEAT_RECOVERY_SYSTEM = 'HEAT_RECOVERY_SYSTEM'
1297
+ VRF_CENTRAL_OUTOOR_UNIT = 'VRF_CENTRAL_OUTOOR_UNIT'
1298
+ VRF_ZONE_FAN_UNIT = 'VRF_ZONE_FAN_UNIT'
1299
+ VRF_SYSTEM_DOAS = 'VRF_SYSTEM_DOAS'
1300
+
1301
+
1302
+ class FanControlOptions(StrEnum):
1303
+ UNKNOWN_FAN_CONTROL = 'UNKNOWN_FAN_CONTROL'
1304
+ VANE_AXIAL_FAN_W_VARIABLE_PITCH_BLADES = 'VANE_AXIAL_FAN_W_VARIABLE_PITCH_BLADES'
1305
+ MECHANICAL_ADJUSTABLE_SPEED_DRIVE = 'MECHANICAL_ADJUSTABLE_SPEED_DRIVE'
1306
+ ELECTRICAL_ADJUSTABLE_SPEED_DRIVE = 'ELECTRICAL_ADJUSTABLE_SPEED_DRIVE'
1307
+ OTHER_FAN_CONTROL = 'OTHER_FAN_CONTROL'
1308
+
1309
+
1310
+ class FuelTypeOptions(StrEnum):
1311
+ UNKNOWN_FUEL = 'UNKNOWN_FUEL'
1312
+ GAS = 'GAS'
1313
+ ELECTRIC = 'ELECTRIC'
1314
+ OIL = 'OIL'
1315
+ PROPANE = 'PROPANE'
1316
+ HOTWATER = 'HOTWATER'
1317
+ STEAM = 'STEAM'
1318
+ OTHER_FOSSIL_FUEL = 'OTHER_FOSSIL_FUEL'
1319
+
1320
+
1321
+ class SpaceHeatingSystemExceptionOptions(StrEnum):
1322
+ SPACE_HEATING_EXCEPTION_ELECTRIC_POWER_SYSTEM = (
1323
+ 'SPACE_HEATING_EXCEPTION_ELECTRIC_POWER_SYSTEM'
1324
+ )
1325
+ SPACE_HEATING_EXCEPTION_ELECTRIC_FOSSIL_ENERGY_RECOVERY_VENT = (
1326
+ 'SPACE_HEATING_EXCEPTION_ELECTRIC_FOSSIL_ENERGY_RECOVERY_VENT'
1327
+ )
1328
+ SPACE_HEATING_EXCEPTION_ELECTRIC_RESISTANCE_COMPLY_PERFORMANCE = (
1329
+ 'SPACE_HEATING_EXCEPTION_ELECTRIC_RESISTANCE_COMPLY_PERFORMANCE'
1330
+ )
1331
+ SPACE_HEATING_EXCEPTION_ELECTRIC_RESISTANCE_FOR_SUPPLEMENTARY_HEAT = (
1332
+ 'SPACE_HEATING_EXCEPTION_ELECTRIC_RESISTANCE_FOR_SUPPLEMENTARY_HEAT'
1333
+ )
1334
+ SPACE_HEATING_EXCEPTION_ELECTRIC_LOW_THRESHOLD = (
1335
+ 'SPACE_HEATING_EXCEPTION_ELECTRIC_LOW_THRESHOLD'
1336
+ )
1337
+ SPACE_HEATING_EXCEPTION_ELECTRIC_HEAT_PUMP_INTEGRATION = (
1338
+ 'SPACE_HEATING_EXCEPTION_ELECTRIC_HEAT_PUMP_INTEGRATION'
1339
+ )
1340
+ SPACE_HEATING_EXCEPTION_FOSSIL_REPLACEMENT_FOSSIL_FUEL = (
1341
+ 'SPACE_HEATING_EXCEPTION_FOSSIL_REPLACEMENT_FOSSIL_FUEL'
1342
+ )
1343
+ SPACE_HEATING_EXCEPTION_ELECTRIC_FOSSIL_FREEZE_PROTECTION = (
1344
+ 'SPACE_HEATING_EXCEPTION_ELECTRIC_FOSSIL_FREEZE_PROTECTION'
1345
+ )
1346
+ SPACE_HEATING_EXCEPTION_ELECTRIC_REPLACEMENT_ELECTRIC = (
1347
+ 'SPACE_HEATING_EXCEPTION_ELECTRIC_REPLACEMENT_ELECTRIC'
1348
+ )
1349
+
1350
+
1351
+ class HeatingEquipmentTypeOptions(StrEnum):
1352
+ NO_HEATING_EQUIPMENT = 'NO_HEATING_EQUIPMENT'
1353
+ CENTRAL_FURNACE = 'CENTRAL_FURNACE'
1354
+ DUCT_FURNACE = 'DUCT_FURNACE'
1355
+ HYDRONIC_OR_STEAM_COIL = 'HYDRONIC_OR_STEAM_COIL'
1356
+ HEAT_PUMP = 'HEAT_PUMP'
1357
+ RADIANT_HEATER = 'RADIANT_HEATER'
1358
+ UNIT_HEATER = 'UNIT_HEATER'
1359
+ OTHER_HEATING_EQUIPMENT = 'OTHER_HEATING_EQUIPMENT'
1360
+
1361
+
1362
+ class ZoneLayoutOptions(StrEnum):
1363
+ UNKNOWN_ZONE = 'UNKNOWN_ZONE'
1364
+ SINGLE_ZONE = 'SINGLE_ZONE'
1365
+ MULTI_ZONE = 'MULTI_ZONE'
1366
+
1367
+
1368
+ class HeatPumpTypeOptions(StrEnum):
1369
+ UNKNOWN_HEATPUMP_TYPE = 'UNKNOWN_HEATPUMP_TYPE'
1370
+ NO_HEATPUMP_TYPE = 'NO_HEATPUMP_TYPE'
1371
+ PACKAGED_TERMINAL_HEATPUMP = 'PACKAGED_TERMINAL_HEATPUMP'
1372
+ ROOFTOP_PACKAGED_HEATPUMP = 'ROOFTOP_PACKAGED_HEATPUMP'
1373
+ SINGLE_PACKAGE_VERTICAL_HEATPUMP = 'SINGLE_PACKAGE_VERTICAL_HEATPUMP'
1374
+ SPLIT_SYSTEM_HEATPUMP = 'SPLIT_SYSTEM_HEATPUMP'
1375
+ WATER_LOOP_HEATPUMP = 'WATER_LOOP_HEATPUMP'
1376
+ GROUNDWATER_SOURCE_HEATPUMP = 'GROUNDWATER_SOURCE_HEATPUMP'
1377
+ GROUND_SOURCE_HEATPUMP = 'GROUND_SOURCE_HEATPUMP'
1378
+ WATER_SOURCE_WATER_TO_WATER_HEATPUMP = 'WATER_SOURCE_WATER_TO_WATER_HEATPUMP'
1379
+ GROUNDWATER_SOURCE_WATER_TO_WATER_HEATPUMP = (
1380
+ 'GROUNDWATER_SOURCE_WATER_TO_WATER_HEATPUMP'
1381
+ )
1382
+ GROUND_SOURCE_BRINE_TO_WATER_HEATPUMP = 'GROUND_SOURCE_BRINE_TO_WATER_HEATPUMP'
1383
+ VRF_AIR_COOLED = 'VRF_AIR_COOLED'
1384
+ VRF_AIR_COOLED_W_HEAT_RECOVERY = 'VRF_AIR_COOLED_W_HEAT_RECOVERY'
1385
+ VRF_WATER_SOURCE = 'VRF_WATER_SOURCE'
1386
+ VRF_WATER_SOURCE_W_HEAT_RECOVERY = 'VRF_WATER_SOURCE_W_HEAT_RECOVERY'
1387
+ VRF_GROUNDWATER_SOURCE = 'VRF_GROUNDWATER_SOURCE'
1388
+ VRF_GROUNDWATER_SOURCE_W_HEAT_RECOVERY = 'VRF_GROUNDWATER_SOURCE_W_HEAT_RECOVERY'
1389
+ VRF_GROUND_SOURCE = 'VRF_GROUND_SOURCE'
1390
+ VRF_GROUND_SOURCE_W_HEAT_RECOVERY = 'VRF_GROUND_SOURCE_W_HEAT_RECOVERY'
1391
+ SINGLE_PACKAGE_VERTICAL_HEATPUMP_NONWEATHERIZED_SPACE_CONSTRAINED = (
1392
+ 'SINGLE_PACKAGE_VERTICAL_HEATPUMP_NONWEATHERIZED_SPACE_CONSTRAINED'
1393
+ )
1394
+ OTHER_HEATPUMP = 'OTHER_HEATPUMP'
1395
+ DOAS_AIR_SOURCE_HEATPUMP = 'DOAS_AIR_SOURCE_HEATPUMP'
1396
+ DOAS_AIR_SOURCE_HEATPUMP_W_HEAT_RECOVERY = (
1397
+ 'DOAS_AIR_SOURCE_HEATPUMP_W_HEAT_RECOVERY'
1398
+ )
1399
+ DOAS_GROUND_SOURCE_HEATPUMP = 'DOAS_GROUND_SOURCE_HEATPUMP'
1400
+ DOAS_GROUND_SOURCE_HEATPUMP_W_HEAT_RECOVERY = (
1401
+ 'DOAS_GROUND_SOURCE_HEATPUMP_W_HEAT_RECOVERY'
1402
+ )
1403
+ DOAS_GROUNDWATER_SOURCE_HEATPUMP = 'DOAS_GROUNDWATER_SOURCE_HEATPUMP'
1404
+ DOAS_GROUNDWATER_SOURCE_HEATPUMP_W_HEAT_RECOVERY = (
1405
+ 'DOAS_GROUNDWATER_SOURCE_HEATPUMP_W_HEAT_RECOVERY'
1406
+ )
1407
+ DOAS_WATER_SOURCE_HEATPUMP = 'DOAS_WATER_SOURCE_HEATPUMP'
1408
+ DOAS_WATER_SOURCE_HEATPUMP_W_HEAT_RECOVERY = (
1409
+ 'DOAS_WATER_SOURCE_HEATPUMP_W_HEAT_RECOVERY'
1410
+ )
1411
+
1412
+
1413
+ class ChillerTypeOptions(StrEnum):
1414
+ NO_CHILLER = 'NO_CHILLER'
1415
+ CENTRIFUGAL = 'CENTRIFUGAL'
1416
+ ROTARY_SCREW_OR_SCROLL = 'ROTARY_SCREW_OR_SCROLL'
1417
+ RECIPROCATING = 'RECIPROCATING'
1418
+ SINGLE_EFFECT_ABSORPTION = 'SINGLE_EFFECT_ABSORPTION'
1419
+ DOUBLE_EFFECT_ABSORPTION_DIRECT_FIRED = 'DOUBLE_EFFECT_ABSORPTION_DIRECT_FIRED'
1420
+ DOUBLE_EFFECT_ABSORPTION_INDIRECT_FIRED = 'DOUBLE_EFFECT_ABSORPTION_INDIRECT_FIRED'
1421
+
1422
+
1423
+ class CoolingPlantTypeOptions(StrEnum):
1424
+ UNKNOWN_PLANT_COOLING = 'UNKNOWN_PLANT_COOLING'
1425
+ NO_PLANT_COOLING = 'NO_PLANT_COOLING'
1426
+ CONDENSER_UNIT = 'CONDENSER_UNIT'
1427
+ WATER_CHILLER = 'WATER_CHILLER'
1428
+ HEATPUMP_CHILLER = 'HEATPUMP_CHILLER'
1429
+
1430
+
1431
+ class HeatingPlantTypeOptions(StrEnum):
1432
+ UNKNOWN_PLANT_HEATING = 'UNKNOWN_PLANT_HEATING'
1433
+ NO_PLANT_HEATING = 'NO_PLANT_HEATING'
1434
+ HOTWATER_PLANT = 'HOTWATER_PLANT'
1435
+ STEAM_PLANT = 'STEAM_PLANT'
1436
+
1437
+
1438
+ class HeatPumpChillerHeatingSourceConditionOptions(StrEnum):
1439
+ UNKNOWN_SOURCE = 'UNKNOWN_SOURCE'
1440
+ AIRSOURCE_47DB_43WB = 'AIRSOURCE_47DB_43WB'
1441
+ AIRSOURCE_17DB_15WB = 'AIRSOURCE_17DB_15WB'
1442
+ WATERSOURCE_54F_44F = 'WATERSOURCE_54F_44F'
1443
+ WATERSOURCE_75F_65F = 'WATERSOURCE_75F_65F'
1444
+
1445
+
1446
+ class HeatPumpChillerLeavingHeatingWaterTempOptions(StrEnum):
1447
+ UNKNOWN_TEMPERATURE = 'UNKNOWN_TEMPERATURE'
1448
+ LOW = 'LOW'
1449
+ MEDIUM = 'MEDIUM'
1450
+ HIGH = 'HIGH'
1451
+ BOOST = 'BOOST'
1452
+
1453
+
1454
+ class HeatPumpChillerTypeOptions(StrEnum):
1455
+ NO_HP_CHILLER = 'NO_HP_CHILLER'
1456
+ AIRSOURCE_HEATPUMP_CHILLER = 'AIRSOURCE_HEATPUMP_CHILLER'
1457
+ WATERSOURCE_POSITIVE_DISPLACEMENT_HEATPUMP_CHILLER = (
1458
+ 'WATERSOURCE_POSITIVE_DISPLACEMENT_HEATPUMP_CHILLER'
1459
+ )
1460
+ WATERSOURCE_CENTRIFUGAL_HEATPUMP_CHILLER = (
1461
+ 'WATERSOURCE_CENTRIFUGAL_HEATPUMP_CHILLER'
1462
+ )
1463
+
1464
+
1465
+ class HeatRejectionTypeOptions(StrEnum):
1466
+ UNKNOWN_HEAT_REJECTION_DEVICE = 'UNKNOWN_HEAT_REJECTION_DEVICE'
1467
+ NO_HEAT_REJECTION_DEVICE = 'NO_HEAT_REJECTION_DEVICE'
1468
+ AIR_COOLED_CONDENSER = 'AIR_COOLED_CONDENSER'
1469
+ CENTRIFUGAL_FAN_COOLING_TOWER = 'CENTRIFUGAL_FAN_COOLING_TOWER'
1470
+ PROPELLER_OR_AXIAL_FAN_COOLING_TOWER = 'PROPELLER_OR_AXIAL_FAN_COOLING_TOWER'
1471
+ PROPELLER_OR_AXIAL_FAN_OPEN_CIRCUIT_COOLING_TOWER = (
1472
+ 'PROPELLER_OR_AXIAL_FAN_OPEN_CIRCUIT_COOLING_TOWER'
1473
+ )
1474
+ PROPELLER_OR_AXIAL_FAN_CLOSED_CIRCUIT_COOLING_TOWER = (
1475
+ 'PROPELLER_OR_AXIAL_FAN_CLOSED_CIRCUIT_COOLING_TOWER'
1476
+ )
1477
+ CENTRIFUGAL_FAN_OPEN_CIRCUIT_COOLING_TOWER = (
1478
+ 'CENTRIFUGAL_FAN_OPEN_CIRCUIT_COOLING_TOWER'
1479
+ )
1480
+ CENTRIFUGAL_FAN_CLOSED_CIRCUIT_COOLING_TOWER = (
1481
+ 'CENTRIFUGAL_FAN_CLOSED_CIRCUIT_COOLING_TOWER'
1482
+ )
1483
+ LOW_PROFILE_CENTRIFUGAL_FAN_OPEN_CIRCUIT_COOLING_TOWER = (
1484
+ 'LOW_PROFILE_CENTRIFUGAL_FAN_OPEN_CIRCUIT_COOLING_TOWER'
1485
+ )
1486
+ PROPELLER_OR_AXIAL_FAN_EVAPORATIVE_CONDENSER_R_507A = (
1487
+ 'PROPELLER_OR_AXIAL_FAN_EVAPORATIVE_CONDENSER_R_507A'
1488
+ )
1489
+ PROPELLER_OR_AXIAL_FAN_EVAPORATIVE_CONDENSER_AMMONIA = (
1490
+ 'PROPELLER_OR_AXIAL_FAN_EVAPORATIVE_CONDENSER_AMMONIA'
1491
+ )
1492
+ CENTRIFUGAL_FAN_FAN_EVAPORATIVE_CONDENSER_R_507A = (
1493
+ 'CENTRIFUGAL_FAN_FAN_EVAPORATIVE_CONDENSER_R_507A'
1494
+ )
1495
+ CENTRIFUGAL_FAN_FAN_EVAPORATIVE_CONDENSER_AMMONIA = (
1496
+ 'CENTRIFUGAL_FAN_FAN_EVAPORATIVE_CONDENSER_AMMONIA'
1497
+ )
1498
+ PROPELLER_OR_AXIAL_FAN_DRY_COOLER = 'PROPELLER_OR_AXIAL_FAN_DRY_COOLER'
1499
+
1500
+
1501
+ class PlantTypeOptions(StrEnum):
1502
+ UNKNOWN_PLANT = 'UNKNOWN_PLANT'
1503
+ HEATING_PLANT = 'HEATING_PLANT'
1504
+ COOLING_PLANT = 'COOLING_PLANT'
1505
+ HEAT_PUMP_CHILLER_PLANT = 'HEAT_PUMP_CHILLER_PLANT'
1506
+
1507
+
1508
+ class CompliancePathOptions(StrEnum):
1509
+ pathA = 'pathA'
1510
+ pathB = 'pathB'
1511
+ NA = 'NA'
1512
+
1513
+
1514
+ class EquipmentEfficiencyRequirementExceptionOptions(StrEnum):
1515
+ EFF_EXCEPTION_BOILER_RADIANT_PERIMETER = 'EFF_EXCEPTION_BOILER_RADIANT_PERIMETER'
1516
+ EFF_EXCEPTION_BOILER_DWELLING_UNIT = 'EFF_EXCEPTION_BOILER_DWELLING_UNIT'
1517
+ EFF_EXCEPTION_BOILER_RENEWABLE_RECOVERED_ENERGY = (
1518
+ 'EFF_EXCEPTION_BOILER_RENEWABLE_RECOVERED_ENERGY'
1519
+ )
1520
+ EFF_EXCEPTION_WATER_HEATER_DWELLING_UNIT = (
1521
+ 'EFF_EXCEPTION_WATER_HEATER_DWELLING_UNIT'
1522
+ )
1523
+ EFF_EXCEPTION_WATER_HEATER_RENEWABLE_RECOVERED_ENERGY = (
1524
+ 'EFF_EXCEPTION_WATER_HEATER_RENEWABLE_RECOVERED_ENERGY'
1525
+ )
1526
+ EFF_EXCEPTION_UNSPECIFIED = 'EFF_EXCEPTION_UNSPECIFIED'
1527
+
1528
+
1529
+ class FanTypeOptions(StrEnum):
1530
+ FAN_TYPE_UNSPECIFIED = 'FAN_TYPE_UNSPECIFIED'
1531
+ FAN_TYPE_SUPPLY = 'FAN_TYPE_SUPPLY'
1532
+ FAN_TYPE_RETURN = 'FAN_TYPE_RETURN'
1533
+ FAN_TYPE_RELIEF = 'FAN_TYPE_RELIEF'
1534
+ FAN_TYPE_EXHAUST = 'FAN_TYPE_EXHAUST'
1535
+ FAN_TYPE_FAN_POWERED_TERMINAL_UNIT = 'FAN_TYPE_FAN_POWERED_TERMINAL_UNIT'
1536
+
1537
+
1538
+ class FanVolumeTypeOptions(StrEnum):
1539
+ FAN_VOLUME_TYPE_UNSPECIFIED = 'FAN_VOLUME_TYPE_UNSPECIFIED'
1540
+ FAN_VOLUME_TYPE_CONSTANT = 'FAN_VOLUME_TYPE_CONSTANT'
1541
+ FAN_VOLUME_TYPE_SINGLE_ZONE_VAV = 'FAN_VOLUME_TYPE_SINGLE_ZONE_VAV'
1542
+ FAN_VOLUME_TYPE_MULTI_ZONE_VAV = 'FAN_VOLUME_TYPE_MULTI_ZONE_VAV'
1543
+
1544
+
1545
+ class SWHSystemSubTypeOptions(StrEnum):
1546
+ UNKNOWN_SWH_SYSTEM_SUB_TYPE = 'UNKNOWN_SWH_SYSTEM_SUB_TYPE'
1547
+ WATER_HEATER_STANDARD = 'WATER_HEATER_STANDARD'
1548
+ ELECTRIC_STORAGE_WATER_HEATER_GRID_ENABLED = (
1549
+ 'ELECTRIC_STORAGE_WATER_HEATER_GRID_ENABLED'
1550
+ )
1551
+ ELECTRIC_STORAGE_WATER_HEATER_TABLE_TOP = 'ELECTRIC_STORAGE_WATER_HEATER_TABLE_TOP'
1552
+
1553
+
1554
+ class SWHSystemTypeOptions(StrEnum):
1555
+ NONE = 'NONE'
1556
+ UNKNOWN_SWH_SYSTEM = 'UNKNOWN_SWH_SYSTEM'
1557
+ INSTANTANEOUS_WATER_HEATER = 'INSTANTANEOUS_WATER_HEATER'
1558
+ STORAGE_WATER_HEATER = 'STORAGE_WATER_HEATER'
1559
+
1560
+
1561
+ class SWHFuelTypeOptions(StrEnum):
1562
+ UNKNOWN_FUEL = 'UNKNOWN_FUEL'
1563
+ GAS = 'GAS'
1564
+ ELECTRIC = 'ELECTRIC'
1565
+ OIL = 'OIL'
1566
+
1567
+
1568
+ class GSHPFieldSourceCapacityTypeOptions(StrEnum):
1569
+ HVAC_GSHP_FULL_SIZE_BORE_FIELD_NO_HEAT_REJECTION = (
1570
+ 'HVAC_GSHP_FULL_SIZE_BORE_FIELD_NO_HEAT_REJECTION'
1571
+ )
1572
+ HVAC_GSHP_90_HOURS_SOURCE_SIZE_EVAPORATIVE_HEAT_REJECT = (
1573
+ 'HVAC_GSHP_90_HOURS_SOURCE_SIZE_EVAPORATIVE_HEAT_REJECT'
1574
+ )
1575
+ HVAC_GSHP_90_HOURS_SOURCE_SIZE_DRY_COOLER_HEAT_REJECT = (
1576
+ 'HVAC_GSHP_90_HOURS_SOURCE_SIZE_DRY_COOLER_HEAT_REJECT'
1577
+ )
1578
+
1579
+
1580
+ class IECC2024EnergyCreditTypeOptions(StrEnum):
1581
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENVELOPE_PERFORMANCE_APPXC = (
1582
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENVELOPE_PERFORMANCE_APPXC'
1583
+ )
1584
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_ENVELOPE_PERFORMANCE = (
1585
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_ENVELOPE_PERFORMANCE'
1586
+ )
1587
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_REDUCE_AIR_INFILTRATION = (
1588
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_REDUCE_AIR_INFILTRATION'
1589
+ )
1590
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_ROOF_R10 = (
1591
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_ROOF_R10'
1592
+ )
1593
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_ROOF_R5 = (
1594
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_ROOF_R5'
1595
+ )
1596
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_WALL_R5 = (
1597
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_WALL_R5'
1598
+ )
1599
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_WALL_R2_5 = (
1600
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_WALL_R2_5'
1601
+ )
1602
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_FENESTRATION = (
1603
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_FENESTRATION'
1604
+ )
1605
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HVAC_TSPR = (
1606
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HVAC_TSPR'
1607
+ )
1608
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_HEATING_PERFORMANCE = (
1609
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_HEATING_PERFORMANCE'
1610
+ )
1611
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_COOLING_PERFORMANCE = (
1612
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENHANCED_COOLING_PERFORMANCE'
1613
+ )
1614
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_RESIDENTIAL_HVAC_CONTROL = (
1615
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_RESIDENTIAL_HVAC_CONTROL'
1616
+ )
1617
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_DEDICATED_OUTDOOR_AIR_SYSTEM = (
1618
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_DEDICATED_OUTDOOR_AIR_SYSTEM'
1619
+ )
1620
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HEAT_RECOVERY_SWH = (
1621
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HEAT_RECOVERY_SWH'
1622
+ )
1623
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HPWH = 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HPWH'
1624
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_EFFICIENT_FFWH = (
1625
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_EFFICIENT_FFWH'
1626
+ )
1627
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_PIPE_INSULATION = (
1628
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_PIPE_INSULATION'
1629
+ )
1630
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_POINT_USE_SWH = (
1631
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_POINT_USE_SWH'
1632
+ )
1633
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_BALANCING_VALVE_SWH = (
1634
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_BALANCING_VALVE_SWH'
1635
+ )
1636
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HEAT_TRACE_SWH = (
1637
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HEAT_TRACE_SWH'
1638
+ )
1639
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_DEWELL_SUBMETER_SWH = (
1640
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_DEWELL_SUBMETER_SWH'
1641
+ )
1642
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_FLOW_REDUCTION_SWH = (
1643
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_FLOW_REDUCTION_SWH'
1644
+ )
1645
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HEAT_RECOVERY_SHOWER_SWH = (
1646
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HEAT_RECOVERY_SHOWER_SWH'
1647
+ )
1648
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENERGY_MONITORING = (
1649
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ENERGY_MONITORING'
1650
+ )
1651
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_DIM_HIGH_END_TRIM_LIGHT = (
1652
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_DIM_HIGH_END_TRIM_LIGHT'
1653
+ )
1654
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_OCCUPANCY_SENSOR_LIGHT = (
1655
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_OCCUPANCY_SENSOR_LIGHT'
1656
+ )
1657
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_DAYLIGHT_AREA_LIGHT = (
1658
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_DAYLIGHT_AREA_LIGHT'
1659
+ )
1660
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_RESIDENTIAL_CONTROL_LIGHT = (
1661
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_RESIDENTIAL_CONTROL_LIGHT'
1662
+ )
1663
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_LIGHTING_REDUCED_LPD = (
1664
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_LIGHTING_REDUCED_LPD'
1665
+ )
1666
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_EFFICIENT_ELEVATOR = (
1667
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_EFFICIENT_ELEVATOR'
1668
+ )
1669
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_EFFICIENT_COM_KITCHEN_EQUIPMENT = (
1670
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_EFFICIENT_COM_KITCHEN_EQUIPMENT'
1671
+ )
1672
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_EFFICIENT_RES_KITCHEN_EQUIPMENT = (
1673
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_EFFICIENT_RES_KITCHEN_EQUIPMENT'
1674
+ )
1675
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_FAULT_DETECTION_DIAGNOSTICS = (
1676
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_FAULT_DETECTION_DIAGNOSTICS'
1677
+ )
1678
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_RENEWABLE = (
1679
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_RENEWABLE'
1680
+ )
1681
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_LIGHT_LOAD_MGMT = (
1682
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_LIGHT_LOAD_MGMT'
1683
+ )
1684
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HVAC_LOAD_MGMT = (
1685
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_HVAC_LOAD_MGMT'
1686
+ )
1687
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_SHADE_LOAD_MGMT = (
1688
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_SHADE_LOAD_MGMT'
1689
+ )
1690
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ELECTRIC_STORAGE = (
1691
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_ELECTRIC_STORAGE'
1692
+ )
1693
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_COOLING_STORAGE = (
1694
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_COOLING_STORAGE'
1695
+ )
1696
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_SHW_ENERGY_STORAGE = (
1697
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_SHW_ENERGY_STORAGE'
1698
+ )
1699
+ EFF_PACKAGE_ENERGY_CREDIT_IECC2024_THERMAL_MASS = (
1700
+ 'EFF_PACKAGE_ENERGY_CREDIT_IECC2024_THERMAL_MASS'
1701
+ )
1702
+
1703
+
1704
+ class Denver2022EnergyCreditTypeOptions(StrEnum):
1705
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_5_ENHANCED_HEATING_PERFORMANCE = (
1706
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_5_ENHANCED_HEATING_PERFORMANCE'
1707
+ )
1708
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_5_ENHANCED_COOLING_PERFORMANCE = (
1709
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_5_ENHANCED_COOLING_PERFORMANCE'
1710
+ )
1711
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_10_ENHANCED_HEATING_PERFORMANCE = (
1712
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_10_ENHANCED_HEATING_PERFORMANCE'
1713
+ )
1714
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_10_ENHANCED_COOLING_PERFORMANCE = (
1715
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_10_ENHANCED_COOLING_PERFORMANCE'
1716
+ )
1717
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_MORE_10_ENHANCED_HEATING_PERFORMANCE = (
1718
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_MORE_10_ENHANCED_HEATING_PERFORMANCE'
1719
+ )
1720
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_MORE_10_ENHANCED_COOLING_PERFORMANCE = (
1721
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_MORE_10_ENHANCED_COOLING_PERFORMANCE'
1722
+ )
1723
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_LIGHTING_REDUCED_LPD = (
1724
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_LIGHTING_REDUCED_LPD'
1725
+ )
1726
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_15_LIGHTING_REDUCED_LPD = (
1727
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_15_LIGHTING_REDUCED_LPD'
1728
+ )
1729
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_MORE_15_LIGHTING_REDUCED_LPD = (
1730
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_MORE_15_LIGHTING_REDUCED_LPD'
1731
+ )
1732
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_ENHANCED_LIGHTING_CONTROLS = (
1733
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_ENHANCED_LIGHTING_CONTROLS'
1734
+ )
1735
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_ONSITE_RENEWABLES = (
1736
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_ONSITE_RENEWABLES'
1737
+ )
1738
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_ENHANCED_RENEWABLES = (
1739
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_ENHANCED_RENEWABLES'
1740
+ )
1741
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_DEDICATED_OUTDOOR_AIR_SYSTEM = (
1742
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_DEDICATED_OUTDOOR_AIR_SYSTEM'
1743
+ )
1744
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_RENEWABLE_HOT_WATER = (
1745
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_RENEWABLE_HOT_WATER'
1746
+ )
1747
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_EFFICIENT_FFWH = (
1748
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_EFFICIENT_FFWH'
1749
+ )
1750
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_HPWH = 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_HPWH'
1751
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_ENHANCED_ENVELOPE_PERFORMANCE = (
1752
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_ENHANCED_ENVELOPE_PERFORMANCE'
1753
+ )
1754
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_FURTHER_ENHANCED_ENVELOPE_PERFORMANCE = (
1755
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_FURTHER_ENHANCED_ENVELOPE_PERFORMANCE'
1756
+ )
1757
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_REDUCED_AIR_INFILTRATION = (
1758
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_REDUCED_AIR_INFILTRATION'
1759
+ )
1760
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_FURTHER_REDUCED_AIR_INFILTRATION = (
1761
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_FURTHER_REDUCED_AIR_INFILTRATION'
1762
+ )
1763
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_ENERGY_MONITORING = (
1764
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_ENERGY_MONITORING'
1765
+ )
1766
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_FAULT_DETECTION_DIAGNOSTICS = (
1767
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_FAULT_DETECTION_DIAGNOSTICS'
1768
+ )
1769
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_EFFICIENT_KITCHEN_EQUIPMENT = (
1770
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_EFFICIENT_KITCHEN_EQUIPMENT'
1771
+ )
1772
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_ALL_ELECTRIC_SPACE_HEATING = (
1773
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_ALL_ELECTRIC_SPACE_HEATING'
1774
+ )
1775
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_COLD_CLIMATE_HEAT_PUMP = (
1776
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_COLD_CLIMATE_HEAT_PUMP'
1777
+ )
1778
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_ALL_ELECTRIC_WATER_HEATING = (
1779
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_ALL_ELECTRIC_WATER_HEATING'
1780
+ )
1781
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_DEMAND_RESPONSIVE_THERMOSTATS = (
1782
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_DEMAND_RESPONSIVE_THERMOSTATS'
1783
+ )
1784
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_REDUCED_FAN_POWER = (
1785
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_REDUCED_FAN_POWER'
1786
+ )
1787
+ EFF_PACKAGE_ENERGY_CREDIT_DENVER_FURTHER_REDUCED_FAN_POWER = (
1788
+ 'EFF_PACKAGE_ENERGY_CREDIT_DENVER_FURTHER_REDUCED_FAN_POWER'
1789
+ )
1790
+
1791
+
1792
+ class MAS2022EnergyCreditTypeOptions(StrEnum):
1793
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_5_ENHANCED_COOLING_PERFORMANCE = (
1794
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_5_ENHANCED_COOLING_PERFORMANCE'
1795
+ )
1796
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_10_ENHANCED_COOLING_PERFORMANCE = (
1797
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_10_ENHANCED_COOLING_PERFORMANCE'
1798
+ )
1799
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_RENEWABLE_SPACE_HEATING = (
1800
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_RENEWABLE_SPACE_HEATING'
1801
+ )
1802
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_LIGHTING_REDUCED_LPD = (
1803
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_LIGHTING_REDUCED_LPD'
1804
+ )
1805
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_ENHANCED_LIGHTING_CONTROLS = (
1806
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_ENHANCED_LIGHTING_CONTROLS'
1807
+ )
1808
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_ONSITE_RENEWABLES = (
1809
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_ONSITE_RENEWABLES'
1810
+ )
1811
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_DEDICATED_OUTDOOR_AIR_SYSTEM = (
1812
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_DEDICATED_OUTDOOR_AIR_SYSTEM'
1813
+ )
1814
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_RENEWABLE_HOT_WATER = (
1815
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_RENEWABLE_HOT_WATER'
1816
+ )
1817
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_HPWH = 'EFF_PACKAGE_ENERGY_CREDIT_MAS_HPWH'
1818
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_ENHANCED_ENVELOPLE_PERFORMANCE = (
1819
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_ENHANCED_ENVELOPLE_PERFORMANCE'
1820
+ )
1821
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_REDUCED_AIR_INFILTRATION = (
1822
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_REDUCED_AIR_INFILTRATION'
1823
+ )
1824
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_ENERGY_MONITORING = (
1825
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_ENERGY_MONITORING'
1826
+ )
1827
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_FAULT_DETECTION_DIAGNOSTICS = (
1828
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_FAULT_DETECTION_DIAGNOSTICS'
1829
+ )
1830
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_EFFICIENT_KITCHEN_EQUIPMENT = (
1831
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_EFFICIENT_KITCHEN_EQUIPMENT'
1832
+ )
1833
+ EFF_PACKAGE_ENERGY_CREDIT_MAS_HEAVY_TIMBER_CONSTRUCTION = (
1834
+ 'EFF_PACKAGE_ENERGY_CREDIT_MAS_HEAVY_TIMBER_CONSTRUCTION'
1835
+ )
1836
+
1837
+
1838
+ class EfficiencyPackageTypeOptions(StrEnum):
1839
+ EFF_PACKAGE_UNKNOWN = 'EFF_PACKAGE_UNKNOWN'
1840
+ EFF_PACKAGE_HVAC_PERFORMANCE = 'EFF_PACKAGE_HVAC_PERFORMANCE'
1841
+ EFF_PACKAGE_LIGHTING_REDUCED_LPD = 'EFF_PACKAGE_LIGHTING_REDUCED_LPD'
1842
+ EFF_PACKAGE_ONSITE_RENEWABLES = 'EFF_PACKAGE_ONSITE_RENEWABLES'
1843
+ EFF_PACKAGE_SWH_PERFORMANCE = 'EFF_PACKAGE_SWH_PERFORMANCE'
1844
+ EFF_PACKAGE_ENERGY_RECOVERY_VENT_SYS = 'EFF_PACKAGE_ENERGY_RECOVERY_VENT_SYS'
1845
+ EFF_PACKAGE_AUTO_DAYLIGHTING_CONTROL_SYS = (
1846
+ 'EFF_PACKAGE_AUTO_DAYLIGHTING_CONTROL_SYS'
1847
+ )
1848
+ EFF_PACKAGE_ENHANCED_LIGHTING_CONTROLS = 'EFF_PACKAGE_ENHANCED_LIGHTING_CONTROLS'
1849
+ EFF_PACKAGE_DEDICATED_OUTDOOR_AIR_SYSTEM = (
1850
+ 'EFF_PACKAGE_DEDICATED_OUTDOOR_AIR_SYSTEM'
1851
+ )
1852
+ EFF_PACKAGE_ENHANCED_ENVELOPE_PERFORMANCE = (
1853
+ 'EFF_PACKAGE_ENHANCED_ENVELOPE_PERFORMANCE'
1854
+ )
1855
+ EFF_PACKAGE_REDUCED_AIR_INFILTRATION = 'EFF_PACKAGE_REDUCED_AIR_INFILTRATION'
1856
+ EFF_PACKAGE_COM_VT_HVAC = 'EFF_PACKAGE_COM_VT_HVAC'
1857
+ EFF_PACKAGE_COM_VT_LTG1 = 'EFF_PACKAGE_COM_VT_LTG1'
1858
+ EFF_PACKAGE_COM_VT_LTG2 = 'EFF_PACKAGE_COM_VT_LTG2'
1859
+ EFF_PACKAGE_COM_VT_LTG_CTRL = 'EFF_PACKAGE_COM_VT_LTG_CTRL'
1860
+ EFF_PACKAGE_COM_VT_RENEW = 'EFF_PACKAGE_COM_VT_RENEW'
1861
+ EFF_PACKAGE_COM_VT_DOAS = 'EFF_PACKAGE_COM_VT_DOAS'
1862
+ EFF_PACKAGE_COM_VT_DHW1 = 'EFF_PACKAGE_COM_VT_DHW1'
1863
+ EFF_PACKAGE_COM_VT_DHW2 = 'EFF_PACKAGE_COM_VT_DHW2'
1864
+ EFF_PACKAGE_COM_VT_HPWH = 'EFF_PACKAGE_COM_VT_HPWH'
1865
+ EFF_PACKAGE_COM_VT_ENV = 'EFF_PACKAGE_COM_VT_ENV'
1866
+ EFF_PACKAGE_COM_VT_AIRLEAK = 'EFF_PACKAGE_COM_VT_AIRLEAK'
1867
+ EFF_PACKAGE_COM_VT_KITCHAPP = 'EFF_PACKAGE_COM_VT_KITCHAPP'
1868
+ EFF_PACKAGE_COM_VT_RECEPT = 'EFF_PACKAGE_COM_VT_RECEPT'
1869
+ EFF_PACKAGE_COM_MAS_RENEW_HEAT = 'EFF_PACKAGE_COM_MAS_RENEW_HEAT'
1870
+ EFF_PACKAGE_COM_MAS_HEAVY_TIMBER = 'EFF_PACKAGE_COM_MAS_HEAVY_TIMBER'
1871
+ EFF_PACKAGE_ENERGY_CREDIT_5_ENHANCED_HEATING_PERFORMANCE = (
1872
+ 'EFF_PACKAGE_ENERGY_CREDIT_5_ENHANCED_HEATING_PERFORMANCE'
1873
+ )
1874
+ EFF_PACKAGE_ENERGY_CREDIT_5_ENHANCED_COOLING_PERFORMANCE = (
1875
+ 'EFF_PACKAGE_ENERGY_CREDIT_5_ENHANCED_COOLING_PERFORMANCE'
1876
+ )
1877
+ EFF_PACKAGE_ENERGY_CREDIT_10_ENHANCED_HEATING_PERFORMANCE = (
1878
+ 'EFF_PACKAGE_ENERGY_CREDIT_10_ENHANCED_HEATING_PERFORMANCE'
1879
+ )
1880
+ EFF_PACKAGE_ENERGY_CREDIT_10_ENHANCED_COOLING_PERFORMANCE = (
1881
+ 'EFF_PACKAGE_ENERGY_CREDIT_10_ENHANCED_COOLING_PERFORMANCE'
1882
+ )
1883
+ EFF_PACKAGE_ENERGY_CREDIT_LIGHTING_REDUCED_LPD = (
1884
+ 'EFF_PACKAGE_ENERGY_CREDIT_LIGHTING_REDUCED_LPD'
1885
+ )
1886
+ EFF_PACKAGE_ENERGY_CREDIT_ENHANCED_LIGHTING_CONTROLS = (
1887
+ 'EFF_PACKAGE_ENERGY_CREDIT_ENHANCED_LIGHTING_CONTROLS'
1888
+ )
1889
+ EFF_PACKAGE_ENERGY_CREDIT_ONSITE_RENEWABLES = (
1890
+ 'EFF_PACKAGE_ENERGY_CREDIT_ONSITE_RENEWABLES'
1891
+ )
1892
+ EFF_PACKAGE_ENERGY_CREDIT_DEDICATED_OUTDOOR_AIR_SYSTEM = (
1893
+ 'EFF_PACKAGE_ENERGY_CREDIT_DEDICATED_OUTDOOR_AIR_SYSTEM'
1894
+ )
1895
+ EFF_PACKAGE_ENERGY_CREDIT_RENEWABLE_HOT_WATER = (
1896
+ 'EFF_PACKAGE_ENERGY_CREDIT_RENEWABLE_HOT_WATER'
1897
+ )
1898
+ EFF_PACKAGE_ENERGY_CREDIT_EFFICIENT_FFWH = (
1899
+ 'EFF_PACKAGE_ENERGY_CREDIT_EFFICIENT_FFWH'
1900
+ )
1901
+ EFF_PACKAGE_ENERGY_CREDIT_HPWH = 'EFF_PACKAGE_ENERGY_CREDIT_HPWH'
1902
+ EFF_PACKAGE_ENERGY_CREDIT_ENHANCED_ENVELOPLE_PERFORMANCE = (
1903
+ 'EFF_PACKAGE_ENERGY_CREDIT_ENHANCED_ENVELOPLE_PERFORMANCE'
1904
+ )
1905
+ EFF_PACKAGE_ENERGY_CREDIT_REDUCED_AIR_INFILTRATION = (
1906
+ 'EFF_PACKAGE_ENERGY_CREDIT_REDUCED_AIR_INFILTRATION'
1907
+ )
1908
+ EFF_PACKAGE_ENERGY_CREDIT_ENERGY_MONITORING = (
1909
+ 'EFF_PACKAGE_ENERGY_CREDIT_ENERGY_MONITORING'
1910
+ )
1911
+ EFF_PACKAGE_ENERGY_CREDIT_FAULT_DETECTION_DIAGNOSTICS = (
1912
+ 'EFF_PACKAGE_ENERGY_CREDIT_FAULT_DETECTION_DIAGNOSTICS'
1913
+ )
1914
+ EFF_PACKAGE_ENERGY_CREDIT_EFFICIENT_KITCHEN_EQUIPMENT = (
1915
+ 'EFF_PACKAGE_ENERGY_CREDIT_EFFICIENT_KITCHEN_EQUIPMENT'
1916
+ )
1917
+ EFF_PACKAGE_ENERGY_CREDIT_GRID_INTEGRATED_CONTROLS_HVAC = (
1918
+ 'EFF_PACKAGE_ENERGY_CREDIT_GRID_INTEGRATED_CONTROLS_HVAC'
1919
+ )
1920
+ EFF_PACKAGE_ENERGY_CREDIT_GRID_INTEGRATED_CONTROLS_WATER_HEATING = (
1921
+ 'EFF_PACKAGE_ENERGY_CREDIT_GRID_INTEGRATED_CONTROLS_WATER_HEATING'
1922
+ )
1923
+ EFF_PACKAGE_ENERGY_CREDIT_RESIDENTIAL_HVAC_CONTROL = (
1924
+ 'EFF_PACKAGE_ENERGY_CREDIT_RESIDENTIAL_HVAC_CONTROL'
1925
+ )
1926
+ EFF_PACKAGE_ENERGY_CREDIT_GSHP_SYSTEM = 'EFF_PACKAGE_ENERGY_CREDIT_GSHP_SYSTEM'
1927
+ EFF_PACKAGE_ENERGY_CREDIT_IMPROVED_HVAC_OPERATION = (
1928
+ 'EFF_PACKAGE_ENERGY_CREDIT_IMPROVED_HVAC_OPERATION'
1929
+ )
1930
+ EFF_PACKAGE_ENERGY_CREDIT_HEAT_RECOVERY_SHW = (
1931
+ 'EFF_PACKAGE_ENERGY_CREDIT_HEAT_RECOVERY_SHW'
1932
+ )
1933
+ EFF_PACKAGE_ENERGY_CREDIT_PIPE_INSULATION_SHW = (
1934
+ 'EFF_PACKAGE_ENERGY_CREDIT_PIPE_INSULATION_SHW'
1935
+ )
1936
+ EFF_PACKAGE_ENERGY_CREDIT_POINT_USE_SHW = 'EFF_PACKAGE_ENERGY_CREDIT_POINT_USE_SHW'
1937
+ EFF_PACKAGE_ENERGY_CREDIT_BALANCING_VALVE_SHW = (
1938
+ 'EFF_PACKAGE_ENERGY_CREDIT_BALANCING_VALVE_SHW'
1939
+ )
1940
+ EFF_PACKAGE_ENERGY_CREDIT_DEWELL_SUBMETER_SHW = (
1941
+ 'EFF_PACKAGE_ENERGY_CREDIT_DEWELL_SUBMETER_SHW'
1942
+ )
1943
+ EFF_PACKAGE_ENERGY_CREDIT_DISTRIBUTION_SIZE_SHW = (
1944
+ 'EFF_PACKAGE_ENERGY_CREDIT_DISTRIBUTION_SIZE_SHW'
1945
+ )
1946
+ EFF_PACKAGE_ENERGY_CREDIT_HEAT_RECOVERY_SHOWER_SHW = (
1947
+ 'EFF_PACKAGE_ENERGY_CREDIT_HEAT_RECOVERY_SHOWER_SHW'
1948
+ )
1949
+ EFF_PACKAGE_ENERGY_CREDIT_DIM_HIGH_END_TRIM_LIGHT = (
1950
+ 'EFF_PACKAGE_ENERGY_CREDIT_DIM_HIGH_END_TRIM_LIGHT'
1951
+ )
1952
+ EFF_PACKAGE_ENERGY_CREDIT_OCCUPANCY_SENSOR_LIGHT = (
1953
+ 'EFF_PACKAGE_ENERGY_CREDIT_OCCUPANCY_SENSOR_LIGHT'
1954
+ )
1955
+ EFF_PACKAGE_ENERGY_CREDIT_DAYLIGHT_AREA_LIGHT = (
1956
+ 'EFF_PACKAGE_ENERGY_CREDIT_DAYLIGHT_AREA_LIGHT'
1957
+ )
1958
+ EFF_PACKAGE_ENERGY_CREDIT_MULTIFAMILY_CONTROL_LIGHT = (
1959
+ 'EFF_PACKAGE_ENERGY_CREDIT_MULTIFAMILY_CONTROL_LIGHT'
1960
+ )
1961
+ EFF_PACKAGE_ENERGY_CREDIT_LIGHT_LOAD_MANAGEMENT = (
1962
+ 'EFF_PACKAGE_ENERGY_CREDIT_LIGHT_LOAD_MANAGEMENT'
1963
+ )
1964
+ EFF_PACKAGE_ENERGY_CREDIT_HVAC_LOAD_MANAGEMENT = (
1965
+ 'EFF_PACKAGE_ENERGY_CREDIT_HVAC_LOAD_MANAGEMENT'
1966
+ )
1967
+ EFF_PACKAGE_ENERGY_CREDIT_SHADE_LOAD_MANAGEMENT = (
1968
+ 'EFF_PACKAGE_ENERGY_CREDIT_SHADE_LOAD_MANAGEMENT'
1969
+ )
1970
+ EFF_PACKAGE_ENERGY_CREDIT_ELECTRIC_STORAGE_LOAD_MANAGEMENT = (
1971
+ 'EFF_PACKAGE_ENERGY_CREDIT_ELECTRIC_STORAGE_LOAD_MANAGEMENT'
1972
+ )
1973
+ EFF_PACKAGE_ENERGY_CREDIT_HVAC_COOL_STORAGE_LOAD_MANAGEMENT = (
1974
+ 'EFF_PACKAGE_ENERGY_CREDIT_HVAC_COOL_STORAGE_LOAD_MANAGEMENT'
1975
+ )
1976
+ EFF_PACKAGE_ENERGY_CREDIT_SHW_THERMAL_STORAGE_LOAD_MANAGEMENT = (
1977
+ 'EFF_PACKAGE_ENERGY_CREDIT_SHW_THERMAL_STORAGE_LOAD_MANAGEMENT'
1978
+ )
1979
+ EFF_PACKAGE_ENERGY_CREDIT_BUILDING_MASS_LOAD_MANAGEMENT = (
1980
+ 'EFF_PACKAGE_ENERGY_CREDIT_BUILDING_MASS_LOAD_MANAGEMENT'
1981
+ )
1982
+ EFF_PACKAGE_ENERGY_CREDIT_ENHANCED_ENVELOPE_PERFORMANCE = (
1983
+ 'EFF_PACKAGE_ENERGY_CREDIT_ENHANCED_ENVELOPE_PERFORMANCE'
1984
+ )
1985
+ EFF_PACKAGE_ENERGY_CREDIT_EFFICIENT_ELEVATOR = (
1986
+ 'EFF_PACKAGE_ENERGY_CREDIT_EFFICIENT_ELEVATOR'
1987
+ )
1988
+
1989
+
1990
+ class RenewableSystemCapacityUnitOptions(StrEnum):
1991
+ RENEWABLE_SYSTEM_UNIT_WATT = 'RENEWABLE_SYSTEM_UNIT_WATT'
1992
+ RENEWABLE_SYSTEM_UNIT_BTUH = 'RENEWABLE_SYSTEM_UNIT_BTUH'
1993
+
1994
+
1995
+ class BallastTypeOptions(StrEnum):
1996
+ ELECTRONIC = 'ELECTRONIC'
1997
+ MAGNETIC = 'MAGNETIC'
1998
+ HYBRID = 'HYBRID'
1999
+ UNSPECIFIED_BALLAST = 'UNSPECIFIED_BALLAST'
2000
+ PULSE_START = 'PULSE_START'
2001
+ STANDARD = 'STANDARD'
2002
+ PREMIUM_EFF = 'PREMIUM_EFF'
2003
+ DIMMING = 'DIMMING'
2004
+
2005
+
2006
+ class Control(CustomBaseModel):
2007
+ model_config = ConfigDict(
2008
+ extra='ignore',
2009
+ )
2010
+ id: Annotated[
2011
+ str | int | None,
2012
+ Field(
2013
+ description='Scope-unique reference identifier for instances of this data group.'
2014
+ ),
2015
+ ] = None
2016
+ version: Annotated[
2017
+ str | None,
2018
+ Field(description='Software version - shall always set to an empty string'),
2019
+ ] = ''
2020
+ code: Annotated[
2021
+ EnergyCodeOptions | StateRegionEnergyCodeOptions,
2022
+ Field(description='Energy code types'),
2023
+ ]
2024
+ complianceMode: Annotated[
2025
+ ComplianceModeOptions | None, Field(description='Project compliance type')
2026
+ ] = 'UA'
2027
+
2028
+
2029
+ class Requirements(CustomBaseModel):
2030
+ model_config = ConfigDict(
2031
+ extra='ignore',
2032
+ )
2033
+ id: Annotated[
2034
+ str | int | None,
2035
+ Field(
2036
+ description='Scope-unique reference identifier for instances of this data group.'
2037
+ ),
2038
+ ] = None
2039
+ category: Annotated[
2040
+ str | None, Field(description='Requirement Answer - category')
2041
+ ] = ''
2042
+ requirementName: Annotated[
2043
+ str | None, Field(description='Requirement Answer - name')
2044
+ ] = ''
2045
+ status: Annotated[
2046
+ RequirementAnswerStatus | None, Field(description='Requirement Answer - status')
2047
+ ] = ''
2048
+ locationOnPlans: Annotated[
2049
+ str | None, Field(description='Requirement Answer - Location On Plans')
2050
+ ] = ''
2051
+ exceptionName: Annotated[
2052
+ str | None, Field(description='Requirement Answer - Exception Name')
2053
+ ] = ''
2054
+
2055
+
2056
+ class Window(CustomBaseModel):
2057
+ model_config = ConfigDict(
2058
+ extra='ignore',
2059
+ )
2060
+ id: Annotated[
2061
+ str | int | None,
2062
+ Field(
2063
+ description='Scope-unique reference identifier for instances of this data group.'
2064
+ ),
2065
+ ] = None
2066
+ bldgUseKey: Annotated[
2067
+ str, Field(description='key reference of the building use area data group')
2068
+ ]
2069
+ description: Annotated[
2070
+ str | None, Field(description='The name of the component')
2071
+ ] = ''
2072
+ adjacentSpaceType: Annotated[
2073
+ AdjacentSpaceTypeOptions | None,
2074
+ Field(description='Space type of the adjacent space'),
2075
+ ] = None
2076
+ adjacentSpaceBuildingType: Annotated[
2077
+ WholeBuildingTypeOptions | None,
2078
+ Field(description='Building type of the adjacent space'),
2079
+ ] = None
2080
+ assemblyType: Annotated[
2081
+ str | None, Field(description='The type of the component')
2082
+ ] = 'Window'
2083
+ propUValue: Annotated[
2084
+ float | None,
2085
+ Field(description='Proposed thermal transmittance of the window.', ge=0.0),
2086
+ ] = 0.0
2087
+ grossArea: Annotated[float | None, Field(description='gross area', ge=0.0)] = 0.0
2088
+ altExemptType: Annotated[
2089
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
2090
+ ] = None
2091
+ propShgc: Annotated[
2092
+ float | None, Field(description='Proposed solar heat gain coefficient', ge=0.0)
2093
+ ] = 0.0
2094
+ propProjectionFactor: Annotated[
2095
+ float | None, Field(description='Proposed window projection factor', ge=0.0)
2096
+ ] = 0.0
2097
+ frameType: Annotated[
2098
+ FenestrationFrameTypeOptions | None, Field(description='Window frame type')
2099
+ ] = None
2100
+ glazingType: Annotated[
2101
+ GlazingTypeOptions | None,
2102
+ Field(
2103
+ description='Glazing type - used when performance data option is energy code default (PERF_TYPE_DEFAULT)'
2104
+ ),
2105
+ ] = None
2106
+ propVt: Annotated[float | None, Field(ge=0.0)] = None
2107
+ preAltPropShgc: Annotated[float | None, Field(ge=0.0)] = 0.0
2108
+ solarType: Annotated[
2109
+ SolarTypeOptions | None,
2110
+ Field(
2111
+ description='Solar coating type - used when performance data option is energy code default (PERF_TYPE_DEFAULT)'
2112
+ ),
2113
+ ] = None
2114
+ orientation: OrientationOptions | None = 'UNSPECIFIED_ORIENTATION'
2115
+ glazingMaterialType: Annotated[
2116
+ GlazingMaterialTypeOptions | None, Field(description='Glazing material type')
2117
+ ] = None
2118
+ productType: Annotated[
2119
+ WindowProductionTypeOptions | None, Field(description='Product Type')
2120
+ ] = None
2121
+ allowanceType: Annotated[
2122
+ EnvelopeAssemblyAllowanceTypeOptions | None, Field(description='allowance type')
2123
+ ] = None
2124
+ exemptionType: EnvelopeAssemblyExemptionOptions | None = None
2125
+ constructionType: Annotated[
2126
+ ConstructionTypeOptions | None,
2127
+ Field(description='Construction types - compliance code specification'),
2128
+ ] = None
2129
+ isSiteShading: Annotated[bool | None, Field(description='Is the site shaded')] = (
2130
+ None
2131
+ )
2132
+ perfDataType: Annotated[
2133
+ PerfDataTypeOptions | None, Field(description='Performance data type option')
2134
+ ] = None
2135
+ productId: Annotated[str | None, Field(description='Product ID')] = None
2136
+ preAltPropUval: Annotated[float | None, Field(ge=0.0)] = 0.0
2137
+ windowOpenType: Annotated[
2138
+ WindowOpenTypeOptions | None, Field(description='Window open type')
2139
+ ] = None
2140
+ cavityRValue: Annotated[float | None, Field(ge=0.0)] = 0.0
2141
+ continuousRValue: Annotated[
2142
+ float | None,
2143
+ Field(
2144
+ description='Continuous insulation on the door. Can be exterior or interior or both.',
2145
+ ge=0.0,
2146
+ ),
2147
+ ] = 0.0
2148
+
2149
+
2150
+ class Door(CustomBaseModel):
2151
+ model_config = ConfigDict(
2152
+ extra='ignore',
2153
+ )
2154
+ id: Annotated[
2155
+ str | int | None,
2156
+ Field(
2157
+ description='Scope-unique reference identifier for instances of this data group.'
2158
+ ),
2159
+ ] = None
2160
+ bldgUseKey: Annotated[
2161
+ str, Field(description='key reference of the building use area data group')
2162
+ ]
2163
+ description: Annotated[
2164
+ str | None, Field(description='The name of the component')
2165
+ ] = ''
2166
+ assemblyType: Annotated[
2167
+ str | None, Field(description='The type of the component')
2168
+ ] = 'Door'
2169
+ adjacentSpaceType: Annotated[
2170
+ AdjacentSpaceTypeOptions | None,
2171
+ Field(description='Space type of the adjacent space'),
2172
+ ] = None
2173
+ adjacentSpaceBuildingType: Annotated[
2174
+ WholeBuildingTypeOptions | None,
2175
+ Field(description='Building type of the adjacent space'),
2176
+ ] = None
2177
+ propUValue: Annotated[
2178
+ float | None,
2179
+ Field(description='Proposed thermal transmittance of the window.', ge=0.0),
2180
+ ] = 0.0
2181
+ grossArea: Annotated[float | None, Field(description='gross area', ge=0.0)] = None
2182
+ altExemptType: Annotated[
2183
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
2184
+ ] = None
2185
+ propShgc: Annotated[
2186
+ float | None, Field(description='Proposed solar heat gain coefficient', ge=0.0)
2187
+ ] = 0.0
2188
+ propProjectionFactor: Annotated[
2189
+ float | None, Field(description='Proposed window projection factor', ge=0.0)
2190
+ ] = 0.0
2191
+ frameType: Annotated[
2192
+ FenestrationFrameTypeOptions | None, Field(description='Glass door frame type')
2193
+ ] = None
2194
+ glazingType: Annotated[
2195
+ GlazingTypeOptions | None,
2196
+ Field(
2197
+ description='Glazing type - used when performance data option is energy code default (PERF_TYPE_DEFAULT)'
2198
+ ),
2199
+ ] = None
2200
+ propVt: Annotated[float | None, Field(ge=0.0)] = None
2201
+ preAltPropShgc: Annotated[float | None, Field(ge=0.0)] = 0.0
2202
+ solarType: Annotated[
2203
+ SolarTypeOptions | None,
2204
+ Field(
2205
+ description='Solar coating type - used when performance data option is energy code default (PERF_TYPE_DEFAULT)'
2206
+ ),
2207
+ ] = None
2208
+ orientation: OrientationOptions | None = 'UNSPECIFIED_ORIENTATION'
2209
+ glazingMaterialType: Annotated[
2210
+ GlazingMaterialTypeOptions | None, Field(description='Glazing material type')
2211
+ ] = None
2212
+ productType: Annotated[
2213
+ WindowProductionTypeOptions | None, Field(description='Product Type')
2214
+ ] = None
2215
+ allowanceType: Annotated[
2216
+ EnvelopeAssemblyAllowanceTypeOptions | None, Field(description='allowance type')
2217
+ ] = None
2218
+ exemptionType: EnvelopeAssemblyExemptionOptions | None = None
2219
+ constructionType: Annotated[
2220
+ ConstructionTypeOptions | None,
2221
+ Field(description='Construction types - compliance code specification'),
2222
+ ] = None
2223
+ isSiteShading: Annotated[bool | None, Field(description='Is the site shaded')] = (
2224
+ None
2225
+ )
2226
+ perfDataType: Annotated[
2227
+ PerfDataTypeOptions | None, Field(description='Performance data type option')
2228
+ ] = None
2229
+ productId: Annotated[str | None, Field(description='Product ID')] = None
2230
+ preAltPropUval: Annotated[float | None, Field(ge=0.0)] = 0.0
2231
+ doorType: Annotated[DoorTypeOptions | None, Field(description='Door types')] = None
2232
+ doorOpenType: Annotated[
2233
+ DoorOpenTypeOptions | None, Field(description='Door open types')
2234
+ ] = None
2235
+ doorEntranceType: Annotated[
2236
+ DoorEntranceTypeOptions | None, Field(description='Door entrance types')
2237
+ ] = None
2238
+ cavityRValue: Annotated[float | None, Field(ge=0.0)] = 0.0
2239
+ continuousRValue: Annotated[
2240
+ float | None,
2241
+ Field(
2242
+ description='Continuous insulation on the door. Can be exterior or interior or both.',
2243
+ ge=0.0,
2244
+ ),
2245
+ ] = 0.0
2246
+
2247
+
2248
+ class Skylight(CustomBaseModel):
2249
+ model_config = ConfigDict(
2250
+ extra='ignore',
2251
+ )
2252
+ id: Annotated[
2253
+ str | int | None,
2254
+ Field(
2255
+ description='Scope-unique reference identifier for instances of this data group.'
2256
+ ),
2257
+ ] = None
2258
+ bldgUseKey: Annotated[
2259
+ str, Field(description='key reference of the building use area data group')
2260
+ ]
2261
+ description: Annotated[
2262
+ str | None, Field(description='The name of the component')
2263
+ ] = ''
2264
+ assemblyType: Annotated[
2265
+ str | None, Field(description='The type of the component')
2266
+ ] = 'Skylight'
2267
+ adjacentSpaceType: Annotated[
2268
+ AdjacentSpaceTypeOptions | None,
2269
+ Field(description='Space type of the adjacent space'),
2270
+ ] = None
2271
+ adjacentSpaceBuildingType: Annotated[
2272
+ WholeBuildingTypeOptions | None,
2273
+ Field(description='Building type of the adjacent space'),
2274
+ ] = None
2275
+ propUValue: Annotated[
2276
+ float | None,
2277
+ Field(description='Proposed thermal transmittance of the window.', ge=0.0),
2278
+ ] = 0.0
2279
+ grossArea: Annotated[float | None, Field(description='gross area', ge=0.0)] = 0.0
2280
+ orientation: OrientationOptions | None = 'UNSPECIFIED_ORIENTATION'
2281
+ altExemptType: Annotated[
2282
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
2283
+ ] = None
2284
+ propShgc: Annotated[
2285
+ float | None, Field(description='Proposed solar heat gain coefficient', ge=0.0)
2286
+ ] = 0.0
2287
+ propProjectionFactor: Annotated[
2288
+ float | None, Field(description='Proposed window projection factor', ge=0.0)
2289
+ ] = 0.0
2290
+ frameType: Annotated[
2291
+ FenestrationFrameTypeOptions | None, Field(description='Window frame type')
2292
+ ] = None
2293
+ glazingType: Annotated[
2294
+ GlazingTypeOptions | None,
2295
+ Field(
2296
+ description='Glazing type - used when performance data option is energy code default (PERF_TYPE_DEFAULT)'
2297
+ ),
2298
+ ] = None
2299
+ propVt: Annotated[float | None, Field(ge=0.0)] = None
2300
+ preAltPropShgc: Annotated[float | None, Field(ge=0.0)] = 0.0
2301
+ solarType: Annotated[
2302
+ SolarTypeOptions | None,
2303
+ Field(
2304
+ description='Solar coating type - used when performance data option is energy code default (PERF_TYPE_DEFAULT)'
2305
+ ),
2306
+ ] = None
2307
+ glazingMaterialType: Annotated[
2308
+ GlazingMaterialTypeOptions | None, Field(description='Glazing material type')
2309
+ ] = None
2310
+ productType: Annotated[
2311
+ WindowProductionTypeOptions | None, Field(description='Product Type')
2312
+ ] = None
2313
+ allowanceType: Annotated[
2314
+ EnvelopeAssemblyAllowanceTypeOptions | None, Field(description='allowance type')
2315
+ ] = None
2316
+ exemptionType: EnvelopeAssemblyExemptionOptions | None = None
2317
+ constructionType: Annotated[
2318
+ ConstructionTypeOptions | None,
2319
+ Field(description='Construction types - compliance code specification'),
2320
+ ] = None
2321
+ isSiteShading: Annotated[bool | None, Field(description='Is the site shaded')] = (
2322
+ None
2323
+ )
2324
+ perfDataType: Annotated[
2325
+ PerfDataTypeOptions | None, Field(description='Performance data type option')
2326
+ ] = None
2327
+ productId: Annotated[str | None, Field(description='Product ID')] = None
2328
+ preAltPropUval: Annotated[float | None, Field(ge=0.0)] = 0.0
2329
+ curbType: Annotated[
2330
+ SkylightCurbTypeOptions | None, Field(description='Skylight curb type')
2331
+ ] = None
2332
+
2333
+
2334
+ class Roof(CustomBaseModel):
2335
+ model_config = ConfigDict(
2336
+ extra='ignore',
2337
+ )
2338
+ id: Annotated[
2339
+ str | int | None,
2340
+ Field(
2341
+ description='Scope-unique reference identifier for instances of this data group.'
2342
+ ),
2343
+ ] = None
2344
+ description: Annotated[
2345
+ str | None, Field(description='The name of the component')
2346
+ ] = ''
2347
+ assemblyType: Annotated[
2348
+ str | None, Field(description='The type of the component')
2349
+ ] = 'Roof'
2350
+ bldgUseKey: Annotated[
2351
+ str, Field(description='key reference of the building use area data group')
2352
+ ]
2353
+ adjacentSpaceType: Annotated[
2354
+ AdjacentSpaceTypeOptions | None,
2355
+ Field(description='Space type of the adjacent space'),
2356
+ ] = None
2357
+ adjacentSpaceBuildingType: Annotated[
2358
+ WholeBuildingTypeOptions | None,
2359
+ Field(description='Building type of the adjacent space'),
2360
+ ] = None
2361
+ allowanceType: Annotated[
2362
+ EnvelopeAssemblyAllowanceTypeOptions | None, Field(description='allowance type')
2363
+ ] = None
2364
+ constructionType: Annotated[
2365
+ ConstructionTypeOptions | None,
2366
+ Field(description='Construction types - compliance code specification'),
2367
+ ] = None
2368
+ exemptionType: EnvelopeAssemblyExemptionOptions | None = None
2369
+ orientation: OrientationOptions | None = 'UNSPECIFIED_ORIENTATION'
2370
+ skylight: Annotated[list[Skylight], Field(description='Skylights on the roof')]
2371
+ cavityRValue: Annotated[float | None, Field(ge=0.0)] = 0.0
2372
+ continuousRValue: Annotated[
2373
+ float | None,
2374
+ Field(
2375
+ description='Continuous insulation on the above grade wall. Can be exterior or interior or both.',
2376
+ ge=0.0,
2377
+ ),
2378
+ ] = 0.0
2379
+ propUValue: Annotated[
2380
+ float | None,
2381
+ Field(
2382
+ description='Proposed thermal transmittance of the above grade wall.',
2383
+ ge=0.0,
2384
+ ),
2385
+ ] = 0.0
2386
+ altExemptType: Annotated[
2387
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
2388
+ ] = None
2389
+ grossArea: Annotated[float | None, Field(description='gross area', ge=0.0)] = 0.0
2390
+ roofType: Annotated[RoofTypeOptions | None, Field(description='roof type')] = None
2391
+ highAlbedoRoofReqType: Annotated[
2392
+ HighAlbedoRoofReqTypeOptions | None,
2393
+ Field(
2394
+ description='high albedo roof type - this include the albedo method and emeptions'
2395
+ ),
2396
+ ]
2397
+ otherRoofType: Annotated[
2398
+ OtherRoofTypeOptions | None,
2399
+ Field(
2400
+ description='Roof types when selected Other RoofType - null if it is not Other RoofType'
2401
+ ),
2402
+ ] = None
2403
+ roofInsulType: Annotated[
2404
+ RoofInsulationTypeOptions | None, Field(description='roof insulation types')
2405
+ ] = None
2406
+ solarReflectance: Annotated[
2407
+ float | None, Field(description='solar reflectance', ge=0.0)
2408
+ ] = 0.0
2409
+ solarReflectanceIndex: Annotated[
2410
+ float | None, Field(description='solar reflectance index', ge=0.0)
2411
+ ] = 0.0
2412
+ thermalEmittance: Annotated[
2413
+ float | None, Field(description='thermal emittance', ge=0.0)
2414
+ ] = 0.0
2415
+ purlinSpacing: Annotated[
2416
+ float | None, Field(description='Roof purlin spacing', ge=0.0)
2417
+ ] = 0.0
2418
+
2419
+
2420
+ class Floor(CustomBaseModel):
2421
+ model_config = ConfigDict(
2422
+ extra='ignore',
2423
+ )
2424
+ id: Annotated[
2425
+ str | int | None,
2426
+ Field(
2427
+ description='Scope-unique reference identifier for instances of this data group.'
2428
+ ),
2429
+ ] = None
2430
+ description: Annotated[str | None, Field(description='The name of the component')]
2431
+ assemblyType: Annotated[str, Field(description='The type of the component')]
2432
+ bldgUseKey: Annotated[
2433
+ str, Field(description='key reference of the building use area data group')
2434
+ ]
2435
+ adjacentSpaceType: Annotated[
2436
+ AdjacentSpaceTypeOptions | None,
2437
+ Field(description='Space type of the adjacent space'),
2438
+ ] = None
2439
+ allowanceType: Annotated[
2440
+ EnvelopeAssemblyAllowanceTypeOptions | None, Field(description='allowance type')
2441
+ ] = None
2442
+ constructionType: Annotated[
2443
+ ConstructionTypeOptions | None,
2444
+ Field(description='Construction types - compliance code specification'),
2445
+ ] = None
2446
+ exemptionType: EnvelopeAssemblyExemptionOptions | None = None
2447
+ orientation: OrientationOptions | None = None
2448
+ cavityRValue: Annotated[float | None, Field(ge=0.0)] = None
2449
+ continuousRValue: Annotated[
2450
+ float | None,
2451
+ Field(
2452
+ description='Continuous insulation on the above grade wall. Can be exterior or interior or both.',
2453
+ ge=0.0,
2454
+ ),
2455
+ ] = None
2456
+ propUValue: Annotated[
2457
+ float | None,
2458
+ Field(
2459
+ description='Proposed thermal transmittance of the above grade wall.',
2460
+ ge=0.0,
2461
+ ),
2462
+ ] = None
2463
+ altExemptType: Annotated[
2464
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
2465
+ ] = None
2466
+ grossArea: Annotated[float | None, Field(description='gross area', ge=0.0)] = None
2467
+ floorType: Annotated[FloorTypeOptions | None, Field(description='Floor type')] = (
2468
+ None
2469
+ )
2470
+ depthOfInsulation: Annotated[
2471
+ int | None,
2472
+ Field(
2473
+ description='depth of insulation, it only works on a certain numbers including 1, 2, 3, 4, 93, 94, 95 ,96, 97, 98, 99. Mapping is in the $comment',
2474
+ ge=0,
2475
+ ),
2476
+ ] = None
2477
+ slabFullInsulBelowMinRValue: Annotated[
2478
+ float | None,
2479
+ Field(
2480
+ description='Full insulation R value below the slab -> the number if fixed based on the selection of depthOfInsulation',
2481
+ ge=0.0,
2482
+ ),
2483
+ ] = None
2484
+ insulationPosition: Annotated[
2485
+ SlabInsulationPositionOptions | None,
2486
+ Field(description='The position of the insulation'),
2487
+ ] = None
2488
+ hasEdgeInsul: Annotated[
2489
+ bool | None,
2490
+ Field(
2491
+ description='A boolean to indicate whether the bldg use area uses edge insulation'
2492
+ ),
2493
+ ] = None
2494
+ floorExposedFrameType: Annotated[
2495
+ FloorExposedFrameType | None, Field(description='Floor Exposed Frame type')
2496
+ ] = None
2497
+
2498
+
2499
+ class HVACSystem(CustomBaseModel):
2500
+ model_config = ConfigDict(
2501
+ extra='ignore',
2502
+ )
2503
+ id: Annotated[
2504
+ str | int | None,
2505
+ Field(
2506
+ description='Scope-unique reference identifier for instances of this data group.'
2507
+ ),
2508
+ ] = None
2509
+ altExemptType: Annotated[
2510
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
2511
+ ] = None
2512
+ condenser: Annotated[
2513
+ CondenserTypeOptions | None, Field(description='condenser type')
2514
+ ] = 'UNKNOWN_CONDENSER'
2515
+ constVolMixingBox: Annotated[
2516
+ bool | None,
2517
+ Field(
2518
+ description='Flag to identify whether the HVAC system has constant volume mixing box (deprecated, set to false).'
2519
+ ),
2520
+ ] = False
2521
+ coolingEquipCapacity: Annotated[
2522
+ float | None,
2523
+ Field(
2524
+ description='Cooling equipment capacity, kBtu/hr as default, but can be tons based on system type.',
2525
+ ge=0.0,
2526
+ ),
2527
+ ] = 0.0
2528
+ coolingEquipment: Annotated[
2529
+ CoolingEquipmentTypeOptions | None, Field(description='Cooling equipment')
2530
+ ] = 'UNKNOWN_COOLING_EQUIPMENT'
2531
+ description: Annotated[
2532
+ str | None, Field(description='unique name of the HVAC system')
2533
+ ] = ''
2534
+ descriptionCoolEquip: Annotated[
2535
+ str | None, Field(description='name of the cooling equipment')
2536
+ ] = 'Cooling Equip'
2537
+ descriptionHeatEquip: Annotated[
2538
+ str | None, Field(description='name of the heating equipment')
2539
+ ] = 'Heating Equip'
2540
+ distribution: Annotated[
2541
+ DistributionTypeOptions | None,
2542
+ Field(description='HVAC air distribution method'),
2543
+ ] = 'UNKNOWN_DISTRIBUTION'
2544
+ economizer: Annotated[
2545
+ EconomizerTypeOptions | None, Field(description='HVAC economizer type')
2546
+ ] = 'UNKNOWN_ECONOMIZER'
2547
+ economizerException: Annotated[
2548
+ EconomizerExceptionOptions | None, Field(description='Economizer exceptions')
2549
+ ] = 'UNKNOWN_ECONOMIZER_EXCEPTION'
2550
+ electricReheat: Annotated[bool | None, Field(description='Electric reheat')] = False
2551
+ fanControl: Annotated[
2552
+ FanControlOptions | None, Field(description='Fan control')
2553
+ ] = 'UNKNOWN_FAN_CONTROL'
2554
+ fanPoweredVav: Annotated[
2555
+ bool | None,
2556
+ Field(description='Flag to identify whether the VAV system is fan powered'),
2557
+ ] = False
2558
+ fanSystemKey: Annotated[str | None, Field(description='Fan system key')] = None
2559
+ fuel: Annotated[FuelTypeOptions | None, Field(description='Fuel type')] = (
2560
+ 'UNKNOWN_FUEL'
2561
+ )
2562
+ spaceHeatingSystemException: Annotated[
2563
+ SpaceHeatingSystemExceptionOptions | None,
2564
+ Field(
2565
+ description='Exceptions for electric space heating system - Denver 2022 requirement. Can be null for other codes'
2566
+ ),
2567
+ ] = None
2568
+ heatingEquipCapacity: Annotated[
2569
+ float | None, Field(description='Heating equipment capacity', ge=0.0)
2570
+ ] = 0.0
2571
+ heatingEquipment: Annotated[
2572
+ HeatingEquipmentTypeOptions | None, Field(description='Heating equipment type')
2573
+ ] = None
2574
+ heatPump: Annotated[
2575
+ HeatPumpTypeOptions | None, Field(description='Heat pump type')
2576
+ ] = None
2577
+ hydronicReheat: Annotated[
2578
+ bool | None,
2579
+ Field(
2580
+ description='Flag to identify whether the HVAC has a hydronic reheat system, (deprecated, set to false)'
2581
+ ),
2582
+ ] = None
2583
+ isHeatingSysWeatherized: Annotated[
2584
+ bool | None,
2585
+ Field(
2586
+ description='Flag to identify whether the heating system is weatherized, (deprecated, set to false)'
2587
+ ),
2588
+ ] = None
2589
+ perimeterSystem: Annotated[
2590
+ bool | None,
2591
+ Field(
2592
+ description='Flag to identify whether the HVAC system is used to condition perimeter zones'
2593
+ ),
2594
+ ] = None
2595
+ propCoolingEquipEfficiencyPartial: Annotated[
2596
+ float | None,
2597
+ Field(
2598
+ description='Proposed system cooling equipment part load efficiency', ge=0.0
2599
+ ),
2600
+ ] = None
2601
+ propCoolingEquipEfficiency: Annotated[
2602
+ float | None,
2603
+ Field(description='Proposed system cooling equipment efficiency', ge=0.0),
2604
+ ] = None
2605
+ propHeatingEquipEfficiency: Annotated[
2606
+ float | None,
2607
+ Field(description='Proposed system heating equipment efficiency', ge=0.0),
2608
+ ] = None
2609
+ quantity: Annotated[
2610
+ int | None, Field(description='Quantity of HVAC system', ge=1)
2611
+ ] = None
2612
+ quantityCoolEquip: Annotated[
2613
+ int | None, Field(description='Quantity of the cooling equipment', ge=0)
2614
+ ] = None
2615
+ quantityHeatEquip: Annotated[
2616
+ int | None, Field(description='Quantity of the heating equipment', ge=0)
2617
+ ] = None
2618
+ reheatRecoolCoil: Annotated[
2619
+ bool | None,
2620
+ Field(
2621
+ description='Flag to identify whether the coils are reheat and recooled (deprecated, set to false)'
2622
+ ),
2623
+ ] = None
2624
+ returnFanHp: Annotated[
2625
+ float | None, Field(description='Return fan HP (deprecated, set to 0)', ge=0.0)
2626
+ ] = None
2627
+ steamReheat: Annotated[
2628
+ bool | None,
2629
+ Field(
2630
+ description='Flag to identify whether the HVAC system is steam reheated (deprecated, set to false)'
2631
+ ),
2632
+ ] = None
2633
+ supplyFanHp: Annotated[
2634
+ float | None, Field(description='Supply fan HP (deprecated, set to 0)', ge=0.0)
2635
+ ] = None
2636
+ supplyStaticPressure: Annotated[
2637
+ float | None,
2638
+ Field(description='Supply static pressure (deprecated, set to 0)', ge=0.0),
2639
+ ] = None
2640
+ systemType: Annotated[
2641
+ str | None, Field(description='System type (deprecated, set to HVAC)')
2642
+ ] = None
2643
+ totalFanHp: Annotated[
2644
+ float | None, Field(description='Total fan HP (deprecated, set to 0)', ge=0.0)
2645
+ ] = None
2646
+ varAirBox: Annotated[bool | None, Field(description='VAR Air Box')] = None
2647
+ varAirVolMixingBox: Annotated[
2648
+ bool | None, Field(description='VAR air volume mixing box')
2649
+ ] = None
2650
+ zone: Annotated[ZoneLayoutOptions | None, Field(description='HVAC zone layout')] = (
2651
+ None
2652
+ )
2653
+
2654
+
2655
+ class FixtureSchedule(CustomBaseModel):
2656
+ model_config = ConfigDict(
2657
+ extra='ignore',
2658
+ )
2659
+ id: Annotated[
2660
+ int | None,
2661
+ Field(
2662
+ description='Scope-unique reference identifier for instances of this data group.'
2663
+ ),
2664
+ ] = None
2665
+ lightingId: Annotated[
2666
+ int | None,
2667
+ Field(
2668
+ description='Scope-unique reference identifier for instances of the parent lighting group.'
2669
+ ),
2670
+ ] = None
2671
+ scheduleFixtureKey: Annotated[
2672
+ str, Field(description='UUID to identify this fixture schedule.')
2673
+ ]
2674
+ description: Annotated[
2675
+ str | None, Field(description='Description of the fixture schedule')
2676
+ ]
2677
+ fixtureType: Annotated[
2678
+ str,
2679
+ Field(
2680
+ description='This field temporarily used to describe the fixture schedule.'
2681
+ ),
2682
+ ]
2683
+ fixtureWattage: Annotated[
2684
+ float | None, Field(description='fixture wattage', ge=0.0)
2685
+ ]
2686
+ lightingType: Annotated[
2687
+ LightingTypeOptions, Field(description='lighting fixture type')
2688
+ ]
2689
+ trackCircuitBreakerAmps: Annotated[
2690
+ float | None, Field(description='Track lighting circuit breaker amps', ge=0.0)
2691
+ ] = None
2692
+ trackCircuitBreakerVolts: Annotated[
2693
+ float | None,
2694
+ Field(description='Track lighting circuit breaker voltage', ge=0.0),
2695
+ ] = None
2696
+ trackCurrentLimiterWattage: Annotated[
2697
+ float | None, Field(description='Track current limiter wattage', ge=0.0)
2698
+ ] = None
2699
+ trackLength: Annotated[
2700
+ float | None, Field(description='Track lighting length', ge=0.0)
2701
+ ] = None
2702
+ trackTotalLuminaireWattage: Annotated[
2703
+ float | None,
2704
+ Field(description='Track lighting total luminaire wattage', ge=0.0),
2705
+ ] = None
2706
+ trackTransformerWattage: Annotated[
2707
+ float | None, Field(description='Track lighting former wattage', ge=0.0)
2708
+ ] = None
2709
+ trackLightingWattageBasisType: Annotated[
2710
+ TrackLightingWattageBasisTypeOptions | None,
2711
+ Field(description='Track lighting wattage basis type'),
2712
+ ] = None
2713
+
2714
+
2715
+ class HVACPlant(CustomBaseModel):
2716
+ model_config = ConfigDict(
2717
+ extra='ignore',
2718
+ )
2719
+ id: Annotated[
2720
+ str | int | None,
2721
+ Field(
2722
+ description='Scope-unique reference identifier for instances of this data group.'
2723
+ ),
2724
+ ] = None
2725
+ altExemptType: Annotated[
2726
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
2727
+ ] = None
2728
+ boilerDraftType: Annotated[
2729
+ BoilerDraftTypeOptions | None, Field(description='Boiler draft type')
2730
+ ] = None
2731
+ boilerFuel: Annotated[
2732
+ FuelTypeOptions | None, Field(description='Boiler fuel type')
2733
+ ] = None
2734
+ chiller: Annotated[ChillerTypeOptions | None, Field(description='Chiller type')] = (
2735
+ None
2736
+ )
2737
+ condenser: Annotated[
2738
+ CondenserTypeOptions | None, Field(description='Condenser type')
2739
+ ] = None
2740
+ condenserFlowRate: Annotated[
2741
+ float | None,
2742
+ Field(
2743
+ description='Condenser flow rate - this data comes from engine. User change this data does not have impact on compliance check',
2744
+ ge=0.0,
2745
+ ),
2746
+ ] = None
2747
+ condenserLeavingTemperature: Annotated[
2748
+ float | None,
2749
+ Field(
2750
+ description='leaving water temperature - this data comes from engine. User change this data does not have impact on compliance check',
2751
+ ge=0.0,
2752
+ ),
2753
+ ] = None
2754
+ coolingPlant: Annotated[
2755
+ CoolingPlantTypeOptions | None, Field(description='Cooling Plant Types')
2756
+ ] = None
2757
+ coolingPlantCapacity: Annotated[
2758
+ float | None, Field(description='Cooling plant capacity', ge=0.0)
2759
+ ] = None
2760
+ description: Annotated[str | None, Field(description='Plant unique name')] = None
2761
+ enteringCondenserWaterTemperature: Annotated[
2762
+ float | None,
2763
+ Field(
2764
+ description='Condenser entering water temperature - this data comes from engine. User change this data does not have impact on compliance check',
2765
+ ge=0.0,
2766
+ ),
2767
+ ] = None
2768
+ evaporatorLeavingTemperature: Annotated[
2769
+ float | None,
2770
+ Field(
2771
+ description='Evaporator leaving water temperature - this data comes from engine. User change this data does not have impact on compliance check',
2772
+ ge=0.0,
2773
+ ),
2774
+ ] = None
2775
+ heatingPlant: Annotated[
2776
+ HeatingPlantTypeOptions | None, Field(description='Heating Plant Types')
2777
+ ] = None
2778
+ heatingPlantCapacity: Annotated[
2779
+ float | None, Field(description='Heating Plant Capacity', ge=0.0)
2780
+ ] = None
2781
+ heatPumpChillerHeatingSourceConditions: Annotated[
2782
+ HeatPumpChillerHeatingSourceConditionOptions | None,
2783
+ Field(description='Heat Pump Chiller Heating Source Condition'),
2784
+ ] = None
2785
+ heatPumpChillerLeavingHeatingWaterTemp: Annotated[
2786
+ HeatPumpChillerLeavingHeatingWaterTempOptions | None,
2787
+ Field(description='Heat pump chiller leaving heating water temperature'),
2788
+ ] = None
2789
+ heatPumpChillerType: Annotated[
2790
+ HeatPumpChillerTypeOptions | None, Field(description='Heat pump chiller type')
2791
+ ] = None
2792
+ heatRecovery: Annotated[
2793
+ bool | None,
2794
+ Field(
2795
+ description='Flag indicates whether the system has heat recovery feature'
2796
+ ),
2797
+ ] = None
2798
+ heatPumpSimultaneousCoolingAndHeating: Annotated[
2799
+ bool | None,
2800
+ Field(
2801
+ description='Flag indicates whether the heat pump can do simultaneous cooling and heating'
2802
+ ),
2803
+ ] = None
2804
+ heatRejection: Annotated[
2805
+ HeatRejectionTypeOptions | None, Field(description='Heat rejection types')
2806
+ ] = None
2807
+ leavingChilledWaterTemperature: Annotated[
2808
+ float | None,
2809
+ Field(
2810
+ description='Leaving chiller water temperature - this data comes from engine. User change this data does not have impact on compliance check',
2811
+ ge=0.0,
2812
+ ),
2813
+ ] = None
2814
+ plantType: Annotated[PlantTypeOptions | None, Field(description='Plant type')] = (
2815
+ None
2816
+ )
2817
+ propCoolingPlantEfficiencyPartial: Annotated[
2818
+ float | None,
2819
+ Field(description='Proposed cooling plant part load efficiency', ge=0.0),
2820
+ ] = None
2821
+ propCoolingPlantEfficiency: Annotated[
2822
+ float | None, Field(description='Proposed cooling plant efficiency', ge=0.0)
2823
+ ] = None
2824
+ propHeatingPlantEfficiency: Annotated[
2825
+ float | None, Field(description='Proposed heating plant efficiency', ge=0.0)
2826
+ ] = None
2827
+ quantity: Annotated[
2828
+ int | None, Field(description='Quantity of the plant system', ge=1)
2829
+ ] = None
2830
+ systemType: Annotated[str | None, Field(description='Deprecated, system type')] = (
2831
+ None
2832
+ )
2833
+ twoPipeSystem: Annotated[
2834
+ bool | None,
2835
+ Field(description='Flag identifies if the plant system is a two pipe system'),
2836
+ ] = None
2837
+ waterloopHeatPump: Annotated[
2838
+ bool | None,
2839
+ Field(
2840
+ description='Flag identifies if the plant system is a water loop heat pump'
2841
+ ),
2842
+ ] = None
2843
+ compliancePath: Annotated[
2844
+ CompliancePathOptions | None, Field(description='Compliance path')
2845
+ ] = None
2846
+ efficiencyRequirementException: Annotated[
2847
+ EquipmentEfficiencyRequirementExceptionOptions | None,
2848
+ Field(description='Natural gas boiler efficiency requirement exceptions'),
2849
+ ] = 'EFF_EXCEPTION_UNSPECIFIED'
2850
+
2851
+
2852
+ class Fan(CustomBaseModel):
2853
+ model_config = ConfigDict(
2854
+ extra='ignore',
2855
+ )
2856
+ id: Annotated[
2857
+ str | int | None,
2858
+ Field(
2859
+ description='Scope-unique reference identifier for instances of this data group.'
2860
+ ),
2861
+ ] = None
2862
+ brakeHp: Annotated[
2863
+ float | None,
2864
+ Field(
2865
+ description='Maximum brake HP, this value is calculated by engine.', ge=0.0
2866
+ ),
2867
+ ] = None
2868
+ description: Annotated[str | None, Field(description='Unique name of the fan')] = (
2869
+ None
2870
+ )
2871
+ designBrakeHp: Annotated[
2872
+ float | None, Field(description='Fan design brake HP', ge=0.0)
2873
+ ] = None
2874
+ fanDesignEfficiency: Annotated[
2875
+ float | None, Field(description='Fan design efficiency', ge=0.0, le=100.0)
2876
+ ] = None
2877
+ fanEfficiency: Annotated[
2878
+ float | None,
2879
+ Field(
2880
+ description='Fan efficiency. In latest code, it is the FEI, legacy code (IECC 2015 e.g.,) it is FEG. Based on what index it is, the range is different.',
2881
+ ge=0.0,
2882
+ ),
2883
+ ] = None
2884
+ fanEfficiencyExceptionType: Annotated[
2885
+ FanEfficiencyExceptionTypeOptions | None,
2886
+ Field(description='Fan efficiency execption type'),
2887
+ ] = None
2888
+ fanType: Annotated[FanTypeOptions | None, Field(description='Fan type')] = None
2889
+ fanVolumeType: Annotated[
2890
+ FanVolumeTypeOptions | None, Field(description='Fan volume control type')
2891
+ ] = None
2892
+ maxNameplateHp: Annotated[
2893
+ float | None,
2894
+ Field(
2895
+ description='Maximum name plate HP - this number shall be calculated by engine',
2896
+ ge=0.0,
2897
+ ),
2898
+ ] = None
2899
+ nameplateHp: Annotated[float | None, Field(description='Name plate HP', ge=0.0)] = (
2900
+ None
2901
+ )
2902
+ totalFanEfficiency: Annotated[
2903
+ float | None, Field(description='Peak fan efficiency', ge=0.0, le=100.0)
2904
+ ] = None
2905
+ volume: Annotated[float | None, Field(description='Fan volume', ge=0.0)] = None
2906
+
2907
+
2908
+ class FanSystemPressureDropCredits(CustomBaseModel):
2909
+ model_config = ConfigDict(
2910
+ extra='ignore',
2911
+ )
2912
+ id: Annotated[
2913
+ str | int | None,
2914
+ Field(
2915
+ description='Scope-unique reference identifier for instances of this data group.'
2916
+ ),
2917
+ ] = None
2918
+ cfm: Annotated[
2919
+ float | None,
2920
+ Field(
2921
+ description='Effective air volume when applying pressure drop credit',
2922
+ ge=0.0,
2923
+ ),
2924
+ ] = None
2925
+ designCredit: Annotated[
2926
+ float | None,
2927
+ Field(
2928
+ description='value for pressure drop credit at design conditions or apply to clean filter pressure drop',
2929
+ ge=0.0,
2930
+ ),
2931
+ ] = None
2932
+ pressureDropCredit: Annotated[
2933
+ float | None,
2934
+ Field(
2935
+ description='The calculated pressure drop credits. This is calculated value from engine.',
2936
+ ge=0.0,
2937
+ ),
2938
+ ] = None
2939
+ recoveryEffectiveness: Annotated[
2940
+ float | None, Field(description='Energy recovery effectiveness', ge=0.0, le=1.0)
2941
+ ] = None
2942
+ verticalDuctLength: Annotated[
2943
+ float | None, Field(description='Vertical duct length', ge=0.0)
2944
+ ] = None
2945
+ type: Annotated[PressureDropTypeOptions, Field(description='Pressure drop type')]
2946
+
2947
+
2948
+ class ServiceWaterHeatingSystem(CustomBaseModel):
2949
+ model_config = ConfigDict(
2950
+ extra='ignore',
2951
+ )
2952
+ id: Annotated[
2953
+ str | int | None,
2954
+ Field(
2955
+ description='Scope-unique reference identifier for instances of this data group.'
2956
+ ),
2957
+ ] = None
2958
+ circulationPump: Annotated[
2959
+ bool | None,
2960
+ Field(description='Flag identifies whether the SWH has a circulation pump'),
2961
+ ] = None
2962
+ heatTraceTapeInstalled: Annotated[
2963
+ bool | None,
2964
+ Field(
2965
+ description='Flag identifies whether the SWH has heat trace tape installed'
2966
+ ),
2967
+ ] = None
2968
+ combinedSystem: Annotated[
2969
+ bool | None,
2970
+ Field(description='Flag identifies whether the SWH is a combined system'),
2971
+ ] = None
2972
+ poolSystem: Annotated[
2973
+ bool | None,
2974
+ Field(description='Flag identifies whether the SWH is part of pool system'),
2975
+ ] = None
2976
+ heatpumpPoolHeater: Annotated[
2977
+ bool | None,
2978
+ Field(
2979
+ description='Flag identifies whether the SWH uses heat pump to heat the pool. - Only used when poolSystem is true. False as default'
2980
+ ),
2981
+ ] = None
2982
+ inputRating: Annotated[
2983
+ float | None,
2984
+ Field(
2985
+ description='Water heater rated input power. kBtu/h if fuel type is gas or oil, kW if fuel type is electric',
2986
+ ge=0.0,
2987
+ ),
2988
+ ] = None
2989
+ swhSystemDrawPatternType: Annotated[
2990
+ SWHSystemDrawPatternTypeOptions | None,
2991
+ Field(description='SWH system draw pattern type'),
2992
+ ] = None
2993
+ storageCapacity: Annotated[
2994
+ float | None, Field(description='Water heater storage capacity', ge=0.0)
2995
+ ] = None
2996
+ propSwhEquipEfficiency: Annotated[
2997
+ float | None,
2998
+ Field(
2999
+ description='Proposed SWH equipment efficiency. Standby Loss if fuel type is electric, %Et otherwise.',
3000
+ ge=0.0,
3001
+ ),
3002
+ ] = None
3003
+ quantity: Annotated[
3004
+ int | None, Field(description='Quantity of the water heater', ge=1)
3005
+ ] = None
3006
+ description: Annotated[
3007
+ str | None, Field(description='Unique name describes the SWH system')
3008
+ ] = None
3009
+ systemType: Annotated[
3010
+ str | None, Field(description='Deprecated - set to Water Heater')
3011
+ ] = None
3012
+ swhSystemType: Annotated[
3013
+ SWHSystemTypeOptions | None, Field(description='SWH system type.')
3014
+ ] = None
3015
+ fuelType: Annotated[
3016
+ SWHFuelTypeOptions | None, Field(description='SWH equipment fuel type')
3017
+ ] = None
3018
+ altExemptType: Annotated[
3019
+ AltExemptTypeOptions | None, Field(description='SWH exemptions')
3020
+ ] = None
3021
+ swhSystemSubType: Annotated[
3022
+ SWHSystemSubTypeOptions | None,
3023
+ Field(description='Electric storage water heater sub types'),
3024
+ ] = 'UNKNOWN_SWH_SYSTEM_SUB_TYPE'
3025
+ listPosition: int | None = None
3026
+ efficiencyRequirementException: Annotated[
3027
+ EquipmentEfficiencyRequirementExceptionOptions | None,
3028
+ Field(
3029
+ description='High input natural gas service water heater efficiency requirement exceptions'
3030
+ ),
3031
+ ] = 'EFF_EXCEPTION_UNSPECIFIED'
3032
+ requirementAnswer: list[Any] | None = None
3033
+
3034
+
3035
+ class EfficiencyPackage(CustomBaseModel):
3036
+ model_config = ConfigDict(
3037
+ extra='ignore',
3038
+ )
3039
+ id: Annotated[
3040
+ str | int | None,
3041
+ Field(
3042
+ description='Scope-unique reference identifier for instances of this data group.'
3043
+ ),
3044
+ ] = None
3045
+ bldgUseKey: Annotated[
3046
+ str | None, Field(description='Building use Key, reference BuildingAreaUse key')
3047
+ ] = None
3048
+ airInfiltration: Annotated[
3049
+ float | None, Field(description='Air infiltration measured @75Pa', ge=0.0)
3050
+ ] = None
3051
+ kitchenSize: Annotated[float | None, Field(description='Kitchen size', ge=0.0)] = (
3052
+ None
3053
+ )
3054
+ renewableCapacity: Annotated[
3055
+ float | None,
3056
+ Field(
3057
+ description='On-site renewable capacity, unit is Btu for thermal system and watts for electric system.',
3058
+ ge=0.0,
3059
+ ),
3060
+ ] = None
3061
+ renewableType: Annotated[
3062
+ EnergyCreditRenewableTypeOptions | None,
3063
+ Field(description='Renewable system type'),
3064
+ ] = None
3065
+ fractionGrossFloorAreaServedByGSHP: Annotated[
3066
+ float | None,
3067
+ Field(
3068
+ description='Fraction of gross floor area served by GSHP, Added by 90.1 2022',
3069
+ ge=0.0,
3070
+ le=1.0,
3071
+ ),
3072
+ ] = None
3073
+ gshpFieldSourceCapacityType: Annotated[
3074
+ GSHPFieldSourceCapacityTypeOptions | None,
3075
+ Field(description='GSHP field source capacity type, Added by 90.1 2022'),
3076
+ ] = None
3077
+ fractionGrossFloorAreaServedByCAV: Annotated[
3078
+ float | None,
3079
+ Field(
3080
+ description='Fraction of gross floor area served by CAV, Added by 90.1 2022',
3081
+ ge=0.0,
3082
+ le=1.0,
3083
+ ),
3084
+ ] = None
3085
+ coolingEnergyRecoveryRatio: Annotated[
3086
+ float | None,
3087
+ Field(
3088
+ description='Cooling energy recovery ratio, Added by 90.1 2022',
3089
+ ge=0.0,
3090
+ le=1.0,
3091
+ ),
3092
+ ] = None
3093
+ heatingEnergyRecoveryRatio: Annotated[
3094
+ float | None,
3095
+ Field(
3096
+ description='Heating energy recovery ratio, Added by 90.1 2022',
3097
+ ge=0.0,
3098
+ le=1.0,
3099
+ ),
3100
+ ] = None
3101
+ percentageWaterPipingWithIncreasedInsulation: Annotated[
3102
+ float | None,
3103
+ Field(
3104
+ description='Percentage water piping with increased insulation, Added by 90.1 2022',
3105
+ ge=0.0,
3106
+ le=100.0,
3107
+ ),
3108
+ ] = None
3109
+ numberShowersWithDrainHeatRecovery: Annotated[
3110
+ int | None,
3111
+ Field(
3112
+ description='Number of showers with drain heat recovery, Added by 90.1 2022',
3113
+ ge=1,
3114
+ ),
3115
+ ] = None
3116
+ totalNumberShowers: Annotated[
3117
+ int | None,
3118
+ Field(description='Total number of showers, Added by 90.1 2022', ge=1),
3119
+ ] = None
3120
+ fractionTunedAreaOfGrossLightedFloorArea: Annotated[
3121
+ float | None,
3122
+ Field(
3123
+ description='Fraction of tuned area of gross lighted floor area, Added by 90.1 2022',
3124
+ ge=0.0,
3125
+ le=1.0,
3126
+ ),
3127
+ ] = None
3128
+ grossLightedFloorArea: Annotated[
3129
+ float | None,
3130
+ Field(description='Gross lighted floor area, Added by 90.1 2022', ge=0.0),
3131
+ ] = None
3132
+ actualDaylightAreaWithContinuousDim: Annotated[
3133
+ float | None,
3134
+ Field(
3135
+ description='Actual daylight area with continous dimming control, Added by 90.1 2022',
3136
+ ge=0.0,
3137
+ ),
3138
+ ] = None
3139
+ percentageLightingLoadManagement: Annotated[
3140
+ float | None,
3141
+ Field(
3142
+ description='Percentage lighting load management, Added by 90.1 2022',
3143
+ ge=0.0,
3144
+ le=1.0,
3145
+ ),
3146
+ ] = None
3147
+ installedElectricStorageCapacity: Annotated[
3148
+ float | None,
3149
+ Field(
3150
+ description='Installed electric storage capacity, Added by 90.1 2022',
3151
+ ge=0.0,
3152
+ ),
3153
+ ] = None
3154
+ storageRatio: Annotated[
3155
+ float | None,
3156
+ Field(
3157
+ description='HVAC cooling energy storage ratio, unit in ton-hours storage per ton of design-day cooling load , Added by 90.1 2022',
3158
+ ge=0.5,
3159
+ le=4.0,
3160
+ ),
3161
+ ] = None
3162
+ sumOfFloorsServedByClassAElevators: Annotated[
3163
+ int | None,
3164
+ Field(description='Sum of floors served by each Class A elevators', ge=0),
3165
+ ] = None
3166
+ sumOfFloorsServedByClassBElevators: Annotated[
3167
+ int | None,
3168
+ Field(
3169
+ description='sum of floors served by all building elevators and escalators',
3170
+ ge=0,
3171
+ ),
3172
+ ] = None
3173
+ type: Annotated[
3174
+ EfficiencyPackageTypeOptions
3175
+ | MAS2022EnergyCreditTypeOptions
3176
+ | Denver2022EnergyCreditTypeOptions
3177
+ | IECC2024EnergyCreditTypeOptions,
3178
+ Field(description='Efficiency Package or Energy Credit Type'),
3179
+ ]
3180
+
3181
+
3182
+ class RenewableSystem(CustomBaseModel):
3183
+ model_config = ConfigDict(
3184
+ extra='ignore',
3185
+ )
3186
+ id: Annotated[
3187
+ str | int | None,
3188
+ Field(
3189
+ description='Scope-unique reference identifier for instances of this data group.'
3190
+ ),
3191
+ ] = None
3192
+ description: Annotated[
3193
+ str | None, Field(description='description of the renewable system')
3194
+ ]
3195
+ renewableSystemType: Annotated[
3196
+ RenewableSystemTypeOptions, Field(description='Renewable system type')
3197
+ ]
3198
+ renewableSystemCapacity: Annotated[
3199
+ float, Field(description='Renewable system rated capacity', ge=0.0)
3200
+ ]
3201
+ renewableSystemCapacityUnit: Annotated[
3202
+ RenewableSystemCapacityUnitOptions,
3203
+ Field(description='Renewable system capacity unit type'),
3204
+ ]
3205
+
3206
+
3207
+ class OffsiteRenewableProcurement(CustomBaseModel):
3208
+ model_config = ConfigDict(
3209
+ extra='ignore',
3210
+ )
3211
+ id: Annotated[
3212
+ str | int | None,
3213
+ Field(
3214
+ description='Scope-unique reference identifier for instances of this data group.'
3215
+ ),
3216
+ ] = None
3217
+ description: Annotated[
3218
+ str | None,
3219
+ Field(description='description of the offsite renewable procurement'),
3220
+ ]
3221
+ offsiteRenewableProcurementType: Annotated[
3222
+ OffsiteRenewableProcurementType,
3223
+ Field(description='Offsite renewable procurement type'),
3224
+ ]
3225
+ offsiteRenewableEnergy: Annotated[
3226
+ float,
3227
+ Field(
3228
+ description='Annual renewable energy procured from off-site source', ge=0.0
3229
+ ),
3230
+ ]
3231
+
3232
+
3233
+ class LightingControls(CustomBaseModel):
3234
+ model_config = ConfigDict(
3235
+ extra='ignore',
3236
+ )
3237
+ id: Annotated[
3238
+ str | int | None,
3239
+ Field(
3240
+ description='Scope-unique reference identifier for instances of this data group.'
3241
+ ),
3242
+ ] = None
3243
+ type: Annotated[
3244
+ LightingControlTypeOptions | None, Field(description='Lighting Control types')
3245
+ ] = None
3246
+
3247
+
3248
+ class ThermalBridge(CustomBaseModel):
3249
+ model_config = ConfigDict(
3250
+ extra='ignore',
3251
+ )
3252
+ id: Annotated[
3253
+ str | int | None,
3254
+ Field(
3255
+ description='Scope-unique reference identifier for instances of this data group.'
3256
+ ),
3257
+ ] = None
3258
+ thermalBridgeType: Annotated[
3259
+ ThermalBridgeTypeOptions | None, Field(description='thermal bridge type')
3260
+ ] = None
3261
+ thermalBridgeCategory: Annotated[
3262
+ ThermalBridgeCategoryOptions | None,
3263
+ Field(description='thermal bridge category'),
3264
+ ] = None
3265
+ thermalBridgeComplianceType: Annotated[
3266
+ ThermalBridgeComplianceTypeOptions | None,
3267
+ Field(description='thermal bridge compliance type'),
3268
+ ] = None
3269
+ psiFactor: Annotated[float | None, Field(description='Psi factor')] = None
3270
+ thermalBridgeLength: Annotated[
3271
+ float | None, Field(description='linear length of a thermal bridge - ft')
3272
+ ] = None
3273
+ chiFactor: Annotated[float | None, Field(description='Chi factor')] = None
3274
+ numberOfPoints: Annotated[int | None, Field(description='Number of points')] = None
3275
+
3276
+
3277
+ class AgWall(CustomBaseModel):
3278
+ model_config = ConfigDict(
3279
+ extra='ignore',
3280
+ )
3281
+ id: Annotated[
3282
+ str | int | None,
3283
+ Field(
3284
+ description='Scope-unique reference identifier for instances of this data group.'
3285
+ ),
3286
+ ] = None
3287
+ description: Annotated[
3288
+ str | None, Field(description='The name of the component')
3289
+ ] = ''
3290
+ assemblyType: Annotated[
3291
+ str | None, Field(description='The type of the component')
3292
+ ] = 'Exterior Wall'
3293
+ bldgUseKey: Annotated[
3294
+ str, Field(description='key reference of the building use area data group')
3295
+ ]
3296
+ wallType: Annotated[
3297
+ WallTypeOptions | None, Field(description='Above grade wall type')
3298
+ ] = None
3299
+ agWallConstructionDetailsType: Annotated[
3300
+ AgWallConstructionDetailsTypeOptions | None,
3301
+ Field(description='Above grade wall construction details type'),
3302
+ ] = 'NONE'
3303
+ agWallExteriorFinishDetailsType: Annotated[
3304
+ AgWallExteriorFinishDetailsTypeOptions | None,
3305
+ Field(description='Above grade wall exterior finish details'),
3306
+ ] = None
3307
+ nextToUncondSpace: Annotated[
3308
+ bool | None,
3309
+ Field(
3310
+ description='Flag indicates whether the space is next to an unconditioned space'
3311
+ ),
3312
+ ] = None
3313
+ insulationPosition: Annotated[
3314
+ str | None,
3315
+ Field(
3316
+ description='Not sure why basement has this data, likely deprecated. Use null'
3317
+ ),
3318
+ ] = None
3319
+ otherWallType: Annotated[
3320
+ AgWallOtherTypeOptions | None, Field(description='other wall types')
3321
+ ] = 'NONE'
3322
+ adjacentSpaceType: Annotated[
3323
+ AdjacentSpaceTypeOptions | None,
3324
+ Field(description='Space type of the adjacent space'),
3325
+ ] = None
3326
+ adjacentSpaceBuildingType: Annotated[
3327
+ WholeBuildingTypeOptions | None,
3328
+ Field(description='Building type of the adjacent space'),
3329
+ ] = None
3330
+ thermalBridge: Annotated[
3331
+ list[ThermalBridge], Field(description='Thermal bridges objects', min_length=0)
3332
+ ]
3333
+ thermalBridgeExceptionType: Annotated[
3334
+ ThermalBridgeExceptionTypeOptions | None,
3335
+ Field(description='Type of thermal bridge exceptions'),
3336
+ ] = None
3337
+ effectiveUFactor: Annotated[
3338
+ float | None,
3339
+ Field(description='The effective U factor after thermal bridge adjustment'),
3340
+ ] = None
3341
+ thermalBridgeAdjustmentFactor: Annotated[
3342
+ float | None, Field(description='Thermal bridge adjustment factor')
3343
+ ] = None
3344
+ allowanceType: Annotated[
3345
+ EnvelopeAssemblyAllowanceTypeOptions | None, Field(description='allowance type')
3346
+ ] = None
3347
+ cmuType: Annotated[CMUTypeOptions | None, Field(description='CMU type')] = None
3348
+ concreteDensity: Annotated[
3349
+ ConcreteDensityOptions | None, Field(description='Concrete density')
3350
+ ] = 0
3351
+ concreteThickness: Annotated[
3352
+ ConcreteThicknessOptions | None, Field(description='Concrete thickness')
3353
+ ] = 0
3354
+ constructionType: Annotated[
3355
+ ConstructionTypeOptions | None,
3356
+ Field(description='Construction types - compliance code specification'),
3357
+ ] = None
3358
+ exemptionType: EnvelopeAssemblyExemptionOptions | None = None
3359
+ furringType: FurringTypeOptions | None = None
3360
+ heatCapacity: Annotated[
3361
+ float | None,
3362
+ Field(
3363
+ description='heat capacity of a mass wall. Used in other mass wall type',
3364
+ ge=0.0,
3365
+ ),
3366
+ ] = 0.0
3367
+ orientation: OrientationOptions | None = 'UNSPECIFIED_ORIENTATION'
3368
+ window: Annotated[
3369
+ list[Window], Field(description='Windows on the wall', min_length=0)
3370
+ ]
3371
+ door: Annotated[list[Door], Field(description='Doors on the wall', min_length=0)]
3372
+ cavityRValue: Annotated[
3373
+ float | None,
3374
+ Field(
3375
+ description='Average insulation R-value in the cavity between two studs.',
3376
+ ge=0.0,
3377
+ ),
3378
+ ] = 0.0
3379
+ continuousRValue: Annotated[
3380
+ float | None,
3381
+ Field(
3382
+ description='Continuous insulation on the above grade wall. Can be exterior or interior or both.',
3383
+ ge=0.0,
3384
+ ),
3385
+ ] = 0.0
3386
+ continuousDeratedRValue: Annotated[
3387
+ float | None,
3388
+ Field(
3389
+ description='Continuous R value derated factor for thermal bridge effect',
3390
+ ge=0.0,
3391
+ ),
3392
+ ] = 0.0
3393
+ propUValue: Annotated[
3394
+ float | None,
3395
+ Field(
3396
+ description='Proposed thermal transmittance of the above grade wall.',
3397
+ ge=0.0,
3398
+ ),
3399
+ ] = 0.0
3400
+ altExemptType: Annotated[
3401
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
3402
+ ] = None
3403
+ grossArea: Annotated[float | None, Field(description='gross area', ge=0.0)] = 0.0
3404
+
3405
+
3406
+ class BgWall(CustomBaseModel):
3407
+ model_config = ConfigDict(
3408
+ extra='ignore',
3409
+ )
3410
+ id: Annotated[
3411
+ str | int | None,
3412
+ Field(
3413
+ description='Scope-unique reference identifier for instances of this data group.'
3414
+ ),
3415
+ ] = None
3416
+ description: Annotated[
3417
+ str | None, Field(description='The name of the component')
3418
+ ] = ''
3419
+ assemblyType: Annotated[
3420
+ str | None, Field(description='The type of the component')
3421
+ ] = 'Basement'
3422
+ bldgUseKey: Annotated[
3423
+ str, Field(description='key reference of the building use area data group')
3424
+ ]
3425
+ wallType: Annotated[
3426
+ BgWallTypeOptions | None, Field(description='Below grade wall type')
3427
+ ] = None
3428
+ wallHeight: Annotated[
3429
+ float | None, Field(description='Total height of a below grade wall')
3430
+ ] = 0.0
3431
+ wallHeightBelowGrade: Annotated[
3432
+ float | None, Field(description='Wall height below grade')
3433
+ ] = 0.0
3434
+ adjacentSpaceType: Annotated[
3435
+ AdjacentSpaceTypeOptions | None,
3436
+ Field(description='Space type of the adjacent space'),
3437
+ ] = None
3438
+ adjacentSpaceBuildingType: Annotated[
3439
+ WholeBuildingTypeOptions | None,
3440
+ Field(description='Building type of the adjacent space'),
3441
+ ] = None
3442
+ allowanceType: Annotated[
3443
+ EnvelopeAssemblyAllowanceTypeOptions | None, Field(description='allowance type')
3444
+ ] = None
3445
+ cmuType: Annotated[CMUTypeOptions | None, Field(description='CMU type')] = None
3446
+ concreteDensity: Annotated[
3447
+ ConcreteDensityOptions | None, Field(description='Concrete density')
3448
+ ] = 0
3449
+ concreteThickness: Annotated[
3450
+ ConcreteThicknessOptions | None, Field(description='Concrete thickness')
3451
+ ] = 0
3452
+ constructionType: Annotated[
3453
+ ConstructionTypeOptions | None,
3454
+ Field(description='Construction types - compliance code specification'),
3455
+ ] = None
3456
+ exemptionType: EnvelopeAssemblyExemptionOptions | None = None
3457
+ furringType: FurringTypeOptions | None = None
3458
+ heatCapacity: Annotated[
3459
+ float | None,
3460
+ Field(
3461
+ description='heat capacity of a mass wall. Used in other mass wall type',
3462
+ ge=0.0,
3463
+ ),
3464
+ ] = 0.0
3465
+ orientation: OrientationOptions | None = 'UNSPECIFIED_ORIENTATION'
3466
+ insulationPosition: Annotated[
3467
+ str | None,
3468
+ Field(
3469
+ description='Not sure why basement has this data, likely deprecated. Use null'
3470
+ ),
3471
+ ] = None
3472
+ window: Annotated[
3473
+ list[Window], Field(description='Windows on the wall', min_length=0)
3474
+ ]
3475
+ door: Annotated[list[Door], Field(description='Doors on the wall', min_length=0)]
3476
+ cavityRValue: Annotated[
3477
+ float | None,
3478
+ Field(
3479
+ description='Average insulation R-value in the cavity between two studs.',
3480
+ ge=0.0,
3481
+ ),
3482
+ ] = 0.0
3483
+ continuousRValue: Annotated[
3484
+ float | None,
3485
+ Field(
3486
+ description='Continuous insulation on the below grade wall. Can be exterior or interior or both.',
3487
+ ge=0.0,
3488
+ ),
3489
+ ] = 0.0
3490
+ propUValue: Annotated[
3491
+ float | None,
3492
+ Field(
3493
+ description='Proposed thermal transmittance of the below grade wall.',
3494
+ ge=0.0,
3495
+ ),
3496
+ ] = 0.0
3497
+ altExemptType: Annotated[
3498
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
3499
+ ] = None
3500
+ grossArea: Annotated[float | None, Field(description='gross area', ge=0.0)] = 0.0
3501
+
3502
+
3503
+ class Fixture(CustomBaseModel):
3504
+ model_config = ConfigDict(
3505
+ extra='ignore',
3506
+ )
3507
+ id: Annotated[
3508
+ str | int | None,
3509
+ Field(
3510
+ description='Scope-unique reference identifier for instances of this data group.'
3511
+ ),
3512
+ ] = None
3513
+ advControlsAllowanceAperture: Annotated[
3514
+ float | None, Field(description='Advanced controls allowance aperture', ge=0.0)
3515
+ ] = None
3516
+ advControlAllowanceType: Annotated[
3517
+ AdvancedControlsAllowanceTypeOptions | None,
3518
+ Field(description='Advanced control allowance type'),
3519
+ ] = None
3520
+ allowanceFloorArea: Annotated[
3521
+ float | None, Field(description='Floor area covered by the allowance', ge=0.0)
3522
+ ] = None
3523
+ allowanceType: Annotated[
3524
+ LightingAllowanceTypeOptions | None,
3525
+ Field(description='Lighting allowance type'),
3526
+ ] = None
3527
+ ballast: Annotated[BallastTypeOptions | None, Field(description='Ballast type')] = (
3528
+ None
3529
+ )
3530
+ description: Annotated[str | None, Field(description='Description of the fixture')]
3531
+ exemptionType: Annotated[
3532
+ LightingExemptionTypeOptions | None,
3533
+ Field(description='lighting exemption type'),
3534
+ ] = None
3535
+ fixtureType: Annotated[
3536
+ str | None,
3537
+ Field(description='This field temporarily used to describe the fixture.'),
3538
+ ] = None
3539
+ fixtureWattage: Annotated[
3540
+ float | None, Field(description='fixture wattage', ge=0.0)
3541
+ ] = None
3542
+ lampType: Annotated[str | None, Field(description='deprecated, use null')] = None
3543
+ lightingType: Annotated[
3544
+ LightingTypeOptions, Field(description='lighting fixture type')
3545
+ ]
3546
+ numberOfLamps: Annotated[
3547
+ float | None, Field(description='deprecated, use null')
3548
+ ] = None
3549
+ powerAllowance: Annotated[
3550
+ float | None, Field(description='Advanced control power allowance', ge=0.0)
3551
+ ] = None
3552
+ quantity: Annotated[int, Field(description='Quantity of the fixture', ge=0)]
3553
+ quantityWithAdvControls: Annotated[
3554
+ int | None,
3555
+ Field(description='Quantity of the fixture that has advanced control', ge=0),
3556
+ ] = None
3557
+ trackCircuitBreakerAmps: Annotated[
3558
+ float | None, Field(description='Track lighting circuit breaker amps', ge=0.0)
3559
+ ] = None
3560
+ trackCircuitBreakerVolts: Annotated[
3561
+ float | None,
3562
+ Field(description='Track lighting circuit breaker voltage', ge=0.0),
3563
+ ] = None
3564
+ trackCurrentLimiterWattage: Annotated[
3565
+ float | None, Field(description='Track current limiter wattage', ge=0.0)
3566
+ ] = None
3567
+ trackLength: Annotated[
3568
+ float | None, Field(description='Track lighting length', ge=0.0)
3569
+ ] = None
3570
+ trackTotalLuminaireWattage: Annotated[
3571
+ float | None,
3572
+ Field(description='Track lighting total luminaire wattage', ge=0.0),
3573
+ ] = None
3574
+ trackTransformerWattage: Annotated[
3575
+ float | None, Field(description='Track lighting former wattage', ge=0.0)
3576
+ ] = None
3577
+ trackLightingWattageBasisType: Annotated[
3578
+ TrackLightingWattageBasisTypeOptions | None,
3579
+ Field(description='Track lighting wattage basis type'),
3580
+ ] = None
3581
+ lightingControl: Annotated[
3582
+ list[LightingControls],
3583
+ Field(description='lighting controls apply to this fixture'),
3584
+ ]
3585
+
3586
+
3587
+ class FanSystem(CustomBaseModel):
3588
+ model_config = ConfigDict(
3589
+ extra='ignore',
3590
+ )
3591
+ id: Annotated[
3592
+ str | int | None,
3593
+ Field(
3594
+ description='Scope-unique reference identifier for instances of this data group.'
3595
+ ),
3596
+ ] = None
3597
+ complianceMessage: Annotated[
3598
+ str | None, Field(description='Compliance message calculated from engine')
3599
+ ] = None
3600
+ complies: Annotated[
3601
+ bool | int | None,
3602
+ Field(description='Flag indicate whether the fan system complies or fail'),
3603
+ ] = None
3604
+ complyMethod: Annotated[
3605
+ FanSystemComplianceMethodOptions | None,
3606
+ Field(description='Fan system compliance method'),
3607
+ ] = None
3608
+ description: Annotated[
3609
+ str | None, Field(description='Unique name of this fan system')
3610
+ ] = None
3611
+ description2: Annotated[str | None, Field(description='Number of areas served')] = (
3612
+ None
3613
+ )
3614
+ fan: Annotated[list[Fan] | None, Field(description='fans')] = None
3615
+ hasPressureDropCredits: Annotated[
3616
+ bool | int | None,
3617
+ Field(description='Flag indicates if the fan system has pressure drop credits'),
3618
+ ] = None
3619
+ fanSystemKey: Annotated[
3620
+ str | None,
3621
+ Field(
3622
+ description='Fan system key, used when reference a fan system in an HVAC system'
3623
+ ),
3624
+ ] = None
3625
+ pressureDropCredits: Annotated[
3626
+ list[FanSystemPressureDropCredits] | None,
3627
+ Field(description='Pressure drop credits'),
3628
+ ] = None
3629
+ servesAllowanceAreaWithFlowControl: Annotated[
3630
+ bool | int | None,
3631
+ Field(
3632
+ description='Flag indicates if the fan system serves allowance area with flow control'
3633
+ ),
3634
+ ] = None
3635
+
3636
+
3637
+ class Renewable(CustomBaseModel):
3638
+ model_config = ConfigDict(
3639
+ extra='ignore',
3640
+ )
3641
+ id: Annotated[
3642
+ str | int | None,
3643
+ Field(
3644
+ description='Scope-unique reference identifier for instances of this data group.'
3645
+ ),
3646
+ ] = None
3647
+ renewableException: Annotated[
3648
+ RenewableExceptionOptions, Field(description='Renewable exceptions')
3649
+ ]
3650
+ numberOfFloors: Annotated[int, Field(description='number of floors', ge=1)]
3651
+ largestThreeFloorArea: Annotated[
3652
+ float, Field(description='Gross floor area of the largest three floors', ge=0.0)
3653
+ ]
3654
+ requiredCapacity: Annotated[
3655
+ float, Field(description='Code required minimum renewable capacity', ge=0.0)
3656
+ ]
3657
+ proposedCapacity: Annotated[
3658
+ float, Field(description='Sum of the proposed renewable capacity', ge=0.0)
3659
+ ]
3660
+ roofAreaForRenewable: Annotated[
3661
+ float, Field(description='roof area for renewable systems', ge=0.0)
3662
+ ]
3663
+ renewableSystem: Annotated[
3664
+ list[RenewableSystem], Field(description='List of renewable systems')
3665
+ ]
3666
+ requiredOffsiteRenewableEnergy: Annotated[
3667
+ float | None,
3668
+ Field(
3669
+ description='Sum of the required off-site renewable energy procurement',
3670
+ ge=0.0,
3671
+ ),
3672
+ ] = None
3673
+ proposedOffsiteRenewableEnergy: Annotated[
3674
+ float | None,
3675
+ Field(
3676
+ description='Sum of the proposed off-site renewable energy procurement',
3677
+ ge=0.0,
3678
+ ),
3679
+ ] = None
3680
+ offsiteRenewableProcurement: Annotated[
3681
+ list[OffsiteRenewableProcurement] | None,
3682
+ Field(description='List of off-site renewable procurement'),
3683
+ ] = None
3684
+
3685
+
3686
+ class Envelope(CustomBaseModel):
3687
+ model_config = ConfigDict(
3688
+ extra='ignore',
3689
+ )
3690
+ id: Annotated[
3691
+ str | int | None,
3692
+ Field(
3693
+ description='Scope-unique reference identifier for instances of this data group.'
3694
+ ),
3695
+ ] = None
3696
+ agWall: Annotated[
3697
+ list[AgWall], Field(description='above grade walls', min_length=0)
3698
+ ]
3699
+ bgWall: Annotated[
3700
+ list[BgWall], Field(description='below grade walls', min_length=0)
3701
+ ]
3702
+ roof: Annotated[list[Roof], Field(description='Roof', min_length=0)]
3703
+ floor: Annotated[list[Floor], Field(description='Floor', min_length=0)]
3704
+ door: Annotated[list[Door], Field(min_length=0)]
3705
+ window: Annotated[list[Window], Field(min_length=0)]
3706
+ skylight: Annotated[
3707
+ list[Skylight],
3708
+ Field(description='Skylights, must be assigned to a roof', min_length=0),
3709
+ ]
3710
+ useOrientationDetails: Annotated[
3711
+ bool | None, Field(description='use orientation details for calculation')
3712
+ ] = True
3713
+ useVltDetails: Annotated[
3714
+ bool | None,
3715
+ Field(
3716
+ description='use visible transmittance details in fenestration for calculation'
3717
+ ),
3718
+ ] = True
3719
+ useCoolRoofPerformanceDetails: Annotated[
3720
+ bool | None,
3721
+ Field(description='use cool roof / high albedo roof details for calculation'),
3722
+ ] = True
3723
+ useCoolRoofDetails: Annotated[None, Field(description='cool roof details')] = None
3724
+ postAltWindowWallPct: Annotated[
3725
+ float | None,
3726
+ Field(
3727
+ description='post alteration window to wall ratio in percentage',
3728
+ ge=0.0,
3729
+ le=100.0,
3730
+ ),
3731
+ ] = None
3732
+ postAltSkylightRoofPct: Annotated[
3733
+ float | None,
3734
+ Field(
3735
+ description='post alteration skylight to roof ratio in percentage',
3736
+ ge=0.0,
3737
+ le=100.0,
3738
+ ),
3739
+ ] = None
3740
+ altPctGlazingAreaReplaced: Annotated[
3741
+ float | None,
3742
+ Field(description='Alteration percentage of glazing area', ge=0.0, le=100.0),
3743
+ ] = None
3744
+ altPctSkylightAreaReplaced: Annotated[
3745
+ float | None,
3746
+ Field(description='Alteration percentage of skylight area', ge=0.0, le=100.0),
3747
+ ] = None
3748
+ applyWindowPctAllowanceForDaylighting: Annotated[
3749
+ bool | None,
3750
+ Field(
3751
+ description='Apply window percentage allowance for daylighting, default false'
3752
+ ),
3753
+ ] = False
3754
+ applySkylightPctAllowanceForDaylighting: Annotated[
3755
+ bool | None,
3756
+ Field(
3757
+ description='Apply skylight percentage allowance for daylighting, default false'
3758
+ ),
3759
+ ] = False
3760
+ airBarrierComplianceType: Annotated[
3761
+ AirBarrierComplianceTypeOptions | None,
3762
+ Field(description='Air barrier compliance type'),
3763
+ ] = 'AIR_BARRIER_OPTION_UNKNOWN'
3764
+ useOrientDetails: Annotated[
3765
+ bool | None, Field(description='Deprecated boolean')
3766
+ ] = True
3767
+
3768
+
3769
+ class InteriorLightingSpace(CustomBaseModel):
3770
+ model_config = ConfigDict(
3771
+ extra='ignore',
3772
+ )
3773
+ id: Annotated[
3774
+ str | int | None,
3775
+ Field(
3776
+ description='Scope-unique reference identifier for instances of this data group.'
3777
+ ),
3778
+ ] = None
3779
+ description: Annotated[
3780
+ str | None, Field(description='Description of the space')
3781
+ ] = None
3782
+ preAltNumberFixtures: Annotated[
3783
+ int | None, Field(description='Number of fixtures to be altered', ge=0)
3784
+ ] = None
3785
+ numFixturesAlteredOrAdded: Annotated[
3786
+ int | None, Field(description='Number of fixtures added or altered', ge=0)
3787
+ ] = None
3788
+ preAltTotalWattage: Annotated[
3789
+ float | None, Field(description='Total wattage before the alteration', ge=0.0)
3790
+ ] = None
3791
+ postAltTotalWattage: Annotated[
3792
+ float | None, Field(description='Total wattage after the alteration', ge=0.0)
3793
+ ] = None
3794
+ altExemptType: Annotated[
3795
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
3796
+ ] = None
3797
+ exemptionType: Annotated[str | None, Field(description='deprecated, use null')] = (
3798
+ None
3799
+ )
3800
+ allowanceType: Annotated[str | None, Field(description='deprecated, use null')] = (
3801
+ None
3802
+ )
3803
+ allowanceFloorArea: Annotated[
3804
+ float | None,
3805
+ Field(description='The floor area that covered by allowance', ge=0.0),
3806
+ ] = None
3807
+ rcrPerimeter: Annotated[float | None, Field(description='perimeter', ge=0.0)] = None
3808
+ rcrFloorToWorkplaneHeight: Annotated[
3809
+ float | None, Field(description='Floor-to-workplane height', ge=0.0)
3810
+ ] = None
3811
+ rcrWorkplaneToLuminaireHeight: Annotated[
3812
+ float | None, Field(description='Workplane-to-luminaire height', ge=0.0)
3813
+ ] = None
3814
+ primaryDaylight: Annotated[
3815
+ float | None,
3816
+ Field(description='Daylighting on the primary sidelight area', ge=0.0),
3817
+ ] = None
3818
+ secondaryDaylight: Annotated[
3819
+ float | None,
3820
+ Field(description='Daylighting on the secondary sidelight area', ge=0.0),
3821
+ ] = None
3822
+ skylightToplight: Annotated[
3823
+ float | None,
3824
+ Field(description='Daylighting on the skylight toplight area', ge=0.0),
3825
+ ] = None
3826
+ roofMonitorToplight: Annotated[
3827
+ float | None,
3828
+ Field(description='Daylighting on the roof monitor top light area', ge=0.0),
3829
+ ] = None
3830
+ decorativeArea: Annotated[
3831
+ float | None,
3832
+ Field(
3833
+ description='The floor area that covered by decorative lightings', ge=0.0
3834
+ ),
3835
+ ] = None
3836
+ fixture: Annotated[
3837
+ list[Fixture] | None,
3838
+ Field(description='List of fixtures in the lighting space'),
3839
+ ] = None
3840
+
3841
+
3842
+ class HVAC(CustomBaseModel):
3843
+ model_config = ConfigDict(
3844
+ extra='ignore',
3845
+ )
3846
+ id: Annotated[
3847
+ str | int | None,
3848
+ Field(
3849
+ description='Scope-unique reference identifier for instances of this data group.'
3850
+ ),
3851
+ ] = None
3852
+ hvacSystem: Annotated[
3853
+ list[HVACSystem],
3854
+ Field(description='HVAC systems - air-based or radiant-based system'),
3855
+ ]
3856
+ hvacPlant: Annotated[list[HVACPlant], Field(description='HVAC Plant - source loop')]
3857
+ fanSystem: Annotated[list[FanSystem], Field(description='fan system')]
3858
+
3859
+
3860
+ class ActivityUse(CustomBaseModel):
3861
+ model_config = ConfigDict(
3862
+ extra='ignore',
3863
+ )
3864
+ id: Annotated[
3865
+ str | int | None,
3866
+ Field(
3867
+ description='Scope-unique reference identifier for instances of this data group.'
3868
+ ),
3869
+ ] = None
3870
+ key: Annotated[
3871
+ str, Field(description='Reference to the building use key :BuildingAreaUse.id:')
3872
+ ]
3873
+ areaDescription: Annotated[
3874
+ str | None, Field(description='Text description of the area')
3875
+ ] = None
3876
+ floorArea: Annotated[
3877
+ float | None, Field(description='Whole building use floor area', ge=0.0)
3878
+ ] = None
3879
+ ceilingHeight: Annotated[
3880
+ float | None, Field(description='Average ceiling height', ge=0.0)
3881
+ ] = None
3882
+ powerDensity: Annotated[
3883
+ float | None, Field(description='Internal equipment power density', ge=0.0)
3884
+ ] = None
3885
+ internalLoad: Annotated[
3886
+ float | None, Field(description='Internal equipment load', ge=0.0)
3887
+ ] = None
3888
+ constructionType: Annotated[
3889
+ ConstructionTypeOptions | None,
3890
+ Field(description='Construction types - compliance code specification'),
3891
+ ] = None
3892
+ allowedWattage: Annotated[
3893
+ float | None, Field(description='Allowed wattage', ge=0.0)
3894
+ ] = None
3895
+ proposedWattage: Annotated[
3896
+ float | None, Field(description='Proposed wattage', ge=0.0)
3897
+ ] = None
3898
+ interiorLightingSpace: Annotated[
3899
+ InteriorLightingSpace, Field(description='Interior lighting space definition')
3900
+ ]
3901
+ activityType: Annotated[
3902
+ ActivityTypeOptions | None, Field(description='activity type')
3903
+ ] = None
3904
+ roomCavityRatioThreshold: Annotated[
3905
+ float | None, Field(description='Room Cavity Ratio threshold')
3906
+ ] = None
3907
+ isUnfinishedSpace: Annotated[
3908
+ bool | None,
3909
+ Field(description='A flag to indicate whether the space is unfinished or not.'),
3910
+ ] = None
3911
+
3912
+
3913
+ class ExteriorLightingSpace(CustomBaseModel):
3914
+ model_config = ConfigDict(
3915
+ extra='ignore',
3916
+ )
3917
+ id: Annotated[
3918
+ str | int | None,
3919
+ Field(
3920
+ description='Scope-unique reference identifier for instances of this data group.'
3921
+ ),
3922
+ ] = None
3923
+ description: Annotated[
3924
+ str | None, Field(description='Description of the space')
3925
+ ] = None
3926
+ preAltNumberFixtures: Annotated[
3927
+ int | None, Field(description='Number of fixtures to be altered', ge=0)
3928
+ ] = None
3929
+ numFixturesAlteredOrAdded: Annotated[
3930
+ int | None, Field(description='Number of fixtures added or altered', ge=0)
3931
+ ] = None
3932
+ preAltTotalWattage: Annotated[
3933
+ float | None, Field(description='Total wattage before the alteration', ge=0.0)
3934
+ ] = None
3935
+ postAltTotalWattage: Annotated[
3936
+ float | None, Field(description='Total wattage after the alteration', ge=0.0)
3937
+ ] = None
3938
+ altExemptType: Annotated[
3939
+ AltExemptTypeOptions | None, Field(description='alteration exemption type')
3940
+ ] = None
3941
+ fixture: Annotated[
3942
+ list[Fixture] | None,
3943
+ Field(description='List of fixtures in the lighting space'),
3944
+ ] = None
3945
+
3946
+
3947
+ class WholeBldgUse(CustomBaseModel):
3948
+ model_config = ConfigDict(
3949
+ extra='ignore',
3950
+ )
3951
+ id: Annotated[
3952
+ str | int | None,
3953
+ Field(
3954
+ description='Scope-unique reference identifier for instances of this data group.'
3955
+ ),
3956
+ ] = None
3957
+ areaDescription: Annotated[
3958
+ str | None, Field(description='Text description of the area')
3959
+ ] = None
3960
+ floorArea: Annotated[
3961
+ float | None, Field(description='Whole building use floor area', ge=0.0)
3962
+ ] = None
3963
+ ceilingHeight: Annotated[
3964
+ float | None, Field(description='Average ceiling height', ge=0.0)
3965
+ ] = None
3966
+ powerDensity: Annotated[
3967
+ float | None, Field(description='Internal equipment power density', ge=0.0)
3968
+ ] = None
3969
+ internalLoad: Annotated[
3970
+ float | None, Field(description='Internal equipment load', ge=0.0)
3971
+ ] = None
3972
+ constructionType: Annotated[
3973
+ ConstructionTypeOptions | None,
3974
+ Field(description='Construction types - compliance code specification'),
3975
+ ] = None
3976
+ allowedWattage: Annotated[
3977
+ float | None, Field(description='Allowed wattage', ge=0.0)
3978
+ ] = None
3979
+ proposedWattage: Annotated[
3980
+ float | None, Field(description='Proposed wattage', ge=0.0)
3981
+ ] = None
3982
+ interiorLightingSpace: Annotated[
3983
+ InteriorLightingSpace, Field(description='Interior lighting space definition')
3984
+ ]
3985
+ key: Annotated[
3986
+ str | float | None,
3987
+ Field(description='Unique identifier for this building use area'),
3988
+ ]
3989
+ wholeBldgType: Annotated[
3990
+ WholeBuildingTypeOptions, Field(description='Whole building type')
3991
+ ]
3992
+ activityUse: Annotated[
3993
+ list[ActivityUse],
3994
+ Field(description='Interior lighting use based on space activity type'),
3995
+ ]
3996
+ isTenantSpace: Annotated[
3997
+ bool | None,
3998
+ Field(
3999
+ description='A boolean to indicate whether the bldg use area is designed for tenant spaces'
4000
+ ),
4001
+ ] = None
4002
+
4003
+
4004
+ class ExteriorUse(CustomBaseModel):
4005
+ model_config = ConfigDict(
4006
+ extra='ignore',
4007
+ )
4008
+ id: Annotated[
4009
+ str | int | None,
4010
+ Field(
4011
+ description='Scope-unique reference identifier for instances of this data group.'
4012
+ ),
4013
+ ] = None
4014
+ areaDescription: Annotated[
4015
+ str | None, Field(description='Text description of the area')
4016
+ ] = None
4017
+ exteriorType: Annotated[
4018
+ ExteriorUseTypeOptions | None, Field(description='Exterior Use Type')
4019
+ ] = None
4020
+ isTradable: Annotated[
4021
+ bool | None,
4022
+ Field(
4023
+ description='Boolean flag indicate whether the exterior is tradable or not'
4024
+ ),
4025
+ ] = None
4026
+ powerDensity: Annotated[
4027
+ float | None, Field(description='Internal equipment power density', ge=0.0)
4028
+ ] = None
4029
+ quantityUnits: Annotated[str | None, Field(description='Quantity units')] = None
4030
+ useQuantity: Annotated[
4031
+ float | None, Field(description='The take-off quantity of the exterior use')
4032
+ ] = None
4033
+ exteriorLightingSpace: Annotated[
4034
+ ExteriorLightingSpace, Field(description='Exterior lighting space')
4035
+ ]
4036
+
4037
+
4038
+ class Lighting(CustomBaseModel):
4039
+ model_config = ConfigDict(
4040
+ extra='ignore',
4041
+ )
4042
+ id: Annotated[
4043
+ str | int | None,
4044
+ Field(
4045
+ description='Scope-unique reference identifier for instances of this data group.'
4046
+ ),
4047
+ ] = None
4048
+ wholeBldgUse: Annotated[
4049
+ list[WholeBldgUse], Field(description='Whole building use areas')
4050
+ ]
4051
+ exteriorLightingZoneType: Annotated[
4052
+ ExteriorLightingZoneTypeOptions,
4053
+ Field(description='Exterior lighting zone type'),
4054
+ ]
4055
+ exteriorUse: Annotated[list[ExteriorUse], Field(description='Exterior use areas')]
4056
+ fixtureSchedule: Annotated[
4057
+ list[FixtureSchedule] | None, Field(description='Fixture schedules')
4058
+ ] = None
4059
+
4060
+
4061
+ class ComBuilding(CustomBaseModel):
4062
+ model_config = ConfigDict(
4063
+ extra='ignore',
4064
+ )
4065
+ id: Annotated[
4066
+ str | int | None,
4067
+ Field(
4068
+ description='Scope-unique reference identifier for instances of this data group.'
4069
+ ),
4070
+ ] = None
4071
+ control: Annotated[
4072
+ Control,
4073
+ Field(description='project control that contains the project meta data'),
4074
+ ]
4075
+ project: Annotated[Project, Field(description='project information')]
4076
+ envelope: Annotated[Envelope, Field(description='envelope elements in the project')]
4077
+ location: Annotated[Location, Field(description='location of the project')]
4078
+ semiheated: Annotated[
4079
+ bool | None,
4080
+ Field(
4081
+ description='A boolean to indicate whether the project is a semi-heated type'
4082
+ ),
4083
+ ] = None
4084
+ isNonresidentialConditioning: Annotated[
4085
+ bool | None,
4086
+ Field(
4087
+ description='Flag to indicate the building has conditional type of non-resindetial conditioning.'
4088
+ ),
4089
+ ] = False
4090
+ isResidentialConditioning: Annotated[
4091
+ bool | None,
4092
+ Field(
4093
+ description='Flag to indicate the building has conditional type of resindetial conditioning.'
4094
+ ),
4095
+ ] = False
4096
+ isSemiheatedConditioning: Annotated[
4097
+ bool | None,
4098
+ Field(
4099
+ description='Flag to indicate the building has conditional type of semiheated conditioning.'
4100
+ ),
4101
+ ] = False
4102
+ isHistoricBuilding: Annotated[
4103
+ bool | None, Field(description='Flag to indicate if the building is historic.')
4104
+ ] = False
4105
+ performanceRating: Annotated[
4106
+ float | None, Field(description='Appendix C compliance index', ge=0.0)
4107
+ ] = None
4108
+ energyCreditPerformanceRating: Annotated[
4109
+ float | None,
4110
+ Field(
4111
+ description='Appendix C compliance index for energy credit calculation',
4112
+ ge=0.0,
4113
+ ),
4114
+ ] = None
4115
+ lighting: Annotated[Lighting, Field(description='Lighting')]
4116
+ hvac: Annotated[HVAC | None, Field(description='HVAC')] = None
4117
+ renewable: Annotated[Renewable, Field(description='Renewable systems')]
4118
+ buildingUseType: Annotated[
4119
+ BuildingUseTypeOptions | None, Field(description='Building Use Type')
4120
+ ] = None
4121
+ conditioningType: Annotated[
4122
+ ConditionTypeOptions | None,
4123
+ Field(description='Building primary condition type'),
4124
+ ] = 'HEATING_AND_COOLING'
4125
+ swhSystem: Annotated[
4126
+ list[ServiceWaterHeatingSystem] | None,
4127
+ Field(description='Service water heating system', min_length=0),
4128
+ ] = None
4129
+ efficiencyPackages: Annotated[
4130
+ list[Any] | None,
4131
+ Field(description='Efficiency Package or Energy Credits', min_length=0),
4132
+ ] = None
4133
+ constructionType: Annotated[
4134
+ str | None, Field(description="Deprecated field, default to 'None'.")
4135
+ ] = None
4136
+ allElectric: Annotated[
4137
+ bool | int | None,
4138
+ Field(
4139
+ description='Advanced reporting indicates whether the project is all electric'
4140
+ ),
4141
+ ] = None
4142
+ isRenewable: Annotated[
4143
+ bool | int | None,
4144
+ Field(
4145
+ description='Advanced reporting indicates whether the project has on-site renewable system'
4146
+ ),
4147
+ ] = None
4148
+ hasBattery: Annotated[
4149
+ bool | int | None,
4150
+ Field(
4151
+ description='Advanced reporting indicates whether the project has installed on-site battery'
4152
+ ),
4153
+ ] = None
4154
+ hasCharger: Annotated[
4155
+ bool | int | None,
4156
+ Field(
4157
+ description='Advanced reporting indicates whether the project has on-site generator'
4158
+ ),
4159
+ ] = None
4160
+ hasHeatPump: Annotated[
4161
+ bool | int | None,
4162
+ Field(
4163
+ description='Advanced reporting indicates whether the building conditioned by heat pumps'
4164
+ ),
4165
+ ] = None
4166
+ projectType: Annotated[
4167
+ ProjectTypeOptions | None, Field(description='Project type')
4168
+ ] = 'NEW_CONSTRUCTION'
4169
+ projectSubType: Annotated[
4170
+ ProjectSubTypeOptions | None, Field(description='Project sub-type')
4171
+ ] = 'CONSTRUCTION_COMPLETE'
4172
+ projectMechanicalType: Annotated[
4173
+ ProjectMechanicalTypeOptions | None,
4174
+ Field(description='Project mechanical system type'),
4175
+ ] = 'PROJECT_HVAC_WITH_CENTRAL'
4176
+ projectCoreAndShellCredit: Annotated[
4177
+ float | None,
4178
+ Field(description='Project credits gained from core and shell', ge=0.0),
4179
+ ] = None
4180
+ feetBldgHeight: Annotated[
4181
+ float | None, Field(description='Building feet height', ge=0.0)
4182
+ ] = None
4183
+ heatingFuelType: Annotated[
4184
+ FuelTypeOptions | None, Field(description='Building primary heating fuel type')
4185
+ ] = 'UNKNOWN_FUEL'
4186
+ requirements: Annotated[
4187
+ list[Requirements] | None, Field(description='Requirements', min_length=0)
4188
+ ] = None
4189
+
4190
+
4191
+ class CheckToolJsonSchema(RootModel[ComBuilding]):
4192
+ root: Annotated[
4193
+ ComBuilding,
4194
+ Field(
4195
+ description='Base schema for Comcheck Tool Building',
4196
+ title='Check Tool Json Schema',
4197
+ ),
4198
+ ]