honeybee-grasshopper-radiance 1.30.14__tar.gz → 1.32.0__tar.gz
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-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/PKG-INFO +1 -1
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Average Values.py +29 -2
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Cumulative Values.py +34 -5
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Daylight Metrics.py +31 -3
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Daylight.py +16 -9
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Peak Values.py +33 -4
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Results to Data.py +31 -3
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/src/HB Aperture Group Schedule.py +69 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Automatic Aperture Group.py +31 -6
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Daylight Control Schedule.py +30 -3
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/src/HB Get Dynamic Groups.py +57 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Annual Average Values.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Annual Cumulative Values.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Annual Daylight Metrics.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Annual Daylight.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Annual Peak Values.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Annual Results to Data.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Aperture Group Schedule.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Automatic Aperture Group.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Daylight Control Schedule.ghuser +0 -0
- honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/user_objects/HB Get Dynamic Groups.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance.egg-info/PKG-INFO +1 -1
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance.egg-info/SOURCES.txt +4 -0
- honeybee-grasshopper-radiance-1.30.14/honeybee_grasshopper_radiance/user_objects/HB Annual Average Values.ghuser +0 -0
- honeybee-grasshopper-radiance-1.30.14/honeybee_grasshopper_radiance/user_objects/HB Annual Cumulative Values.ghuser +0 -0
- honeybee-grasshopper-radiance-1.30.14/honeybee_grasshopper_radiance/user_objects/HB Annual Daylight Metrics.ghuser +0 -0
- honeybee-grasshopper-radiance-1.30.14/honeybee_grasshopper_radiance/user_objects/HB Annual Daylight.ghuser +0 -0
- honeybee-grasshopper-radiance-1.30.14/honeybee_grasshopper_radiance/user_objects/HB Annual Peak Values.ghuser +0 -0
- honeybee-grasshopper-radiance-1.30.14/honeybee_grasshopper_radiance/user_objects/HB Annual Results to Data.ghuser +0 -0
- honeybee-grasshopper-radiance-1.30.14/honeybee_grasshopper_radiance/user_objects/HB Automatic Aperture Group.ghuser +0 -0
- honeybee-grasshopper-radiance-1.30.14/honeybee_grasshopper_radiance/user_objects/HB Daylight Control Schedule.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/CODE_OF_CONDUCT.md +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/CONTRIBUTING.md +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/LICENSE +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/MANIFEST.in +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/README.md +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/dev-requirements.txt +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/__init__.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Adjust HDR.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Ambient Resolution.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Glare Metrics.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Irradiance.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Annual Sunlight Exposure.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Apply Face Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Apply ModifierSet.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Apply Shade Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Apply Window Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Assign Grids and Views.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB BSDF Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB CIE Standard Sky.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Certain Illuminance.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Check Scene.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Climatebased Sky.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Cumulative Radiation.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Custom Sky.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Daylight Factor.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Deconstruct Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Deconstruct ModifierSet Interior.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Deconstruct ModifierSet.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Deconstruct Wea.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Direct Sun Hours.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Dynamic Aperture Group.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Dynamic Shade Group.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Dynamic State Geometry.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Dynamic State.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Exterior Modifier Subset.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Extract HDR.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB False Color.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Get Grids and Views.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Glare Postprocess.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Glass Modifier 3.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Glass Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB HDR to GIF.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Imageless Annual Glare.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Interior Modifier Subset.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Metal Modifier 3.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Metal Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Mirror Modifier 3.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Mirror Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Model to Rad Folder.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB ModifierSet.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Opaque Modifier 3.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Opaque Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Point-In-Time Grid-Based.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Point-In-Time View-Based.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Radial Grid from Rooms.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Radial Sensor Grid.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Radiance Parameter.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Search Mofidier Sets.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Search Mofidiers.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Section Plane View.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Sensor Grid from Apertures.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Sensor Grid from Faces.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Sensor Grid from Rooms.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Sensor Grid.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Shade Modifier Subset.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Sky View.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Spatial Daylight Autonomy.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Subface Modifier Subset.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Translucent Modifier 3.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Translucent Modifier.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB View from Viewport.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB View.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Visualize Sky.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Wea From Clear Sky.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Wea From EPW.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Wea From Tau Clear Sky.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/HB Wea from Zhang-Huang.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/src/__init__.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Adjust HDR.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Ambient Resolution.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Annual Glare Metrics.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Annual Irradiance.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Annual Sunlight Exposure.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Apply Face Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Apply ModifierSet.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Apply Shade Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Apply Window Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Assign Grids and Views.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB BSDF Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB CIE Standard Sky.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Certain Illuminance.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Check Scene.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Climatebased Sky.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Cumulative Radiation.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Custom Sky.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Daylight Factor.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Deconstruct Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Deconstruct ModifierSet Interior.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Deconstruct ModifierSet.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Deconstruct Wea.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Direct Sun Hours.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Dynamic Aperture Group.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Dynamic Shade Group.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Dynamic State Geometry.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Dynamic State.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Exterior Modifier Subset.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Extract HDR.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Face Radiance Attributes.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB False Color.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Get Grids and Views.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Glare Postprocess.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Glass Modifier 3.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Glass Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB HDR to GIF.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Imageless Annual Glare.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Interior Modifier Subset.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Metal Modifier 3.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Metal Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Mirror Modifier 3.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Mirror Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Model to Rad Folder.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB ModifierSet.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Opaque Modifier 3.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Opaque Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Point-In-Time Grid-Based.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Point-In-Time View-Based.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Radial Grid from Rooms.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Radial Sensor Grid.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Radiance Parameter.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Room Radiance Attributes.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Search Mofidier Sets.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Search Mofidiers.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Section Plane View.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Sensor Grid from Apertures.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Sensor Grid from Faces.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Sensor Grid from Rooms.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Sensor Grid.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Shade Modifier Subset.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Sky View.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Spatial Daylight Autonomy.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Subface Modifier Subset.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Translucent Modifier 3.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Translucent Modifier.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB View from Viewport.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB View.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Visualize Sky.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Wea From Clear Sky.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Wea From EPW.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Wea From Tau Clear Sky.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/HB Wea from Zhang-Huang.ghuser +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance/user_objects/__init__.py +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance.egg-info/dependency_links.txt +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/honeybee_grasshopper_radiance.egg-info/top_level.txt +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/setup.cfg +0 -0
- {honeybee-grasshopper-radiance-1.30.14 → honeybee-grasshopper-radiance-1.32.0}/setup.py +0 -0
|
@@ -19,6 +19,11 @@ hour/timestep of the simulation.
|
|
|
19
19
|
or the "HB Annual Irradiance" component (containing the .ill files and
|
|
20
20
|
the sun-up-hours.txt). This can also be just the path to the folder
|
|
21
21
|
containing these result files.
|
|
22
|
+
dyn_sch_: Optional dynamic Aperture Group Schedules from the "HB Aperture Group
|
|
23
|
+
Schedule" component, which will be used to customize the behavior
|
|
24
|
+
of any dyanmic aperture geometry in the output metrics. If unsupplied,
|
|
25
|
+
all dynamic aperture groups will be in their default state in for
|
|
26
|
+
the output metrics.
|
|
22
27
|
_hoys_: An optional numbers or list of numbers to select the hours of the year (HOYs)
|
|
23
28
|
for which results will be computed. These HOYs can be obtained from the
|
|
24
29
|
"LB Calculate HOY" or the "LB Analysis Period" components. If None, all
|
|
@@ -41,7 +46,7 @@ hour/timestep of the simulation.
|
|
|
41
46
|
|
|
42
47
|
ghenv.Component.Name = 'HB Annual Average Values'
|
|
43
48
|
ghenv.Component.NickName = 'AvgValues'
|
|
44
|
-
ghenv.Component.Message = '1.6.
|
|
49
|
+
ghenv.Component.Message = '1.6.2'
|
|
45
50
|
ghenv.Component.Category = 'HB-Radiance'
|
|
46
51
|
ghenv.Component.SubCategory = '4 :: Results'
|
|
47
52
|
ghenv.Component.AdditionalHelpFromDocStrings = '2'
|
|
@@ -64,13 +69,19 @@ try:
|
|
|
64
69
|
except ImportError as e:
|
|
65
70
|
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
66
71
|
|
|
72
|
+
try:
|
|
73
|
+
from honeybee_radiance_postprocess.dynamic import DynamicSchedule
|
|
74
|
+
except ImportError as e:
|
|
75
|
+
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
76
|
+
|
|
67
77
|
try:
|
|
68
78
|
from pollination_handlers.outputs.helper import read_sensor_grid_result
|
|
69
79
|
except ImportError as e:
|
|
70
80
|
raise ImportError('\nFailed to import pollination_handlers:\n\t{}'.format(e))
|
|
71
81
|
|
|
72
82
|
try:
|
|
73
|
-
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree
|
|
83
|
+
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree, \
|
|
84
|
+
give_warning
|
|
74
85
|
except ImportError as e:
|
|
75
86
|
raise ImportError('\nFailed to import ladybug_rhino:\n\t{}'.format(e))
|
|
76
87
|
|
|
@@ -133,6 +144,17 @@ if all_required_inputs(ghenv.Component):
|
|
|
133
144
|
cmds.extend(['--hoys-file', hoys_file])
|
|
134
145
|
if grid_filter_ != '*':
|
|
135
146
|
cmds.extend(['--grids-filter', grid_filter_])
|
|
147
|
+
if len(dyn_sch_) != 0:
|
|
148
|
+
if os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
149
|
+
dyn_sch = dyn_sch_[0] if isinstance(dyn_sch_[0], DynamicSchedule) else \
|
|
150
|
+
DynamicSchedule.from_group_schedules(dyn_sch_)
|
|
151
|
+
dyn_sch_file = dyn_sch.to_json(folder=res_folder)
|
|
152
|
+
cmds.extend(['--states', dyn_sch_file])
|
|
153
|
+
else:
|
|
154
|
+
msg = 'No dynamic aperture groups were found in the Model.\n' \
|
|
155
|
+
'The input dynamic schedules will be ignored.'
|
|
156
|
+
print(msg)
|
|
157
|
+
give_warning(ghenv.Component, msg)
|
|
136
158
|
use_shell = True if os.name == 'nt' else False
|
|
137
159
|
process = subprocess.Popen(
|
|
138
160
|
cmds, cwd=res_folder, shell=use_shell,
|
|
@@ -147,6 +169,11 @@ if all_required_inputs(ghenv.Component):
|
|
|
147
169
|
values = list_to_data_tree(values)
|
|
148
170
|
|
|
149
171
|
else:
|
|
172
|
+
if len(dyn_sch_) != 0:
|
|
173
|
+
msg = 'Dynamic Schedules are currently only supported for Annual Daylight ' \
|
|
174
|
+
'simulations.\nThe input schedules will be ignored.'
|
|
175
|
+
print(msg)
|
|
176
|
+
give_warning(ghenv.Component, msg)
|
|
150
177
|
if median_:
|
|
151
178
|
raise ValueError('The median values can only be calculated for a '
|
|
152
179
|
'results folder from the "HB Annual Daylight" '
|
|
@@ -19,6 +19,11 @@ hour/timestep of the simulation.
|
|
|
19
19
|
or the "HB Annual Irradiance" component (containing the .ill files and
|
|
20
20
|
the sun-up-hours.txt). This can also be just the path to the folder
|
|
21
21
|
containing these result files.
|
|
22
|
+
dyn_sch_: Optional dynamic Aperture Group Schedules from the "HB Aperture Group
|
|
23
|
+
Schedule" component, which will be used to customize the behavior
|
|
24
|
+
of any dyanmic aperture geometry in the output metrics. If unsupplied,
|
|
25
|
+
all dynamic aperture groups will be in their default state in for
|
|
26
|
+
the output metrics.
|
|
22
27
|
_hoys_: An optional numbers or list of numbers to select the hours of the year (HOYs)
|
|
23
28
|
for which results will be computed. These HOYs can be obtained from the
|
|
24
29
|
"LB Calculate HOY" or the "LB Analysis Period" components. If None, all
|
|
@@ -39,7 +44,7 @@ hour/timestep of the simulation.
|
|
|
39
44
|
|
|
40
45
|
ghenv.Component.Name = 'HB Annual Cumulative Values'
|
|
41
46
|
ghenv.Component.NickName = 'CumulValues'
|
|
42
|
-
ghenv.Component.Message = '1.6.
|
|
47
|
+
ghenv.Component.Message = '1.6.1'
|
|
43
48
|
ghenv.Component.Category = 'HB-Radiance'
|
|
44
49
|
ghenv.Component.SubCategory = '4 :: Results'
|
|
45
50
|
ghenv.Component.AdditionalHelpFromDocStrings = '2'
|
|
@@ -62,13 +67,19 @@ try:
|
|
|
62
67
|
except ImportError as e:
|
|
63
68
|
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
64
69
|
|
|
70
|
+
try:
|
|
71
|
+
from honeybee_radiance_postprocess.dynamic import DynamicSchedule
|
|
72
|
+
except ImportError as e:
|
|
73
|
+
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
74
|
+
|
|
65
75
|
try:
|
|
66
76
|
from pollination_handlers.outputs.helper import read_sensor_grid_result
|
|
67
77
|
except ImportError as e:
|
|
68
78
|
raise ImportError('\nFailed to import pollination_handlers:\n\t{}'.format(e))
|
|
69
79
|
|
|
70
80
|
try:
|
|
71
|
-
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree
|
|
81
|
+
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree, \
|
|
82
|
+
give_warning
|
|
72
83
|
except ImportError as e:
|
|
73
84
|
raise ImportError('\nFailed to import ladybug_rhino:\n\t{}'.format(e))
|
|
74
85
|
|
|
@@ -112,7 +123,8 @@ if all_required_inputs(ghenv.Component):
|
|
|
112
123
|
else _results[0]
|
|
113
124
|
|
|
114
125
|
# check to see if results use the newer numpy arrays
|
|
115
|
-
if os.path.isdir(os.path.join(res_folder, '__static_apertures__'))
|
|
126
|
+
if os.path.isdir(os.path.join(res_folder, '__static_apertures__')) or \
|
|
127
|
+
os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
116
128
|
cmds = [folders.python_exe_path, '-m', 'honeybee_radiance_postprocess',
|
|
117
129
|
'post-process', 'cumulative-values', res_folder, '-sf', 'metrics']
|
|
118
130
|
if len(_hoys_) != 0:
|
|
@@ -122,6 +134,17 @@ if all_required_inputs(ghenv.Component):
|
|
|
122
134
|
cmds.extend(['--hoys-file', hoys_file])
|
|
123
135
|
if grid_filter_ != '*':
|
|
124
136
|
cmds.extend(['--grids-filter', grid_filter_])
|
|
137
|
+
if len(dyn_sch_) != 0:
|
|
138
|
+
if os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
139
|
+
dyn_sch = dyn_sch_[0] if isinstance(dyn_sch_[0], DynamicSchedule) else \
|
|
140
|
+
DynamicSchedule.from_group_schedules(dyn_sch_)
|
|
141
|
+
dyn_sch_file = dyn_sch.to_json(folder=res_folder)
|
|
142
|
+
cmds.extend(['--states', dyn_sch_file])
|
|
143
|
+
else:
|
|
144
|
+
msg = 'No dynamic aperture groups were found in the Model.\n' \
|
|
145
|
+
'The input dynamic schedules will be ignored.'
|
|
146
|
+
print(msg)
|
|
147
|
+
give_warning(ghenv.Component, msg)
|
|
125
148
|
use_shell = True if os.name == 'nt' else False
|
|
126
149
|
process = subprocess.Popen(
|
|
127
150
|
cmds, cwd=res_folder, shell=use_shell,
|
|
@@ -136,17 +159,23 @@ if all_required_inputs(ghenv.Component):
|
|
|
136
159
|
values = list_to_data_tree(values)
|
|
137
160
|
|
|
138
161
|
else:
|
|
162
|
+
if len(dyn_sch_) != 0:
|
|
163
|
+
msg = 'Dynamic Schedules are currently only supported for Annual Daylight ' \
|
|
164
|
+
'simulations.\nThe input schedules will be ignored.'
|
|
165
|
+
print(msg)
|
|
166
|
+
give_warning(ghenv.Component, msg)
|
|
167
|
+
|
|
139
168
|
# extract the timestep if it exists
|
|
140
169
|
timestep = 1
|
|
141
170
|
tstep_file = os.path.join(res_folder, 'timestep.txt')
|
|
142
171
|
if os.path.isfile(tstep_file):
|
|
143
172
|
with open(tstep_file) as tf:
|
|
144
173
|
timestep = int(tf.readline())
|
|
145
|
-
|
|
174
|
+
|
|
146
175
|
# parse the sun-up-hours
|
|
147
176
|
grids, sun_up_hours = _process_input_folder(res_folder, grid_filter_)
|
|
148
177
|
su_pattern = parse_sun_up_hours(sun_up_hours, _hoys_, timestep)
|
|
149
|
-
|
|
178
|
+
|
|
150
179
|
# compute the average values
|
|
151
180
|
values = []
|
|
152
181
|
for grid_info in grids:
|
|
@@ -16,6 +16,11 @@ Calculate Annual Daylight Metrics from a result (.ill) files.
|
|
|
16
16
|
component (containing the .ill files and the sun-up-hours.txt).
|
|
17
17
|
This can also be just the path to the folder containing these
|
|
18
18
|
result files.
|
|
19
|
+
dyn_sch_: Optional dynamic Aperture Group Schedules from the "HB Aperture Group
|
|
20
|
+
Schedule" component, which will be used to customize the behavior
|
|
21
|
+
of any dyanmic aperture geometry in the output metrics. If unsupplied,
|
|
22
|
+
all dynamic aperture groups will be in their default state in for
|
|
23
|
+
the output metrics.
|
|
19
24
|
_occ_sch_: An annual occupancy schedule as a Ladybug Data Collection or a HB-Energy
|
|
20
25
|
schedule object. This can also be the identifier of a schedule in
|
|
21
26
|
your HB-Energy schedule library. Any value in this schedule that is
|
|
@@ -60,7 +65,7 @@ Calculate Annual Daylight Metrics from a result (.ill) files.
|
|
|
60
65
|
|
|
61
66
|
ghenv.Component.Name = "HB Annual Daylight Metrics"
|
|
62
67
|
ghenv.Component.NickName = 'DaylightMetrics'
|
|
63
|
-
ghenv.Component.Message = '1.6.
|
|
68
|
+
ghenv.Component.Message = '1.6.2'
|
|
64
69
|
ghenv.Component.Category = 'HB-Radiance'
|
|
65
70
|
ghenv.Component.SubCategory = '4 :: Results'
|
|
66
71
|
ghenv.Component.AdditionalHelpFromDocStrings = '1'
|
|
@@ -84,6 +89,11 @@ try:
|
|
|
84
89
|
except ImportError as e:
|
|
85
90
|
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
86
91
|
|
|
92
|
+
try:
|
|
93
|
+
from honeybee_radiance_postprocess.dynamic import DynamicSchedule
|
|
94
|
+
except ImportError as e:
|
|
95
|
+
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
96
|
+
|
|
87
97
|
try:
|
|
88
98
|
from honeybee_energy.lib.schedules import schedule_by_identifier
|
|
89
99
|
except ImportError as e: # honeybee schedule library is not available
|
|
@@ -96,7 +106,8 @@ except ImportError as e:
|
|
|
96
106
|
raise ImportError('\nFailed to import pollination_handlers:\n\t{}'.format(e))
|
|
97
107
|
|
|
98
108
|
try:
|
|
99
|
-
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree
|
|
109
|
+
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree, \
|
|
110
|
+
give_warning
|
|
100
111
|
except ImportError as e:
|
|
101
112
|
raise ImportError('\nFailed to import ladybug_rhino:\n\t{}'.format(e))
|
|
102
113
|
|
|
@@ -142,7 +153,8 @@ if all_required_inputs(ghenv.Component):
|
|
|
142
153
|
# compute the annual metrics
|
|
143
154
|
res_folder = os.path.dirname(_results[0]) if os.path.isfile(_results[0]) \
|
|
144
155
|
else _results[0]
|
|
145
|
-
if os.path.isdir(os.path.join(res_folder, '__static_apertures__'))
|
|
156
|
+
if os.path.isdir(os.path.join(res_folder, '__static_apertures__')) or \
|
|
157
|
+
os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
146
158
|
cmds = [
|
|
147
159
|
folders.python_exe_path, '-m', 'honeybee_radiance_postprocess',
|
|
148
160
|
'post-process', 'annual-daylight', res_folder, '-sf', 'metrics',
|
|
@@ -150,6 +162,17 @@ if all_required_inputs(ghenv.Component):
|
|
|
150
162
|
]
|
|
151
163
|
if grid_filter_ != '*':
|
|
152
164
|
cmds.extend(['--grids-filter', grid_filter_])
|
|
165
|
+
if len(dyn_sch_) != 0:
|
|
166
|
+
if os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
167
|
+
dyn_sch = dyn_sch_[0] if isinstance(dyn_sch_[0], DynamicSchedule) else \
|
|
168
|
+
DynamicSchedule.from_group_schedules(dyn_sch_)
|
|
169
|
+
dyn_sch_file = dyn_sch.to_json(folder=res_folder)
|
|
170
|
+
cmds.extend(['--states', dyn_sch_file])
|
|
171
|
+
else:
|
|
172
|
+
msg = 'No dynamic aperture groups were found in the Model.\n' \
|
|
173
|
+
'The input dynamic schedules will be ignored.'
|
|
174
|
+
print(msg)
|
|
175
|
+
give_warning(ghenv.Component, msg)
|
|
153
176
|
if schedule is not None:
|
|
154
177
|
sch_str = '\n'.join(str(h) for h in schedule)
|
|
155
178
|
sch_file = os.path.join(res_folder, 'schedule.txt')
|
|
@@ -170,6 +193,11 @@ if all_required_inputs(ghenv.Component):
|
|
|
170
193
|
UDI_low = list_to_data_tree(read_udi_from_folder(os.path.join(metric_dir, 'udi_lower')))
|
|
171
194
|
UDI_up = list_to_data_tree(read_udi_from_folder(os.path.join(metric_dir, 'udi_upper')))
|
|
172
195
|
else:
|
|
196
|
+
if len(dyn_sch_) != 0:
|
|
197
|
+
msg = 'Dynamic Schedules are currently only supported for Annual Daylight ' \
|
|
198
|
+
'simulations.\nThe input schedules will be ignored.'
|
|
199
|
+
print(msg)
|
|
200
|
+
give_warning(ghenv.Component, msg)
|
|
173
201
|
DA, cDA, UDI_low, UDI, UDI_up = metrics_from_folder(
|
|
174
202
|
res_folder, schedule, _threshold_, min_t, max_t, grid_filter_)
|
|
175
203
|
DA = list_to_data_tree(DA)
|
|
@@ -11,13 +11,16 @@
|
|
|
11
11
|
Run an annual daylight study for a Honeybee model to compute hourly illuminance
|
|
12
12
|
for each sensor in a model's sensor grids.
|
|
13
13
|
_
|
|
14
|
-
By default, this recipe uses
|
|
15
|
-
|
|
16
|
-
the
|
|
14
|
+
By default, this recipe uses an enhanced 2-phase method, which accurately models
|
|
15
|
+
direct sun by tracing rays from each sensor to the solar position at each hour
|
|
16
|
+
of the calculation. This makes the result suitable for computing Annual Sun
|
|
17
|
+
Exposure (ASE) and for modeling the effects of dynamic shades and apertures.
|
|
17
18
|
_
|
|
18
|
-
When the enhanced_ option is
|
|
19
|
-
which
|
|
20
|
-
|
|
19
|
+
When the enhanced_ option is set to False, a standard 2-phase method for simulation,
|
|
20
|
+
which is much faster because it simply determines the relationship between each
|
|
21
|
+
sensor and sky patch and then multiplies the value of each sky patch at each
|
|
22
|
+
hour by the relationship coefficient. However, this means that the direct sun
|
|
23
|
+
is spread out across a few sky patches, making it unsuitable for ASE.
|
|
21
24
|
_
|
|
22
25
|
The resulting illuminance is used to compute the following metrics:
|
|
23
26
|
_
|
|
@@ -60,7 +63,10 @@ _
|
|
|
60
63
|
tracing. (Default: -ab 2 -ad 5000 -lw 2e-05).
|
|
61
64
|
enhanced_: Boolean to note whether an enhanced version of the 2-phase ray tracing
|
|
62
65
|
simulation should be used, which will more accurately account for
|
|
63
|
-
direct sun at each time step.
|
|
66
|
+
direct sun at each time step. If False, only a 2-phase daylight
|
|
67
|
+
coefficient calculation with sky patches will be used, which is
|
|
68
|
+
much faster but spreads the direct sun out across a few sky
|
|
69
|
+
patches, making it unsuitable for ASE. (Default: True).
|
|
64
70
|
run_settings_: Settings from the "HB Recipe Settings" component that specify
|
|
65
71
|
how the recipe should be run. This can also be a text string of
|
|
66
72
|
recipe settings.
|
|
@@ -103,7 +109,7 @@ _
|
|
|
103
109
|
|
|
104
110
|
ghenv.Component.Name = 'HB Annual Daylight'
|
|
105
111
|
ghenv.Component.NickName = 'AnnualDaylight'
|
|
106
|
-
ghenv.Component.Message = '1.6.
|
|
112
|
+
ghenv.Component.Message = '1.6.2'
|
|
107
113
|
ghenv.Component.Category = 'HB-Radiance'
|
|
108
114
|
ghenv.Component.SubCategory = '3 :: Recipes'
|
|
109
115
|
ghenv.Component.AdditionalHelpFromDocStrings = '1'
|
|
@@ -121,7 +127,8 @@ except ImportError as e:
|
|
|
121
127
|
|
|
122
128
|
if all_required_inputs(ghenv.Component) and _run:
|
|
123
129
|
# create the recipe and set the input arguments
|
|
124
|
-
recipe = Recipe('annual-daylight
|
|
130
|
+
recipe = Recipe('annual-daylight') if enhanced_ is False else \
|
|
131
|
+
Recipe('annual-daylight-enhanced')
|
|
125
132
|
recipe.input_value_by_name('model', _model)
|
|
126
133
|
recipe.input_value_by_name('wea', _wea)
|
|
127
134
|
recipe.input_value_by_name('north', north_)
|
|
@@ -19,6 +19,11 @@ hour/timestep of the simulation.
|
|
|
19
19
|
or the "HB Annual Irradiance" component (containing the .ill files and
|
|
20
20
|
the sun-up-hours.txt). This can also be just the path to the folder
|
|
21
21
|
containing these result files.
|
|
22
|
+
dyn_sch_: Optional dynamic Aperture Group Schedules from the "HB Aperture Group
|
|
23
|
+
Schedule" component, which will be used to customize the behavior
|
|
24
|
+
of any dyanmic aperture geometry in the output metrics. If unsupplied,
|
|
25
|
+
all dynamic aperture groups will be in their default state in for
|
|
26
|
+
the output metrics.
|
|
22
27
|
_hoys_: An optional numbers or list of numbers to select the hours of the year (HOYs)
|
|
23
28
|
for which results will be computed. These HOYs can be obtained from the
|
|
24
29
|
"LB Calculate HOY" or the "LB Analysis Period" components. If None, all
|
|
@@ -45,7 +50,7 @@ hour/timestep of the simulation.
|
|
|
45
50
|
|
|
46
51
|
ghenv.Component.Name = 'HB Annual Peak Values'
|
|
47
52
|
ghenv.Component.NickName = 'PeakValues'
|
|
48
|
-
ghenv.Component.Message = '1.6.
|
|
53
|
+
ghenv.Component.Message = '1.6.3'
|
|
49
54
|
ghenv.Component.Category = 'HB-Radiance'
|
|
50
55
|
ghenv.Component.SubCategory = '4 :: Results'
|
|
51
56
|
ghenv.Component.AdditionalHelpFromDocStrings = '2'
|
|
@@ -68,13 +73,19 @@ try:
|
|
|
68
73
|
except ImportError as e:
|
|
69
74
|
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
70
75
|
|
|
76
|
+
try:
|
|
77
|
+
from honeybee_radiance_postprocess.dynamic import DynamicSchedule
|
|
78
|
+
except ImportError as e:
|
|
79
|
+
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
80
|
+
|
|
71
81
|
try:
|
|
72
82
|
from pollination_handlers.outputs.helper import read_sensor_grid_result
|
|
73
83
|
except ImportError as e:
|
|
74
84
|
raise ImportError('\nFailed to import pollination_handlers:\n\t{}'.format(e))
|
|
75
85
|
|
|
76
86
|
try:
|
|
77
|
-
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree
|
|
87
|
+
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree, \
|
|
88
|
+
give_warning
|
|
78
89
|
except ImportError as e:
|
|
79
90
|
raise ImportError('\nFailed to import ladybug_rhino:\n\t{}'.format(e))
|
|
80
91
|
|
|
@@ -132,7 +143,8 @@ if all_required_inputs(ghenv.Component):
|
|
|
132
143
|
else _results[0]
|
|
133
144
|
|
|
134
145
|
# check to see if results use the newer numpy arrays
|
|
135
|
-
if os.path.isdir(os.path.join(res_folder, '__static_apertures__'))
|
|
146
|
+
if os.path.isdir(os.path.join(res_folder, '__static_apertures__')) or \
|
|
147
|
+
os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
136
148
|
cmds = [folders.python_exe_path, '-m', 'honeybee_radiance_postprocess',
|
|
137
149
|
'post-process', 'peak-values', res_folder, '-sf', 'metrics']
|
|
138
150
|
if len(_hoys_) != 0:
|
|
@@ -144,6 +156,17 @@ if all_required_inputs(ghenv.Component):
|
|
|
144
156
|
cmds.extend(['--grids-filter', grid_filter_])
|
|
145
157
|
if coincident_:
|
|
146
158
|
cmds.append('--coincident')
|
|
159
|
+
if len(dyn_sch_) != 0:
|
|
160
|
+
if os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
161
|
+
dyn_sch = dyn_sch_[0] if isinstance(dyn_sch_[0], DynamicSchedule) else \
|
|
162
|
+
DynamicSchedule.from_group_schedules(dyn_sch_)
|
|
163
|
+
dyn_sch_file = dyn_sch.to_json(folder=res_folder)
|
|
164
|
+
cmds.extend(['--states', dyn_sch_file])
|
|
165
|
+
else:
|
|
166
|
+
msg = 'No dynamic aperture groups were found in the Model.\n' \
|
|
167
|
+
'The input dynamic schedules will be ignored.'
|
|
168
|
+
print(msg)
|
|
169
|
+
give_warning(ghenv.Component, msg)
|
|
147
170
|
use_shell = True if os.name == 'nt' else False
|
|
148
171
|
process = subprocess.Popen(
|
|
149
172
|
cmds, cwd=res_folder, shell=use_shell,
|
|
@@ -164,13 +187,19 @@ if all_required_inputs(ghenv.Component):
|
|
|
164
187
|
hoys = [None] * len(hoys)
|
|
165
188
|
|
|
166
189
|
else:
|
|
190
|
+
if len(dyn_sch_) != 0:
|
|
191
|
+
msg = 'Dynamic Schedules are currently only supported for Annual Daylight ' \
|
|
192
|
+
'simulations.\nThe input schedules will be ignored.'
|
|
193
|
+
print(msg)
|
|
194
|
+
give_warning(ghenv.Component, msg)
|
|
195
|
+
|
|
167
196
|
# extract the timestep if it exists
|
|
168
197
|
timestep = 1
|
|
169
198
|
tstep_file = os.path.join(res_folder, 'timestep.txt')
|
|
170
199
|
if os.path.isfile(tstep_file):
|
|
171
200
|
with open(tstep_file) as tf:
|
|
172
201
|
timestep = int(tf.readline())
|
|
173
|
-
|
|
202
|
+
|
|
174
203
|
# parse the sun-up-hours
|
|
175
204
|
grids, sun_up_hours = _process_input_folder(res_folder, grid_filter_)
|
|
176
205
|
su_pattern = parse_sun_up_hours(sun_up_hours, _hoys_, timestep)
|
|
@@ -19,6 +19,11 @@ deconstructed for detailed analysis with native Grasshopper math components.
|
|
|
19
19
|
component (containing the .ill files and the sun-up-hours.txt).
|
|
20
20
|
This can also be just the path to the folder containing these
|
|
21
21
|
result files.
|
|
22
|
+
dyn_sch_: Optional dynamic Aperture Group Schedules from the "HB Aperture Group
|
|
23
|
+
Schedule" component, which will be used to customize the behavior
|
|
24
|
+
of any dyanmic aperture geometry in the output metrics. If unsupplied,
|
|
25
|
+
all dynamic aperture groups will be in their default state in for
|
|
26
|
+
the output metrics.
|
|
22
27
|
_sel_pts: A point or list of points, which will be used to filter the sensors
|
|
23
28
|
for which data collections will be imported.
|
|
24
29
|
_all_pts: The data tree of all sensor points that were used in the simulation.
|
|
@@ -40,7 +45,7 @@ deconstructed for detailed analysis with native Grasshopper math components.
|
|
|
40
45
|
|
|
41
46
|
ghenv.Component.Name = 'HB Annual Results to Data'
|
|
42
47
|
ghenv.Component.NickName = 'AnnualToData'
|
|
43
|
-
ghenv.Component.Message = '1.6.
|
|
48
|
+
ghenv.Component.Message = '1.6.1'
|
|
44
49
|
ghenv.Component.Category = 'HB-Radiance'
|
|
45
50
|
ghenv.Component.SubCategory = '4 :: Results'
|
|
46
51
|
ghenv.Component.AdditionalHelpFromDocStrings = '2'
|
|
@@ -71,11 +76,16 @@ try:
|
|
|
71
76
|
except ImportError as e:
|
|
72
77
|
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
73
78
|
|
|
79
|
+
try:
|
|
80
|
+
from honeybee_radiance_postprocess.dynamic import DynamicSchedule
|
|
81
|
+
except ImportError as e:
|
|
82
|
+
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
83
|
+
|
|
74
84
|
try:
|
|
75
85
|
from ladybug_rhino.config import tolerance
|
|
76
86
|
from ladybug_rhino.togeometry import to_point3d, to_vector3d
|
|
77
87
|
from ladybug_rhino.grasshopper import all_required_inputs, list_to_data_tree, \
|
|
78
|
-
data_tree_to_list
|
|
88
|
+
data_tree_to_list, give_warning
|
|
79
89
|
except ImportError as e:
|
|
80
90
|
raise ImportError('\nFailed to import ladybug_rhino:\n\t{}'.format(e))
|
|
81
91
|
|
|
@@ -159,7 +169,8 @@ if all_required_inputs(ghenv.Component):
|
|
|
159
169
|
pt_filter = new_pt_filter
|
|
160
170
|
|
|
161
171
|
# check to see if results use the newer numpy arrays
|
|
162
|
-
if os.path.isdir(os.path.join(res_folder, '__static_apertures__'))
|
|
172
|
+
if os.path.isdir(os.path.join(res_folder, '__static_apertures__')) or \
|
|
173
|
+
os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
163
174
|
cmds = [folders.python_exe_path, '-m', 'honeybee_radiance_postprocess',
|
|
164
175
|
'post-process', 'annual-to-data', res_folder]
|
|
165
176
|
if pt_filter[0] is not None:
|
|
@@ -167,6 +178,17 @@ if all_required_inputs(ghenv.Component):
|
|
|
167
178
|
si_file = os.path.join(res_folder, 'sensor_indices.json')
|
|
168
179
|
write_to_file(si_file, json.dumps(sen_dict))
|
|
169
180
|
cmds.extend(['--sensor-index', si_file])
|
|
181
|
+
if len(dyn_sch_) != 0:
|
|
182
|
+
if os.path.isfile(os.path.join(res_folder, 'grid_states.json')):
|
|
183
|
+
dyn_sch = dyn_sch_[0] if isinstance(dyn_sch_[0], DynamicSchedule) else \
|
|
184
|
+
DynamicSchedule.from_group_schedules(dyn_sch_)
|
|
185
|
+
dyn_sch_file = dyn_sch.to_json(folder=res_folder)
|
|
186
|
+
cmds.extend(['--states', dyn_sch_file])
|
|
187
|
+
else:
|
|
188
|
+
msg = 'No dynamic aperture groups were found in the Model.\n' \
|
|
189
|
+
'The input dynamic schedules will be ignored.'
|
|
190
|
+
print(msg)
|
|
191
|
+
give_warning(ghenv.Component, msg)
|
|
170
192
|
use_shell = True if os.name == 'nt' else False
|
|
171
193
|
process = subprocess.Popen(
|
|
172
194
|
cmds, cwd=res_folder, shell=use_shell,
|
|
@@ -181,6 +203,12 @@ if all_required_inputs(ghenv.Component):
|
|
|
181
203
|
data = list_to_data_tree(data)
|
|
182
204
|
|
|
183
205
|
else:
|
|
206
|
+
if len(dyn_sch_) != 0:
|
|
207
|
+
msg = 'Dynamic Schedules are currently only supported for Annual Daylight ' \
|
|
208
|
+
'simulations.\nThe input schedules will be ignored.'
|
|
209
|
+
print(msg)
|
|
210
|
+
give_warning(ghenv.Component, msg)
|
|
211
|
+
|
|
184
212
|
# extract the timestep if it exists
|
|
185
213
|
timestep, has_t_step = 1, False
|
|
186
214
|
tstep_file = os.path.join(res_folder, 'timestep.txt')
|
honeybee-grasshopper-radiance-1.32.0/honeybee_grasshopper_radiance/src/HB Aperture Group Schedule.py
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Honeybee: A Plugin for Environmental Analysis (GPL)
|
|
2
|
+
# This file is part of Honeybee.
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2023, Ladybug Tools.
|
|
5
|
+
# You should have received a copy of the GNU Affero General Public License
|
|
6
|
+
# along with Honeybee; If not, see <http://www.gnu.org/licenses/>.
|
|
7
|
+
#
|
|
8
|
+
# @license AGPL-3.0-or-later <https://spdx.org/licenses/AGPL-3.0-or-later>
|
|
9
|
+
|
|
10
|
+
"""
|
|
11
|
+
Create a Dynamic Aperture Group Schedule, which can be used to process any dynamic
|
|
12
|
+
aperture geometry that was run in an annual simulation.
|
|
13
|
+
|
|
14
|
+
-
|
|
15
|
+
Args:
|
|
16
|
+
_group_aps: Honeybee Apertures that are a part of the same dynamic group and will
|
|
17
|
+
be assigned the same schedule for postprocessing. Typically, this is
|
|
18
|
+
the output of the "HB Dynamic Aperture Group" component but it can
|
|
19
|
+
also be the output of the "HB Get Dynamic Groups" component, which
|
|
20
|
+
returns all of the dynamic groups on a particular Model.
|
|
21
|
+
_schedule: A list of 8760 integers refering to the index of the aperture group state
|
|
22
|
+
to be used at each hour of the simulation. This can also be a single integer
|
|
23
|
+
for a static state to be used for the entire period of the simulation
|
|
24
|
+
or a pattern of integers that is less than 8760 in length and will be
|
|
25
|
+
repeated until the 8760 is reached. Note that 0 refers to the first
|
|
26
|
+
state, 1 refers to the second state, and so on. -1 can be used to
|
|
27
|
+
completely discout the aperture from the simulation for a given hour.
|
|
28
|
+
|
|
29
|
+
Returns:
|
|
30
|
+
dyn_sch: A dynamic schedule object for the input aperture group, which can be plugged
|
|
31
|
+
into any of the Results components with a syn_sch input.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
ghenv.Component.Name = 'HB Aperture Group Schedule'
|
|
35
|
+
ghenv.Component.NickName = 'GroupSch'
|
|
36
|
+
ghenv.Component.Message = '1.6.0'
|
|
37
|
+
ghenv.Component.Category = 'HB-Radiance'
|
|
38
|
+
ghenv.Component.SubCategory = '4 :: Results'
|
|
39
|
+
ghenv.Component.AdditionalHelpFromDocStrings = '1'
|
|
40
|
+
|
|
41
|
+
try:
|
|
42
|
+
from honeybee.aperture import Aperture
|
|
43
|
+
except ImportError as e:
|
|
44
|
+
raise ImportError('\nFailed to import honeybee:\n\t{}'.format(e))
|
|
45
|
+
|
|
46
|
+
try:
|
|
47
|
+
from honeybee_radiance_postprocess.dynamic import ApertureGroupSchedule
|
|
48
|
+
except ImportError as e:
|
|
49
|
+
raise ImportError('\nFailed to import honeybee_radiance:\n\t{}'.format(e))
|
|
50
|
+
|
|
51
|
+
try:
|
|
52
|
+
from ladybug_rhino.grasshopper import all_required_inputs, recipe_result
|
|
53
|
+
except ImportError as e:
|
|
54
|
+
raise ImportError('\nFailed to import ladybug_rhino:\n\t{}'.format(e))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
if all_required_inputs(ghenv.Component):
|
|
58
|
+
dyn_sch = []
|
|
59
|
+
dyn_ids = set()
|
|
60
|
+
for ap in _group_aps:
|
|
61
|
+
assert isinstance(ap, Aperture), 'Expected Aperture. Got {}.'.format(type(ap))
|
|
62
|
+
dyn_grp_id = ap.properties.radiance.dynamic_group_identifier
|
|
63
|
+
if dyn_grp_id is None:
|
|
64
|
+
raise ValueError(
|
|
65
|
+
'Input Aperture "{}" is not a part of a dynamic group.'.format(ap.display_name))
|
|
66
|
+
if dyn_grp_id not in dyn_ids:
|
|
67
|
+
dyn_ids.add(dyn_grp_id)
|
|
68
|
+
_ap_group_sch = ApertureGroupSchedule(dyn_grp_id, _schedule)
|
|
69
|
+
dyn_sch.append(_ap_group_sch)
|
|
@@ -42,16 +42,21 @@ Model.
|
|
|
42
42
|
If the vertical distance between two Apertures is larger than this
|
|
43
43
|
tolerance the Apertures cannot be grouped. If no value is given the
|
|
44
44
|
vertical grouping will be skipped. (Default: None).
|
|
45
|
+
states_: An optional list of Honeybee State objects to be applied to all the generated groups.
|
|
46
|
+
These states should be ordered based on how they will be switched on.
|
|
47
|
+
The first state is the default state and, typically, higher states
|
|
48
|
+
are more shaded. If the objects in the group have no states, the
|
|
49
|
+
modifiers already assigned the apertures will be used for all states.
|
|
45
50
|
_run: Set to True to run the automatic Aperture grouping.
|
|
46
51
|
|
|
47
52
|
Returns:
|
|
48
|
-
model:
|
|
53
|
+
model: The input Honeybee Model object where all Apertures with Outdoors
|
|
49
54
|
boundary condition have been assigned a dynamic group identifier.
|
|
50
55
|
"""
|
|
51
56
|
|
|
52
57
|
ghenv.Component.Name = 'HB Automatic Aperture Group'
|
|
53
58
|
ghenv.Component.NickName = 'AutoGroup'
|
|
54
|
-
ghenv.Component.Message = '1.6.
|
|
59
|
+
ghenv.Component.Message = '1.6.4'
|
|
55
60
|
ghenv.Component.Category = 'HB-Radiance'
|
|
56
61
|
ghenv.Component.SubCategory = '0 :: Basic Properties'
|
|
57
62
|
ghenv.Component.AdditionalHelpFromDocStrings = '2'
|
|
@@ -78,8 +83,8 @@ except ImportError as e:
|
|
|
78
83
|
|
|
79
84
|
try:
|
|
80
85
|
from honeybee_radiance.config import folders as rad_folders
|
|
81
|
-
from honeybee_radiance.
|
|
82
|
-
|
|
86
|
+
from honeybee_radiance.dynamic.multiphase import aperture_view_factor, \
|
|
87
|
+
aperture_view_factor_postprocess, cluster_view_factor, \
|
|
83
88
|
cluster_orientation, cluster_output
|
|
84
89
|
from honeybee_radiance.lightsource.sky.skydome import SkyDome
|
|
85
90
|
except ImportError as e:
|
|
@@ -152,11 +157,11 @@ if all_required_inputs(ghenv.Component) and _run:
|
|
|
152
157
|
rflux_sky = rflux_sky.to_file(folder_dir, name='rflux_sky.sky')
|
|
153
158
|
|
|
154
159
|
# calculate view factor
|
|
155
|
-
mtx_file, ap_dict =
|
|
160
|
+
mtx_file, ap_dict = aperture_view_factor(
|
|
156
161
|
folder_dir, apertures, size=size, ambient_division=1000,
|
|
157
162
|
receiver=rflux_sky, octree=octree, calc_folder=folder_dir
|
|
158
163
|
)
|
|
159
|
-
rmse =
|
|
164
|
+
rmse = aperture_view_factor_postprocess(
|
|
160
165
|
mtx_file, ap_dict, room_apertures, room_based
|
|
161
166
|
)
|
|
162
167
|
|
|
@@ -184,6 +189,7 @@ if all_required_inputs(ghenv.Component) and _run:
|
|
|
184
189
|
json.dump(group_dict, fp, indent=2)
|
|
185
190
|
|
|
186
191
|
# assign dynamic group identifiers for each aperture
|
|
192
|
+
group_ap_dict = {}
|
|
187
193
|
for room in model.rooms:
|
|
188
194
|
for face in room.faces:
|
|
189
195
|
for ap in face.apertures:
|
|
@@ -191,3 +197,22 @@ if all_required_inputs(ghenv.Component) and _run:
|
|
|
191
197
|
dyn_group_id = group_dict[ap.identifier]
|
|
192
198
|
ap.properties.radiance.dynamic_group_identifier = \
|
|
193
199
|
dyn_group_id
|
|
200
|
+
try:
|
|
201
|
+
group_ap_dict[dyn_group_id].append(ap)
|
|
202
|
+
except KeyError:
|
|
203
|
+
group_ap_dict[dyn_group_id] = [ap]
|
|
204
|
+
|
|
205
|
+
# assign any states if they are connected
|
|
206
|
+
if len(states_) != 0:
|
|
207
|
+
for group_aps in group_ap_dict.values():
|
|
208
|
+
# assign states (including shades) to the first aperture
|
|
209
|
+
group_aps[0].properties.radiance.states = [state.duplicate() for state in states_]
|
|
210
|
+
# remove shades from following apertures to ensure they aren't double-counted
|
|
211
|
+
states_wo_shades = []
|
|
212
|
+
for state in states_:
|
|
213
|
+
new_state = state.duplicate()
|
|
214
|
+
new_state.remove_shades()
|
|
215
|
+
states_wo_shades.append(new_state)
|
|
216
|
+
for ap in group_aps[1:]:
|
|
217
|
+
ap.properties.radiance.states = \
|
|
218
|
+
[state.duplicate() for state in states_wo_shades]
|