ifcopenshell.api.geometry.add_window_representation

Module Contents

class ifcopenshell.api.geometry.add_window_representation.Usecase
convert_si_to_unit(value: float) float
convert_si_to_unit(value: numpy.ndarray) numpy.ndarray
execute()
class ifcopenshell.api.geometry.add_window_representation.WindowLiningProperties
initialize_properties(unit_scale: float) None
FirstMullionOffset: float | None = None

Distance from the first lining to the mullion center. Optional, defaults to 300mm.

FirstTransomOffset: float | None = None

Optional, defaults to 300mm.

LiningDepth: float | None = None

Optional, defaults to 50mm.

LiningOffset: float | None = None

Offset to the wall. Optional, defaults to 50mm.

LiningThickness: float | None = None

Optional, defaults to 50mm.

LiningToPanelOffsetX: float | None = None

Offset from the wall. Optional, defaults to 25mm.

LiningToPanelOffsetY: float | None = None

Offset from the lining. Optional, defaults to 25mm.

MullionThickness: float | None = None

Mullion thickness (horizontal distance between panels).

Applies to windows of types: DoublePanelVertical, TriplePanelBottom, TriplePanelTop, TriplePanelLeft, TriplePanelRight.

Optional, defaults to 50mm.

SecondMullionOffset: float | None = None

Distance from the first lining to the second mullion center.

Applies to windows of type: TriplePanelVertical.

Optional, defaults to 450mm.

SecondTransomOffset: float | None = None

Applies to windows of type: TriplePanelHorizontal. Optional, defaults to 600mm.

ShapeAspectStyle: None = None

Optional. Deprecated argument.

TransomThickness: float | None = None

Transom thickness (vertical distance between panels), works similar way to mullions.

Applies to windows of types:DoublePanelHorizontal, TriplePanelBottom, TriplePanelTop, TriplePanelLeft, TriplePanelRight.

Optional, defaults to 50mm.

class ifcopenshell.api.geometry.add_window_representation.WindowPanelProperties
initialize_properties(unit_scale: float) None
FrameDepth: float | None = None

Frame thickness by Y axis. Optional, defaults to 35 mm.

FrameThickness: float | None = None

Frame thickness by X axis. Optional, defaults to 35 mm.

PanelOperation: None = None

Optional, value is never used. Defines the basic ways to describe how window panels operate.

PanelPosition: None = None

Optional, value is never used

ShapeAspectStyle: None = None

Optional. Deprecated argument.

ifcopenshell.api.geometry.add_window_representation.add_window_representation(file: ifcopenshell.file, *, context: ifcopenshell.entity_instance, overall_height: float | None = None, overall_width: float | None = None, partition_type: WINDOW_TYPE = 'SINGLE_PANEL', lining_properties: WindowLiningProperties | dict[str, Any] | None = None, panel_properties: list[WindowPanelProperties | dict[str, Any]] | None = None, unit_scale: float | None = None) ifcopenshell.entity_instance

units in usecase_settings expected to be in ifc project units

Parameters:
  • context – IfcGeometricRepresentationContext for the representation.

  • overall_height – Overall window height. Defaults to 0.9m.

  • overall_width – Overall window width. Defaults to 0.6m.

  • partition_type – Type of the window. Defaults to SINGLE_PANEL.

  • lining_properties – WindowLiningProperties or a dictionary to create one. See WindowLiningProperties description for details.

  • panel_properties – A list of WindowPanelProperties or dictionaries to create one. See WindowPanelProperties description for details.

  • unit_scale – The unit scale as calculated by ifcopenshell.util.unit.calculate_unit_scale. If not provided, it will be automatically calculated for you.

Returns:

IfcShapeRepresentation for a window.

ifcopenshell.api.geometry.add_window_representation.create_ifc_window(builder: ifcopenshell.util.shape_builder.ShapeBuilder, lining_size: numpy.ndarray, lining_thickness: list[float], lining_to_panel_offset_x: float, lining_to_panel_offset_y_full: float, frame_size: numpy.ndarray, frame_thickness: float, glass_thickness: float, position: numpy.ndarray, x_offsets: list[float] | None = None) tuple[list[ifcopenshell.entity_instance], list[ifcopenshell.entity_instance], list[ifcopenshell.entity_instance]]

lining_thickness and x_offsets are expected to be defined as a list, similarly to create_ifc_window_frame_simple thickness argument

ifcopenshell.api.geometry.add_window_representation.create_ifc_window_frame_simple(builder: ifcopenshell.util.shape_builder.ShapeBuilder, size: numpy.ndarray, thickness: list[float] | float, position: numpy.ndarray | None = None) list[ifcopenshell.entity_instance]

thickness of the profile is defined as list in the following order: (LEFT, TOP, RIGHT, BOTTOM)

thickness can be also defined just as 1 float value.

ifcopenshell.api.geometry.add_window_representation.mm(x: float) float

mm to meters shortcut for readability

ifcopenshell.api.geometry.add_window_representation.window_l_shape_check(lining_to_panel_offset_y_full: float, lining_depth: float, lining_to_panel_offset_x: list[float], lining_thickness: list[float]) bool

lining_thickness and lining_to_panel_offset_x expected to be defined as a list, similarly to create_ifc_window_frame_simple thickness argument

ifcopenshell.api.geometry.add_window_representation.DEFAULT_PANEL_SCHEMAS
ifcopenshell.api.geometry.add_window_representation.WINDOW_TYPE