/////////////////////////////////////////////////////////////////////////////// // 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 _IFC4X1_IFCDOORLININGPROPERTIES_AUTO_IMPL_H #define _IFC4X1_IFCDOORLININGPROPERTIES_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 IFC4X1 express schema definitions. */ namespace OdIfc4x1 { /** \details The door lining is the frame which enables the door leaf to be fixed in position. The door lining is used to hang the door leaf. The parameters of the door lining define the geometrically relevant parameter of the lining. The IfcDoorLiningProperties are included in the list of properties of IfcDoorType.HasPropertySets. More information about the door lining can be included in the same list of the IfcDoorTyype using another IfcPropertySet for dynamic extensions. The IfcDoorLiningProperties does not hold its own geometric representation. However it defines parameters which can be used to create the shape of the door type (which is inserted by the IfcDoor into the spatial context of the project). - Door Lining Properties - * The lining is applied to the left, right and upper side of the opening reveal. The parameters are: * LiningDepth, if omitted, equal to wall thickness - this only takes effect if a value for LiningThickness is given. If both parameters are not given, then there is no lining. * LiningThickness * LiningToPanelOffsetX * LiningToPanelOffsetY * The lining can only cover part of the opening reveal. * LiningOffset : given if lining edge has an offset to the x axis of the local placement. * The lining can include a casing, which covers part of the wall faces around the opening. The casing covers the left, right and upper side of the lining on both sides of the wall. The parameters are: * CasingDepth * CasingThickness * The lining can include a threshold, which covers the bottom side of the opening. The parameters are: * ThresholdDepth — if omitted, equal to wall thickness - this only takes effect if a value for ThresholdThickness is given. If both parameters are not given, then there is no threshold. * ThresholdThickness * ThresholdOffset (not shown in figure): given, if the threshold edge has an offset to the x axis of the local placement. * The lining can have a transom which separates the door panel from a window panel. The depth of the transom is identical to the depth of the lining and not given as separate parameter. The transom, if given, is defined by: * TransomOffset: a parallel edge to the x axis of the local placement * TransomThickness \changes * IFC4 changes: * The attribute ShapeAspectStyle is deprecated and shall no longer be used. * Supertype changed from IfcPropertySetDefinition to new IfcPreDefinedPropertySet. * Type of the LiningThickness attribute changed from IfcPositiveLengthMeasure to IfcNonNegativeLengthMeasure. * Type of the ThresholdThickness attribute changed from IfcPositiveLengthMeasure to IfcNonNegativeLengthMeasure. * Type of the TransomThickness attribute changed from IfcPositiveLengthMeasure to IfcNonNegativeLengthMeasure. */ class IFC4X1_EXPORT IfcDoorLiningProperties : public IfcPreDefinedPropertySet { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc4x1::IfcDoorLiningProperties); //DOM-IGNORE-END public: // // OdDAI early binding accessors // /** \details Returns the value of LiningDepth attribute. This attribute represents depth of the door lining, measured perpendicular to the plane of the door lining. If omitted (and with a given value to lining thickness) it indicates an adjustable depth (i.e. a depth that adjusts to the thickness of the wall into which the occurrence of this door style is inserted). \returns Returns the value of LiningDepth attribute. */ double getLiningDepth() const; /** \details Sets the value of LiningDepth attribute. This attribute represents depth of the door lining, measured perpendicular to the plane of the door lining. If omitted (and with a given value to lining thickness) it indicates an adjustable depth (i.e. a depth that adjusts to the thickness of the wall into which the occurrence of this door style is inserted). \param LiningDepth [in] Lining depth to set. */ void setLiningDepth(double LiningDepth); /** \details Returns the value of LiningThickness attribute. This attribute represents thickness of the door lining (see class description for more information). If LiningThickness value is 0 it denotes a door without a lining (all other lining parameters are set to 0 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 door lining (see class description for more information). If LiningThickness value is 0 it denotes a door without a lining (all other lining parameters are set to 0 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 ThresholdDepth attribute. This attribute represents depth (dimension in plane perpendicular to door leaf) of the door threshold. Only given if the door lining includes a threshold. If omitted (and with a given value to threshold thickness) it indicates an adjustable depth (i.e. a depth that adjusts to the thickness of the wall into which the occurrence of this door style is inserted). \returns Returns the value of ThresholdDepth attribute. */ double getThresholdDepth() const; /** \details Sets the value of ThresholdDepth attribute. This attribute represents depth (dimension in plane perpendicular to door leaf) of the door threshold. Only given if the door lining includes a threshold. If omitted (and with a given value to threshold thickness) it indicates an adjustable depth (i.e. a depth that adjusts to the thickness of the wall into which the occurrence of this door style is inserted). \param ThresholdDepth [in] Threshold depth to set. */ void setThresholdDepth(double ThresholdDepth); /** \details Returns the value of ThresholdThickness attribute. This attribute represents thickness of the door threshold (see class description for more information). If ThresholdThickness value is 0 it denotes a door without a threshold (ThresholdDepth will be reset to "unset" in this case). If the ThresholdThickness is unset it denotes that the information about a threshold is not available. \returns Returns the value of ThresholdThickness attribute. */ double getThresholdThickness() const; /** \details Sets the value of ThresholdThickness attribute. This attribute represents thickness of the door threshold (see class description for more information). If ThresholdThickness value is 0 it denotes a door without a threshold (ThresholdDepth will be reset to "unset" in this case). If the ThresholdThickness is unset it denotes that the information about a threshold is not available. \param ThresholdThickness [in] Threshold thickness to set. */ void setThresholdThickness(double ThresholdThickness); /** \details Returns the value of TransomThickness attribute. This attribute represents thickness (width in plane parallel to door leaf) of the transom (if provided - that is, if the TransomOffset attribute is set), which divides the door leaf from a glazing (or window) above. If the TransomThickness is set to zero (and the TransomOffset set to a positive length), then the door is divided vertically into a leaf and transom window area without a physical frame. \returns Returns the value of TransomThickness attribute. */ double getTransomThickness() const; /** \details Sets the value of TransomThickness attribute. This attribute represents thickness (width in plane parallel to door leaf) of the transom (if provided - that is, if the TransomOffset attribute is set), which divides the door leaf from a glazing (or window) above. If the TransomThickness is set to zero (and the TransomOffset set to a positive length), then the door is divided vertically into a leaf and transom window area without a physical frame. \param TransomThickness [in] Transom thickness to set. */ void setTransomThickness(double TransomThickness); /** \details Returns the value of TransomOffset attribute. This attribute represents offset of the transom (if given) which divides the door leaf from a glazing (or window) above. The offset is given from the bottom of the door opening. \returns Returns the value of TransomOffset attribute. */ double getTransomOffset() const; /** \details Sets the value of TransomOffset attribute. This attribute represents offset of the transom (if given) which divides the door leaf from a glazing (or window) above. The offset is given from the bottom of the door opening. \param TransomOffset [in] Transom offset to set. */ void setTransomOffset(double TransomOffset); /** \details Returns the value of LiningOffset attribute. This attribute represents offset (dimension in plane perpendicular to door leaf) of the door lining. The offset is given as distance to the x axis of the local placement. \returns Returns the value of LiningOffset attribute. */ double getLiningOffset() const; /** \details Sets the value of LiningOffset attribute. This attribute represents offset (dimension in plane perpendicular to door leaf) of the door lining. The offset is given as distance to the x axis of the local placement. \param LiningOffset [in] Lining offset to set. */ void setLiningOffset(double LiningOffset); /** \details Returns the value of ThresholdOffset attribute. This attribute represents offset (dimension in plane perpendicular to door leaf) of the door threshold. The offset is given as distance to the x axis of the local placement. Only given if the door lining includes a threshold and the parameter is known. \returns Returns the value of ThresholdOffset attribute. */ double getThresholdOffset() const; /** \details Sets the value of ThresholdOffset attribute. This attribute represents offset (dimension in plane perpendicular to door leaf) of the door threshold. The offset is given as distance to the x axis of the local placement. Only given if the door lining includes a threshold and the parameter is known. \param ThresholdOffset [in] Threshold offset to set. */ void setThresholdOffset(double ThresholdOffset); /** \details Returns the value of CasingThickness attribute. This attribute represents thickness of the casing (dimension in plane of the door leaf). If given it is applied equally to all four sides of the adjacent wall. \returns Returns the value of CasingThickness attribute. */ double getCasingThickness() const; /** \details Sets the value of CasingThickness attribute. This attribute represents thickness of the casing (dimension in plane of the door leaf). If given it is applied equally to all four sides of the adjacent wall. \param CasingThickness [in] Casing thickness to set. */ void setCasingThickness(double CasingThickness); /** \details Returns the value of CasingDepth attribute. This attribute represents depth of the casing (dimension in plane perpendicular to door leaf). If given it is applied equally to all four sides of the adjacent wall. \returns Returns the value of CasingDepth attribute. */ double getCasingDepth() const; /** \details Sets the value of CasingDepth attribute. This attribute represents depth of the casing (dimension in plane perpendicular to door leaf). If given it is applied equally to all four sides of the adjacent wall. \param CasingDepth [in] Casing depth to set. */ void setCasingDepth(double CasingDepth); /** \details Returns the value of ShapeAspectStyle attribute. This attribute represents pointer to the shape aspect, if given. The shape aspect reflects the part of the door shape, which represents the door lining. \returns Returns the value of ShapeAspectStyle attribute. \remarks IFC4 CHANGE: The attribute is deprecated and will no longer be used. */ const OdDAIObjectId& getShapeAspectStyle() const; /** \details Sets the value of ShapeAspectStyle attribute. This attribute represents pointer to the shape aspect, if given. The shape aspect reflects the part of the door shape, which represents the door lining. \param ShapeAspectStyle [in] Shape aspect style to set. \remarks IFC4 CHANGE: The attribute is deprecated and will no longer be used. */ void setShapeAspectStyle(const OdDAIObjectId& ShapeAspectStyle); /** \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. \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. \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 door panel measured along the y-axis of the local placement. \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 door panel measured along the y-axis of the local placement. \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 IfcDoorLiningProperties class. */ IfcDoorLiningProperties(); /** \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 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] IfcPositiveLengthMeasure m_ThresholdDepth; // IfcPositiveLengthMeasure [optional] IfcNonNegativeLengthMeasure m_ThresholdThickness; // IfcNonNegativeLengthMeasure [optional] IfcNonNegativeLengthMeasure m_TransomThickness; // IfcNonNegativeLengthMeasure [optional] double m_TransomOffset; // IfcLengthMeasure [optional] double m_LiningOffset; // IfcLengthMeasure [optional] double m_ThresholdOffset; // IfcLengthMeasure [optional] IfcPositiveLengthMeasure m_CasingThickness; // IfcPositiveLengthMeasure [optional] IfcPositiveLengthMeasure m_CasingDepth; // IfcPositiveLengthMeasure [optional] OdDAIObjectId m_ShapeAspectStyle; // IfcShapeAspect [optional] double m_LiningToPanelOffsetX; // IfcLengthMeasure [optional] double m_LiningToPanelOffsetY; // IfcLengthMeasure [optional] }; /** \details A data type that represents a smart pointer to a IfcDoorLiningProperties object. */ typedef OdSmartPtr IfcDoorLiningPropertiesPtr; } // namespace #include "TD_PackPop.h" #endif // _IFC4X1_IFCDOORLININGPROPERTIES_AUTO_IMPL_H