/////////////////////////////////////////////////////////////////////////////// // 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_IFCWALLSTANDARDCASE_AUTO_IMPL_H #define _IFC4X4_IFCWALLSTANDARDCASE_AUTO_IMPL_H #include "IfcWallAutoImpl.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 IfcWallStandardCase defines a wall with certain constraints for the provision of parameters and with certain constraints for the geometric representation. The following parameters need to be provided: * Wall height, taken from the depth of extrusion, provided by the geometric representation. * Wall thickness, taken from the material layer set usage, attached to the wall * Wall offset from axis, taken from the material layer set usage, attached to the wall The IfcWallStandardCase requires the provision of the wall axis either a straight line that is parallel to the x-axis of the object coordinate system, or a circular arc where the tangent at start is parallel to the x-axis of the object coordinate system. The direction of the wall axis is the positive direction of that x-axis. The material of the wall is defined by the IfcMaterialLayerSetUsage and is attached by the IfcRelAssociatesMaterial objectified relationship. It is accessible by the inverse HasAssociations relationship. An 'Axis' and a 'Body' shape representation need to be provided, and it is invalid to exchange a 'Tessellation', 'SurfaceModel', 'Brep' or 'MappedRepresentation' representation for the 'Body' shape representation of the IfcWallStandardCase. - Axis 2D Geometry - The wall axis is represented by a two-dimensional open curve within a particular shape representation. The wall axis is used to apply the material layer set usage parameter to the wall geometry. * IfcPolyline having two points, or IfcTrimmedCurve with BasisCurve of type IfcLine for the 'SweptSolid' provided as IfcExtrudedAreaSolid. The axis curve lies on the x/y plane and is parallel to the x-axis of the object coordinate system. * IfcTrimmedCurve with BasisCurve of IfcCircle type for 'SweptSolid' provided as IfcExtrudedAreaSolid. The axis curve lies on the x/y plane of the object coordinate system, the tangent at the start is along the positive x-axis. The image below illustrates an axis representation for a straight wall. In case of a straight wall, the set of items includes a single geometric representation item of IfcPolyline or IfcTrimmedCurve type with the BasisCurve being an IfcLine. The IfcPolyline or IfcTrimmedCurve is parallel (here in a special case co-linear) to the x-axis of the object coordinate system. The direction is identical to the direction of the x-axis. The image below illustrates an axis representation for a curved wall. In case of a curved wall, the set of items includes a single geometric representation item of type IfcTrimmedCurve. The curve has a BasisCurve of type IfcCircle. The tangent of the IfcTrimmedCurve is parallel at start to the x-axis of the object coordinate system. The direction is identical to the direction of the x-axis. - Body Clipping Geometry - The following constraints apply to the 'Clipping' representation: * Solid: see standard geometric representation * Profile: see standard geometric representation * Extrusion: see standard geometric representation * Boolean result: The IfcBooleanClippingResult is supported, allowing for Boolean differences between the swept solid (here IfcExtrudedAreaSolid) and one or several IfcHalfSpaceSolid (or subtypes). The image below illustrates a clipping for a straight wall using an IfcPolygonalBoundedHalfSpace as SecondOperand in the IfcBooleanClippingResult. - Body SweptSolid Geometry - The following additional constraints apply to the 'SweptSolid' representation: * Solid: IfcExtrudedAreaSolid is required, * Profile: IfcArbitraryClosedProfileDef and IfcRectangleProfileDef are supported. * Extrusion: The profile is extruded vertically, i.e., in the direction of the z-axis of the co-ordinate system of the referred spatial structure element. It might be further constraint to be in the direction of the global z-axis in implementers agreements. The extrusion axis is perpendicular to the swept profile, i.e. pointing into the direction of the z-axis of the Position of the IfcExtrudedAreaSolid. The profile of a wall is described in the ground view and extruded vertically. The profile (also identical with the foot print of the wall) is defined by the IfcArbitraryClosedProfileDef (excluding its subtypes). The profile is specified with all wall connections already resolved. - Material Layer Set Usage - Multi-layer walls can be represented by referring to several IfcMaterialLayer's within the IfcMaterialLayerSet that is referenced from the IfcMaterialLayerSetUsage. Material information can also be specified at the IfcWallType, defining the common attribute data for all occurrences of the same type. It is then accessible by the inverse IsDefinedBy relationship pointing to IfcSlabType.HasAssociations and via IfcRelAssociatesMaterial.RelatingMaterial. The IfcWallType should have a unique IfcMaterialLayerSet, that is referenced by the IfcMaterialLayerSetUsage assigned to all occurrences of this IfcWallType. The image below illustrates assignment of IfcMaterialLayerSetUsage and IfcMaterialLayerSet to the wall type and the wall occurrence. The image below illustrates material layer usage, where the following conventions are met: * The reference coordinate system is the local coordinate system established by the ObjectPlacement of the IfcWallStandardCase. * The reference axis is the axis defined by the IfcShapeRepresentation with RepresentationType='Axis' as one of the Representation.Representations of the IfcWallStandardCase. * The IfcMaterialLayerSetUsage.OffsetFromReferenceLine is specified as a distance from this axis. * The IfcMaterialLayerSetUsage.OffsetFromReferenceLine is the distance parallel to the reference axis and always within the base (XY) plane of the reference coordinate system. A positive value of IfcMaterialLayerSetUsage.OffsetFromReferenceLine would then point to the positive y-axis of the reference coordinate system. * The IfcMaterialLayerSetUsage.DirectionSense defines how the IfcMaterialLayer's are assigned to the reference axis. POSITIVE means in direction to the positive y-axis of the reference coordinate system. * The Thickness of each IfcMaterialLayer is provided starting from the OffsetFromReferenceLine and in the direction given by DirectionSense. It is applied without any gap or overlap between two consecutive layers. The TotalThickness of the IfcMaterialLayerSet is the sum of all layer thicknesses. * The IfcMaterialLayerSetUsage.LayerSetDirection is always AXIS2. \changes * IFC4 changes: This definition is now deprecated. */ class IFC4X4_EXPORT IfcWallStandardCase : public IfcWall { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc4x4::IfcWallStandardCase); //DOM-IGNORE-END public: /** \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 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 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 A data type that represents a smart pointer to a IfcWallStandardCase object. */ typedef OdSmartPtr IfcWallStandardCasePtr; } // namespace #include "TD_PackPop.h" #endif // _IFC4X4_IFCWALLSTANDARDCASE_AUTO_IMPL_H