Class Ifc4x1::IfcStructuralAnalysisModel

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x1::IfcStructuralAnalysisModel : public Ifc4x1::IfcSystem

Definition from IAI: The IfcStructuralAnalysisModel is used to assemble all information needed to represent a structural analysis model. It encompasses certain general properties (such as analysis type), references to all contained structural members, structural supports or connections, as well as loads and the respective load results.

Important functionalities for the description of an analysis model are derived from existing IFC entities:

From IfcSystem it inherits the ability to couple the analysis model via IfcRelServicesBuildings to one or more IfcBuildings as necessary. From IfcGroup it inherits the inverse attribute IsGroupedBy, pointing to the relationship class IfcRelAssignsToGroup. This allows to group structural members (instances of IfcStructuralMember), and supports (instances of IfcStructuralConnection) which belong to a specific analysis model. NOTE: Loads (as instances of IfcStructuralAction) are not included through IsGroupedBy. Loads are assigned through the LoadedBy attribute relationship, using load groups as a grouping mechanism. Only top-level load groups should be referenced via LoadedBy, i.e. load combinations if any load combinations exist, or load cases if no load combinations exist in this analysis model. NOTE: Results (as instances of IfcStructuralReaction) are not included through IsGroupedBy. Results are assigned through the HasResults attribute relationship, using result groups as a grouping mechanism.

From IfcObject it inherits the inverse attribute IsDecomposedBy pointing to the relationship class IfcRelNests. It provides the hierarchy between the separate (partial) analysis models.

HISTORY: New entity in IFC 2x2.

IFC 2x4 change: Attribute SharedPlacement and informal propositions added, allowing for easy retrieval of the common object placement and for specification of the analysis model’s coordiante system before any structural item is instantiated. WHERE rule added.

Informal propositions:

If one or more structural item (instance of a subtype of IfcStructuralItem) is grouped into an IfcStructuralAnalysisModel, the attribute SharedPlacement shall be provided with a value. The ObjectPlacements of all structural items which are grouped into the same instance of IfcStructuralAnalysisModel shall refer to the same instance of IfcObjectPlacement as IfcStructuralAnalysisModel.SharedPlacement.

NOTE This rule is necessary to achieve consistent topology representations. The topology representations of structural items in an analysis model are meant to share vertices and edges und must therefore have the same object placement.

NOTE A structural item may be grouped into more than one analysis model. In this case, all these models must use the same instance of IfcObjectPlacement.

Public Functions

::Ifc4x1::IfcAnalysisModelTypeEnum::Value PredefinedType() const

Defines the type of the structural analysis model.

void setPredefinedType(::Ifc4x1::IfcAnalysisModelTypeEnum::Value v)
bool hasOrientationOf2DPlane() const

Whether the optional attribute OrientationOf2DPlane is defined for this IfcStructuralAnalysisModel.

::Ifc4x1::IfcAxis2Placement3D *OrientationOf2DPlane() const

If the selected model type (PredefinedType) describes a 2D system, the orientation defines the analysis plane (P[1], P[2]) and the normal to the analysis plane (P[3]). This is needed because structural items and activities are always defined in three-dimensional space even if they are meant to be analysed in a two-dimensional manner.

In case of predefined type IN_PLANE_LOADING_2D, the analysis is to be performed within the projection into the P[1], P[2] plane. In case of predefined type OUT_PLANE_LOADING_2D, only the P[3] component of loads and their effects is meant to be analyzed. This is used for beam grids and for typical slab analyses. In case of predefined type LOADING_3D, OrientationOf2DPlane shall be omitted.

void setOrientationOf2DPlane(::Ifc4x1::IfcAxis2Placement3D *v)
bool hasLoadedBy() const

Whether the optional attribute LoadedBy is defined for this IfcStructuralAnalysisModel.

IfcTemplatedEntityList<::Ifc4x1::IfcStructuralLoadGroup>::ptr LoadedBy() const

References to all load groups to be analyzed.

void setLoadedBy(IfcTemplatedEntityList<::Ifc4x1::IfcStructuralLoadGroup>::ptr v)
bool hasHasResults() const

Whether the optional attribute HasResults is defined for this IfcStructuralAnalysisModel.

IfcTemplatedEntityList<::Ifc4x1::IfcStructuralResultGroup>::ptr HasResults() const

References to all result groups available for this structural analysis model.

void setHasResults(IfcTemplatedEntityList<::Ifc4x1::IfcStructuralResultGroup>::ptr v)
bool hasSharedPlacement() const

Whether the optional attribute SharedPlacement is defined for this IfcStructuralAnalysisModel.

::Ifc4x1::IfcObjectPlacement *SharedPlacement() const

Object placement which shall be common to all items and activities which are grouped into this instance of IfcStructuralAnalysisModel. This placement establishes a coordinate system which is referred to as ‘global coordinate system’ in use definitions of various classes of structural items and activities.

NOTE Most commonly, but not necessarily, the SharedPlacement is an IfcLocalPlacement whose z axis is parallel with the z axis of the IfcProject’s world coordinate system and directed like the WCS z axis (i.e. pointing “upwards”) or directed against the WCS z axis (i.e. points “downwards”).

NOTE Per informal proposition, this attribute is not optional as soon as at least one IfcStructuralItem is grouped into the instance of IfcStructuralAnalysisModel.

void setSharedPlacement(::Ifc4x1::IfcObjectPlacement *v)
const IfcParse::entity &declaration() const
IfcStructuralAnalysisModel(IfcEntityInstanceData *e)
IfcStructuralAnalysisModel(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4x1::IfcAnalysisModelTypeEnum::Value v6_PredefinedType, ::Ifc4x1::IfcAxis2Placement3D *v7_OrientationOf2DPlane, boost::optional<IfcTemplatedEntityList<::Ifc4x1::IfcStructuralLoadGroup>::ptr> v8_LoadedBy, boost::optional<IfcTemplatedEntityList<::Ifc4x1::IfcStructuralResultGroup>::ptr> v9_HasResults, ::Ifc4x1::IfcObjectPlacement *v10_SharedPlacement)

Public Static Functions

const IfcParse::entity &Class()