/////////////////////////////////////////////////////////////////////////////// // 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 _IFC4X2_IFCBEAMSTANDARDCASE_AUTO_IMPL_H #define _IFC4X2_IFCBEAMSTANDARDCASE_AUTO_IMPL_H #include "IfcBeamAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC4X2 express schema definitions. */ namespace OdIfc4x2 { /** \details The standard beam, IfcBeamStandardCase, defines a beam with certain constraints for the provision of material usage, parameters and with certain constraints for the geometric representation. The IfcBeamStandardCase handles all cases of beams, that: * have a reference to the IfcMaterialProfileSetUsage defining the material profile association of the beam with the cardinal point of its insertion relative to the local placement. * are consistent in using the correct cardinal point offset of the profile as compared to the 'Axis' and 'Body' shape representation * are based on a sweep of a planar profile, or set of profiles, as defined by the IfcMaterialProfileSet * have an 'Axis' shape representation with constraints provided below in the geometry use definition * have a 'Body' shape representation with constraints provided below in the geometry use definition are extruded perpendicular to the profile definition plane have a start profile, or set of profiles, that is swept the sweeping operation can be linear extrusion, circular rotation, or a sweep along a directrix the start profile, or set of profiles can be swept unchanged, or might be changed uniformly by a taper definition - Geometric Representations - The geometric representation of IfcBeamStandardCase is defined using the following multiple shape representations for its definition: * Axis: A three dimensional open curve (subtype of IfcBoundedCurve) defining the axis for the standard beam. The cardinal point is determined by the beam axis. * Body: A Swept Solid Representation or a CSG clipping representation defining the 3D shape of the standard beam. - Material Profile Set Usage - The IfcBeamStandardCase defines in addition that the IfcBeamType should have a unique IfcMaterialProfileSet, that is referenced by the IfcMaterialProfileSetUsage that is assigned to all occurrences of this IfcBeamType. Beam profile usage: Beam cardinal points: Beam composite profiles: - Product Placement - This concept applies to this entity as specified below: * IfcLocalPlacement (relative) - Relative placement according to position and rotation relative to container. * IfcLocalPlacement (absolute) - Absolute placement according to position and rotation of world coordinate system. * IfcGridPlacement - Placement according to grid intersection. - Axis 3D Geometry - This concept applies to this entity as specified in the table below: IdentifierTypeItemsDescription Axis Curve3D IfcBoundedCurve Three-dimensional reference curve for the beam.
The following additional constraints apply to the 'Axis' representation, if the 'Body' shape representation has the RepresentationType : 'SweptSolid': * IfcPolyline having two Points, or IfcTrimmedCurve with BasisCurve of Type IfcLine for 'SweptSolid' provided as IfcExtrudedAreaSolid. The axis curve lies on the z axis of the object coordinate system. * IfcTrimmedCurve with BasisCurve of Type IfcCircle for 'SweptSolid' provided as IfcRevolvedAreaSolid. The axis curve lies on the x/z plane of the object coordinate system, the tangent at the start is along the positive z-axis. As shown on the image below, the axis is defined along the z axis of the object coordinate system. The axis representation can be used to represent the system length of a beam that can extent the body length of the beam. As shown on the image below, the axis representation is used to represent the cardinal point as the offset between the 'Axis' and the extrusion path of the beam. The extrusion path is provided as IfcExtrudedAreaSolid.ExtrudedDirection and should be parallel to the 'Axis' and the z axis. It has to be guaranteed that the value provided by IfcMaterialProfileSetUsage.CardinalPoint is consistent to the IfcExtrudedAreaSolid.Position. - Body SweptSolid Geometry - The following additional constraints apply to the 'SweptSolid' representation: * Solid: IfcExtrudedAreaSolid, IfcRevolvedAreaSolid is supported * Solid Position : The IfcSweptAreaSolid.Position is exclusively used to correspond to the cardinal point. The x/y offset of the Position represents the cardinal point offset of the profile against the axis. No rotation is allowed. * Profile: All subtypes of IfcParameterizedProfileDef * Profile Position : For all single profiles, the IfcParameterizedProfileDef.Position is NIL, or having Location = 0.,0. and RefDirection = 1.,0. * Extrusion: Perpendicular to the profile direction. The IfcExtrudedAreaSolid.ExtrudedDirection is [0.,0.,1.]. * Orientation: The y-axis of the profile, as determined by IfcSweptAreaSolid.Position.P[2] points upwards. It indicates the "role" of the beam, a role=0° means y-axis of profile pointing upwards. The image below illustrates a standard geometric representation with cardinal point applied as 1 (bottom left). The following interpretation of dimension parameter applies for rectangular beams with linear extrusions: * IfcRectangleProfileDef.YDim interpreted as beam height * IfcRectangleProfileDef.XDim interpreted as beam width The following interpretation of dimension parameter applies for circular beams: * IfcCircleProfileDef.Radius interpreted as beam radius. - Body AdvancedSweptSolid Geometry - The following additional constraints apply to the 'AdvancedSweptSolid' representation type: * Solid: IfcSurfaceCurveSweptAreaSolid, IfcFixedReferenceSweptAreaSolid, IfcExtrudedAreaSolidTapered, IfcRevolvedAreaSolidTapered is supported. * Solid Position : see 'SweptSolid' geometric representation * Profile: see 'SweptSolid' geometric representation * Profile Position : see 'SweptSolid' geometric representation * Extrusion: not applicable - Body Clipping Geometry - The following constraints apply to the 'Clipping' representation: * Solid : see 'SweptSolid' geometric representation * Solid Position : see 'SweptSolid' geometric representation * Profile : see 'SweptSolid' geometric representation * Profile Position : see 'SweptSolid' geometric representation * Extrusion : see 'SweptSolid' geometric representation * Orientation : see 'SweptSolid' geometric representation * Boolean result: The IfcBooleanClippingResult is supported, allowing Boolean differences between the swept solid (here IfcExtrudedAreaSolid) and one or several IfcHalfSpaceSolid (or its subtypes). The image below illustrates a 'Clipping' geometric representation with use of IfcBooleanClippingResult between an IfcExtrudedAreaSolid and an IfcHalfSpaceSolid to create a clipped body, with cardinal point applied as 4 (mid-depth left). */ class IFC4X2_EXPORT IfcBeamStandardCase : public IfcBeam { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc4x2::IfcBeamStandardCase); //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 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 IfcBeamStandardCase object. */ typedef OdSmartPtr IfcBeamStandardCasePtr; } // namespace #include "TD_PackPop.h" #endif // _IFC4X2_IFCBEAMSTANDARDCASE_AUTO_IMPL_H