/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// // This file is generated automatically. #ifndef _IFC4X4_IFCWINDOWLININGPROPERTIES_AUTO_IMPL_H #define _IFC4X4_IFCWINDOWLININGPROPERTIES_AUTO_IMPL_H #include "IfcPreDefinedPropertySetAutoImpl.h" #include "IfcShapeAspectAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC4X4 express schema definitions. */ namespace OdIfc4x4 { /** \details The window lining is the outer frame which enables the window to be fixed in position. The window lining is used to hold the window panels or other casements. The parameter of the IfcWindowLiningProperties define the geometrically relevant parameter of the lining. The IfcWindowLiningProperties are included in the set of properties of IfcWindowStyle.HasPropertySets. More information about the window lining can be included in the same set of the IfcWindowType using another IfcPropertySet for dynamic extensions. The IfcWindowLiningProperties does not hold a geometric representation. However it defines parameters which can be used to create the shape of the window type (which is inserted by the IfcWindow into the spatial context of the project). The parameters at the IfcWindowLiningProperties define a standard window lining, including (if given) a mullion and a transom (for horizontal and vertical splits). The outer boundary of the lining is determined by the 'Profile' shape representation assigned to the IfcWindow, which inserts the IfcWindowType. - Window Lining Properties - * The lining is applied to all faces of the opening reveal. The parameters are: * LiningDepth * LiningThickness * LiningOffset * LiningToPanelOffsetX * LiningToPanelOffsetY The inner side is defined as the direction of the window panel opening operation. * If the OperationType of the window style is * DoublePanelVertical (shown) * TriplePanelBottom * TriplePanelTop * TriplePanelLeft * TriplePanelRight the following additional parameters apply: * MullionThickness * FirstMullionOffset measured as offset to the Z axis (in XZ plane) as a normalized ratio measure * If the OperationType of the window type is: * DoublePanelHorizontal * TriplePanelBottom * TriplePanelTop * TriplePanelLeft * TriplePanelRight the following additional parameters apply: * TransomThickness * FirstTransomOffset measured as offset to the X axis (in XZ plane) as a normalized ratio measure * If the OperationType of the window type is: * TriplePanelVertical the following additional parameter applies: * SecondMullionOffset measured as offset to the Z axis (in XZ plane) as a normalized ratio measure * If the OperationType of the window type is: * TriplePanelHorizontal the following additional parameter applies: * SecondTransomOffset measured as offset to the X axis (in XZ plane) as a normalized ratio measure \changes * IFC4 changes: * The following attributes have been added LiningOffset, LiningToPanelOffsetX, LiningToPanelOffsetY. * The attribute ShapeAspectStyle is deprecated and shall no longer be used. * Supertype changed to new IfcPreDefinedPropertySet. */ class IFC4X4_EXPORT IfcWindowLiningProperties : public IfcPreDefinedPropertySet { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc4x4::IfcWindowLiningProperties); //DOM-IGNORE-END public: // // OdDAI early binding accessors // /** \details Returns the value of LiningDepth attribute. This attribute represents depth of the window lining (dimension measured perpendicular to window elevation plane). \returns Returns the value of LiningDepth attribute. */ double getLiningDepth() const; /** \details Sets the value of LiningDepth attribute. This attribute represents depth of the window lining (dimension measured perpendicular to window elevation plane). \param LiningDepth [in] Lining depth to set. */ void setLiningDepth(double LiningDepth); /** \details Returns the value of LiningThickness attribute. This attribute represents thickness of the window lining as explained in the figure above. If LiningThickness value is 0. (zero) it denotes a window without a lining (all other lining parameters will be set to "unset" in this case). If the LiningThickness is unset it denotes that the value is not available. \returns Returns the value of LiningThickness attribute. \remarks IFC4 CHANGE: Data type modified to be IfcNonNegativeLengthMeasure. */ double getLiningThickness() const; /** \details Sets the value of LiningThickness attribute. This attribute represents thickness of the window lining as explained in the figure above. If LiningThickness value is 0. (zero) it denotes a window without a lining (all other lining parameters will be set to "unset" in this case). If the LiningThickness is unset it denotes that the value is not available. \param LiningThickness [in] Lining thickness to set. \remarks IFC4 CHANGE: Data type modified to be IfcNonNegativeLengthMeasure. */ void setLiningThickness(double LiningThickness); /** \details Returns the value of TransomThickness attribute. This attribute represents thickness of the transom (horizontal separator of window panels within a window), measured parallel to the window elevation plane. The transom is part of the lining and the transom depth is assumed to be identical to the lining depth. If the TransomThickness is set to zero (and the TransomOffset set to a positive length), then the window is divided vertically without a physical divider. \returns Returns the value of TransomThickness attribute. \remarks IFC4 CHANGE: Data type changed to IfcNonNegativeLengthMeasure. */ double getTransomThickness() const; /** \details Sets the value of TransomThickness attribute. This attribute represents thickness of the transom (horizontal separator of window panels within a window), measured parallel to the window elevation plane. The transom is part of the lining and the transom depth is assumed to be identical to the lining depth. If the TransomThickness is set to zero (and the TransomOffset set to a positive length), then the window is divided vertically without a physical divider. \param TransomThickness [in] Transom thickness to set. \remarks IFC4 CHANGE: Data type changed to IfcNonNegativeLengthMeasure. */ void setTransomThickness(double TransomThickness); /** \details Returns the value of MullionThickness attribute. This attribute represents thickness of the mullion (vertical separator of window panels within a window), measured parallel to the window elevation plane. The mullion is part of the lining and the mullion depth is assumed to be identical to the lining depth. If the MullionThickness is set to zero (and the MullionOffset set to a positive length), then the window is divided horizontally without a physical divider. \returns Returns the value of MullionThickness attribute. \remarks IFC4 CHANGE: Data type changed to IfcNonNegativeLengthMeasure. */ double getMullionThickness() const; /** \details Sets the value of MullionThickness attribute. This attribute represents thickness of the mullion (vertical separator of window panels within a window), measured parallel to the window elevation plane. The mullion is part of the lining and the mullion depth is assumed to be identical to the lining depth. If the MullionThickness is set to zero (and the MullionOffset set to a positive length), then the window is divided horizontally without a physical divider. \param MullionThickness [in] Mullion thickness to set. \remarks IFC4 CHANGE: Data type changed to IfcNonNegativeLengthMeasure. */ void setMullionThickness(double MullionThickness); /** \details Returns the value of FirstTransomOffset attribute. This attribute represents offset of the transom centerline, measured along the z-axis of the window placement co-ordinate system. An offset value = 0.5 indicates that the transom is positioned in the middle of the window. \returns Returns the value of FirstTransomOffset attribute. */ double getFirstTransomOffset() const; /** \details Sets the value of FirstTransomOffset attribute. This attribute represents offset of the transom centerline, measured along the z-axis of the window placement co-ordinate system. An offset value = 0.5 indicates that the transom is positioned in the middle of the window. \param FirstTransomOffset [in] First transom offset to set. */ void setFirstTransomOffset(double FirstTransomOffset); /** \details Returns the value of SecondTransomOffset attribute. This attribute represents offset of the transom centerline for the second transom, measured along the x-axis of the window placement co-ordinate system. An offset value = 0.666 indicates that the second transom is positioned at two/third of the window. \returns Returns the value of SecondTransomOffset attribute. */ double getSecondTransomOffset() const; /** \details Sets the value of SecondTransomOffset attribute. This attribute represents offset of the transom centerline for the second transom, measured along the x-axis of the window placement co-ordinate system. An offset value = 0.666 indicates that the second transom is positioned at two/third of the window. \param SecondTransomOffset [in] Second transom offset to set. */ void setSecondTransomOffset(double SecondTransomOffset); /** \details Returns the value of FirstMullionOffset attribute. This attribute represents offset of the mullion centerline, measured along the x-axis of the window placement co-ordinate system. An offset value = 0.5 indicates that the mullion is positioned in the middle of the window. \returns Returns the value of FirstMullionOffset attribute. */ double getFirstMullionOffset() const; /** \details Sets the value of FirstMullionOffset attribute. This attribute represents offset of the mullion centerline, measured along the x-axis of the window placement co-ordinate system. An offset value = 0.5 indicates that the mullion is positioned in the middle of the window. \param FirstMullionOffset [in] First mullion offset to set. */ void setFirstMullionOffset(double FirstMullionOffset); /** \details Returns the value of SecondMullionOffset attribute. This attribute represents offset of the mullion centerline for the second mullion, measured along the x-axis of the window placement co-ordinate system. An offset value = 0.666 indicates that the second mullion is positioned at two/third of the window. \returns Returns the value of SecondMullionOffset attribute. */ double getSecondMullionOffset() const; /** \details Sets the value of SecondMullionOffset attribute. This attribute represents offset of the mullion centerline for the second mullion, measured along the x-axis of the window placement co-ordinate system. An offset value = 0.666 indicates that the second mullion is positioned at two/third of the window. \param SecondMullionOffset [in] Second mullion offset to set. */ void setSecondMullionOffset(double SecondMullionOffset); /** \details Returns the value of ShapeAspectStyle attribute. This attribute represents optional link to a shape aspect definition, which points to the part of the geometric representation of the window style, which is used to represent the lining. \returns Returns the value of ShapeAspectStyle attribute. \remarks IFC4 CHANGE: The attribute is deprecated and shall no longer be used. */ const OdDAIObjectId& getShapeAspectStyle() const; /** \details Sets the value of ShapeAspectStyle attribute. This attribute represents optional link to a shape aspect definition, which points to the part of the geometric representation of the window style, which is used to represent the lining. \param ShapeAspectStyle [in] Shape aspect style to set. \remarks IFC4 CHANGE: The attribute is deprecated and shall no longer be used. */ void setShapeAspectStyle(const OdDAIObjectId& ShapeAspectStyle); /** \details Returns the value of LiningOffset attribute. This attribute represents offset of the window lining. The offset is given as distance along the y axis of the local placement (perpendicular to the window plane). \returns Returns the value of LiningOffset attribute. \remarks IFC4 CHANGE: New attribute added at the end of the entity definition. */ double getLiningOffset() const; /** \details Sets the value of LiningOffset attribute. This attribute represents offset of the window lining. The offset is given as distance along the y axis of the local placement (perpendicular to the window plane). \param LiningOffset [in] Lining offset to set. \remarks IFC4 CHANGE: New attribute added at the end of the entity definition. */ void setLiningOffset(double LiningOffset); /** \details Returns the value of LiningToPanelOffsetX attribute. This attribute represents offset between the lining and the window panel measured along the x-axis of the local placement. Should be smaller or equal to the LiningThickness. \returns Returns the value of LiningToPanelOffsetX attribute. \remarks IFC4 CHANGE: New attribute added at the end of the entity definition. */ double getLiningToPanelOffsetX() const; /** \details Sets the value of LiningToPanelOffsetX attribute. This attribute represents offset between the lining and the window panel measured along the x-axis of the local placement. Should be smaller or equal to the LiningThickness. \param LiningToPanelOffsetX [in] LiningToPanelOffsetX to set. \remarks IFC4 CHANGE: New attribute added at the end of the entity definition. */ void setLiningToPanelOffsetX(double LiningToPanelOffsetX); /** \details Returns the value of LiningToPanelOffsetY attribute. This attribute represents offset between the lining and the window panel measured along the y-axis of the local placement. Should be smaller or equal to the IfcWindowPanelProperties.PanelThickness. \returns Returns the value of LiningToPanelOffsetY attribute. \remarks IFC4 CHANGE: New attribute added at the end of the entity definition. */ double getLiningToPanelOffsetY() const; /** \details Sets the value of LiningToPanelOffsetY attribute. This attribute represents offset between the lining and the window panel measured along the y-axis of the local placement. Should be smaller or equal to the IfcWindowPanelProperties.PanelThickness. \param LiningToPanelOffsetY [in] LiningToPanelOffsetY to set. \remarks IFC4 CHANGE: New attribute added at the end of the entity definition. */ void setLiningToPanelOffsetY(double LiningToPanelOffsetY); public: /** \details Default constructor for the IfcWindowLiningProperties class. */ IfcWindowLiningProperties(); /** \details Reads object's data from the specified filer. \param rdFiler [in] Pointer to a filer from which to read the data. \returns A value of OdResult type that contains the result of the method execution. */ virtual OdResult inFields(OdDAI::OdSpfFilerBase* rdFiler) override; /** \details Writes object's data the the specified filer. \param wrFiler [in] Pointer to a filer to which to write the data. \returns A value of OdResult type that contains the result of the method execution. */ virtual OdResult outFields(OdDAI::OdSpfFilerBase* wrFiler) override; /** \details Returns a type of a class instance. \returns Pointer to the OdDAI::Entity type that determines an entity definition within a schema. */ virtual OdDAI::Entity* getInstanceType() const override; /** \details Returns an attribute value for the specified attribute name. \param attrName [in] Name of an attribute to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const char * attrName) const override; /** \details Early-bound version of instances comparison. \param pOther [in] Other application instance. \param ordering [out] Receives the ordering (comparison) status. \returns true if comparison was performed, false if method has no implementation, so late-bound version could be applied. \remarks If the method returns true, the ordering parameter can receive one of the following statuses: Name Value Description _kLessThan_ -1 This object < Other Object. _kEqual_ 0 This object = Other Object. _kGreaterThan_ 1 This object > Other Object. _kNotOrderable_ 2 This class is not orderable.
*/ virtual bool comparedToEarlyImpl(const OdDAI::ApplicationInstance *pOther, OdRx::Ordering &ordering) const override; /** \details Resets a value for the specified attribute. \param explicitAttrName [in] Explicit name of the attribute to reset. */ virtual void unsetAttr(const char * explicitAttrName) override; /** \details Checks whether the specified attribute is set. \param explicitAttrName [in] Explicit name of the attribute to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const char * explicitAttrName) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrName [in] Explicit name of the attribute to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const char * explicitAttrName, const OdRxValue &val) override; /** \details Checks whether the specified instance is the object derived from or belongs to this class. \param entityType [in] Entity to check. \returns true if the specified instance is the object derived from or belongs to this class, false otherwise. */ virtual bool isKindOf(OdIfc::OdIfcEntityType entityType) const override; /** \details Returns the type of this entity. \returns A value of the OdIfc::OdIfcEntityType type that represents type of this entity. */ virtual OdIfc::OdIfcEntityType type() const override; /** \details Returns an attribute value for the specified attribute definition. \param attrDef [in] Attribute definition to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const OdIfc::OdIfcAttribute attrDef) const override; /** \details Resets a value for the specified attribute. \param explicitAttrDef [in] Explicit definition that represents an attribute to reset. */ virtual void unsetAttr(const OdIfc::OdIfcAttribute explicitAttrDef) override; /** \details Checks whether the specified attribute is set. \param explicitAttrDef [in] Attribute definition to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const OdIfc::OdIfcAttribute explicitAttrDef) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrDef [in] Explicit attribute definition to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const OdIfc::OdIfcAttribute explicitAttrDef, const OdRxValue &val) override; protected: // Fields declaration: IfcPositiveLengthMeasure m_LiningDepth; // IfcPositiveLengthMeasure [optional] IfcNonNegativeLengthMeasure m_LiningThickness; // IfcNonNegativeLengthMeasure [optional] IfcNonNegativeLengthMeasure m_TransomThickness; // IfcNonNegativeLengthMeasure [optional] IfcNonNegativeLengthMeasure m_MullionThickness; // IfcNonNegativeLengthMeasure [optional] IfcNormalisedRatioMeasure m_FirstTransomOffset; // IfcNormalisedRatioMeasure [optional] IfcNormalisedRatioMeasure m_SecondTransomOffset; // IfcNormalisedRatioMeasure [optional] IfcNormalisedRatioMeasure m_FirstMullionOffset; // IfcNormalisedRatioMeasure [optional] IfcNormalisedRatioMeasure m_SecondMullionOffset; // IfcNormalisedRatioMeasure [optional] OdDAIObjectId m_ShapeAspectStyle; // IfcShapeAspect [optional] double m_LiningOffset; // IfcLengthMeasure [optional] double m_LiningToPanelOffsetX; // IfcLengthMeasure [optional] double m_LiningToPanelOffsetY; // IfcLengthMeasure [optional] }; /** \details A data type that represents a smart pointer to a IfcWindowLiningProperties object. */ typedef OdSmartPtr IfcWindowLiningPropertiesPtr; } // namespace #include "TD_PackPop.h" #endif // _IFC4X4_IFCWINDOWLININGPROPERTIES_AUTO_IMPL_H