Class Ifc4x1::IfcWindow

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class Ifc4x1::IfcWindow : public Ifc4x1::IfcBuildingElement

Definition form ISO 6707-1:1989: Construction for closing a vertical or near vertical opening in a wall or pitched roof that will admit light and may admit fresh air. The window is a building element that is predominately used to provide natural light and fresh air. It includes vertical and horizontal opening (e.g. skylights or light domes). It includes constructions with swinging, pivoting, sliding, or revolving panels and fixed panels. A window consists of a lining and one or several panels. The IfcWindow defines a particular occurrence of a window inserted in the spatial context of a project. A window can:

be inserted into an IfcOpeningElement using the IfcRelFillsElement relationship, , then the IfcDoor has an inverse attribute FillsVoids provided,

NOTE View definitions or implementer agreements may restrict the relationship to only include one window (or door) into one opening.

be part of an element assembly, often an IfcCurtainWall, using the IfcRelAggregates relationship, then the inverse attribute Decomposes is provided. or be a “free standing” window, then the IfcWindow has no inverse attributes FillsVoids or Decomposes provided.

The IFC specification provides two entities for window occurrences:

IfcWindowStandardCase used for all occurrences of windows, that have a ‘Profile’ shape representation defined to which a set of shape parameters for lining and framing properties apply. Additionally it requires the provision of an IfcWindowType that references one IfcWindowLiningProperties and on to many IfcWindowPanelProperties.

NOTE see IfcWindowStandardCase for all specific constraints imposed by this subtype.

IfcWindow used for all other occurrences of windows, particularly for windows having only ‘Brep’, or ‘SurfaceModel’ geometry without applying shape parameters.

The actual parameter of the window and/or its shape is defined at the IfcWindow as the occurrence definition (or project instance), or by the IfcWindowType as the specific definition (or project type). The following parameters are given:

at the IfcWindow or IfcWindowStandardCase for occurrence specific parameters. The IfcWindow specifies:

the window width and height the window opening direction (by the y-axis of the ObjectPlacement)

at the IfcWindowType to which the IfcWindow is related by the inverse relationship IsDefinedBy pointing to IfcRelDefinesByType, for type parameters common to all occurrences of the same type.

the partitioning type (single panel, double panel, tripel panel, more panels) the operation type (swing, tilt and turn, pivot revolve, fixed case ment, etc.) the window panel hinge side (by using two different styles for right and left opening windows) the construction material type the particular attributes for the lining by the IfcWindowLiningProperties the particular attributes for the panels by the IfcWindowPanelProperties

HISTORY New entity in IFC Release 1.0. IFC2x4 CHANGE The attributes PredefinedType and OperationType are added, the applicable type object has been changed to IfcDoorType.

Material Use Definition The material of the IfcWindow is defined by the IfcMaterialConstituentSet or as fall back by IfcMaterial and attached by the IfcRelAssociatesMaterial.RelatingMaterial. It is accessible by the inverse HasAssociations relationship. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

‘Lining’ - to indicate that the material constituent applies to to the window lining ‘Framing’ - to indicate that the material constituent applies to to the window panel(s), if not provided, the ‘Lining’ material information applied to panel(s) as well ‘Glazing’ - to indicate that the material constituent applies to to the glazing part

If the fall back single IfcMaterial is referenced, it applies to the lining and framing of the window. Property Set Use Definition: The property sets relating to the IfcWindow are defined by the IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. It is accessible by the inverse IsDefinedBy relationship. The following property set definitions specific to the IfcWindow are part of this IFC release:

Pset_WindowCommon: common property set for all window occurrences Pset_DoorWindowGlazingType: specific property set for the glazing properties of the window glazing, if available Pset_DoorWindowShadingType: specific property set for the shading properties of the window glazing, if available

Quantity Use Definition The quantities relating to the IfcWindow are defined by the IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. It is accessible by the inverse IsDefinedBy relationship. The following base quantities are defined and should be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities can be defined being subjected to local standard of measurement with another string value assigned to MethodOfMeasurement. Quanties shall be never assigned to the IfcWindowStyle.

Qto_WindowBaseQuantities: base quantities for all window occurrences.

Containment Use Definition

The IfcWindow, as any subtype of IfcBuildingElement, may participate in two different containment relationships. The first (and in most implementation scenarios mandatory) relationship is the hierachical spatial containment, the second (optional) relationship is the aggregation within anelement assembly.

The IfcWindow is placed within the project spatial hierarchy using the objectified relationship IfcRelContainedInSpatialStructure, refering to it by its inverse attribute SELF\IfcElement.ContainedInStructure. Subtypes ofIfcSpatialStructureElement are valid spatial containers, with IfcBuildingStorey being the default container. The IfcWindow may be aggregated into an element assembly using the objectified relationship IfcRelAggregates, refering to it by its inverse attribute SELF\IfcObjectDefinition.Decomposes. Windows may be part of an IfcCurtainWall as a special focus subtype. In this case it should not be additionally contained in the project spatial hierarchy, i.e.SELF\IfcElement.ContainedInStructure should be NIL.

Figure 141 illustrates window containment. NOTE The containment shall be defined independently of the filling relationship, that is, even if the IfcWindow is a filling of an opening established by IfcRelFillsElement, it is also contained in the spatial structure by an IfcRelContainedInSpatialStructure.

Figure 141 — Window containment

Geometry Use Definitions: The geometric representation of IfcWindow is given by the IfcProductDefinitionShape, allowing multiple geometric representation. The IfcWindow, in case of an occurrence object, gets its parameter and shape from the IfcWindowType. If an IfcRepresentationMap (a block definition) is defined for the IfcWindowType, then the IfcWindow inserts it through the IfcMappedItem (refered to by IfcShapeRepresentation.Items). Local Placement The local placement for IfcWindow is defined in its supertype IfcProduct. It is defined by the IfcLocalPlacement, which defines the local coordinate system that is referenced by all geometric representations.

The PlacementRelTo relationship of IfcLocalPlacement shall point to the local placement of the same element (if given), in which the IfcWindow is used as a filling (normally an IfcOpeningElement), as provided by the IfcRelFillsElement relationship. If the IfcWindow is not inserted into an IfcOpeningElement, then the PlacementRelTo relationship of IfcLocalPlacement shall point (if given) to the local placement of the same IfcSpatialStructureElement that is used in the ContainedInStructure inverse attribute or to a referenced spatial structure element at a higher level. If the relative placement is not used, the absolute placement is defined within the world coordinate system.

Geometric Representation Thegeometric representation of IfcWindow is defined using the following (potentiallymultiple) IfcShapeRepresentation’s for its IfcProductDefinitionShape:

Profile: A’Curve3D’ consisting of a single losed curve defining the outer boundary of the window (lining). Thewindow parametric representation uses this profile in order to apply thewindow lining and panel parameter. If not provided, the profile of the IfcOpeningElement is taken. FootPrint: A ‘GeometricCurveSet’, or ‘Annotation2D’ representation defining the 2D shape of thewindow Body: A ‘SweptSolid’, ‘SurfaceModel’, or ‘Brep’ representation defining the 3D shape of thewindow.

In addition the parametric representation of a (limited)window shape is available by applying the parameters fromIfcWindowType referencingIfcWindowLiningProperties andIfcWindowPanelProperties. The purpose of the parameter is described at those entities and below (parametric representation). Profile -‘Curve3D’ representation Thewindow profile is represented by a three-dimensional closed curve within a particular shape representation. The profile is used to apply the parameter of the parametricwindow representation.The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Profile’ RepresentationType : ‘Curve3D’, only a single closed curve shall be contained in the set of IfcShapeRepresentation.Items.

A ‘Profile’ representation has to be provided if:

a parametric representation shall be applied to the windowAND

the window is ‘free standing’, or the opening into which the window is inserted is not extruded horizontally (i.e. where the opening profile does not match the window profile)

FootPrint -‘GeometricCurveSet’ or ‘Annotation2D’ representation Thewindow foot print is represented by a set of two-dimensionalcurves (or in case of ‘Annotation2D’ additional hatching and text) within a particular shape representation. The foot print is used for the plan view representation of thewindow.The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘FootPrint’ RepresentationType : ‘GeometricCurveSet’, or ‘Annotation2D’

Body - ‘SweptSolid’, ‘SurfaceModel’, or ‘Brep’ representation Thewindow body is either represented parameterically (see parametric representation) or by explicit 3D shape. The 3D shape is given by using extrusion geometry, or surface models, or Brep models within a particular shape representation. The body is used for the model view representation of thewindow.The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Body’ RepresentationType : ‘SweptSolid’, ‘SurfaceModel’, or ‘Brep’

MappedRepresentation The ‘FootPrint’ and ‘Body’ geometric representation ofIfcWindow can be shared among several identicalwindows using the ‘MappedRepresentation’. The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘FootPrint’, ‘Body’ RepresentationType : ‘MappedRepresentation’

The same constraints, as given for the ‘FootPrint’, ‘Body’ representation identifiers, shall apply to the MappedRepresentation of the IfcRepresentationMap. Parameteric Representation using parameters at IfcWindowType The parameters, which define the shape of the IfcWindow, are given at the IfcWindowType and the property sets, which are included in the IfcWindowType. The IfcWindow only defines the local placement. The overall size of the IfcWindow to be used to apply the lining or panel parameter provided by the IfcWindowType is determined by the IfcShapeRepresentation with the RepresentationIdentifier = ‘Profile’. Only in case of an IfcWindow inserted into an IfcOpeningElement using the IfcRelFillsElement relatioship, having a horizontal extrusion (along the y-axis of the IfcDoor), the overall size is determined by the extrusion profile of the IfcOpeningElement.

Figure 142 illustrates the insertion of a window into the IfcOpeningElement by creating an instance of IfcWindow with PartitioningType = DoublePanelHorizontal. The parameters OverallHeight and OverallWidth show the extent of the window in the positive Z and X axis of the local placement of the window. The lining and the transom are created by the given parameters.

Figure 142 — Window placement

Figure 143 illustrates the final window (DoublePanelHorizontal) with first panel having PanelPosition = TOP, OperationType = BOTTOMHUNG and second panel having PanelPosition = BOTTOM and OperationType = TILTANDTURNLEFTHAND.

Figure 143 — Window planes

Window opening operation by window type The parameters that defines the shape of the IfcWindow, are given at the IfcWindowType and the property sets, which are included in the IfcWindowType. The IfcWindow only defines the local placement which determines the opening direction of the window. The overall layout of the IfcWindow is determined by itsIfcWindowType.PartitioningType. Each window panel has its own operation type, provided by IfcWindowPanelProperties.OperationType. All window panels are assumed to open into the same direction (if relevant for the particular window panel operation. The hindge side (whether a window opens to the left or to the right) is determined by the IfcWindowPanelProperties.OperationType. NOTE There are different conventions in different countries on how to show the symbolic presentation of the window panel operation (the “triangles”). Either as seen from the exterior, or from the interior side. The following figures show the symbolics from the exterior side (the convention as used predominately in Europe).

Figure 144 illustrates window operation types.

The window panel (for side hung windows) opens always into the direction of the positive Y axis of the local placement. The determination of whether the window opens to the left or to the right is done at IfcWindowPanelProperties.OperationType. Here it is a left side opening window given byOperationType = SideHungLeftHand.

If the window should open to the other side, then the local placement has to be changed. It is still a left hung window, given by IfcWindowPanelProperties.OperationType =SideHungLeftHand.

If the window panel (for side hung windows) opens to the right, a separate window panel style needs to be used (here IfcWindowPanelProperties.OperationType =SideHungRightHand) and it always opens into the direction of the positive Y axis of the local placement.

If the window should open to the other side, then the local placement has to be changed. It is still a right hung window, given by IfcWindowPanelProperties.OperationType =SideHungRightHand. Figure 144 — Window operations

Subclassed by Ifc4x1::IfcWindowStandardCase

Public Types

typedef IfcTemplatedEntityList<IfcWindow> list

Public Functions

bool hasOverallHeight() const

Whether the optional attribute OverallHeight is defined for this IfcWindow.

double OverallHeight() const

Overall measure of the height, it reflects the Z Dimension of a bounding box, enclosing the body of the window opening. If omitted, the OverallHeight should be taken from the geometric representation of the IfcOpening in which the window is inserted.

NOTE The body of the window might be taller then the window opening (e.g. in cases where the window lining includes a casing). In these cases the OverallHeight shall still be given as the window opening height, and not as the total height of the window lining.

void setOverallHeight(double v)
bool hasOverallWidth() const

Whether the optional attribute OverallWidth is defined for this IfcWindow.

double OverallWidth() const

Overall measure of the width, it reflects the X Dimension of a bounding box, enclosing the body of the window opening. If omitted, the OverallWidth should be taken from the geometric representation of the IfcOpening in which the window is inserted.

NOTE The body of the window might be wider then the window opening (e.g. in cases where the window lining includes a casing). In these cases the OverallWidth shall still be given as the window opening width, and not as the total width of the window lining.

void setOverallWidth(double v)
bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcWindow.

::Ifc4x1::IfcWindowTypeEnum::Value PredefinedType() const

Predefined generic type for a window that is specified in an enumeration. There may be a property set given specificly for the predefined types. NOTE The PredefinedType shall only be used, if no type object IfcWindowType is assigned, providing its own IfcWindowType.PredefinedType.

IFC2x4 CHANGE The attribute has been added at the end of the entity definition.

void setPredefinedType(::Ifc4x1::IfcWindowTypeEnum::Value v)
bool hasPartitioningType() const

Whether the optional attribute PartitioningType is defined for this IfcWindow.

::Ifc4x1::IfcWindowTypePartitioningEnum::Value PartitioningType() const

Type defining the general layout of the window in terms of the partitioning of panels.

NOTE The PartitioningType shall only be used, if no type object IfcWindowType is assigned, providing its own IfcWindowType.PartitioningType.

IFC2x4 CHANGE The attribute has been added at the end of the entity definition.

void setPartitioningType(::Ifc4x1::IfcWindowTypePartitioningEnum::Value v)
bool hasUserDefinedPartitioningType() const

Whether the optional attribute UserDefinedPartitioningType is defined for this IfcWindow.

std::string UserDefinedPartitioningType() const
void setUserDefinedPartitioningType(std::string v)
const IfcParse::entity &declaration() const
IfcWindow(IfcEntityInstanceData *e)
IfcWindow(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4x1::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4x1::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<double> v9_OverallHeight, boost::optional<double> v10_OverallWidth, boost::optional<::Ifc4x1::IfcWindowTypeEnum::Value> v11_PredefinedType, boost::optional<::Ifc4x1::IfcWindowTypePartitioningEnum::Value> v12_PartitioningType, boost::optional<std::string> v13_UserDefinedPartitioningType)

Public Static Functions

const IfcParse::entity &Class()