honeybee_ph.space module

PH ‘Space’ and Related Sub-object Classes (FloorSegments, etc).

class honeybee_ph.space.Space(_host: room.Room | None = None)[source]

Bases: _Base

ToString()[source]
add_new_volumes(_new_volumes: SpaceVolume | list[SpaceVolume]) None[source]

Add a new SpaceVolume or list of SpaceVolumes to the Space.

Arguments:

  • _new_volumes (list[SpaceVolume]): A list of the SpaceVolumes to add.

Returns:

  • None

clear_volumes() None[source]

Delete all the Volumes from the Space.

duplicate(_host: Any = None, _include_volumes: bool = True) Space[source]
classmethod from_dict(_input_dict: Dict[str, Any], _host: Any) Space[source]
move(moving_vec3D: Vector3D) Space[source]

Move the Space and its Volumes along a vector.

Parameters:

moving_vec3D – A Vector3D with the direction and distance to move the ray.

Returns:

A new Space object with the move applied.

reflect(normal_vec3D: Vector3D, origin_pt3D: Point3D) Space[source]

Reflected the Space and its Volumes across a plane with the input normal vector and origin_pt3D.

Parameters:
  • normal_vec3D – A Vector3D representing the normal vector for the plane across which the line segment will be reflected. THIS VECTOR MUST BE NORMALIZED.

  • origin_pt3D – A Point3D representing the origin_pt3D from which to reflect.

Returns:

A new Space object with the reflection applied.

rotate(axis_vec3D: Vector3D, angle_degrees: float, origin_pt3D: Point3D) Space[source]

Rotate the Space and its Volumes by a certain angle around an axis_vec3D and origin_pt3D.

Right hand rule applies: If axis_vec3D has a positive orientation, rotation will be clockwise. If axis_vec3D has a negative orientation, rotation will be counterclockwise.

Parameters:
  • axis_vec3D – A Vector3D axis_vec3D representing the axis_vec3D of rotation.

  • angle_degrees – An angle for rotation in degrees.

  • origin_pt3D – A Point3D for the origin_pt3D around which the object will be rotated.

Returns:

A new Space object with the rotation applied.

rotate_xy(angle_degrees: float, origin_pt3D: Point3D) Space[source]

Rotate the Space and its Volumes counterclockwise in the XY plane by a certain angle.

Parameters:
  • angle_degrees – An angle in degrees.

  • origin_pt3D – A Point3D for the origin_pt3D around which the object will be rotated.

Returns:

A new Space object with the rotation applied.

scale(scale_factor: float, origin_pt3D: Point3D | None = None) Space[source]

Scale the Space and its Volumes by a factor from an origin_pt3D point.

Parameters:
  • scale_factor – A number representing how much the line segment should be scaled.

  • origin_pt3D – A Point3D representing the origin_pt3D from which to scale. If None, it will be scaled from the World origin_pt3D (0, 0, 0).

Returns:

A new Space object with the scaling applied.

set_base_attrs_from_source(_source)
to_dict(include_mesh: bool = False, *args: list, **kwargs: dict) Dict[str, Any][source]
property average_floor_net_area_factor: float

Returns the average net area factor for the Space’s floor-segments.

property average_floor_weighting_factor: float

Returns the average weighting factor (TFA/iCFA) for the Space’s floor-segments.

property avg_clear_height: float

Returns the average floor-area-weighted height of all the Volumes in the Space

property display_name: str

Get or set a string for the object name without any character restrictions.

If not set, this will be equal to the identifier.

property floor_area: float

The total floor area of all floor segments in the Space, UN-weighted by any reduction factors (iFCA, TFA)

property floor_segment_surfaces: List[List[LBFace3D | None]]
property floor_segments: List[SpaceFloorSegment]
property full_name: str
property identifier
property identifier_short
property net_floor_area: float

The total net floor area of all floor segments in the Space

property net_volume: float

The total interior net volume of all Volumes in the Space.

property reference_points: list[Point3D]

Returns a list of the Space’s Volume reference Points (center of the floor segments).

property volumes: List[SpaceVolume]
property weighted_floor_area: float

The total floor area of all floor segments in the Space, weighted by any reduction factors (iFCA, TFA)

property weighted_net_floor_area: float

The total net floor area of all floor segments in the Space, weighted by any reduction factors (iFCA, TFA)

class honeybee_ph.space.SpaceFloor[source]

Bases: _Base

ToString()[source]
add_floor_segment(_floor_seg: SpaceFloorSegment) None[source]

Add a new SpaceFloorSegment to the SpaceFloor.

Arguments:

  • _floor_seg (SpaceFloorSegment): The SpaceFloorSegment to add to the SpaceFloor.

Returns:

  • None

clear_floor_segments()[source]
duplicate(_include_floor_segments: bool = True) SpaceFloor[source]
duplicate_geometry() Face3D[source]
classmethod from_dict(_input_dict: Dict[str, Any]) SpaceFloor[source]
move(moving_vec3D: Vector3D) SpaceFloor[source]

Move the SpaceFloor along a vector.

Parameters:

moving_vec3D – A Vector3D with the direction and distance to move the ray.

Returns:

A new SpaceFloor object with the move applied.

reflect(normal_vec3D: Vector3D, origin_pt3D: Point3D) SpaceFloor[source]

Reflected the SpaceFloor across a plane with the input normal vector and origin_pt3D.

Parameters:
  • normal_vec3D – A Vector3D representing the normal vector for the plane across which the line segment will be reflected. THIS VECTOR MUST BE NORMALIZED.

  • origin_pt3D – A Point3D representing the origin_pt3D from which to reflect.

Returns:

A new SpaceFloor object with the reflection applied.

rotate(axis_vec3D: Vector3D, angle_degrees: float, origin_pt3D: Point3D) SpaceFloor[source]

Rotate the SpaceFloor by a certain angle around an axis_vec3D and origin_pt3D.

Right hand rule applies: If axis_vec3D has a positive orientation, rotation will be clockwise. If axis_vec3D has a negative orientation, rotation will be counterclockwise.

Parameters:
  • axis_vec3D – A Vector3D axis_vec3D representing the axis_vec3D of rotation.

  • angle_degrees – An angle for rotation in degrees.

  • origin_pt3D – A Point3D for the origin_pt3D around which the object will be rotated.

Returns:

A new SpaceFloor object with the rotation applied.

rotate_xy(angle_degrees: float, origin_pt3D: Point3D) SpaceFloor[source]

Rotate the SpaceFloor counterclockwise in the XY plane by a certain angle.

Parameters:
  • angle_degrees – An angle in degrees.

  • origin_pt3D – A Point3D for the origin_pt3D around which the object will be rotated.

Returns:

A new SpaceFloor object with the rotation applied.

scale(scale_factor: float, origin_pt3D: Point3D | None = None) SpaceFloor[source]

Scale the SpaceFloor by a factor from an origin_pt3D point.

Parameters:
  • scale_factor – A number representing how much the line segment should be scaled.

  • origin_pt3D – A Point3D representing the origin_pt3D from which to scale. If None, it will be scaled from the World origin_pt3D (0, 0, 0).

Returns:

A new SpaceFloor object with the scaling applied.

set_base_attrs_from_source(_source)
to_dict(include_mesh: bool = False, *args: list, **kwargs: dict) Dict[str, Any][source]
property display_name

Get or set a string for the object name without any character restrictions.

If not set, this will be equal to the identifier.

property floor_area: float

The total floor area of all floor segments, UN-weighted by any reduction factors (iFCA, TFA)

property floor_segments: list[SpaceFloorSegment]
property identifier
property identifier_short
property net_floor_area: float

The total net floor area of all floor segments

property reference_points

Returns a list of the Floor’s FloorSegment reference points.

property weighted_floor_area: float

The total floor area of all floor segments, weighted by any reduction factors (iFCA, TFA)

property weighted_net_floor_area: float

The total net floor area of all floor segments, weighted by any reduction factors (iFCA, TFA)

class honeybee_ph.space.SpaceFloorSegment[source]

Bases: _Base

ToString()[source]
duplicate() SpaceFloorSegment[source]
duplicate_geometry() Face3D[source]
classmethod from_dict(_input_dict: Dict[str, Any]) SpaceFloorSegment[source]
move(moving_vec3D: Vector3D) SpaceFloorSegment[source]

Move the SpaceFloorSegment along a vector.

Parameters:

moving_vec3D – A Vector3D with the direction and distance to move the ray.

Returns:

A new SpaceFloorSegment object with the move applied.

reflect(normal_vec3D: Vector3D, origin_pt3D: Point3D) SpaceFloorSegment[source]

Reflected the SpaceFloorSegment across a plane with the input normal vector and origin_pt3D.

Parameters:
  • normal_vec3D – A Vector3D representing the normal vector for the plane across which the line segment will be reflected. THIS VECTOR MUST BE NORMALIZED.

  • origin_pt3D – A Point3D representing the origin_pt3D from which to reflect.

Returns:

A new SpaceFloorSegment object with the reflection applied.

rotate(axis_vec3D: Vector3D, angle_degrees: float, origin_pt3D: Point3D) SpaceFloorSegment[source]

Rotate the SpaceFloorSegment by a certain angle around an axis_vec3D and origin_pt3D.

Right hand rule applies: If axis_vec3D has a positive orientation, rotation will be clockwise. If axis_vec3D has a negative orientation, rotation will be counterclockwise.

Parameters:
  • axis_vec3D – A Vector3D axis_vec3D representing the axis_vec3D of rotation.

  • angle_degrees – An angle for rotation in degrees.

  • origin_pt3D – A Point3D for the origin_pt3D around which the object will be rotated.

Returns:

A new SpaceFloorSegment object with the rotation applied.

rotate_xy(angle_degrees: float, origin_pt3D: Point3D) SpaceFloorSegment[source]

Rotate the SpaceFloorSegment counterclockwise in the XY plane by a certain angle.

Parameters:
  • angle_degrees – An angle in degrees.

  • origin_pt3D – A Point3D for the origin_pt3D around which the object will be rotated.

Returns:

A new SpaceFloorSegment object with the rotation applied.

scale(scale_factor: float, origin_pt3D: Point3D | None = None) SpaceFloorSegment[source]

Scale the SpaceFloorSegment by a factor from an origin_pt3D point.

Parameters:
  • scale_factor – A number representing how much the line segment should be scaled.

  • origin_pt3D – A Point3D representing the origin_pt3D from which to scale. If None, it will be scaled from the World origin_pt3D (0, 0, 0).

Returns:

A new SpaceFloorSegment object with the scaling applied.

set_base_attrs_from_source(_source)
to_dict(include_mesh: bool = False, *args: list, **kwargs: dict) Dict[str, Any][source]
property display_name

Get or set a string for the object name without any character restrictions.

If not set, this will be equal to the identifier.

property floor_area: float

The floor area of the floor segment UN-weighted by any reduction factors (iFCA, TFA)

property identifier
property identifier_short
property net_floor_area: float

The net area of the floor segment

property weighted_floor_area: float

The floor area of the floor segment weighted by any reduction factors (iFCA, TFA)

property weighted_net_floor_area: float

The net area of the floor segment weighted by any reduction factors (iFCA, TFA)

class honeybee_ph.space.SpaceVolume[source]

Bases: _Base

ToString()[source]
clear_volume_geometry() None[source]

Delete all the geometry from the SpaceVolume.

duplicate(_include_floor: bool = True) SpaceVolume[source]
classmethod from_dict(_input_dict: Dict[str, Any]) SpaceVolume[source]
move(moving_vec3D: Vector3D) SpaceVolume[source]

Move the SpaceVolume along a vector.

Parameters:

moving_vec3D – A Vector3D with the direction and distance to move the ray.

Returns:

A new SpaceVolume object with the move applied.

reflect(normal_vec3D: Vector3D, origin_pt3D: Point3D) SpaceVolume[source]

Reflected the SpaceVolume across a plane with the input normal vector and origin_pt3D.

Parameters:
  • normal_vec3D – A Vector3D representing the normal vector for the plane across which the line segment will be reflected. THIS VECTOR MUST BE NORMALIZED.

  • origin_pt3D – A Point3D representing the origin_pt3D from which to reflect.

Returns:

A new SpaceVolume object with the reflection applied.

rotate(axis_vec3D: Vector3D, angle_degrees: float, origin_pt3D: Point3D) SpaceVolume[source]

Rotate the SpaceVolume by a certain angle around an axis_vec3D and origin_pt3D.

Right hand rule applies: If axis_vec3D has a positive orientation, rotation will be clockwise. If axis_vec3D has a negative orientation, rotation will be counterclockwise.

Parameters:
  • axis_vec3D – A Vector3D axis_vec3D representing the axis_vec3D of rotation.

  • angle_degrees – An angle for rotation in degrees.

  • origin_pt3D – A Point3D for the origin_pt3D around which the object will be rotated.

Returns:

A new SpaceVolume object with the rotation applied.

rotate_xy(angle_degrees: float, origin_pt3D: Point3D) SpaceVolume[source]

Rotate the SpaceVolume counterclockwise in the XY plane by a certain angle.

Parameters:
  • angle_degrees – An angle in degrees.

  • origin_pt3D – A Point3D for the origin_pt3D around which the object will be rotated.

Returns:

A new SpaceVolume object with the rotation applied.

scale(scale_factor: float, origin_pt3D: Point3D | None = None) SpaceVolume[source]

Scale the SpaceVolume by a factor from an origin_pt3D point.

Parameters:
  • scale_factor – A number representing how much the line segment should be scaled.

  • origin_pt3D – A Point3D representing the origin_pt3D from which to scale. If None, it will be scaled from the World origin_pt3D (0, 0, 0).

Returns:

A new SpaceVolume object with the scaling applied.

set_base_attrs_from_source(_source)
to_dict(include_mesh: bool = False, *args: list, **kwargs: dict) Dict[str, Any][source]
property display_name

Get or set a string for the object name without any character restrictions.

If not set, this will be equal to the identifier.

property floor_area: float

The total floor area of all floor segments in the Volume, UN-weighted by any reduction factors (iFCA, TFA)

property floor_segment_surfaces: List[LBFace3D | None]
property floor_segments: List[SpaceFloorSegment]
property identifier
property identifier_short
property net_floor_area: float

The total net floor area of all floor segments in the Volume

property net_volume: float

The Interior Net Volume (Vn50).

property reference_points

Returns the Volume’s FloorSegment reference points (center).

property weighted_floor_area: float

The total floor area of all floor segments in the Volume, weighted by any reduction factors (iFCA, TFA)

property weighted_net_floor_area: float

The total net floor area of all floor segments in the Volume, weighted by any reduction factors (iFCA, TFA)