ifcopenshell.api.geometry.add_window_representation

Module Contents

class ifcopenshell.api.geometry.add_window_representation.Usecase
convert_si_to_unit(value)
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: Literal['SINGLE_PANEL', 'DOUBLE_PANEL_HORIZONTAL', 'DOUBLE_PANEL_VERTICAL', 'TRIPLE_PANEL_BOTTOM', 'TRIPLE_PANEL_HORIZONTAL', 'TRIPLE_PANEL_LEFT', 'TRIPLE_PANEL_RIGHT', 'TRIPLE_PANEL_TOP', 'TRIPLE_PANEL_VERTICAL'] = '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 (ifcopenshell.entity_instance) – IfcGeometricRepresentationContext for the representation.

  • overall_height (float, optional) – Overall window height. Defaults to 0.9m.

  • overall_width (float, optional) – Overall window width. Defaults to 0.6m.

  • partition_type (str, optional) – Type of the window. Defaults to SINGLE_PANEL.

  • lining_properties (Union[WindowLiningProperties, dict[str, Any]]]) – WindowLiningProperties or a dictionary to create one. See WindowLiningProperties description for details.

  • panel_properties (list[Union[WindowPanelProperties, dict[str, Any]]]]) – A list of WindowPanelProperties or dictionaries to create one. See WindowPanelProperties description for details.

  • unit_scale (float, optional) – 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.

Return type:

ifcopenshell.entity_instance

ifcopenshell.api.geometry.add_window_representation.create_ifc_window(builder, lining_size: mathutils.Vector, lining_thickness: list, lining_to_panel_offset_x, lining_to_panel_offset_y_full, frame_size: mathutils.Vector, frame_thickness, glass_thickness, position: mathutils.Vector, x_offsets: list = None)

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: mathutils.Vector, thickness: list, position: mathutils.Vector = V(0, 0, 0).freeze())

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, lining_depth, lining_to_panel_offset_x: list, lining_thickness: list)

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