openepd 5.0.0__py3-none-any.whl → 5.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openepd/__version__.py +1 -1
- openepd/model/common.py +39 -0
- openepd/model/declaration.py +7 -2
- openepd/model/geography.py +1 -1
- openepd/model/lcia.py +6 -3
- openepd/model/org.py +0 -1
- openepd/model/pcr.py +2 -2
- openepd/model/specs/README.md +34 -8
- openepd/model/specs/asphalt.py +2 -2
- openepd/model/specs/base.py +13 -0
- openepd/model/specs/generated/__init__.py +80 -0
- openepd/model/specs/generated/cladding.py +4 -4
- openepd/model/specs/generated/concrete.py +8 -7
- openepd/model/specs/generated/electrical.py +2 -2
- openepd/model/specs/generated/finishes.py +10 -6
- openepd/model/specs/generated/masonry.py +6 -2
- openepd/model/specs/generated/network_infrastructure.py +7 -2
- openepd/model/specs/generated/openings.py +10 -6
- openepd/model/specs/generated/sheathing.py +8 -4
- openepd/model/specs/generated/steel.py +10 -5
- openepd/model/specs/range/__init__.py +101 -0
- openepd/model/specs/range/accessories.py +97 -0
- openepd/model/specs/range/aggregates.py +57 -0
- openepd/model/specs/range/aluminium.py +92 -0
- openepd/model/specs/range/asphalt.py +61 -0
- openepd/model/specs/range/bulk_materials.py +31 -0
- openepd/model/specs/range/cast_decks_and_underlayment.py +34 -0
- openepd/model/specs/range/cladding.py +275 -0
- openepd/model/specs/range/cmu.py +44 -0
- openepd/model/specs/range/concrete.py +179 -0
- openepd/model/specs/range/conveying_equipment.py +86 -0
- openepd/model/specs/range/electrical.py +422 -0
- openepd/model/specs/range/electrical_transmission_and_distribution_equipment.py +96 -0
- openepd/model/specs/range/electricity.py +31 -0
- openepd/model/specs/range/finishes.py +585 -0
- openepd/model/specs/range/fire_and_smoke_protection.py +108 -0
- openepd/model/specs/range/furnishings.py +137 -0
- openepd/model/specs/range/grouting.py +34 -0
- openepd/model/specs/range/manufacturing_inputs.py +190 -0
- openepd/model/specs/range/masonry.py +87 -0
- openepd/model/specs/range/material_handling.py +50 -0
- openepd/model/specs/range/mechanical.py +307 -0
- openepd/model/specs/range/mechanical_insulation.py +42 -0
- openepd/model/specs/range/network_infrastructure.py +208 -0
- openepd/model/specs/range/openings.py +512 -0
- openepd/model/specs/range/other_electrical_equipment.py +31 -0
- openepd/model/specs/range/other_materials.py +194 -0
- openepd/model/specs/range/plumbing.py +200 -0
- openepd/model/specs/range/precast_concrete.py +115 -0
- openepd/model/specs/range/sheathing.py +86 -0
- openepd/model/specs/range/steel.py +332 -0
- openepd/model/specs/range/thermal_moisture_protection.py +336 -0
- openepd/model/specs/range/utility_piping.py +75 -0
- openepd/model/specs/range/wood.py +228 -0
- openepd/model/specs/range/wood_joists.py +44 -0
- openepd/model/validation/numbers.py +11 -5
- openepd/model/validation/quantity.py +440 -52
- {openepd-5.0.0.dist-info → openepd-5.1.1.dist-info}/METADATA +6 -1
- {openepd-5.0.0.dist-info → openepd-5.1.1.dist-info}/RECORD +61 -26
- {openepd-5.0.0.dist-info → openepd-5.1.1.dist-info}/LICENSE +0 -0
- {openepd-5.0.0.dist-info → openepd-5.1.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,585 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2024 by C Change Labs Inc. www.c-change-labs.com
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
__all__ = (
|
17
|
+
"AccessFlooringRangeV1",
|
18
|
+
"CarpetRangeV1",
|
19
|
+
"LaminateRangeV1",
|
20
|
+
"OtherFlooringRangeV1",
|
21
|
+
"ResilientFlooringRangeV1",
|
22
|
+
"WallBaseRangeV1",
|
23
|
+
"WoodFlooringRangeV1",
|
24
|
+
"AcousticalCeilingsRangeV1",
|
25
|
+
"CeramicTileRangeV1",
|
26
|
+
"GaugedTileRangeV1",
|
27
|
+
"GlassTileRangeV1",
|
28
|
+
"GypsumSupportsRangeV1",
|
29
|
+
"FlooringRangeV1",
|
30
|
+
"CeilingPanelRangeV1",
|
31
|
+
"BackingAndUnderlayRangeV1",
|
32
|
+
"CementBoardRangeV1",
|
33
|
+
"TilingRangeV1",
|
34
|
+
"DeckingBoardsRangeV1",
|
35
|
+
"GlassFiberReinforcedGypsumFabricationsRangeV1",
|
36
|
+
"GypsumRangeV1",
|
37
|
+
"MirrorsRangeV1",
|
38
|
+
"PaintByMassRangeV1",
|
39
|
+
"PaintByVolumeRangeV1",
|
40
|
+
"PaintByAreaRangeV1",
|
41
|
+
"PaintingAndCoatingRangeV1",
|
42
|
+
"WallFinishesRangeV1",
|
43
|
+
"PlasterRangeV1",
|
44
|
+
"FinishesRangeV1",
|
45
|
+
)
|
46
|
+
|
47
|
+
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
48
|
+
|
49
|
+
|
50
|
+
from openepd.compat.pydantic import pyd
|
51
|
+
from openepd.model.common import RangeAmount, RangeFloat, RangeInt, RangeRatioFloat
|
52
|
+
from openepd.model.org import OrgRef
|
53
|
+
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
54
|
+
from openepd.model.specs.generated.enums import (
|
55
|
+
AccessFlooringCoreMaterial,
|
56
|
+
AccessFlooringFinishMaterial,
|
57
|
+
AccessFlooringSeismicRating,
|
58
|
+
AccessFlooringStringers,
|
59
|
+
AllFabrication,
|
60
|
+
CarpetFormFactor,
|
61
|
+
CarpetIntendedApplication,
|
62
|
+
CarpetManufactureType,
|
63
|
+
CarpetYarnType,
|
64
|
+
CeilingPanelCoreMaterial,
|
65
|
+
CeilingPanelFireRating,
|
66
|
+
CementBoardThickness,
|
67
|
+
DeckingBoardMaterial,
|
68
|
+
GypsumFacing,
|
69
|
+
GypsumFireRating,
|
70
|
+
GypsumThickness,
|
71
|
+
PlasterComposition,
|
72
|
+
ResilientFlooringFormFactor,
|
73
|
+
ResilientFlooringMaterial,
|
74
|
+
ResilientFlooringThickness,
|
75
|
+
SawnTimberSpecies,
|
76
|
+
VinylSheetConstruction,
|
77
|
+
WallBaseMaterial,
|
78
|
+
WoodFlooringFabrication,
|
79
|
+
WoodFlooringTimberSpecies,
|
80
|
+
)
|
81
|
+
from openepd.model.validation.quantity import AmountRangeGWP, AmountRangeLengthMm, AmountRangePressureMpa
|
82
|
+
|
83
|
+
|
84
|
+
class AccessFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
85
|
+
"""
|
86
|
+
Elevated floor system built on top of concrete slab surface.
|
87
|
+
|
88
|
+
It thereby creates a hidden void between the two floors that is used for the passage of mechanical and electrical
|
89
|
+
services. The system consists of panels, stringers, and pedestals.
|
90
|
+
|
91
|
+
Range version.
|
92
|
+
"""
|
93
|
+
|
94
|
+
_EXT_VERSION = "1.0"
|
95
|
+
|
96
|
+
core_material: list[AccessFlooringCoreMaterial] | None = pyd.Field(default=None, description="")
|
97
|
+
finish_material: list[AccessFlooringFinishMaterial] | None = pyd.Field(default=None, description="")
|
98
|
+
stringers: list[AccessFlooringStringers] | None = pyd.Field(default=None, description="")
|
99
|
+
seismic_rating: list[AccessFlooringSeismicRating] | None = pyd.Field(default=None, description="")
|
100
|
+
magnetically_attached_finish: bool | None = pyd.Field(default=None, description="")
|
101
|
+
permanent_finish: bool | None = pyd.Field(default=None, description="")
|
102
|
+
drylay: bool | None = pyd.Field(default=None, description="")
|
103
|
+
adjustable_height: bool | None = pyd.Field(default=None, description="")
|
104
|
+
fixed_height: bool | None = pyd.Field(default=None, description="")
|
105
|
+
finished_floor_height: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
106
|
+
panel_thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
107
|
+
concentrated_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
108
|
+
uniform_load: AmountRangePressureMpa | None = pyd.Field(default=None, description="")
|
109
|
+
rolling_load_10_pass: str | None = pyd.Field(default=None, description="")
|
110
|
+
rolling_load_10000_pass: str | None = pyd.Field(default=None, description="")
|
111
|
+
|
112
|
+
|
113
|
+
class CarpetRangeV1(BaseOpenEpdHierarchicalSpec):
|
114
|
+
"""
|
115
|
+
Textile Floor Coverings.
|
116
|
+
|
117
|
+
Range version.
|
118
|
+
"""
|
119
|
+
|
120
|
+
_EXT_VERSION = "1.0"
|
121
|
+
|
122
|
+
length: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
123
|
+
width: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
124
|
+
intended_application: list[CarpetIntendedApplication] | None = pyd.Field(default=None, description="")
|
125
|
+
manufacture_type: list[CarpetManufactureType] | None = pyd.Field(default=None, description="")
|
126
|
+
form_factor: list[CarpetFormFactor] | None = pyd.Field(default=None, description="")
|
127
|
+
yarn_weight: str | None = pyd.Field(default=None, description="")
|
128
|
+
yarn_type: list[CarpetYarnType] | None = pyd.Field(default=None, description="")
|
129
|
+
fire_radiant_panel_rating_astme648: str | None = pyd.Field(default=None, description="")
|
130
|
+
fire_smoke_density_rating_astme648: str | None = pyd.Field(default=None, description="")
|
131
|
+
voc_emissions: str | None = pyd.Field(default=None, description="")
|
132
|
+
cushioned: bool | None = pyd.Field(default=None, description="")
|
133
|
+
bleachable: bool | None = pyd.Field(default=None, description="")
|
134
|
+
gwp_factor_base: AmountRangeGWP | None = pyd.Field(default=None, description="")
|
135
|
+
gwp_factor_yarn: AmountRangeGWP | None = pyd.Field(default=None, description="")
|
136
|
+
|
137
|
+
|
138
|
+
class LaminateRangeV1(BaseOpenEpdHierarchicalSpec):
|
139
|
+
"""
|
140
|
+
Laminate flooring.
|
141
|
+
|
142
|
+
Range version.
|
143
|
+
"""
|
144
|
+
|
145
|
+
_EXT_VERSION = "1.0"
|
146
|
+
|
147
|
+
|
148
|
+
class OtherFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
149
|
+
"""
|
150
|
+
Other not yet classified kinds of flooring.
|
151
|
+
|
152
|
+
Range version.
|
153
|
+
"""
|
154
|
+
|
155
|
+
_EXT_VERSION = "1.0"
|
156
|
+
|
157
|
+
|
158
|
+
class ResilientFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
159
|
+
"""
|
160
|
+
Resilient floor products.
|
161
|
+
|
162
|
+
Includes vinyl, rubber, linoleum, composition cork, etc. in modular square or rectangle shapes.
|
163
|
+
|
164
|
+
Range version.
|
165
|
+
"""
|
166
|
+
|
167
|
+
_EXT_VERSION = "1.0"
|
168
|
+
|
169
|
+
length: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
170
|
+
width: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
171
|
+
form_factor: list[ResilientFlooringFormFactor] | None = pyd.Field(default=None, description="")
|
172
|
+
material: list[ResilientFlooringMaterial] | None = pyd.Field(default=None, description="")
|
173
|
+
sheet_construction: list[VinylSheetConstruction] | None = pyd.Field(default=None, description="")
|
174
|
+
wear_layer: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
175
|
+
delta_iic: RangeFloat | None = pyd.Field(default=None, description="")
|
176
|
+
thickness: list[ResilientFlooringThickness] | None = pyd.Field(default=None, description="")
|
177
|
+
sport_flooring: bool | None = pyd.Field(default=None, description="")
|
178
|
+
conductive_flooring: bool | None = pyd.Field(default=None, description="")
|
179
|
+
zwtl: bool | None = pyd.Field(default=None, description="")
|
180
|
+
floor_score: bool | None = pyd.Field(default=None, description="")
|
181
|
+
nsf332: bool | None = pyd.Field(default=None, description="")
|
182
|
+
|
183
|
+
|
184
|
+
class WallBaseRangeV1(BaseOpenEpdHierarchicalSpec):
|
185
|
+
"""
|
186
|
+
Wall base made to help cover gaps between wall and vinyl, rubber, wood, or tile flooring.
|
187
|
+
|
188
|
+
Range version.
|
189
|
+
"""
|
190
|
+
|
191
|
+
_EXT_VERSION = "1.0"
|
192
|
+
|
193
|
+
wall_base_material: list[WallBaseMaterial] | None = pyd.Field(default=None, description="")
|
194
|
+
|
195
|
+
|
196
|
+
class WoodFlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
197
|
+
"""
|
198
|
+
Wood flooring for interior applications.
|
199
|
+
|
200
|
+
Includes hardwood strip and plank flooring, engineered hardwood flooring, wood parquet flooring, coordinated
|
201
|
+
transitions, and molding pieces.
|
202
|
+
|
203
|
+
Range version.
|
204
|
+
"""
|
205
|
+
|
206
|
+
_EXT_VERSION = "1.0"
|
207
|
+
|
208
|
+
forest_practices_certifiers: list[OrgRef] | None = None
|
209
|
+
thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
210
|
+
timber_species: list[WoodFlooringTimberSpecies] | None = pyd.Field(default=None, description="")
|
211
|
+
fabrication: list[WoodFlooringFabrication] | None = pyd.Field(default=None, description="")
|
212
|
+
|
213
|
+
|
214
|
+
class AcousticalCeilingsRangeV1(BaseOpenEpdHierarchicalSpec):
|
215
|
+
"""
|
216
|
+
Acoustical ceiling panels.
|
217
|
+
|
218
|
+
Range version.
|
219
|
+
"""
|
220
|
+
|
221
|
+
_EXT_VERSION = "1.0"
|
222
|
+
|
223
|
+
thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
224
|
+
|
225
|
+
|
226
|
+
class CeramicTileRangeV1(BaseOpenEpdHierarchicalSpec):
|
227
|
+
"""
|
228
|
+
Ceramic tiles, including porcelain, quarry, pressed floor tile, wall tile, mosaic tile, etc.
|
229
|
+
|
230
|
+
Range version.
|
231
|
+
"""
|
232
|
+
|
233
|
+
_EXT_VERSION = "1.0"
|
234
|
+
|
235
|
+
porcelain: bool | None = pyd.Field(
|
236
|
+
default=None, description="A dense and durable ceramic tile made from fine porcelain clay."
|
237
|
+
)
|
238
|
+
quarry: bool | None = pyd.Field(
|
239
|
+
default=None,
|
240
|
+
description="A type of unglazed ceramic tile made from natural clay with a slightly rough texture.",
|
241
|
+
)
|
242
|
+
pressed_floor_tile: bool | None = pyd.Field(
|
243
|
+
default=None,
|
244
|
+
description="A durable and low-maintenance type of tile made by compressing clay or other materials at high pressure.",
|
245
|
+
)
|
246
|
+
wall_tile: bool | None = pyd.Field(
|
247
|
+
default=None,
|
248
|
+
description="A decorative tile designed for use on vertical surfaces such as walls or backsplashes.",
|
249
|
+
)
|
250
|
+
mosaic_tile: bool | None = pyd.Field(
|
251
|
+
default=None,
|
252
|
+
description="A small decorative tile made of glass, stone, or ceramic, arranged in a pattern to create a design.",
|
253
|
+
)
|
254
|
+
specialty: bool | None = pyd.Field(
|
255
|
+
default=None,
|
256
|
+
description="A unique and customized type of tile, often made from unconventional materials or with specialized designs or finishes.",
|
257
|
+
)
|
258
|
+
|
259
|
+
|
260
|
+
class GaugedTileRangeV1(BaseOpenEpdHierarchicalSpec):
|
261
|
+
"""
|
262
|
+
Specially manufactured porcelain tile with extra-large panels/slabs.
|
263
|
+
|
264
|
+
Manufactured to a specific thickness ranging from 2-20 mm.
|
265
|
+
|
266
|
+
Range version.
|
267
|
+
"""
|
268
|
+
|
269
|
+
_EXT_VERSION = "1.0"
|
270
|
+
|
271
|
+
tile_panels: bool | None = pyd.Field(
|
272
|
+
default=None,
|
273
|
+
description="Large-format porcelain or natural stone tiles that are typically over 3 feet in length and width, designed for use in floor and wall installations to create a seamless and uninterrupted appearance.",
|
274
|
+
)
|
275
|
+
tile_pavers: bool | None = pyd.Field(
|
276
|
+
default=None,
|
277
|
+
description="Thick and durable porcelain or natural stone tiles that are commonly used in outdoor applications, such as patios, walkways, and driveways, due to their high resistance to weather and wear.",
|
278
|
+
)
|
279
|
+
|
280
|
+
|
281
|
+
class GlassTileRangeV1(BaseOpenEpdHierarchicalSpec):
|
282
|
+
"""
|
283
|
+
Glass Tiles.
|
284
|
+
|
285
|
+
Range version.
|
286
|
+
"""
|
287
|
+
|
288
|
+
_EXT_VERSION = "1.0"
|
289
|
+
|
290
|
+
regular: bool | None = pyd.Field(
|
291
|
+
default=None,
|
292
|
+
description="Glass tile that is typically square or rectangular in shape, and used for a variety of decorative applications, such as kitchen backsplashes, shower walls, and accent borders.",
|
293
|
+
)
|
294
|
+
glass_mosaic: bool | None = pyd.Field(
|
295
|
+
default=None,
|
296
|
+
description="A small, decorative glass tile made in a variety of shapes and colors, used for intricate designs and patterns on walls, floors, and other surfaces.",
|
297
|
+
)
|
298
|
+
miniature_mosaic: bool | None = pyd.Field(
|
299
|
+
default=None,
|
300
|
+
description="Glass mosaic tile that is smaller in size than regular glass mosaic tile, often used for intricate details and designs in backsplashes, shower walls, and decorative accents.",
|
301
|
+
)
|
302
|
+
large_format: bool | None = pyd.Field(
|
303
|
+
default=None,
|
304
|
+
description="Glass tile that is larger in size than regular glass tile, often used to create a dramatic and modern effect in commercial and residential spaces.",
|
305
|
+
)
|
306
|
+
|
307
|
+
|
308
|
+
class GypsumSupportsRangeV1(BaseOpenEpdHierarchicalSpec):
|
309
|
+
"""
|
310
|
+
Supports for suspended and furred gypsum wall and ceiling assemblies.
|
311
|
+
|
312
|
+
Range version.
|
313
|
+
"""
|
314
|
+
|
315
|
+
_EXT_VERSION = "1.0"
|
316
|
+
|
317
|
+
|
318
|
+
class FlooringRangeV1(BaseOpenEpdHierarchicalSpec):
|
319
|
+
"""
|
320
|
+
General category - finishes for floors.
|
321
|
+
|
322
|
+
Range version.
|
323
|
+
"""
|
324
|
+
|
325
|
+
_EXT_VERSION = "1.0"
|
326
|
+
|
327
|
+
AccessFlooring: AccessFlooringRangeV1 | None = None
|
328
|
+
Carpet: CarpetRangeV1 | None = None
|
329
|
+
Laminate: LaminateRangeV1 | None = None
|
330
|
+
OtherFlooring: OtherFlooringRangeV1 | None = None
|
331
|
+
ResilientFlooring: ResilientFlooringRangeV1 | None = None
|
332
|
+
WallBase: WallBaseRangeV1 | None = None
|
333
|
+
WoodFlooring: WoodFlooringRangeV1 | None = None
|
334
|
+
|
335
|
+
|
336
|
+
class CeilingPanelRangeV1(BaseOpenEpdHierarchicalSpec):
|
337
|
+
"""
|
338
|
+
Acoustical and other specialty ceiling panels.
|
339
|
+
|
340
|
+
Range version.
|
341
|
+
"""
|
342
|
+
|
343
|
+
_EXT_VERSION = "1.0"
|
344
|
+
|
345
|
+
fire_rating: list[CeilingPanelFireRating] | None = pyd.Field(default=None, description="")
|
346
|
+
core_material: list[CeilingPanelCoreMaterial] | None = pyd.Field(default=None, description="")
|
347
|
+
nrc: RangeRatioFloat | None = pyd.Field(
|
348
|
+
default=None, description="Noise Reduction Coefficient (NRC) or Sound Absorbtion Average (SAA) per ASTM C423"
|
349
|
+
)
|
350
|
+
cac: RangeInt | None = pyd.Field(default=None, description="Ceiling Attenuation Class (CAC) per ASTM E1414")
|
351
|
+
AcousticalCeilings: AcousticalCeilingsRangeV1 | None = None
|
352
|
+
|
353
|
+
|
354
|
+
class BackingAndUnderlayRangeV1(BaseOpenEpdHierarchicalSpec):
|
355
|
+
"""
|
356
|
+
Cementitious, glass-mat faced gypsum, and fibered gypsum backing boards to support finish materials.
|
357
|
+
|
358
|
+
Range version.
|
359
|
+
"""
|
360
|
+
|
361
|
+
_EXT_VERSION = "1.0"
|
362
|
+
|
363
|
+
|
364
|
+
class CementBoardRangeV1(BaseOpenEpdHierarchicalSpec):
|
365
|
+
"""
|
366
|
+
Hard cementitious boards, typically used as a tile backer.
|
367
|
+
|
368
|
+
Range version.
|
369
|
+
"""
|
370
|
+
|
371
|
+
_EXT_VERSION = "1.0"
|
372
|
+
|
373
|
+
thickness: list[CementBoardThickness] | None = pyd.Field(default=None, description="")
|
374
|
+
|
375
|
+
|
376
|
+
class TilingRangeV1(BaseOpenEpdHierarchicalSpec):
|
377
|
+
"""
|
378
|
+
Decorative building materials that includes a variety of ceramic, porcelain, and glass tiles.
|
379
|
+
|
380
|
+
Used for covering and enhancing surfaces such as floors, walls, and countertops.
|
381
|
+
|
382
|
+
Range version.
|
383
|
+
"""
|
384
|
+
|
385
|
+
_EXT_VERSION = "1.0"
|
386
|
+
|
387
|
+
thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
388
|
+
flooring: bool | None = pyd.Field(default=None, description="Tiling intended for walking.")
|
389
|
+
wall_finish: bool | None = pyd.Field(
|
390
|
+
default=None,
|
391
|
+
description="A decorative tile designed for use on vertical surfaces such as walls or backsplashes.",
|
392
|
+
)
|
393
|
+
cladding: bool | None = pyd.Field(
|
394
|
+
default=None,
|
395
|
+
description="Tiling for exterior use, primarily used for the walls of buildings and structures, providing a protective and decorative layer that enhances the aesthetic appearance and weather resistance of the underlying structure.",
|
396
|
+
)
|
397
|
+
other: bool | None = pyd.Field(
|
398
|
+
default=None, description="Tiling used as countertops, ceilings, furnishings, hardscapes etc."
|
399
|
+
)
|
400
|
+
residential_only: bool | None = pyd.Field(
|
401
|
+
default=None,
|
402
|
+
description="All commercial tile can also be used in residential applications, but the opposite may not be true. This selection allows to filter out tiling that is not intended for commercial applications.",
|
403
|
+
)
|
404
|
+
reinforced: bool | None = pyd.Field(
|
405
|
+
default=None, description="Steel-reinforced ceramic tiles or tiles with other special reinforcing technology."
|
406
|
+
)
|
407
|
+
total_recycled_content: RangeRatioFloat | None = pyd.Field(
|
408
|
+
default=None,
|
409
|
+
description="Proportion of this product that is sourced from recycled content. Pre-consumer recycling is given a 50% weighting, 100% for post-consumer, by mass.",
|
410
|
+
)
|
411
|
+
post_consumer_recycled_content: RangeRatioFloat | None = pyd.Field(
|
412
|
+
default=None,
|
413
|
+
description="Proportion of this product that is sourced from post-consumer recycled content, by mass.",
|
414
|
+
)
|
415
|
+
CeramicTile: CeramicTileRangeV1 | None = None
|
416
|
+
GaugedTile: GaugedTileRangeV1 | None = None
|
417
|
+
GlassTile: GlassTileRangeV1 | None = None
|
418
|
+
|
419
|
+
|
420
|
+
class DeckingBoardsRangeV1(BaseOpenEpdHierarchicalSpec):
|
421
|
+
"""
|
422
|
+
Decking boards provide the finished surface of a deck and support the weight of people and furniture.
|
423
|
+
|
424
|
+
Range version.
|
425
|
+
"""
|
426
|
+
|
427
|
+
_EXT_VERSION = "1.0"
|
428
|
+
|
429
|
+
forest_practices_certifiers: list[OrgRef] | None = None
|
430
|
+
timber_species: list[SawnTimberSpecies] | None = pyd.Field(default=None, description="")
|
431
|
+
fabrication: list[AllFabrication] | None = pyd.Field(default=None, description="")
|
432
|
+
weather_exposed: bool | None = pyd.Field(default=None, description="")
|
433
|
+
fire_retardant: bool | None = pyd.Field(default=None, description="")
|
434
|
+
decay_resistant: bool | None = pyd.Field(default=None, description="")
|
435
|
+
material: list[DeckingBoardMaterial] | None = pyd.Field(default=None, description="")
|
436
|
+
|
437
|
+
|
438
|
+
class GlassFiberReinforcedGypsumFabricationsRangeV1(BaseOpenEpdHierarchicalSpec):
|
439
|
+
"""
|
440
|
+
Gypsum with integrated glass fiber reinforcement, which may be fabricated in complex shapes or as a board.
|
441
|
+
|
442
|
+
Range version.
|
443
|
+
"""
|
444
|
+
|
445
|
+
_EXT_VERSION = "1.0"
|
446
|
+
|
447
|
+
|
448
|
+
class GypsumRangeV1(BaseOpenEpdHierarchicalSpec):
|
449
|
+
"""
|
450
|
+
Gypsum board used for interior walls, ceilings, and similar applications.
|
451
|
+
|
452
|
+
Range version.
|
453
|
+
"""
|
454
|
+
|
455
|
+
_EXT_VERSION = "1.1"
|
456
|
+
|
457
|
+
fire_rating: list[GypsumFireRating] | None = pyd.Field(default=None, description="")
|
458
|
+
thickness: list[GypsumThickness] | None = pyd.Field(default=None, description="")
|
459
|
+
facing: list[GypsumFacing] | None = pyd.Field(default=None, description="")
|
460
|
+
r_factor: str | None = pyd.Field(default=None, description="")
|
461
|
+
flame_spread_astm_e84: RangeInt | None = pyd.Field(default=None, description="")
|
462
|
+
smoke_production_astm_e84: RangeInt | None = pyd.Field(default=None, description="")
|
463
|
+
surface_abrasion_d4977: RangeInt | None = pyd.Field(default=None, description="")
|
464
|
+
indentation_d5420: RangeInt | None = pyd.Field(default=None, description="")
|
465
|
+
soft_body_impact_e695: RangeInt | None = pyd.Field(default=None, description="")
|
466
|
+
hard_body_impact_c1929: RangeInt | None = pyd.Field(default=None, description="")
|
467
|
+
mold_resistant: bool | None = pyd.Field(default=None, description="")
|
468
|
+
foil_backing: bool | None = pyd.Field(default=None, description="")
|
469
|
+
moisture_resistant: bool | None = pyd.Field(default=None, description="")
|
470
|
+
abuse_resistant: bool | None = pyd.Field(default=None, description="")
|
471
|
+
GypsumSupports: GypsumSupportsRangeV1 | None = None
|
472
|
+
|
473
|
+
|
474
|
+
class MirrorsRangeV1(BaseOpenEpdHierarchicalSpec):
|
475
|
+
"""
|
476
|
+
Mirrors.
|
477
|
+
|
478
|
+
Range version.
|
479
|
+
"""
|
480
|
+
|
481
|
+
_EXT_VERSION = "1.0"
|
482
|
+
|
483
|
+
|
484
|
+
class PaintByMassRangeV1(BaseOpenEpdHierarchicalSpec):
|
485
|
+
"""
|
486
|
+
Paintings and coatings by mass.
|
487
|
+
|
488
|
+
Expected declared unit for products is mass of ready to use product.
|
489
|
+
|
490
|
+
Range version.
|
491
|
+
"""
|
492
|
+
|
493
|
+
_EXT_VERSION = "1.0"
|
494
|
+
|
495
|
+
|
496
|
+
class PaintByVolumeRangeV1(BaseOpenEpdHierarchicalSpec):
|
497
|
+
"""
|
498
|
+
Paintings and coatings by volume.
|
499
|
+
|
500
|
+
Expecting declared unit for products is volume of ready to use product.
|
501
|
+
|
502
|
+
Range version.
|
503
|
+
"""
|
504
|
+
|
505
|
+
_EXT_VERSION = "1.0"
|
506
|
+
|
507
|
+
|
508
|
+
class PaintByAreaRangeV1(BaseOpenEpdHierarchicalSpec):
|
509
|
+
"""
|
510
|
+
Paintings and coatings by area.
|
511
|
+
|
512
|
+
Expected declared unit is area of host surface covered by the product.
|
513
|
+
|
514
|
+
Range version.
|
515
|
+
"""
|
516
|
+
|
517
|
+
_EXT_VERSION = "1.0"
|
518
|
+
|
519
|
+
|
520
|
+
class PaintingAndCoatingRangeV1(BaseOpenEpdHierarchicalSpec):
|
521
|
+
"""
|
522
|
+
Paintings and coatings.
|
523
|
+
|
524
|
+
Range version.
|
525
|
+
"""
|
526
|
+
|
527
|
+
_EXT_VERSION = "1.1"
|
528
|
+
|
529
|
+
PaintByMass: PaintByMassRangeV1 | None = None
|
530
|
+
PaintByVolume: PaintByVolumeRangeV1 | None = None
|
531
|
+
PaintByArea: PaintByAreaRangeV1 | None = None
|
532
|
+
|
533
|
+
|
534
|
+
class WallFinishesRangeV1(BaseOpenEpdHierarchicalSpec):
|
535
|
+
"""
|
536
|
+
Interior wall coverings including fabric, textile, wood, stone, and metal products.
|
537
|
+
|
538
|
+
Range version.
|
539
|
+
"""
|
540
|
+
|
541
|
+
_EXT_VERSION = "1.0"
|
542
|
+
|
543
|
+
thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
544
|
+
|
545
|
+
|
546
|
+
class PlasterRangeV1(BaseOpenEpdHierarchicalSpec):
|
547
|
+
"""
|
548
|
+
Plaster, Stucco, & Render.
|
549
|
+
|
550
|
+
Used for the protective or decorative coating of walls and ceilings and for
|
551
|
+
moulding and casting decorative elements. These are typically gypsum-, lime-,
|
552
|
+
or cement-based. Products in this category refer to dry mix.
|
553
|
+
|
554
|
+
Range version.
|
555
|
+
"""
|
556
|
+
|
557
|
+
_EXT_VERSION = "1.0"
|
558
|
+
|
559
|
+
composition: list[PlasterComposition] | None = pyd.Field(default=None, description="")
|
560
|
+
application_rate: RangeAmount | None = pyd.Field(
|
561
|
+
default=None, description="Typical or reference amount of material covering a unit of a host surface."
|
562
|
+
)
|
563
|
+
|
564
|
+
|
565
|
+
class FinishesRangeV1(BaseOpenEpdHierarchicalSpec):
|
566
|
+
"""
|
567
|
+
General category - finishes for interior ceilings, floors, walls.
|
568
|
+
|
569
|
+
Range version.
|
570
|
+
"""
|
571
|
+
|
572
|
+
_EXT_VERSION = "1.1"
|
573
|
+
|
574
|
+
Flooring: FlooringRangeV1 | None = None
|
575
|
+
CeilingPanel: CeilingPanelRangeV1 | None = None
|
576
|
+
BackingAndUnderlay: BackingAndUnderlayRangeV1 | None = None
|
577
|
+
CementBoard: CementBoardRangeV1 | None = None
|
578
|
+
Tiling: TilingRangeV1 | None = None
|
579
|
+
DeckingBoards: DeckingBoardsRangeV1 | None = None
|
580
|
+
GlassFiberReinforcedGypsumFabrications: GlassFiberReinforcedGypsumFabricationsRangeV1 | None = None
|
581
|
+
Gypsum: GypsumRangeV1 | None = None
|
582
|
+
Mirrors: MirrorsRangeV1 | None = None
|
583
|
+
PaintingAndCoating: PaintingAndCoatingRangeV1 | None = None
|
584
|
+
WallFinishes: WallFinishesRangeV1 | None = None
|
585
|
+
Plaster: PlasterRangeV1 | None = None
|
@@ -0,0 +1,108 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2024 by C Change Labs Inc. www.c-change-labs.com
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
__all__ = (
|
17
|
+
"IntumescentFireproofingRangeV1",
|
18
|
+
"SprayFireproofingRangeV1",
|
19
|
+
"AppliedFireproofingRangeV1",
|
20
|
+
"FirestoppingRangeV1",
|
21
|
+
"FireAndSmokeProtectionRangeV1",
|
22
|
+
)
|
23
|
+
|
24
|
+
# NB! This is a generated code. Do not edit it manually. Please see src/openepd/model/specs/README.md
|
25
|
+
|
26
|
+
|
27
|
+
from openepd.compat.pydantic import pyd
|
28
|
+
from openepd.model.specs.base import BaseOpenEpdHierarchicalSpec
|
29
|
+
from openepd.model.specs.generated.enums import (
|
30
|
+
IntumescentFireproofingMaterialType,
|
31
|
+
SprayFireproofingDensity,
|
32
|
+
SprayFireproofingMaterialType,
|
33
|
+
)
|
34
|
+
from openepd.model.validation.quantity import AmountRangeLengthMm
|
35
|
+
|
36
|
+
|
37
|
+
class IntumescentFireproofingRangeV1(BaseOpenEpdHierarchicalSpec):
|
38
|
+
"""
|
39
|
+
Fireproofing material applied to structural materials, which swells as a result of heat exposure.
|
40
|
+
|
41
|
+
As a result it increases in volume and decreasing in density.
|
42
|
+
|
43
|
+
Range version.
|
44
|
+
"""
|
45
|
+
|
46
|
+
_EXT_VERSION = "1.0"
|
47
|
+
|
48
|
+
material_type: list[IntumescentFireproofingMaterialType] | None = pyd.Field(default=None, description="")
|
49
|
+
|
50
|
+
|
51
|
+
class SprayFireproofingRangeV1(BaseOpenEpdHierarchicalSpec):
|
52
|
+
"""
|
53
|
+
Spray fireproofing.
|
54
|
+
|
55
|
+
A passive fire protection system that reduces the rate of temperature increase in concrete or steel during a fire.
|
56
|
+
|
57
|
+
Range version.
|
58
|
+
"""
|
59
|
+
|
60
|
+
_EXT_VERSION = "1.0"
|
61
|
+
|
62
|
+
material_type: list[SprayFireproofingMaterialType] | None = pyd.Field(default=None, description="")
|
63
|
+
density: list[SprayFireproofingDensity] | None = pyd.Field(default=None, description="")
|
64
|
+
|
65
|
+
|
66
|
+
class AppliedFireproofingRangeV1(BaseOpenEpdHierarchicalSpec):
|
67
|
+
"""
|
68
|
+
Fireproofing material applied to structural materials.
|
69
|
+
|
70
|
+
Materials include: cement aggregate, cementitious, magnesium-oxychloride, intumescent, magnesium cement, mineral
|
71
|
+
fiber, and mineral fiber fireproofing products.
|
72
|
+
|
73
|
+
Range version.
|
74
|
+
"""
|
75
|
+
|
76
|
+
_EXT_VERSION = "1.0"
|
77
|
+
|
78
|
+
thickness: AmountRangeLengthMm | None = pyd.Field(default=None, description="")
|
79
|
+
IntumescentFireproofing: IntumescentFireproofingRangeV1 | None = None
|
80
|
+
SprayFireproofing: SprayFireproofingRangeV1 | None = None
|
81
|
+
|
82
|
+
|
83
|
+
class FirestoppingRangeV1(BaseOpenEpdHierarchicalSpec):
|
84
|
+
"""
|
85
|
+
Seals and protects openings and joints in fire rate assemblies.
|
86
|
+
|
87
|
+
Typically sealants, sprays, and caulks.
|
88
|
+
|
89
|
+
Range version.
|
90
|
+
"""
|
91
|
+
|
92
|
+
_EXT_VERSION = "1.0"
|
93
|
+
|
94
|
+
|
95
|
+
class FireAndSmokeProtectionRangeV1(BaseOpenEpdHierarchicalSpec):
|
96
|
+
"""
|
97
|
+
Fire and smoke protection.
|
98
|
+
|
99
|
+
General category of materials whose function is to provide protection of materials, spaces, and occupants from
|
100
|
+
fire and smoke damage.
|
101
|
+
|
102
|
+
Range version.
|
103
|
+
"""
|
104
|
+
|
105
|
+
_EXT_VERSION = "1.0"
|
106
|
+
|
107
|
+
AppliedFireproofing: AppliedFireproofingRangeV1 | None = None
|
108
|
+
Firestopping: FirestoppingRangeV1 | None = None
|