/////////////////////////////////////////////////////////////////////////////// // 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 _IFC2X3_IFCFLOWSEGMENT_AUTO_IMPL_H #define _IFC2X3_IFCFLOWSEGMENT_AUTO_IMPL_H #include "IfcDistributionFlowElementAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC2X3 express schema definitions. */ namespace OdIfc2x3 { /** \details IfcFlowSegment defines the occurrence of a segment of a flow distribution system. The IfcFlowSegment defines a particular occurrence of a segment inserted in the spatial context of a project. The parameters defining the type of the segment and/or its shape are defined by the IfcFlowSegmentType, which is related by the inverse relationship IsDefinedBy pointing to IfcRelDefinesByType. - Axis Geometry - Standard representations are defined at the supertype IfcDistributionFlowElement. For parametric flow segments where IfcMaterialProfileSetUsage is defined and an 'Axis' representation is defined, then the 'Body' representation can be generated using the 'SweptSolid' or 'AdvancedSweptSolid' representation types by sweeping the profile(s) along the axis. - Material Profile Set Usage - The material of the IfcFlowSegment is defined using one of the following entities: * IfcMaterialProfileSetUsage : for parametric segments, this defines the cross section and alignment to the 'Axis' representation, from which the 'Body' representation can be generated. * IfcMaterialProfileSet : for non-parametric segments (having fixed length or path), this can define the cross section for analysis purposes, however the 'Body' representation is independently generated. * IfcMaterialConstituentSet : for elements containing multiple materials where profiles are not applicable, this indicates materials at named parts. * IfcMaterial : for elements comprised of a single material where profiles are not applicable, this indicates the material. The material is attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. Material information can also be given at the IfcFlowSegmentType, defining the common attribute data for all occurrences of the same type. - Object Typing - This concept can be applied to the following resources: * IfcFlowSegmentType */ class IFC2X3_EXPORT IfcFlowSegment : public IfcDistributionFlowElement { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc2x3::IfcFlowSegment); //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 IfcFlowSegment object. */ typedef OdSmartPtr IfcFlowSegmentPtr; } // namespace #include "TD_PackPop.h" #endif // _IFC2X3_IFCFLOWSEGMENT_AUTO_IMPL_H