honeybee-energy 1.116.106__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. honeybee_energy/__init__.py +24 -0
  2. honeybee_energy/__main__.py +4 -0
  3. honeybee_energy/_extend_honeybee.py +145 -0
  4. honeybee_energy/altnumber.py +21 -0
  5. honeybee_energy/baseline/__init__.py +2 -0
  6. honeybee_energy/baseline/create.py +608 -0
  7. honeybee_energy/baseline/data/__init__.py +1 -0
  8. honeybee_energy/baseline/data/constructions.csv +64 -0
  9. honeybee_energy/baseline/data/fen_ratios.csv +15 -0
  10. honeybee_energy/baseline/data/lpd_building.csv +21 -0
  11. honeybee_energy/baseline/data/pci_2016.csv +22 -0
  12. honeybee_energy/baseline/data/pci_2019.csv +22 -0
  13. honeybee_energy/baseline/data/pci_2022.csv +22 -0
  14. honeybee_energy/baseline/data/shw.csv +21 -0
  15. honeybee_energy/baseline/pci.py +512 -0
  16. honeybee_energy/baseline/result.py +371 -0
  17. honeybee_energy/boundarycondition.py +128 -0
  18. honeybee_energy/cli/__init__.py +69 -0
  19. honeybee_energy/cli/baseline.py +475 -0
  20. honeybee_energy/cli/edit.py +327 -0
  21. honeybee_energy/cli/lib.py +1154 -0
  22. honeybee_energy/cli/result.py +810 -0
  23. honeybee_energy/cli/setconfig.py +124 -0
  24. honeybee_energy/cli/settings.py +569 -0
  25. honeybee_energy/cli/simulate.py +380 -0
  26. honeybee_energy/cli/translate.py +1714 -0
  27. honeybee_energy/cli/validate.py +224 -0
  28. honeybee_energy/config.json +11 -0
  29. honeybee_energy/config.py +842 -0
  30. honeybee_energy/construction/__init__.py +1 -0
  31. honeybee_energy/construction/_base.py +374 -0
  32. honeybee_energy/construction/air.py +325 -0
  33. honeybee_energy/construction/dictutil.py +89 -0
  34. honeybee_energy/construction/dynamic.py +607 -0
  35. honeybee_energy/construction/opaque.py +460 -0
  36. honeybee_energy/construction/shade.py +319 -0
  37. honeybee_energy/construction/window.py +1096 -0
  38. honeybee_energy/construction/windowshade.py +847 -0
  39. honeybee_energy/constructionset.py +1655 -0
  40. honeybee_energy/dictutil.py +56 -0
  41. honeybee_energy/generator/__init__.py +5 -0
  42. honeybee_energy/generator/loadcenter.py +204 -0
  43. honeybee_energy/generator/pv.py +535 -0
  44. honeybee_energy/hvac/__init__.py +21 -0
  45. honeybee_energy/hvac/_base.py +124 -0
  46. honeybee_energy/hvac/_template.py +270 -0
  47. honeybee_energy/hvac/allair/__init__.py +22 -0
  48. honeybee_energy/hvac/allair/_base.py +349 -0
  49. honeybee_energy/hvac/allair/furnace.py +168 -0
  50. honeybee_energy/hvac/allair/psz.py +131 -0
  51. honeybee_energy/hvac/allair/ptac.py +163 -0
  52. honeybee_energy/hvac/allair/pvav.py +109 -0
  53. honeybee_energy/hvac/allair/vav.py +128 -0
  54. honeybee_energy/hvac/detailed.py +337 -0
  55. honeybee_energy/hvac/doas/__init__.py +28 -0
  56. honeybee_energy/hvac/doas/_base.py +345 -0
  57. honeybee_energy/hvac/doas/fcu.py +127 -0
  58. honeybee_energy/hvac/doas/radiant.py +329 -0
  59. honeybee_energy/hvac/doas/vrf.py +81 -0
  60. honeybee_energy/hvac/doas/wshp.py +91 -0
  61. honeybee_energy/hvac/heatcool/__init__.py +23 -0
  62. honeybee_energy/hvac/heatcool/_base.py +177 -0
  63. honeybee_energy/hvac/heatcool/baseboard.py +61 -0
  64. honeybee_energy/hvac/heatcool/evapcool.py +72 -0
  65. honeybee_energy/hvac/heatcool/fcu.py +92 -0
  66. honeybee_energy/hvac/heatcool/gasunit.py +53 -0
  67. honeybee_energy/hvac/heatcool/radiant.py +269 -0
  68. honeybee_energy/hvac/heatcool/residential.py +77 -0
  69. honeybee_energy/hvac/heatcool/vrf.py +54 -0
  70. honeybee_energy/hvac/heatcool/windowac.py +70 -0
  71. honeybee_energy/hvac/heatcool/wshp.py +62 -0
  72. honeybee_energy/hvac/idealair.py +699 -0
  73. honeybee_energy/internalmass.py +310 -0
  74. honeybee_energy/lib/__init__.py +1 -0
  75. honeybee_energy/lib/_loadconstructions.py +194 -0
  76. honeybee_energy/lib/_loadconstructionsets.py +117 -0
  77. honeybee_energy/lib/_loadmaterials.py +83 -0
  78. honeybee_energy/lib/_loadprogramtypes.py +125 -0
  79. honeybee_energy/lib/_loadschedules.py +87 -0
  80. honeybee_energy/lib/_loadtypelimits.py +64 -0
  81. honeybee_energy/lib/constructions.py +207 -0
  82. honeybee_energy/lib/constructionsets.py +95 -0
  83. honeybee_energy/lib/materials.py +67 -0
  84. honeybee_energy/lib/programtypes.py +125 -0
  85. honeybee_energy/lib/schedules.py +61 -0
  86. honeybee_energy/lib/scheduletypelimits.py +31 -0
  87. honeybee_energy/load/__init__.py +1 -0
  88. honeybee_energy/load/_base.py +190 -0
  89. honeybee_energy/load/daylight.py +397 -0
  90. honeybee_energy/load/dictutil.py +47 -0
  91. honeybee_energy/load/equipment.py +771 -0
  92. honeybee_energy/load/hotwater.py +543 -0
  93. honeybee_energy/load/infiltration.py +460 -0
  94. honeybee_energy/load/lighting.py +480 -0
  95. honeybee_energy/load/people.py +497 -0
  96. honeybee_energy/load/process.py +472 -0
  97. honeybee_energy/load/setpoint.py +816 -0
  98. honeybee_energy/load/ventilation.py +550 -0
  99. honeybee_energy/material/__init__.py +1 -0
  100. honeybee_energy/material/_base.py +166 -0
  101. honeybee_energy/material/dictutil.py +59 -0
  102. honeybee_energy/material/frame.py +367 -0
  103. honeybee_energy/material/gas.py +1087 -0
  104. honeybee_energy/material/glazing.py +854 -0
  105. honeybee_energy/material/opaque.py +1351 -0
  106. honeybee_energy/material/shade.py +1360 -0
  107. honeybee_energy/measure.py +472 -0
  108. honeybee_energy/programtype.py +723 -0
  109. honeybee_energy/properties/__init__.py +1 -0
  110. honeybee_energy/properties/aperture.py +333 -0
  111. honeybee_energy/properties/door.py +342 -0
  112. honeybee_energy/properties/extension.py +244 -0
  113. honeybee_energy/properties/face.py +274 -0
  114. honeybee_energy/properties/model.py +2640 -0
  115. honeybee_energy/properties/room.py +1747 -0
  116. honeybee_energy/properties/shade.py +314 -0
  117. honeybee_energy/properties/shademesh.py +262 -0
  118. honeybee_energy/reader.py +48 -0
  119. honeybee_energy/result/__init__.py +1 -0
  120. honeybee_energy/result/colorobj.py +648 -0
  121. honeybee_energy/result/emissions.py +290 -0
  122. honeybee_energy/result/err.py +101 -0
  123. honeybee_energy/result/eui.py +100 -0
  124. honeybee_energy/result/generation.py +160 -0
  125. honeybee_energy/result/loadbalance.py +890 -0
  126. honeybee_energy/result/match.py +202 -0
  127. honeybee_energy/result/osw.py +90 -0
  128. honeybee_energy/result/rdd.py +59 -0
  129. honeybee_energy/result/zsz.py +190 -0
  130. honeybee_energy/run.py +1577 -0
  131. honeybee_energy/schedule/__init__.py +1 -0
  132. honeybee_energy/schedule/day.py +626 -0
  133. honeybee_energy/schedule/dictutil.py +59 -0
  134. honeybee_energy/schedule/fixedinterval.py +1012 -0
  135. honeybee_energy/schedule/rule.py +619 -0
  136. honeybee_energy/schedule/ruleset.py +1867 -0
  137. honeybee_energy/schedule/typelimit.py +310 -0
  138. honeybee_energy/shw.py +315 -0
  139. honeybee_energy/simulation/__init__.py +1 -0
  140. honeybee_energy/simulation/control.py +214 -0
  141. honeybee_energy/simulation/daylightsaving.py +185 -0
  142. honeybee_energy/simulation/dictutil.py +51 -0
  143. honeybee_energy/simulation/output.py +646 -0
  144. honeybee_energy/simulation/parameter.py +606 -0
  145. honeybee_energy/simulation/runperiod.py +443 -0
  146. honeybee_energy/simulation/shadowcalculation.py +295 -0
  147. honeybee_energy/simulation/sizing.py +546 -0
  148. honeybee_energy/ventcool/__init__.py +5 -0
  149. honeybee_energy/ventcool/_crack_data.py +91 -0
  150. honeybee_energy/ventcool/afn.py +289 -0
  151. honeybee_energy/ventcool/control.py +269 -0
  152. honeybee_energy/ventcool/crack.py +126 -0
  153. honeybee_energy/ventcool/fan.py +493 -0
  154. honeybee_energy/ventcool/opening.py +365 -0
  155. honeybee_energy/ventcool/simulation.py +314 -0
  156. honeybee_energy/writer.py +1078 -0
  157. honeybee_energy-1.116.106.dist-info/METADATA +113 -0
  158. honeybee_energy-1.116.106.dist-info/RECORD +162 -0
  159. honeybee_energy-1.116.106.dist-info/WHEEL +5 -0
  160. honeybee_energy-1.116.106.dist-info/entry_points.txt +2 -0
  161. honeybee_energy-1.116.106.dist-info/licenses/LICENSE +661 -0
  162. honeybee_energy-1.116.106.dist-info/top_level.txt +1 -0
@@ -0,0 +1,24 @@
1
+ """honeybee-energy library."""
2
+ import importlib
3
+ import pkgutil
4
+ from honeybee.logutil import get_logger
5
+
6
+
7
+ # load all functions that extends honeybee core library
8
+ import honeybee_energy._extend_honeybee
9
+
10
+
11
+ logger = get_logger(__name__, filename='honeybee-energy.log')
12
+
13
+ # find and import honeybee_energy extensions
14
+ # this is a critical step to add additional functionalities to honeybee_energy library.
15
+ extensions = {}
16
+ for finder, name, ispkg in pkgutil.iter_modules():
17
+ if not name.startswith('honeybee_energy_') or name.count('_') > 2:
18
+ continue
19
+ try:
20
+ extensions[name] = importlib.import_module(name)
21
+ except Exception:
22
+ logger.exception('Failed to import {0}!'.format(name))
23
+ else:
24
+ logger.info('Successfully imported Honeybee-energy plugin: {}'.format(name))
@@ -0,0 +1,4 @@
1
+ from honeybee_energy.cli import energy
2
+
3
+ if __name__ == '__main__':
4
+ energy()
@@ -0,0 +1,145 @@
1
+ # coding=utf-8
2
+ # extend the honeybee.altnumber module first since other modules rely on it
3
+ import honeybee.altnumber as haltn
4
+ from .altnumber import Autosize
5
+ setattr(haltn, 'Autosize', Autosize)
6
+ setattr(haltn, 'autosize', Autosize())
7
+
8
+ # import all of the other modules
9
+ from honeybee.properties import ModelProperties, RoomProperties, FaceProperties, \
10
+ ShadeProperties, ApertureProperties, DoorProperties, ShadeMeshProperties
11
+ from honeybee.shademesh import ShadeMesh
12
+ from honeybee.shade import Shade
13
+ from honeybee.door import Door
14
+ from honeybee.aperture import Aperture
15
+ from honeybee.face import Face
16
+ from honeybee.room import Room
17
+ from honeybee.model import Model
18
+ import honeybee.writer.shademesh as shade_mesh_writer
19
+ import honeybee.writer.door as door_writer
20
+ import honeybee.writer.aperture as aperture_writer
21
+ import honeybee.writer.shade as shade_writer
22
+ import honeybee.writer.face as face_writer
23
+ import honeybee.writer.room as room_writer
24
+ import honeybee.writer.model as model_writer
25
+ import honeybee.boundarycondition as hbc
26
+
27
+ from .properties.model import ModelEnergyProperties
28
+ from .properties.room import RoomEnergyProperties
29
+ from .properties.face import FaceEnergyProperties
30
+ from .properties.shade import ShadeEnergyProperties
31
+ from .properties.aperture import ApertureEnergyProperties
32
+ from .properties.door import DoorEnergyProperties
33
+ from .properties.shademesh import ShadeMeshEnergyProperties
34
+ from .writer import model_to_idf, room_to_idf, face_to_idf, shade_to_idf, \
35
+ aperture_to_idf, door_to_idf, shade_mesh_to_idf
36
+ from .boundarycondition import Adiabatic, OtherSideTemperature
37
+
38
+ # set a hidden energy attribute on each core geometry Property class to None
39
+ # define methods to produce energy property instances on each Property instance
40
+ ModelProperties._energy = None
41
+ RoomProperties._energy = None
42
+ FaceProperties._energy = None
43
+ ShadeProperties._energy = None
44
+ ApertureProperties._energy = None
45
+ DoorProperties._energy = None
46
+ ShadeMeshProperties._energy = None
47
+
48
+
49
+ def model_energy_properties(self):
50
+ if self._energy is None:
51
+ self._energy = ModelEnergyProperties(self.host)
52
+ return self._energy
53
+
54
+
55
+ def room_energy_properties(self):
56
+ if self._energy is None:
57
+ self._energy = RoomEnergyProperties(self.host)
58
+ return self._energy
59
+
60
+
61
+ def face_energy_properties(self):
62
+ if self._energy is None:
63
+ self._energy = FaceEnergyProperties(self.host)
64
+ return self._energy
65
+
66
+
67
+ def shade_energy_properties(self):
68
+ if self._energy is None:
69
+ self._energy = ShadeEnergyProperties(self.host)
70
+ return self._energy
71
+
72
+
73
+ def aperture_energy_properties(self):
74
+ if self._energy is None:
75
+ self._energy = ApertureEnergyProperties(self.host)
76
+ return self._energy
77
+
78
+
79
+ def door_energy_properties(self):
80
+ if self._energy is None:
81
+ self._energy = DoorEnergyProperties(self.host)
82
+ return self._energy
83
+
84
+
85
+ def shade_mesh_energy_properties(self):
86
+ if self._energy is None:
87
+ self._energy = ShadeMeshEnergyProperties(self.host)
88
+ return self._energy
89
+
90
+
91
+ # add energy property methods to the Properties classes
92
+ ModelProperties.energy = property(model_energy_properties)
93
+ RoomProperties.energy = property(room_energy_properties)
94
+ FaceProperties.energy = property(face_energy_properties)
95
+ ShadeProperties.energy = property(shade_energy_properties)
96
+ ApertureProperties.energy = property(aperture_energy_properties)
97
+ DoorProperties.energy = property(door_energy_properties)
98
+ ShadeMeshProperties.energy = property(shade_mesh_energy_properties)
99
+
100
+ # add energy writer to idf
101
+ model_writer.idf = model_to_idf
102
+ room_writer.idf = room_to_idf
103
+ face_writer.idf = face_to_idf
104
+ shade_writer.idf = shade_to_idf
105
+ aperture_writer.idf = aperture_to_idf
106
+ door_writer.idf = door_to_idf
107
+ shade_mesh_writer.idf = shade_mesh_to_idf
108
+
109
+ # add energy writer to core objects
110
+ Model.to_idf = model_to_idf
111
+ Room.to_idf = room_to_idf
112
+ Face.to_idf = face_to_idf
113
+ Aperture.to_idf = aperture_to_idf
114
+ Door.to_idf = door_to_idf
115
+ Shade.to_idf = shade_to_idf
116
+ ShadeMesh.to_idf = shade_mesh_to_idf
117
+
118
+ # extend boundary conditions
119
+ setattr(hbc, 'Adiabatic', Adiabatic)
120
+ hbc._BoundaryConditions._adiabatic = Adiabatic()
121
+ hbc._BoundaryConditions.adiabatic = property(lambda self: self._adiabatic)
122
+
123
+
124
+ def other_side_temperature(
125
+ self, temperature=haltn.autocalculate, heat_transfer_coefficient=0):
126
+ """Get a boundary condition for a custom temperature or heat transfer coefficient.
127
+
128
+ Args:
129
+ temperature: A temperature value in Celsius to note the temperature on the
130
+ other side of the object. This input can also be an Autocalculate object
131
+ to signify that the temperature is equal to the outdoor air
132
+ temperature. (Default: autocalculate).
133
+ heat_transfer_coefficient: A value in W/m2-K to indicate the combined
134
+ convective/radiative film coefficient. If equal to 0, then the
135
+ specified temperature above is equal to the exterior surface
136
+ temperature. Otherwise, the temperature above is considered the
137
+ outside air temperature and this coefficient is used to determine the
138
+ difference between this outside air temperature and the exterior surface
139
+ temperature. (Default: 0).
140
+ """
141
+ return OtherSideTemperature(temperature, heat_transfer_coefficient)
142
+
143
+
144
+ setattr(hbc, 'OtherSideTemperature', OtherSideTemperature)
145
+ hbc._BoundaryConditions.other_side_temperature = other_side_temperature
@@ -0,0 +1,21 @@
1
+ """Extra AltNumber objects for Energy models.
2
+
3
+ Note to developers:
4
+ See _extend_honeybee to see where these alternate numbers are added to
5
+ honeybee.altnumber module.
6
+ """
7
+ from honeybee.altnumber import _AltNumber
8
+
9
+
10
+ class Autosize(_AltNumber):
11
+ """Object for a numerical value is determined from a sizing calculation.
12
+
13
+ This object is specifically for values determined during the EnergyPlus sizing
14
+ calculation and is therefore disctinct from numerical values that are
15
+ generically Autocalculated.
16
+ """
17
+ __slots__ = ()
18
+ pass
19
+
20
+
21
+ autosize = Autosize()
@@ -0,0 +1,2 @@
1
+ """Subpackage for creating baseline buildings and evaluating their simulation results.
2
+ """