honeybee_radiance.lightpath module

Utilities to determine the path of light taken through interior spaces of a model.

honeybee_radiance.lightpath.light_path_from_room(model, room_identifier, static_name='__static_apertures__')[source]

Get the dynamic aperture groups that need to be simulated for a room in a model.

Parameters
  • model – A honeybee Model object which will be used to identify the aperture groups that are needed to simulate a single room.

  • room_identifier – Text string for the identifier of the Room in the model for which the light path will be computed.

  • static_name – An optional name to be used to refer to static apertures found within the model. (Default: ‘__static_apertures__’).

Returns

A list of lists where each sub-list contains the identifiers of the aperture groups through which light is passing

Usage:

from honeybee_radiance.lightpath import light_path_from_room
from honeybee.room import Room
from honeybee.model import Model
from ladybug_geometry.geometry3d.pointvector import Point3D

room1 = Room.from_box('Tiny_House_Room1', 5, 10, 3)
room1[2].apertures_by_ratio(0.4, 0.01)  # east interior window
room1[3].apertures_by_ratio(0.4, 0.01)  # outdoor south window
south_ap1 = room1[3].apertures[0]
south_ap1.properties.radiance.dynamic_group_identifier = 'SouthWindow1'

room2 = Room.from_box('Tiny_House_Room2', 5, 10, 3, origin=Point3D(5, 0, 0))
room2[4].apertures_by_ratio(0.4, 0.01)  # west interior window
room2[1].apertures_by_ratio(0.4, 0.01)  # outdoor north window
north_ap2 = room2[1].apertures[0]
north_ap2.properties.radiance.dynamic_group_identifier = 'NorthWindow2'

Room.solve_adjacency([room1, room2], 0.01)
model = Model('TinyHouse', [room1, room2])

print(light_path_from_room(model, room1.identifier))

>> [['SouthWindow1'], ['__static_apertures__', 'NorthWindow2']]