honeybee-schema 1.59.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. honeybee_schema/__init__.py +1 -0
  2. honeybee_schema/__main__.py +4 -0
  3. honeybee_schema/_base.py +42 -0
  4. honeybee_schema/altnumber.py +18 -0
  5. honeybee_schema/boundarycondition.py +81 -0
  6. honeybee_schema/cli.py +115 -0
  7. honeybee_schema/comparison.py +208 -0
  8. honeybee_schema/doe2/__init__.py +0 -0
  9. honeybee_schema/doe2/properties.py +75 -0
  10. honeybee_schema/energy/__init__.py +0 -0
  11. honeybee_schema/energy/_base.py +64 -0
  12. honeybee_schema/energy/construction.py +324 -0
  13. honeybee_schema/energy/constructionset.py +359 -0
  14. honeybee_schema/energy/daylight.py +62 -0
  15. honeybee_schema/energy/designday.py +212 -0
  16. honeybee_schema/energy/generator.py +140 -0
  17. honeybee_schema/energy/global_constructionset.py +129 -0
  18. honeybee_schema/energy/hvac/__init__.py +0 -0
  19. honeybee_schema/energy/hvac/_template.py +38 -0
  20. honeybee_schema/energy/hvac/allair.py +257 -0
  21. honeybee_schema/energy/hvac/detailed.py +20 -0
  22. honeybee_schema/energy/hvac/doas.py +248 -0
  23. honeybee_schema/energy/hvac/heatcool.py +309 -0
  24. honeybee_schema/energy/hvac/idealair.py +107 -0
  25. honeybee_schema/energy/internalmass.py +25 -0
  26. honeybee_schema/energy/load.py +627 -0
  27. honeybee_schema/energy/material.py +949 -0
  28. honeybee_schema/energy/programtype.py +117 -0
  29. honeybee_schema/energy/properties.py +382 -0
  30. honeybee_schema/energy/schedule.py +350 -0
  31. honeybee_schema/energy/shw.py +53 -0
  32. honeybee_schema/energy/simulation.py +440 -0
  33. honeybee_schema/energy/ventcool.py +337 -0
  34. honeybee_schema/geometry.py +161 -0
  35. honeybee_schema/model.py +473 -0
  36. honeybee_schema/projectinfo.py +94 -0
  37. honeybee_schema/radiance/__init__.py +0 -0
  38. honeybee_schema/radiance/_base.py +22 -0
  39. honeybee_schema/radiance/asset.py +191 -0
  40. honeybee_schema/radiance/global_modifierset.py +92 -0
  41. honeybee_schema/radiance/modifier.py +373 -0
  42. honeybee_schema/radiance/modifierset.py +296 -0
  43. honeybee_schema/radiance/properties.py +149 -0
  44. honeybee_schema/radiance/state.py +69 -0
  45. honeybee_schema/updater/__init__.py +0 -0
  46. honeybee_schema/updater/version_1_39_12.py +14 -0
  47. honeybee_schema/updater/version_1_40_1.py +153 -0
  48. honeybee_schema/updater/version_1_43_1.py +18 -0
  49. honeybee_schema/updater/version_1_43_2.py +12 -0
  50. honeybee_schema/updater/version_1_43_5.py +11 -0
  51. honeybee_schema/validation.py +205 -0
  52. honeybee_schema-1.59.1.dist-info/METADATA +108 -0
  53. honeybee_schema-1.59.1.dist-info/RECORD +57 -0
  54. honeybee_schema-1.59.1.dist-info/WHEEL +5 -0
  55. honeybee_schema-1.59.1.dist-info/entry_points.txt +2 -0
  56. honeybee_schema-1.59.1.dist-info/licenses/LICENSE +23 -0
  57. honeybee_schema-1.59.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,153 @@
1
+ """Changes associated with version Honeybee schema version 1.40.1."""
2
+
3
+
4
+ def version_1_40_1(model_dict):
5
+ """Implement changes in a Model dict to make it compatible with version 1.40.1."""
6
+ if 'energy' in model_dict['properties']:
7
+ if 'hvacs' in model_dict['properties']['energy']:
8
+ for hvac in model_dict['properties']['energy']['hvacs']:
9
+ if hvac['type'] != 'IdealAirSystemAbridged': # it's detailed
10
+ hvac['vintage'] = VINTAGE_MAPPER[hvac['vintage']]
11
+ hvac['equipment_type'] = EQUIPMENT_MAPPER[hvac['equipment_type']]
12
+ return model_dict
13
+
14
+
15
+ # dictionary to map between old and new vintages
16
+ VINTAGE_MAPPER = {
17
+ '90.1-2013': 'ASHRAE_2013',
18
+ '90.1-2010': 'ASHRAE_2010',
19
+ '90.1-2007': 'ASHRAE_2007',
20
+ '90.1-2004': 'ASHRAE_2004',
21
+ 'DOE Ref 1980-2004': 'DOE_Ref_1980_2004',
22
+ 'DOE Ref Pre-1980': 'DOE_Ref_Pre_1980'
23
+ }
24
+
25
+ # dictionary to map between the old and new HVAC equipment enumerations
26
+ EQUIPMENT_MAPPER = {
27
+ 'VAV chiller with gas boiler reheat': 'VAV_Chiller_Boiler',
28
+ 'VAV chiller with central air source heat pump reheat': 'VAV_Chiller_ASHP',
29
+ 'VAV chiller with district hot water reheat': 'VAV_Chiller_DHW',
30
+ 'VAV chiller with PFP boxes': 'VAV_Chiller_PFP',
31
+ 'VAV chiller with gas coil reheat': 'VAV_Chiller_GasCoil',
32
+ 'VAV air-cooled chiller with gas boiler reheat': 'VAV_ACChiller_Boiler',
33
+ 'VAV air-cooled chiller with central air source heat pump reheat': 'VAV_ACChiller_ASHP',
34
+ 'VAV air-cooled chiller with district hot water reheat': 'VAV_ACChiller_DHW',
35
+ 'VAV air-cooled chiller with PFP boxes': 'VAV_ACChiller_PFP',
36
+ 'VAV air-cooled chiller with gas coil reheat': 'VAV_ACChiller_GasCoil',
37
+ 'VAV district chilled water with gas boiler reheat': 'VAV_DCW_Boiler',
38
+ 'VAV district chilled water with central air source heat pump reheat': 'VAV_DCW_ASHP',
39
+ 'VAV district chilled water with district hot water reheat': 'VAV_DCW_DHW',
40
+ 'VAV district chilled water with PFP boxes': 'VAV_DCW_PFP',
41
+ 'VAV district chilled water with gas coil reheat': 'VAV_DCW_GasCoil',
42
+ 'PVAV with gas boiler reheat': 'PVAV_Boiler',
43
+ 'PVAV with central air source heat pump reheat': 'PVAV_ASHP',
44
+ 'PVAV with district hot water reheat': 'PVAV_DHW',
45
+ 'PVAV with PFP boxes': 'PVAV_PFP',
46
+ 'PVAV with gas heat with electric reheat': 'PVAV_BoilerElectricReheat',
47
+ 'PSZ-AC with baseboard electric': 'PSZAC_ElectricBaseboard',
48
+ 'PSZ-AC with baseboard gas boiler': 'PSZAC_BoilerBaseboard',
49
+ 'PSZ-AC with baseboard district hot water': 'PSZAC_DHWBaseboard',
50
+ 'PSZ-AC with gas unit heaters': 'PSZAC_GasHeaters',
51
+ 'PSZ-AC with electric coil': 'PSZAC_ElectricCoil',
52
+ 'PSZ-AC with gas coil': 'PSZAC_GasCoil',
53
+ 'PSZ-AC with gas boiler': 'PSZAC_Boiler',
54
+ 'PSZ-AC with central air source heat pump': 'PSZAC_ASHP',
55
+ 'PSZ-AC with district hot water': 'PSZAC_DHW',
56
+ 'PSZ-AC with no heat': 'PSZAC',
57
+ 'PSZ-AC district chilled water with baseboard electric': 'PSZAC_DCW_ElectricBaseboard',
58
+ 'PSZ-AC district chilled water with baseboard gas boiler': 'PSZAC_DCW_BoilerBaseboard',
59
+ 'PSZ-AC district chilled water with gas unit heaters': 'PSZAC_DCW_GasHeaters',
60
+ 'PSZ-AC district chilled water with electric coil': 'PSZAC_DCW_ElectricCoil',
61
+ 'PSZ-AC district chilled water with gas coil': 'PSZAC_DCW_GasCoil',
62
+ 'PSZ-AC district chilled water with gas boiler': 'PSZAC_DCW_Boiler',
63
+ 'PSZ-AC district chilled water with central air source heat pump': 'PSZAC_DCW_ASHP',
64
+ 'PSZ-AC district chilled water with district hot water': 'PSZAC_DCW_DHW',
65
+ 'PSZ-AC district chilled water with no heat': 'PSZAC_DCW',
66
+ 'PSZ-HP': 'PSZHP',
67
+ 'PTAC with baseboard electric': 'PTAC_ElectricBaseboard',
68
+ 'PTAC with baseboard gas boiler': 'PTAC_BoilerBaseboard',
69
+ 'PTAC with baseboard district hot water': 'PTAC_DHWBaseboard',
70
+ 'PTAC with gas unit heaters': 'PTAC_GasHeaters',
71
+ 'PTAC with electric coil': 'PTAC_ElectricCoil',
72
+ 'PTAC with gas coil': 'PTAC_GasCoil',
73
+ 'PTAC with gas boiler': 'PTAC_Boiler',
74
+ 'PTAC with central air source heat pump': 'PTAC_ASHP',
75
+ 'PTAC with district hot water': 'PTAC_DHW',
76
+ 'PTAC with no heat': 'PTAC',
77
+ 'PTHP': 'PTHP',
78
+ 'Forced air furnace': 'Furnace',
79
+ 'DOAS with fan coil chiller with boiler': 'DOAS_FCU_Chiller_Boiler',
80
+ 'DOAS with fan coil chiller with central air source heat pump': 'DOAS_FCU_Chiller_ASHP',
81
+ 'DOAS with fan coil chiller with district hot water': 'DOAS_FCU_Chiller_DHW',
82
+ 'DOAS with fan coil chiller with baseboard electric': 'DOAS_FCU_Chiller_ElectricBaseboard',
83
+ 'DOAS with fan coil chiller with gas unit heaters': 'DOAS_FCU_Chiller_GasHeaters',
84
+ 'DOAS with fan coil chiller with no heat': 'DOAS_FCU_Chiller',
85
+ 'DOAS with fan coil air-cooled chiller with boiler': 'DOAS_FCU_ACChiller_Boiler',
86
+ 'DOAS with fan coil air-cooled chiller with central air source heat pump': 'DOAS_FCU_ACChiller_ASHP',
87
+ 'DOAS with fan coil air-cooled chiller with district hot water': 'DOAS_FCU_ACChiller_DHW',
88
+ 'DOAS with fan coil air-cooled chiller with baseboard electric': 'DOAS_FCU_ACChiller_ElectricBaseboard',
89
+ 'DOAS with fan coil air-cooled chiller with gas unit heaters': 'DOAS_FCU_ACChiller_GasHeaters',
90
+ 'DOAS with fan coil air-cooled chiller with no heat': 'DOAS_FCU_ACChiller',
91
+ 'DOAS with fan coil district chilled water with boiler': 'DOAS_FCU_DCW_Boiler',
92
+ 'DOAS with fan coil district chilled water with central air source heat pump': 'DOAS_FCU_DCW_ASHP',
93
+ 'DOAS with fan coil district chilled water with district hot water': 'DOAS_FCU_DCW_DHW',
94
+ 'DOAS with fan coil district chilled water with baseboard electric': 'DOAS_FCU_DCW_ElectricBaseboard',
95
+ 'DOAS with fan coil district chilled water with gas unit heaters': 'DOAS_FCU_DCW_GasHeaters',
96
+ 'DOAS with fan coil district chilled water with no heat': 'DOAS_FCU_DCW',
97
+ 'DOAS with VRF': 'DOAS_VRF',
98
+ 'DOAS with water source heat pumps fluid cooler with boiler': 'DOAS_WSHP_FluidCooler_Boiler',
99
+ 'DOAS with water source heat pumps cooling tower with boiler': 'DOAS_WSHP_CoolingTower_Boiler',
100
+ 'DOAS with water source heat pumps with ground source heat pump': 'DOAS_WSHP_GSHP',
101
+ 'DOAS with water source heat pumps district chilled water with district hot water': 'DOAS_WSHP_DCW_DHW',
102
+ 'Baseboard electric': 'ElectricBaseboard',
103
+ 'Baseboard gas boiler': 'BoilerBaseboard',
104
+ 'Baseboard central air source heat pump': 'ASHPBaseboard',
105
+ 'Baseboard district hot water': 'DHWBaseboard',
106
+ 'Direct evap coolers with baseboard electric': 'EvapCoolers_ElectricBaseboard',
107
+ 'Direct evap coolers with baseboard gas boiler': 'EvapCoolers_BoilerBaseboard',
108
+ 'Direct evap coolers with baseboard central air source heat pump': 'EvapCoolers_ASHPBaseboard',
109
+ 'Direct evap coolers with baseboard district hot water': 'EvapCoolers_DHWBaseboard',
110
+ 'Direct evap coolers with forced air furnace': 'EvapCoolers_Furnace',
111
+ 'Direct evap coolers with gas unit heaters': 'EvapCoolers_UnitHeaters',
112
+ 'Direct evap coolers with no heat': 'EvapCoolers',
113
+ 'Fan coil chiller with boiler': 'FCU_Chiller_Boiler',
114
+ 'Fan coil chiller with central air source heat pump': 'FCU_Chiller_ASHP',
115
+ 'Fan coil chiller with district hot water': 'FCU_Chiller_DHW',
116
+ 'Fan coil chiller with baseboard electric': 'FCU_Chiller_ElectricBaseboard',
117
+ 'Fan coil chiller with gas unit heaters': 'FCU_Chiller_GasHeaters',
118
+ 'Fan coil chiller with no heat': 'FCU_Chiller',
119
+ 'Fan coil air-cooled chiller with boiler': 'FCU_ACChiller_Boiler',
120
+ 'Fan coil air-cooled chiller with central air source heat pump': 'FCU_ACChiller_ASHP',
121
+ 'Fan coil air-cooled chiller with district hot water': 'FCU_ACChiller_DHW',
122
+ 'Fan coil air-cooled chiller with baseboard electric': 'FCU_ACChiller_ElectricBaseboard',
123
+ 'Fan coil air-cooled chiller with gas unit heaters': 'FCU_ACChiller_GasHeaters',
124
+ 'Fan coil air-cooled chiller with no heat': 'FCU_ACChiller',
125
+ 'Fan coil district chilled water with boiler': 'FCU_DCW_Boiler',
126
+ 'Fan coil district chilled water with central air source heat pump': 'FCU_DCW_ASHP',
127
+ 'Fan coil district chilled water with district hot water': 'FCU_DCW_DHW',
128
+ 'Fan coil district chilled water with baseboard electric': 'FCU_DCW_ElectricBaseboard',
129
+ 'Fan coil district chilled water with gas unit heaters': 'FCU_DCW_GasHeaters',
130
+ 'Fan coil district chilled water with no heat': 'FCU_DCW',
131
+ 'Gas unit heaters': 'GasHeaters',
132
+ 'Residential AC with baseboard electric': 'ResidentialAC_ElectricBaseboard',
133
+ 'Residential AC with baseboard gas boiler': 'ResidentialAC_BoilerBaseboard',
134
+ 'Residential AC with baseboard central air source heat pump': 'ResidentialAC_ASHPBaseboard',
135
+ 'Residential AC with baseboard district hot water': 'ResidentialAC_DHWBaseboard',
136
+ 'Residential AC with residential forced air furnace': 'ResidentialAC_ResidentialFurnace',
137
+ 'Residential AC with no heat': 'ResidentialAC',
138
+ 'Residential heat pump': 'ResidentialHP',
139
+ 'Residential heat pump with no cooling': 'ResidentialHPNoCool',
140
+ 'Residential forced air furnace': 'ResidentialFurnace',
141
+ 'VRF': 'VRF',
142
+ 'Water source heat pumps fluid cooler with boiler': 'WSHP_FluidCooler_Boiler',
143
+ 'Water source heat pumps cooling tower with boiler': 'WSHP_CoolingTower_Boiler',
144
+ 'Water source heat pumps with ground source heat pump': 'WSHP_GSHP',
145
+ 'Water source heat pumps district chilled water with district hot water': 'WSHP_DCW_DHW',
146
+ 'Window AC with baseboard electric': 'WindowAC_ElectricBaseboard',
147
+ 'Window AC with baseboard gas boiler': 'WindowAC_BoilerBaseboard',
148
+ 'Window AC with baseboard central air source heat pump': 'WindowAC_ASHPBaseboard',
149
+ 'Window AC with baseboard district hot water': 'WindowAC_DHWBaseboard',
150
+ 'Window AC with forced air furnace': 'WindowAC_Furnace',
151
+ 'Window AC with unit heaters': 'WindowAC_GasHeaters',
152
+ 'Window AC with no heat': 'WindowAC'
153
+ }
@@ -0,0 +1,18 @@
1
+ """Changes associated with version Honeybee schema version 1.43.1."""
2
+
3
+ NEW_ABRIDGED_CLASSES = ('FCUwithDOAS', 'VRFwithDOAS', 'WSHPwithDOAS')
4
+
5
+
6
+ def version_1_43_1(model_dict):
7
+ """Implement changes in a Model dict to make it compatible with version 1.43.1."""
8
+ if 'energy' in model_dict['properties']:
9
+ if 'hvacs' in model_dict['properties']['energy']:
10
+ for hvac in model_dict['properties']['energy']['hvacs']:
11
+ if hvac['type'] in NEW_ABRIDGED_CLASSES:
12
+ hvac['type'] = '{}Abridged'.format(hvac['type'])
13
+ if 'economizer_type' in hvac and hvac['economizer_type'] == 'Inferred':
14
+ hvac['economizer_type'] = 'NoEconomizer'
15
+ for prop in ('sensible_heat_recovery', 'latent_heat_recovery'):
16
+ if prop in hvac and not isinstance(hvac[prop], (float, int)):
17
+ hvac[prop] = 0
18
+ return model_dict
@@ -0,0 +1,12 @@
1
+ """Changes associated with version Honeybee schema version 1.43.2."""
2
+ UPDATED_CONSTRUCTS = ('OpaqueConstructionAbridged', 'WindowConstructionAbridged')
3
+
4
+
5
+ def version_1_43_2(model_dict):
6
+ """Implement changes in a Model dict to make it compatible with version 1.43.2."""
7
+ if 'energy' in model_dict['properties']:
8
+ if 'constructions' in model_dict['properties']['energy']:
9
+ for construct in model_dict['properties']['energy']['constructions']:
10
+ if construct['type'] in UPDATED_CONSTRUCTS:
11
+ construct['materials'] = construct.pop('layers')
12
+ return model_dict
@@ -0,0 +1,11 @@
1
+ """Changes associated with version Honeybee schema version 1.43.5."""
2
+
3
+
4
+ def version_1_43_5(model_dict):
5
+ """Implement changes in a Model dict to make it compatible with version 1.43.5."""
6
+ if 'radiance' in model_dict['properties']:
7
+ if 'modifiers' in model_dict['properties']['radiance']:
8
+ for mod in model_dict['properties']['radiance']['modifiers']:
9
+ if mod['type'] != 'BSDF':
10
+ mod['type'] = mod['type'].capitalize()
11
+ return model_dict
@@ -0,0 +1,205 @@
1
+ """Schema for the error objects returned by the validation command"""
2
+ from pydantic import BaseModel, Field, constr
3
+ from typing import List, Union
4
+ from enum import Enum
5
+
6
+ from .geometry import Point3D, LineSegment3D, Face3D
7
+
8
+
9
+ class ExtensionTypes(str, Enum):
10
+ """Types of Honeybee/Dragonfly extensions."""
11
+ core = 'Core'
12
+ radiance = 'Radiance'
13
+ energy = 'Energy'
14
+
15
+
16
+ class ObjectTypes(str, Enum):
17
+ """Types of Honeybee objects."""
18
+ shade = 'Shade'
19
+ aperture = 'Aperture'
20
+ door = 'Door'
21
+ sub_face = 'SubFace'
22
+ face = 'Face'
23
+ room = 'Room'
24
+ sensor_grid = 'SensorGrid'
25
+ view = 'View'
26
+ modifier = 'Modifier'
27
+ modifier_set = 'ModifierSet'
28
+ material = 'Material'
29
+ construction = 'Construction'
30
+ construction_set = 'ConstructionSet'
31
+ schedule_type_limit = 'ScheduleTypeLimit'
32
+ schedule = 'Schedule'
33
+ program_type = 'ProgramType'
34
+ hvac = 'HVAC'
35
+ shw = 'SHW'
36
+ roof_spec = 'RoofSpecification'
37
+ room_2d = 'Room2D'
38
+ story = 'Story'
39
+ building = 'Building'
40
+
41
+
42
+ class ParentTypes(str, Enum):
43
+ """Types of Honeybee objects that can be parents."""
44
+ aperture = 'Aperture'
45
+ door = 'Door'
46
+ face = 'Face'
47
+ room = 'Room'
48
+ story = 'Story'
49
+ building = 'Building'
50
+
51
+
52
+ class ValidationParent(BaseModel):
53
+
54
+ type: constr(regex='^ValidationParent$') = 'ValidationParent'
55
+
56
+ parent_type: ParentTypes = Field(
57
+ ...,
58
+ description='Text for the type of object that the parent is.'
59
+ )
60
+
61
+ id: str = Field(
62
+ ...,
63
+ regex=r'^[.A-Za-z0-9_-]+$',
64
+ min_length=1,
65
+ max_length=100,
66
+ description='Text string for the unique ID of the parent object.'
67
+ )
68
+
69
+ name: str = Field(
70
+ default=None,
71
+ description='Display name of the parent object.'
72
+ )
73
+
74
+
75
+ class ValidationError(BaseModel):
76
+
77
+ type: constr(regex='^ValidationError$') = 'ValidationError'
78
+
79
+ code: str = Field(
80
+ ...,
81
+ min_length=6,
82
+ max_length=6,
83
+ regex=r'([0-9]+)',
84
+ description='Text with 6 digits for the error code. The first two digits '
85
+ 'indicate whether the error is a core honeybee error (00) vs. an extension '
86
+ 'error (any non-zero number). The second two digits indicate the nature '
87
+ 'of the error (00 is an identifier error, 01 is a geometry error, 02 is an '
88
+ 'adjacency error). The third two digits are used to give a unique ID to '
89
+ 'each condition moving upwards from more specific/detailed objects/errors '
90
+ 'to coarser/more abstract objects/errors. A full list of error codes can '
91
+ 'be found here: https://docs.pollination.solutions/user-manual/rhino-plugin/'
92
+ 'troubleshooting/help-with-modeling-error-codes'
93
+ )
94
+
95
+ error_type: str = Field(
96
+ ...,
97
+ description='A human-readable version of the error code, typically not more '
98
+ 'than five words long.'
99
+ )
100
+
101
+ extension_type: ExtensionTypes = Field(
102
+ ...,
103
+ description='Text for the Honeybee extension from which the error originated '
104
+ '(from the ExtensionTypes enumeration).'
105
+ )
106
+
107
+ element_type: ObjectTypes = Field(
108
+ ...,
109
+ description='Text for the type of object that caused the error.'
110
+ )
111
+
112
+ element_id: List[
113
+ constr(min_length=1, max_length=100, regex=r'^[^,;!\n\t]+$')
114
+ ] = Field(
115
+ ...,
116
+ description='A list of text strings for the unique object IDs that caused '
117
+ 'the error. The list typically contains a single item but there are some types '
118
+ 'errors that stem from multiple objects like mis-matched area adjacencies '
119
+ 'or overlapping Room geometries. Note that the IDs in this list can be the '
120
+ 'identifier of a core object like a Room or a Face or it can be for an '
121
+ 'extension object like a SensorGrid or a Construction.'
122
+ )
123
+
124
+ element_name: List[str] = Field(
125
+ default=None,
126
+ description='A list of text strings for the display names of the objects '
127
+ 'that caused the error.'
128
+ )
129
+
130
+ message: str = Field(
131
+ ...,
132
+ description='Text for the error message with a detailed description of '
133
+ 'what exactly is invalid about the element.'
134
+ )
135
+
136
+ parents: List[List[ValidationParent]] = Field(
137
+ default=None,
138
+ description='A list lists where each sub-list corresponds to one of the '
139
+ 'objects in the element_id property. Each sub-list contains information for '
140
+ 'the parent objects of the object that caused the error. '
141
+ 'This can be useful for locating the problematic object in the model. '
142
+ 'This will contain 1 item for a Face with a parent Room. It will contain 2 '
143
+ 'for an Aperture that has a parent Face with a parent Room.'
144
+ )
145
+
146
+ top_parents: List[ValidationParent] = Field(
147
+ default=None,
148
+ description='A list of top-level parent objects for the specific case of '
149
+ 'duplicate child-object identifiers, where several top-level parents '
150
+ 'are involved.'
151
+ )
152
+
153
+ helper_geometry: List[Union[Point3D, LineSegment3D, Face3D]] = Field(
154
+ default=None,
155
+ description='An optional list of geometry objects that helps illustrate '
156
+ 'where exactly issues with invalid geometry exist within the Honeybee object. '
157
+ 'Examples include the naked and non-manifold line segments for non-solid Room '
158
+ 'geometries, the points of self-intersection for cases of self-intersecting '
159
+ 'geometry and out-of-plane vertices for non-planar objects. Oftentimes, '
160
+ 'zooming directly to these helper geometries will help end users understand '
161
+ 'invalid situations in their model faster than simple zooming to the invalid '
162
+ 'Honeybee object in its totality.'
163
+ )
164
+
165
+
166
+ class ValidationReport(BaseModel):
167
+
168
+ type: constr(regex='^ValidationReport$') = 'ValidationReport'
169
+
170
+ app_name: str = Field(
171
+ 'Honeybee',
172
+ description='Text string for the name of the application that performed '
173
+ 'the validation. This is typically either Honeybee or Dragonfly.'
174
+ )
175
+
176
+ app_version: str = Field(
177
+ ...,
178
+ regex=r'([0-9]+)\.([0-9]+)\.([0-9]+)',
179
+ description='Text string for the version of honeybee-core or dragonfly-core '
180
+ 'that performed the validation.'
181
+ )
182
+
183
+ schema_version: str = Field(
184
+ ...,
185
+ regex=r'([0-9]+)\.([0-9]+)\.([0-9]+)',
186
+ description='Text string for the version of honeybee-schema or dragonfly-schema '
187
+ 'that performed the validation.'
188
+ )
189
+
190
+ valid: bool = Field(
191
+ ...,
192
+ description='Boolean to note whether the Model is valid or not.'
193
+ )
194
+
195
+ fatal_error: str = Field(
196
+ '',
197
+ description='A text string containing an exception if the Model failed to '
198
+ 'serialize. It will be an empty string if serialization was successful.'
199
+ )
200
+
201
+ errors: List[ValidationError] = Field(
202
+ default=None,
203
+ description='A list of objects for each error that was discovered in the model. '
204
+ 'This will be an empty list or None if no errors were found.'
205
+ )
@@ -0,0 +1,108 @@
1
+ Metadata-Version: 2.4
2
+ Name: honeybee-schema
3
+ Version: 1.59.1
4
+ Summary: Honeybee Data-Model Objects
5
+ Home-page: https://github.com/ladybug-tools-in2/honeybee-schema
6
+ Author: Ladybug Tools
7
+ Author-email: info@ladybug.tools
8
+ License: BSD-3-Clause
9
+ Classifier: Programming Language :: Python :: 3.7
10
+ Classifier: Programming Language :: Python :: 3.8
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: Implementation :: CPython
16
+ Classifier: Operating System :: OS Independent
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: pydantic-openapi-helper>=0.2.10
20
+ Requires-Dist: honeybee-standards==2.0.7
21
+ Provides-Extra: cli
22
+ Requires-Dist: click>=7.1.2; extra == "cli"
23
+ Dynamic: author
24
+ Dynamic: author-email
25
+ Dynamic: classifier
26
+ Dynamic: description
27
+ Dynamic: description-content-type
28
+ Dynamic: home-page
29
+ Dynamic: license
30
+ Dynamic: license-file
31
+ Dynamic: provides-extra
32
+ Dynamic: requires-dist
33
+ Dynamic: summary
34
+
35
+ [![Build Status](https://travis-ci.com/ladybug-tools/honeybee-schema.svg?branch=master)](https://travis-ci.com/ladybug-tools/honeybee-schema)
36
+ [![Coverage Status](https://coveralls.io/repos/github/ladybug-tools/honeybee-schema/badge.svg?branch=master)](https://coveralls.io/github/ladybug-tools/honeybee-schema)
37
+
38
+ [![Python 3.7](https://img.shields.io/badge/python-3.7-blue.svg)](https://www.python.org/downloads/release/python-370/)
39
+
40
+ # honeybee-schema
41
+
42
+ Honeybee Data-Model Objects
43
+
44
+ This code was partially developed under the [Wells Fargo Innovation Incubator grant](https://newsroom.wf.com/press-release/community/five-clean-tech-startups-added-wells-fargo-innovation-incubator) with help from the
45
+ [OpenStudio Team](https://github.com/NREL/OpenStudio) at [NREL](https://www.nrel.gov/).
46
+
47
+ # Installation
48
+
49
+ To install the core library use:
50
+
51
+ `pip install -U honeybee-schema`
52
+
53
+ If you want to also include the command line interface use:
54
+
55
+ `pip install -U honeybee-schema[cli]`
56
+
57
+ ## QuickStart
58
+
59
+ ```python
60
+ import honeybee_schema
61
+
62
+ ```
63
+
64
+ ## API Documentation
65
+
66
+ [Schema Overview](https://github.com/ladybug-tools/honeybee-schema/wiki)
67
+
68
+ [Model Schema Specification](https://ladybug-tools.github.io/honeybee-schema/model.html)
69
+
70
+ [Energy Simulation Parameter Schema Specification](https://ladybug-tools.github.io/honeybee-schema/simulation-parameter.html)
71
+
72
+ ## Local Development
73
+
74
+ 1. Clone this repo locally
75
+
76
+ ```console
77
+ git clone git@github.com:ladybug-tools/honeybee-schema
78
+
79
+ # or
80
+
81
+ git clone https://github.com/ladybug-tools/honeybee-schema
82
+ ```
83
+
84
+ 2. Install dependencies:
85
+
86
+ ```console
87
+ cd honeybee-schema
88
+ pip install -r dev-requirements.txt
89
+ pip install -r requirements.txt
90
+ ```
91
+
92
+ 3. Run Tests:
93
+
94
+ ```console
95
+ python -m pytest tests/
96
+ ```
97
+
98
+ 4. Generate Documentation:
99
+
100
+ ```python
101
+ python ./docs.py
102
+ ```
103
+
104
+ 5. Generate Sample Files:
105
+
106
+ ```python
107
+ python ./scripts/export_samples.py
108
+ ```
@@ -0,0 +1,57 @@
1
+ honeybee_schema/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
2
+ honeybee_schema/__main__.py,sha256=nrssPcHvCjap2S-GPfz6tBTaUBSRsgJJDxyblqenu1s,76
3
+ honeybee_schema/_base.py,sha256=KfvJxFJzIVZkjjLB6R4og5ML0NbJ1BtdFqfiVSrgRfQ,1508
4
+ honeybee_schema/altnumber.py,sha256=QWlm5qBibEmwvQBy7lpmVue2jbZprSpf1LiB9M4OtMU,397
5
+ honeybee_schema/boundarycondition.py,sha256=hY6Oem5zNpnr42owbEzy3GIdfqvZJ4nme0qOA20JXXQ,2807
6
+ honeybee_schema/cli.py,sha256=QhhgNsgz55FBmJuHrg16nQoEmzD9ZIL6ugD2lofQqMg,4387
7
+ honeybee_schema/comparison.py,sha256=I2CCDmPLl-awBhGkSVd8b9yZncn8u2wUE-wBePrbB3c,8006
8
+ honeybee_schema/geometry.py,sha256=7oJQXdYYd3qECmIlKh7-XcwCibs1c2eLAS_SItJ7N10,4203
9
+ honeybee_schema/model.py,sha256=5Idl98dPPnXJAPPfMSEfZYjtS1ohKjwChJrpqHndlUk,14643
10
+ honeybee_schema/projectinfo.py,sha256=Jz9FYNSpWS282o4uNQxcL1Mo2J-fKT0gqBckk5h-Cio,2759
11
+ honeybee_schema/validation.py,sha256=Z3RCfZgyjE0f8rru7EM4xu7gunDFec0p62QGlkmaXbc,7081
12
+ honeybee_schema/doe2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ honeybee_schema/doe2/properties.py,sha256=h3GNDH3D7LojdlIdBSBG5OBXXkdSs0hyCW4ZJy9oOzE,2855
14
+ honeybee_schema/energy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ honeybee_schema/energy/_base.py,sha256=drAW-DguuwB2ahBGG1lboGcfJKJESnXjyAWicMtjQ-U,2305
16
+ honeybee_schema/energy/construction.py,sha256=1HldU4TO5vy4y4oCFt7GPsLBRaOJSbDPQgQX6OrWsWU,12742
17
+ honeybee_schema/energy/constructionset.py,sha256=6g9zncSAP3iGQsDpTYidqsTl4MXTT4Wwf4Ovy0CFwAA,11971
18
+ honeybee_schema/energy/daylight.py,sha256=gODnHpi3LL-HXFY4bbNBm66Gnb5IzmSZDI7Wobj-HUc,2108
19
+ honeybee_schema/energy/designday.py,sha256=as5OCxNAqU549NRlCQms10X1ylFr-oayTKH0wGUa9wY,5971
20
+ honeybee_schema/energy/generator.py,sha256=ap36GHtwkKTbJJV5SOP_bDSy4vm8hEU92BYQhK-nmrQ,7002
21
+ honeybee_schema/energy/global_constructionset.py,sha256=Dym_36OPtxSJof0_UMDB98zDio6ubh56j9nfbWIk6_c,4958
22
+ honeybee_schema/energy/internalmass.py,sha256=QBHGnoem9ZxwoU7Dii02HGCPDJt13Q6yIMEU9vcdZPc,771
23
+ honeybee_schema/energy/load.py,sha256=E106Pn-fn_4qCW8M1Y9RX6rG9iBeu0k7MY9x-dJi_3Q,21204
24
+ honeybee_schema/energy/material.py,sha256=vdfvTaTpMRDoomzb91ujLdbxOxFY_pHdTfXxiNbD91k,28276
25
+ honeybee_schema/energy/programtype.py,sha256=1keIS_BX8pKSUtjE4PJ1PP-Tbs5KQVwtsQ0RNdiACUE,4307
26
+ honeybee_schema/energy/properties.py,sha256=W8gBBGKKSnsKivG38QEe07vHk3zhwZ7sqVeNU5ewJV0,15074
27
+ honeybee_schema/energy/schedule.py,sha256=iVfKsWBcI3AL7g-P9bzaGcnrLUjzWQPxzXGg5LKfF9Q,12700
28
+ honeybee_schema/energy/shw.py,sha256=3ReuIgjm6RnLVFeB3MxfRf8vphr13uJr58aFlBu1OIs,2148
29
+ honeybee_schema/energy/simulation.py,sha256=aihALsF9GzgmBSH62IADL-OIm3l48XURVzqfqvI1AgU,14920
30
+ honeybee_schema/energy/ventcool.py,sha256=gm9pnXT0p8e2V_AkAJeNJUhFI4s2c3sLv7RkaF-olNk,14813
31
+ honeybee_schema/energy/hvac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ honeybee_schema/energy/hvac/_template.py,sha256=BlAP6FB1Da7ccVs8A-JPgSM2ubS2sWOXMrvXs-7LQek,1353
33
+ honeybee_schema/energy/hvac/allair.py,sha256=PT72Kdyk3gzxbrThZD7D12G3VGTwIVUScKXW0mxFHKE,9934
34
+ honeybee_schema/energy/hvac/detailed.py,sha256=LCuhwRWiq8D5fBKk4L9g3is04bMljC_2GjZ844NkFsg,919
35
+ honeybee_schema/energy/hvac/doas.py,sha256=PNZo4JHVtme4ZgycdfcGnEYZkwB9iBU3tHHLq6Wg22Y,11406
36
+ honeybee_schema/energy/hvac/heatcool.py,sha256=wS4H9y2_FuyPJVUqSbTWlGpkGPYMDJSaUsvFJ3B6xKE,11765
37
+ honeybee_schema/energy/hvac/idealair.py,sha256=xlFHasXsWeZvdVh3c5yCTl0t0Et73d6rpagJM7P21eU,3824
38
+ honeybee_schema/radiance/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
+ honeybee_schema/radiance/_base.py,sha256=y6AzAQ4JANbvr-s7fFKqGqu9kZW1wtxbCKxzzNv2Ah8,756
40
+ honeybee_schema/radiance/asset.py,sha256=MLsgL0JRIKLG9qIzMiam8ohoni7n6DTEs0W1DpTnboE,6907
41
+ honeybee_schema/radiance/global_modifierset.py,sha256=gFb2Eny55pZNQ9-hTRKrbYQ9oEUDKC_kHzm8zpMlkUA,3195
42
+ honeybee_schema/radiance/modifier.py,sha256=QKst8qEb3r3gz77jQK1ngn9A-rj5yhLN8kS-I9LqaA8,11153
43
+ honeybee_schema/radiance/modifierset.py,sha256=uUWE3aVzHCh7OQw2lB4cu7sKwakfM2LBY77u4L9Nec0,10336
44
+ honeybee_schema/radiance/properties.py,sha256=afsKahr6ePtinq8xvnvKPOSlm6M48pK_mFLMzUkA4Lc,5299
45
+ honeybee_schema/radiance/state.py,sha256=xVwMR35ylrISJpfI8jkInJtlskGKj5koYArnTT4tXv0,2157
46
+ honeybee_schema/updater/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ honeybee_schema/updater/version_1_39_12.py,sha256=gmCU7z43NYnZJfhVudpATwau3zCCDqMzzuKFlkCwPMY,742
48
+ honeybee_schema/updater/version_1_40_1.py,sha256=Fx70M8H9HZ_apCkdFn6njEd6lG9ZWrld1b-_E9kKYMw,9999
49
+ honeybee_schema/updater/version_1_43_1.py,sha256=0kZ1z7MzBhToljgOUCGWaTW1mq2F72oS39jn9sEf5mU,932
50
+ honeybee_schema/updater/version_1_43_2.py,sha256=XnPCdpjVN3hFzZqIIEjX4BYTtCxuIYCuO96n_y64aVw,617
51
+ honeybee_schema/updater/version_1_43_5.py,sha256=ci790Qh7xtRtgMj_RdldBXCScwiBkvMt2K1Mpe7oWQE,499
52
+ honeybee_schema-1.59.1.dist-info/licenses/LICENSE,sha256=EwA6Jt85TmMNyAsFb5GWv-tZ0vGYo8hZHBMcI391qjw,1709
53
+ honeybee_schema-1.59.1.dist-info/METADATA,sha256=OwzXOHOJ7OfayFGZy5UJtuzHJkXp1kXoWETNcK2KZmw,2955
54
+ honeybee_schema-1.59.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
55
+ honeybee_schema-1.59.1.dist-info/entry_points.txt,sha256=suHpy6-iPhAylFCa-KopQHRJIwLhTCIVO2NHMzdEn8M,61
56
+ honeybee_schema-1.59.1.dist-info/top_level.txt,sha256=rTScYvlcOBkdc0is-F6Q3tRkmy-vf4bMTJGXzsxI2sA,16
57
+ honeybee_schema-1.59.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ honeybee-schema = honeybee_schema.cli:main
@@ -0,0 +1,23 @@
1
+ Honeybee Schema, Copyright (c) 2019, Alliance for Sustainable Energy, LLC, Ladybug Tools LLC
2
+ and other contributors. All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
5
+ following conditions are met:
6
+
7
+ (1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following
8
+ disclaimer.
9
+
10
+ (2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
11
+ disclaimer in the documentation and/or other materials provided with the distribution.
12
+
13
+ (3) Neither the name of the copyright holder nor the names of any contributors may be used to endorse or promote products
14
+ derived from this software without specific prior written permission from the respective party.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND ANY CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
17
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S), ANY CONTRIBUTORS, THE UNITED STATES GOVERNMENT, OR THE UNITED
19
+ STATES DEPARTMENT OF ENERGY, NOR ANY OF THEIR EMPLOYEES, BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
21
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
22
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
23
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1 @@
1
+ honeybee_schema