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- 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
- 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)¶
- 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- 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
- duplicate(_include_floor_segments: bool = True) SpaceFloor[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)¶
- 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- duplicate() SpaceFloorSegment[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)¶
- 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- 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)¶
- 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)