OpeningHandlesUtil
    implementation of the opening handles utilities
            OpeningHandlesUtil
    
    Canonical path: Utils.Architecture.OpeningHandlesUtil.OpeningHandlesUtil
  
implementation of the opening handles utilities
            create_door_swing_handle
  
      staticmethod
  
create_door_swing_handle(
    opening_start_pnt: Point2D,
    opening_end_pnt: Point2D,
    width: float,
    element_thickness: float,
    door_swing_base_point_index: int,
    handle_list: HandleList,
)
create the door swing handle
Parameters:
- 
            
opening_start_pnt(Point2D) –start point of the opening
 - 
            
opening_end_pnt(Point2D) –end point of the opening
 - 
            
width(float) –with of the opening
 - 
            
element_thickness(float) –element thickness
 - 
            
door_swing_base_point_index(int) –door swing base point index
 - 
            
handle_list(HandleList) –handle list
 
            create_opening_depth_handle
  
      staticmethod
  
create_opening_depth_handle(
    opening_start_pnt: Point2D,
    element_axis: Line2D | Arc2D,
    element_polygon: Polygon2D | Polyline2D,
    placement_line: Line2D,
    placement_arc: Arc2D | None,
    bottom_pnt: Point3D,
    depth: float,
    handle_list: HandleList,
)
create the opening depth handle
Parameters:
- 
            
opening_start_pnt(Point2D) –start point of the opening
 - 
            
element_axis(Line2D | Arc2D) –element axis
 - 
            
element_polygon(Polygon2D | Polyline2D) –element polygon / polyline
 - 
            
placement_line(Line2D) –placement line
 - 
            
placement_arc(Arc2D | None) –placement arc of the opening
 - 
            
bottom_pnt(Point3D) –bottom of the opening
 - 
            
depth(float) –depth of the opening
 - 
            
handle_list(HandleList) –handle list
 
            create_opening_handles
  
      staticmethod
  
create_opening_handles(
    opening_start_pnt: Point2D,
    opening_end_pnt: Point2D,
    offset_start_pnt: Point3D,
    offset_end_pnt: Point3D,
    element_axis: Line2D | Arc2D,
    placement_arc: Arc2D | None,
    input_field_above: bool,
    bottom_pnt: Point3D,
    handle_list: HandleList,
)
create the opening handles
Parameters:
- 
            
opening_start_pnt(Point2D) –start point of the opening
 - 
            
opening_end_pnt(Point2D) –end point of the opening
 - 
            
offset_start_pnt(Point3D) –start offset point of the opening
 - 
            
offset_end_pnt(Point3D) –end offset point of the opening
 - 
            
element_axis(Line2D | Arc2D) –element axis
 - 
            
placement_arc(Arc2D | None) –placement arc of the opening
 - 
            
input_field_above(bool) –input field above the dimension line state
 - 
            
bottom_pnt(Point3D) –bottom of the opening
 - 
            
handle_list(HandleList) –handle list
 
            create_opening_symbol_handles
  
      staticmethod
  
create_opening_symbol_handles(
    opening_start_pnt: Point2D,
    opening_end_pnt: Point2D,
    width: float,
    depth: float,
    placement_ele: BaseElementAdapter,
    opening_tier_index: int,
    has_tier_handle: bool,
    symbol_ref_pnt_index: RefPointPosition,
    bottom_pnt: Point3D,
    handle_list: HandleList,
) -> tuple[list[Point2D], tuple[Point2D, ...]]
create the handles for the opening symbol
Parameters:
- 
            
opening_start_pnt(Point2D) –start point of the opening
 - 
            
opening_end_pnt(Point2D) –end point of the opening
 - 
            
width(float) –with of the opening
 - 
            
depth(float) –depth of the opening
 - 
            
placement_ele(BaseElementAdapter) –placement element of the opening
 - 
            
opening_tier_index(int) –tier index of the symbol
 - 
            
has_tier_handle(bool) –has a tier handle
 - 
            
symbol_ref_pnt_index(RefPointPosition) –reference point index of the symbol
 - 
            
bottom_pnt(Point3D) –bottom of the opening
 - 
            
handle_list(HandleList) –handle list
 
Returns: