honeybee_phhvac.hot_water_piping module

Honeybee-PH-HVAC: Hot Water Piping.

class honeybee_phhvac.hot_water_piping.PhHvacPipeBranch[source]

Bases: _PhHVACBase

A ‘Branch’ Pipe which has geometry, and serves one or more ‘Fixture’ (Twig) pipe elements.

ToString() str[source]
add_fixture(_fixture: PhHvacPipeElement) None[source]

Add a new HBPH Fixture (twig) PhPipeBranch to the Trunk.

duplicate() PhHvacPipeBranch[source]
classmethod from_dict(_input_dict: Dict) PhHvacPipeBranch[source]
move(moving_vec3D: Vector3D) PhHvacPipeBranch[source]

Move the pipe’s elements along a vector.

Parameters:

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

Returns:

A new PhHvacPipeBranch with the moved elements.

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

Reflected the pipe’s elements across a plane with the input normal_vec3D vector and origin_pt3D.

Parameters:
  • normal_vec3D – A Vector3D representing the normal_vec3D 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 PhHvacPipeBranch with the reflected elements.

rotate(axis_3D: Vector3D, angle_degrees: float, origin_pt3D: Point3D) PhHvacPipeBranch[source]

Rotate the pipe’s elements by a certain angle_degrees around an axis_3D and origin_pt3D.

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

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

  • angle_degrees – An angle_degrees for rotation in degrees.

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

Returns:

A new PhHvacPipeBranch with the rotated elements.

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

Rotate the pipe’s elements counterclockwise in the XY plane by a certain angle_degrees.

Parameters:
  • angle_degrees – An angle_degrees in degrees.

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

Returns:

A new PhHvacPipeBranch with the rotated elements.

scale(factor: float, origin_pt3D: Point3D | None = None) PhHvacPipeBranch[source]

Scale the pipe’s elements by a factor from an origin_pt3D point.

Parameters:
  • 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 PhHvacPipeBranch with the scaled elements.

to_dict(_include_properties: bool = False) Dict[str, str | Dict][source]
property daily_period: float

Return the length-weighted average daily period of all the pipe segments.

property diameter_mm: float

Return the length-weighted diameter (MM) of the pipe element.

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 identifier
property identifier_short: str
property key
property length: float

Return the total length of the branch itself in model-units. For the total length of the Branch PLUS all fixtures, use ‘total_length’.

property material_name: str

Return the material name of the pipe element.

property num_fixtures: int

Return the number of fixtures connected to the branch.

property segments

Return a list of all the Pipe-Segments in the Branch.

property total_home_run_fixture_length: float

Return the total length (in model-units) of all fixture pipes as measured from end to end.

NOTE: This method will include the branch’s length for EACH of the fixture pipes. The result will be a total hot-water transport length as if all the pipes were ‘home-run’ style. This value is used for the PHPP calculations and is not a true representation of the piping in the model.

property total_length: float

Return the total length of the branch PLUS all fixture pipes in model-units.

property twigs

Alias for the ‘fixtures’ to better match Phius terminology.

property water_temp_c: float

Return the length-weighted average water temperature of all the pipe segments.

class honeybee_phhvac.hot_water_piping.PhHvacPipeElement[source]

Bases: _PhHVACBase

A Pipe Element (Fixture) made up of one or more individual Pipe Segments.

ToString()[source]
add_segment(_segment: PhHvacPipeSegment) None[source]

Add a new Pipe Segment to the Pipe Element.

clear_segments() None[source]

Clear all the segments from the pipe element.

duplicate() PhHvacPipeElement[source]
classmethod from_dict(_input_dict: dict) PhHvacPipeElement[source]
move(moving_vec3D: Vector3D) PhHvacPipeElement[source]

Move the pipe’s segments along a vector.

Parameters:

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

Returns:

A new PhHvacPipeElement with the moved segments.

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

Reflected the pipe’s segments across a plane with the input normal_vec3D vector and origin_pt3D.

Parameters:
  • normal_vec3D – A Vector3D representing the normal_vec3D 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 PhHvacPipeElement with the reflected segments.

rotate(axis_3D: Vector3D, angle_degrees: float, origin_pt3D: Point3D) PhHvacPipeElement[source]

Rotate the pipe’s segments by a certain angle_degrees around an axis_3D and origin_pt3D.

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

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

  • angle_degrees – An angle_degrees for rotation in degrees.

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

Returns:

A new PhHvacPipeElement with the rotated segments.

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

Rotate the pipe’s segments counterclockwise in the XY plane by a certain angle_degrees.

Parameters:
  • angle_degrees – An angle_degrees in degrees.

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

Returns:

A new PhHvacPipeElement with the rotated segments.

scale(factor: float, origin_pt3D: Point3D | None = None) PhHvacPipeElement[source]

Scale the pipe’s segments by a factor from an origin_pt3D point.

Parameters:
  • 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 PhHvacPipeElement with the scaled segments.

to_dict(_include_properties: bool = False) dict[str, str | dict][source]
property daily_period: float

Return the length-weighted average daily period of all the pipe segments

property diameter_mm: float

Return the length-weighted average diameter of all the pipe segments

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 identifier
property identifier_short: str
property key
property length: float

Return the total length of the pipe element in model-units.

property material_name: str

Return the material name of the pipe element.

property segment_names: List[str]

Return a list of the names of all the PipeSegments in the PipeElement.

property segments: List[PhHvacPipeSegment]

Return a list of a;; the Pipe-Segments in the Pipe-Element.

property water_temp_c: float

Return the length-weighted average water temperature of all the pipe segments

class honeybee_phhvac.hot_water_piping.PhHvacPipeMaterial(_value: str | int = 2)[source]

Bases: CustomEnum

ToString()
classmethod from_dict(_dict: dict[str, Any]) CustomEnum
to_dict() dict[str, Any]
allowed: list[str] = ['1-COPPER_M', '2-COPPER_L', '3-COPPER_K', '4-CPVC_CTS_SDR', '5-CPVC_SCH_40', '6-PEX', '7-PE', '8-PEX_CTS_SDR']
property allowed_upper: list[str]
property number: int

Returns the index pos of self.value (usually 1-based)

property value: str
class honeybee_phhvac.hot_water_piping.PhHvacPipeSegment(_geom: LineSegment3D, _diameter_mm: float = 12.7, _insul_thickness_mm: float = 12.7, _insul_conductivity: float = 0.04, _insul_refl: bool = True, _insul_quality: None = None, _daily_period: float = 24, _water_temp_c: float = 60.0, _material: int = 2, *args: Any, **kwargs: Any)[source]

Bases: _PhHVACBase

A single pipe segment (linear) with geometry and a diameter

Note: Following the LBT convention, while the geometry can be in a variety of units, thicknesses are all required to be in meters. This means that while the geometry will scale, the thickness and diameter will not.

ToString()[source]
duplicate() PhHvacPipeSegment[source]
classmethod from_dict(_input_dict: Dict) PhHvacPipeSegment[source]
move(moving_vec3D: Vector3D) PhHvacPipeSegment[source]

Move the pipe’s geometry along a vector.

Parameters:

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

Returns:

A new PhHvacPipeSegment with the moved geometry.

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

Reflected the pipe’s geometry 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 PhHvacPipeSegment with the reflected geometry.

rotate(axis_3D: Vector3D, angle_degrees: float, origin_pt3D: Point3D) PhHvacPipeSegment[source]

Rotate the pipe’s geometry by a certain angle_degrees around an axis_3D and origin_pt3D.

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

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

  • angle_degrees – An angle_degrees for rotation in degrees.

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

Returns:

A new PhHvacPipeSegment with the rotated geometry.

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

Rotate the pipe’s geometry counterclockwise in the XY plane by a certain angle_degrees.

Parameters:
  • angle_degrees – An angle_degrees in degrees.

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

Returns:

A new PhHvacPipeSegment with the rotated geometry.

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

Scale the pipe’s geometry by a factor from an origin_pt3D point.

Note that following the LBT convention, while the geometry can be in a variety of units, thicknesses are all required to be in meters. This means that while the geometry will scale, the thickness and diameter will not.

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).

to_dict(_include_properties: bool = False) Dict[str, str | Dict][source]
property diameter_m: float

Return the diameter of the pipe segment in meters.

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 identifier
property identifier_short: str
property insulation_thickness_m: float

Return the insulation thickness of the pipe segment in meters.

property key
property length: float

Return the length of the pipe segment in model-units.

class honeybee_phhvac.hot_water_piping.PhHvacPipeTrunk[source]

Bases: _PhHVACBase

A ‘Trunk’ Pipe which has geometry, and serves one or more ‘Branches’.

ToString() str[source]
add_branch(_branch: PhHvacPipeBranch) None[source]

Add a new HBPH PhPipeBranch to the Trunk.

duplicate() PhHvacPipeTrunk[source]
classmethod from_dict(_input_dict: Dict) PhHvacPipeTrunk[source]
move(moving_vec3D: Vector3D) PhHvacPipeTrunk[source]

Move the pipe’s elements along a vector.

Parameters:

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

Returns:

A new PhHvacPipeTrunk with the moved elements.

reflect(normal_vec3D, origin_pt3D)[source]

Reflected the pipe’s elements across a plane with the input normal_vec3D vector and origin_pt3D.

Parameters:
  • normal_vec3D – A Vector3D representing the normal_vec3D 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 PhHvacPipeTrunk with the reflected elements.

rotate(axis_3D: Vector3D, angle_degrees: float, origin_pt3D: Point3D) PhHvacPipeTrunk[source]

Rotate the pipe’s elements by a certain angle_degrees around an axis_3D and origin_pt3D.

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

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

  • angle_degrees – An angle_degrees for rotation in degrees.

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

Returns:

A new PhHvacPipeTrunk with the rotated elements.

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

Rotate the pipe’s elements counterclockwise in the XY plane by a certain angle_degrees.

Parameters:
  • angle_degrees – An angle_degrees in degrees.

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

Returns:

A new PhHvacPipeTrunk with the rotated elements.

scale(factor: float, origin_pt3D: Point3D | None = None) PhHvacPipeTrunk[source]

Scale the pipe’s elements by a factor from an origin_pt3D point.

Parameters:
  • 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 PhHvacPipeTrunk with the scaled elements.

to_dict(_include_properties: bool = False) Dict[str, str | Dict][source]
property daily_period: float

Return the length-weighted average daily period of all the pipe segments.

property diameter_mm: float

Return the length-weighted diameter (MM) name of the pipe element.

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 identifier
property identifier_short: str
property key
property length: float

Return the total length of the trunk itself in model-units.

property material_name: str

Return the material name of the pipe element.

property num_fixtures: int

Return the number of fixtures connected to the trunk.

property segments

Return a list of all the Pipe-Segments in the Trunk.

property total_home_run_fixture_length: float

Return the total length (in model-units) of all fixture pipes as measured from end to end.

NOTE: This method will include the trunk’s and branch’s length for EACH of the fixture pipes. The result will be a total hot-water transport length as if all the pipes were ‘home-run’ style. This value is used for the PHPP calculations and is not a true representation of the piping in the model.

property total_length: float

Return the total length (in model-units) of the trunk PLUS all branches and fixture pipes in model-units.

property water_temp_c: float

Return the length-weighted average water temperature (deg-C) of all the pipe segments.