///////////////////////////////////////////////////////////////////////////////
// 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 _IFC4_IFCSTRUCTURALCURVEMEMBERVARYING_AUTO_IMPL_H
#define _IFC4_IFCSTRUCTURALCURVEMEMBERVARYING_AUTO_IMPL_H
#include "IfcStructuralCurveMemberAutoImpl.h"
#include "TD_PackPush.h"
/** \details
The namespace contains schema-dependent classes, definitions and sub routines
for work with IFC4 express schema definitions.
*/
namespace OdIfc4 {
/** \details
This entity describes edge members with varying profile properties.
Each instance of IfcStructuralCurveMemberVarying is composed of two or more instances of IfcStructuralCurveMember with differing profile properties.
These subordinate members relate to the instance of IfcStructuralCurveMemberVarying by IfcRelAggregates.
- Coordinate Systems -
See definitions at IfcStructuralItem and IfcStructuralCurveMember.
The local coordinates of the aggregate are derived from those of its parts.
Length measures in local x direction of the aggregate depend on continuity and lengths of the parts.
The Axis of the aggregate is the same as the Axis of the part at the start of the aggregate.
- Material Use Definition -
Only the individual parts (direct instances of IfcStructuralCurveMember) contain material and profile information.
\remarks
It is recommended that structural activities (actions or reactions) are not connected
with aggregated IfcStructuralCurveMemberVarying but only with the _IfcStructuralCurveMember_s in the aggregation.
That way, difficulties in interpretation of local coordinates are avoided.
*/
class IFC4_EXPORT IfcStructuralCurveMemberVarying : public IfcStructuralCurveMember
{
//DOM-IGNORE-BEGIN
OD_EXP_DECLARE_MEMBERS(OdIfc4::IfcStructuralCurveMemberVarying);
//DOM-IGNORE-END
public:
/** \details
Returns a type of a class instance.
\returns
Pointer to the