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.
- honeybee_energy/__init__.py +24 -0
- honeybee_energy/__main__.py +4 -0
- honeybee_energy/_extend_honeybee.py +145 -0
- honeybee_energy/altnumber.py +21 -0
- honeybee_energy/baseline/__init__.py +2 -0
- honeybee_energy/baseline/create.py +608 -0
- honeybee_energy/baseline/data/__init__.py +1 -0
- honeybee_energy/baseline/data/constructions.csv +64 -0
- honeybee_energy/baseline/data/fen_ratios.csv +15 -0
- honeybee_energy/baseline/data/lpd_building.csv +21 -0
- honeybee_energy/baseline/data/pci_2016.csv +22 -0
- honeybee_energy/baseline/data/pci_2019.csv +22 -0
- honeybee_energy/baseline/data/pci_2022.csv +22 -0
- honeybee_energy/baseline/data/shw.csv +21 -0
- honeybee_energy/baseline/pci.py +512 -0
- honeybee_energy/baseline/result.py +371 -0
- honeybee_energy/boundarycondition.py +128 -0
- honeybee_energy/cli/__init__.py +69 -0
- honeybee_energy/cli/baseline.py +475 -0
- honeybee_energy/cli/edit.py +327 -0
- honeybee_energy/cli/lib.py +1154 -0
- honeybee_energy/cli/result.py +810 -0
- honeybee_energy/cli/setconfig.py +124 -0
- honeybee_energy/cli/settings.py +569 -0
- honeybee_energy/cli/simulate.py +380 -0
- honeybee_energy/cli/translate.py +1714 -0
- honeybee_energy/cli/validate.py +224 -0
- honeybee_energy/config.json +11 -0
- honeybee_energy/config.py +842 -0
- honeybee_energy/construction/__init__.py +1 -0
- honeybee_energy/construction/_base.py +374 -0
- honeybee_energy/construction/air.py +325 -0
- honeybee_energy/construction/dictutil.py +89 -0
- honeybee_energy/construction/dynamic.py +607 -0
- honeybee_energy/construction/opaque.py +460 -0
- honeybee_energy/construction/shade.py +319 -0
- honeybee_energy/construction/window.py +1096 -0
- honeybee_energy/construction/windowshade.py +847 -0
- honeybee_energy/constructionset.py +1655 -0
- honeybee_energy/dictutil.py +56 -0
- honeybee_energy/generator/__init__.py +5 -0
- honeybee_energy/generator/loadcenter.py +204 -0
- honeybee_energy/generator/pv.py +535 -0
- honeybee_energy/hvac/__init__.py +21 -0
- honeybee_energy/hvac/_base.py +124 -0
- honeybee_energy/hvac/_template.py +270 -0
- honeybee_energy/hvac/allair/__init__.py +22 -0
- honeybee_energy/hvac/allair/_base.py +349 -0
- honeybee_energy/hvac/allair/furnace.py +168 -0
- honeybee_energy/hvac/allair/psz.py +131 -0
- honeybee_energy/hvac/allair/ptac.py +163 -0
- honeybee_energy/hvac/allair/pvav.py +109 -0
- honeybee_energy/hvac/allair/vav.py +128 -0
- honeybee_energy/hvac/detailed.py +337 -0
- honeybee_energy/hvac/doas/__init__.py +28 -0
- honeybee_energy/hvac/doas/_base.py +345 -0
- honeybee_energy/hvac/doas/fcu.py +127 -0
- honeybee_energy/hvac/doas/radiant.py +329 -0
- honeybee_energy/hvac/doas/vrf.py +81 -0
- honeybee_energy/hvac/doas/wshp.py +91 -0
- honeybee_energy/hvac/heatcool/__init__.py +23 -0
- honeybee_energy/hvac/heatcool/_base.py +177 -0
- honeybee_energy/hvac/heatcool/baseboard.py +61 -0
- honeybee_energy/hvac/heatcool/evapcool.py +72 -0
- honeybee_energy/hvac/heatcool/fcu.py +92 -0
- honeybee_energy/hvac/heatcool/gasunit.py +53 -0
- honeybee_energy/hvac/heatcool/radiant.py +269 -0
- honeybee_energy/hvac/heatcool/residential.py +77 -0
- honeybee_energy/hvac/heatcool/vrf.py +54 -0
- honeybee_energy/hvac/heatcool/windowac.py +70 -0
- honeybee_energy/hvac/heatcool/wshp.py +62 -0
- honeybee_energy/hvac/idealair.py +699 -0
- honeybee_energy/internalmass.py +310 -0
- honeybee_energy/lib/__init__.py +1 -0
- honeybee_energy/lib/_loadconstructions.py +194 -0
- honeybee_energy/lib/_loadconstructionsets.py +117 -0
- honeybee_energy/lib/_loadmaterials.py +83 -0
- honeybee_energy/lib/_loadprogramtypes.py +125 -0
- honeybee_energy/lib/_loadschedules.py +87 -0
- honeybee_energy/lib/_loadtypelimits.py +64 -0
- honeybee_energy/lib/constructions.py +207 -0
- honeybee_energy/lib/constructionsets.py +95 -0
- honeybee_energy/lib/materials.py +67 -0
- honeybee_energy/lib/programtypes.py +125 -0
- honeybee_energy/lib/schedules.py +61 -0
- honeybee_energy/lib/scheduletypelimits.py +31 -0
- honeybee_energy/load/__init__.py +1 -0
- honeybee_energy/load/_base.py +190 -0
- honeybee_energy/load/daylight.py +397 -0
- honeybee_energy/load/dictutil.py +47 -0
- honeybee_energy/load/equipment.py +771 -0
- honeybee_energy/load/hotwater.py +543 -0
- honeybee_energy/load/infiltration.py +460 -0
- honeybee_energy/load/lighting.py +480 -0
- honeybee_energy/load/people.py +497 -0
- honeybee_energy/load/process.py +472 -0
- honeybee_energy/load/setpoint.py +816 -0
- honeybee_energy/load/ventilation.py +550 -0
- honeybee_energy/material/__init__.py +1 -0
- honeybee_energy/material/_base.py +166 -0
- honeybee_energy/material/dictutil.py +59 -0
- honeybee_energy/material/frame.py +367 -0
- honeybee_energy/material/gas.py +1087 -0
- honeybee_energy/material/glazing.py +854 -0
- honeybee_energy/material/opaque.py +1351 -0
- honeybee_energy/material/shade.py +1360 -0
- honeybee_energy/measure.py +472 -0
- honeybee_energy/programtype.py +723 -0
- honeybee_energy/properties/__init__.py +1 -0
- honeybee_energy/properties/aperture.py +333 -0
- honeybee_energy/properties/door.py +342 -0
- honeybee_energy/properties/extension.py +244 -0
- honeybee_energy/properties/face.py +274 -0
- honeybee_energy/properties/model.py +2640 -0
- honeybee_energy/properties/room.py +1747 -0
- honeybee_energy/properties/shade.py +314 -0
- honeybee_energy/properties/shademesh.py +262 -0
- honeybee_energy/reader.py +48 -0
- honeybee_energy/result/__init__.py +1 -0
- honeybee_energy/result/colorobj.py +648 -0
- honeybee_energy/result/emissions.py +290 -0
- honeybee_energy/result/err.py +101 -0
- honeybee_energy/result/eui.py +100 -0
- honeybee_energy/result/generation.py +160 -0
- honeybee_energy/result/loadbalance.py +890 -0
- honeybee_energy/result/match.py +202 -0
- honeybee_energy/result/osw.py +90 -0
- honeybee_energy/result/rdd.py +59 -0
- honeybee_energy/result/zsz.py +190 -0
- honeybee_energy/run.py +1577 -0
- honeybee_energy/schedule/__init__.py +1 -0
- honeybee_energy/schedule/day.py +626 -0
- honeybee_energy/schedule/dictutil.py +59 -0
- honeybee_energy/schedule/fixedinterval.py +1012 -0
- honeybee_energy/schedule/rule.py +619 -0
- honeybee_energy/schedule/ruleset.py +1867 -0
- honeybee_energy/schedule/typelimit.py +310 -0
- honeybee_energy/shw.py +315 -0
- honeybee_energy/simulation/__init__.py +1 -0
- honeybee_energy/simulation/control.py +214 -0
- honeybee_energy/simulation/daylightsaving.py +185 -0
- honeybee_energy/simulation/dictutil.py +51 -0
- honeybee_energy/simulation/output.py +646 -0
- honeybee_energy/simulation/parameter.py +606 -0
- honeybee_energy/simulation/runperiod.py +443 -0
- honeybee_energy/simulation/shadowcalculation.py +295 -0
- honeybee_energy/simulation/sizing.py +546 -0
- honeybee_energy/ventcool/__init__.py +5 -0
- honeybee_energy/ventcool/_crack_data.py +91 -0
- honeybee_energy/ventcool/afn.py +289 -0
- honeybee_energy/ventcool/control.py +269 -0
- honeybee_energy/ventcool/crack.py +126 -0
- honeybee_energy/ventcool/fan.py +493 -0
- honeybee_energy/ventcool/opening.py +365 -0
- honeybee_energy/ventcool/simulation.py +314 -0
- honeybee_energy/writer.py +1078 -0
- honeybee_energy-1.116.106.dist-info/METADATA +113 -0
- honeybee_energy-1.116.106.dist-info/RECORD +162 -0
- honeybee_energy-1.116.106.dist-info/WHEEL +5 -0
- honeybee_energy-1.116.106.dist-info/entry_points.txt +2 -0
- honeybee_energy-1.116.106.dist-info/licenses/LICENSE +661 -0
- 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,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()
|