OpenLexocad  27.1
OpenLxApp::ElementAssembly Class Reference

The IfcElementAssembly represents complex element assemblies aggregated from several elements, such as discrete elements, building elements, or other elements. More...

#include <ElementAssembly.h>

Inheritance diagram for OpenLxApp::ElementAssembly:
OpenLxApp::Element OpenLxApp::Product OpenLxApp::Object Core::DocObjectObserver OpenLxApp::ObjectDefinition OpenLxApp::Root OpenLxApp::DocObject

Public Types

enum  ElementAssemblyTypeEnum {
  ElementAssemblyTypeEnum::ACCESSORY_ASSEMBLY, ElementAssemblyTypeEnum::ARCH, ElementAssemblyTypeEnum::BEAM_GRID, ElementAssemblyTypeEnum::BRACED_FRAME,
  ElementAssemblyTypeEnum::GIRDER, ElementAssemblyTypeEnum::REINFORCEMENT_UNIT, ElementAssemblyTypeEnum::RIGID_FRAME, ElementAssemblyTypeEnum::SLAB_FIELD,
  ElementAssemblyTypeEnum::TRUSS, ElementAssemblyTypeEnum::USERDEFINED, ElementAssemblyTypeEnum::NOTDEFINED
}
 

Public Member Functions

void setPredefinedType (ElementAssemblyTypeEnum aType)
 
ElementAssemblyTypeEnum getPredefinedType () const
 
void addToAssembly (std::shared_ptr< Element > aElement)
 
void removeFromAssembly (std::shared_ptr< Element > aElement)
 
std::vector< std::shared_ptr< Element > > getAssembledElements () const
 
virtual ~ElementAssembly (void)
 
- Public Member Functions inherited from OpenLxApp::Element
virtual ~Element ()=default
 
void setPlacementRelativeTo (std::shared_ptr< Element > other)
 
void setPlacementRelativeTo (std::shared_ptr< Element > other, bool keepGlobalPosition)
 
std::shared_ptr< ElementgetPlacementRelativeTo () const
 
bool setLayer (int layernumber)
 
int getLayer () const
 
void addOpeningElement (std::shared_ptr< OpeningElement > aOpening)
 
void removeOpeningElement (std::shared_ptr< OpeningElement > aOpening)
 
void removeOpeningElements ()
 
std::vector< std::shared_ptr< OpeningElement > > getOpeningElements () const
 
void addParamCutHardElement (std::shared_ptr< Element > aElement)
 
void addParamCutSoftElement (std::shared_ptr< Element > aElement)
 
void removeParamCutHardElement (std::shared_ptr< Element > aElement)
 
void removeParamCutSoftElement (std::shared_ptr< Element > aElement)
 
std::vector< std::shared_ptr< Element > > getParamCutHardElements (bool includeAggregatedElements=false) const
 
std::vector< std::shared_ptr< Element > > getParamCutSoftElements () const
 
bool isParamCutHardElement () const
 
bool isParamCutSoftElement () const
 
void addSubElement (std::shared_ptr< SubElement > aSubElement)
 
std::vector< std::shared_ptr< SubElement > > getSubElements () const
 
void removeSubElement (std::shared_ptr< SubElement > aSubElement)
 
void removeSubElements ()
 
std::shared_ptr< OpeningElementgetFilledOpeningElement () const
 
void setAssociatedMaterial (std::shared_ptr< MaterialDefinition > aMaterialDefinition)
 
void removeAssociatedMaterial ()
 
std::shared_ptr< MaterialSelectgetAssociatedMaterial () const
 
bool isTemporary () const
 
void setTemporary (bool on)
 
std::shared_ptr< GroupgetGroup () const
 
std::shared_ptr< Elementcopy () const
 
Topo::Cdwk_SAT_Attributes get_Cdwk_SAT_Attributes () const
 
Base::String getTag () const
 
void setTag (const Base::String &aTag)
 
void setCdwkAttributeData (const CdwkAttributeData &aData)
 
std::string getCadworkGroup () const
 
void setBoundingBoxEnabled (bool enabled)
 
std::shared_ptr< OpenLxApp::GeometrygetAxisRepresentation () const
 
bool setAxisRepresentation (std::shared_ptr< OpenLxApp::Geometry > aGeometry) const
 
std::shared_ptr< OpenLxApp::GeometrygetSolidModelRepresentation () const
 
bool setSolidModelRepresentation (std::shared_ptr< OpenLxApp::Geometry > aGeometry) const
 
void showAxisRepresentation () const
 
void showSolidModelRepresentation () const
 
- Public Member Functions inherited from OpenLxApp::Product
virtual ~Product (void)
 
virtual bool setGeometry (std::shared_ptr< Geometry > geo)
 
std::shared_ptr< GeometrygetGeometry () const
 
Geom::Trsf getGeometryToWorldTransform () const
 
Geom::Bnd_Box getBoundingBox () const
 
Geom::Ax2 getLocalPlacement () const
 
void setLocalPlacement (const Geom::Ax2 &pos)
 
Geom::Trsf getTransform () const
 
Geom::Trsf getLocalToWorldTransform () const
 
void setTransform (const Geom::Trsf &t)
 
void translate (const Geom::Vec &aVec, Geom::CoordSpace aCoordSpace=Geom::CoordSpace::WCS)
 
void rotate (const Geom::Ax1 &axis, double angle, Geom::CoordSpace aCoordSpace=Geom::CoordSpace::WCS)
 
bool getLocalAxes (Geom::Ax2 &localAxes)
 
void setLocalAxes (const Geom::Dir &zHeight, const Geom::Dir &xLength)
 
pConstShape getShape () const
 
pConstShape getLocalShape () const
 
void setOglMaterial (const Draw::OglMaterial &mat, int faceIndex=-1)
 
Draw::OglMaterial getOglMaterial () const
 
void setAmbientColor (const Base::Color &aCol)
 
void setDiffuseColor (const Base::Color &aCol)
 
void setSpecularColor (const Base::Color &aCol)
 
void setEmissiveColor (const Base::Color &aCol)
 
void setReflectiveColor (const Base::Color &aCol)
 
void setShininess (int aVal)
 
void setTransparency (int aVal)
 
void setDrawStyle (const Draw::DrawStyle &ds)
 
Draw::DrawStyle getDrawStyle () const
 
void setLineWidth (float width)
 
void setTexture (const Draw::Texture2 &tex, int faceIndex=-1)
 
void setLengthAndCrossTexture (const Draw::Texture2 &lengthTexture, const Draw::Texture2 &crossTexture, const Draw::Texture2Transform &lengthTextureTrsf=Draw::Texture2Transform(), const Draw::Texture2Transform &crossTextureTrsf=Draw::Texture2Transform())
 
std::shared_ptr< SpatialStructureElementgetSpatialStructure () const
 
void setSpatialStructure (std::shared_ptr< SpatialStructureElement > aSpatialStructureElement)
 
void setPositionNb (long value)
 
long getPositionNb () const
 
bool isVisible () const
 
void setVisible (bool onoff)
 
bool registerPythonClass (const std::string &aClassName, const std::string &aParentClassName)
 
virtual Base::GlobalId getGlobalClassId () const
 
std::shared_ptr< PropertyIntegerregisterPropertyInteger (const std::string &aName, int aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyEnumregisterPropertyEnum (const std::string &aName, int aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyDoubleregisterPropertyDouble (const std::string &aName, double aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyButtonregisterPropertyButton (const std::string &aName, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyBoolregisterPropertyBool (const std::string &aName, bool aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyStringregisterPropertyString (const std::string &aName, Base::String aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< PropertyColorregisterPropertyColor (const std::string &aName, Base::Color aDefaultValue, Property::Visible aVisible=Property::VISIBLE, Property::Editable aEditable=Property::EDITABLE, int aTranslationId=-1)
 
std::shared_ptr< OpenLxApp::PropertygetProperty (const std::string &aName) const
 
std::map< std::string, std::shared_ptr< Property > > getPropertyMap () const
 
std::shared_ptr< PropertyIntegergetPropertyInteger (const std::string &aName) const
 
std::shared_ptr< PropertyEnumgetPropertyEnum (const std::string &aName) const
 
std::shared_ptr< PropertyDoublegetPropertyDouble (const std::string &aName) const
 
std::shared_ptr< PropertyButtongetPropertyButton (const std::string &aName) const
 
std::shared_ptr< PropertyBoolgetPropertyBool (const std::string &aName) const
 
std::shared_ptr< PropertyStringgetPropertyString (const std::string &aName) const
 
std::shared_ptr< PropertyColorgetPropertyColor (const std::string &aName) const
 
bool isRegisteredProperty (const std::string &aName) const
 
virtual void onPropertyChanged (const std::string &aPropertyName)
 
virtual void onScaling (const Geom::Vec &aVec, const Geom::Pnt &aScaleBasePnt)
 
virtual void translateAfterScaled (const Geom::Vec &aVec, const Geom::Pnt &aScaleBasePnt)
 
void setStandardManipulatorPolicy (const Core::StandardManipulatorPolicy &aPolicy)
 
void setPropertyHeader (const Base::String &aDefaultName, int aTranslationId)
 
void setPropertyHeader (const Base::String &aDefaultName)
 
void setPropertyGroupName (const Base::String &aDefaultName, int aTranslationId)
 
void setPropertyGroupName (const Base::String &aDefaultName)
 
Base::String getPropertyHeader () const
 
Base::String getPropertyGroupName () const
 
std::shared_ptr< PropertyUsergetPropertyUser (const std::string &aName) const
 
std::vector< std::shared_ptr< PropertyUser > > getPropertyUser () const
 
std::vector< Base::StringgetPropertySetNames () const
 
std::shared_ptr< PropertySetgetPropertySetByName (const Base::String &aName) const
 
ExternalPythonTypeObjectgetExternalPythonTypeObject () const
 
void setExternalPythonTypeObject (ExternalPythonTypeObject *aObj)
 
void removeExternalTypeObject ()
 
- Public Member Functions inherited from OpenLxApp::Object
virtual ~Object (void)
 
- Public Member Functions inherited from OpenLxApp::ObjectDefinition
virtual ~ObjectDefinition (void)
 
std::vector< std::shared_ptr< ObjectDefinition > > getDecompositionObjects () const
 
std::vector< std::shared_ptr< ObjectDefinition > > getAllDecompositionObjects () const
 
std::shared_ptr< ObjectDefinitiongetDecomposedObject () const
 
std::vector< std::shared_ptr< ObjectDefinition > > getAllDecomposedObjects () const
 
void addAggregationObject (std::shared_ptr< ObjectDefinition > aObject)
 
void addAggregationObjects (const std::vector< std::shared_ptr< ObjectDefinition >> &aObjects)
 
void removeAggregationObject (std::shared_ptr< ObjectDefinition > aObject)
 
void removeAggregationObjects ()
 
std::vector< std::shared_ptr< ObjectDefinition > > getAggregationObjects () const
 
std::vector< std::shared_ptr< ObjectDefinition > > getAllAggregationObjects () const
 
std::shared_ptr< ObjectDefinitiongetAggregatedObject () const
 
std::vector< std::shared_ptr< ObjectDefinition > > getAllAggregatedObjects () const
 
void addAssociationObject (std::shared_ptr< Root > aObject)
 
std::vector< std::shared_ptr< Root > > getAssociationObjects () const
 
std::shared_ptr< LxIfcBase::LxIfcProperty > getIfcPropertySets () const
 
- Public Member Functions inherited from OpenLxApp::Root
void setUserName (const Base::String &aName)
 
Base::String getUserName () const
 
virtual ~Root (void)
 
Base::GlobalId getGlobalId () const
 
bool setGlobalId (const Base::GlobalId &aGlobalId)
 
- Public Member Functions inherited from OpenLxApp::DocObject
std::shared_ptr< DocumentgetDocument () const
 
bool isNew () const
 
bool isUpdated () const
 
bool isValid () const
 
bool hasErrors () const
 
void touch ()
 
LxIfc4::LxIfc4EntityEnum getEntityType () const
 
std::string getEntityTypeAsString () const
 
std::shared_ptr< Core::DbgInfogetDbgInfo () const
 
 DocObject (Core::DocObject *aObject)
 
virtual ~DocObject (void)
 
Core::DocObject__getObj__ () const
 
- Public Member Functions inherited from Core::DocObjectObserver
virtual ~DocObjectObserver ()
 

Protected Member Functions

 ElementAssembly ()
 
- Protected Member Functions inherited from OpenLxApp::Element
 Element ()=default
 
void _copySubElems (App::Element *fromElem, std::shared_ptr< Element > toElem) const
 
- Protected Member Functions inherited from OpenLxApp::Product
void onChange (Core::DocObject *aCaller, const Core::DocObjectObserverMsg &aReason) override
 
 Product ()
 
- Protected Member Functions inherited from OpenLxApp::Object
 Object ()
 
- Protected Member Functions inherited from OpenLxApp::ObjectDefinition
 ObjectDefinition ()
 
- Protected Member Functions inherited from OpenLxApp::Root
 Root ()
 
- Protected Member Functions inherited from OpenLxApp::DocObject
 DocObject ()
 

Additional Inherited Members

- Protected Attributes inherited from OpenLxApp::DocObject
Core::DocObject_coreObj = nullptr
 

Detailed Description

The IfcElementAssembly represents complex element assemblies aggregated from several elements, such as discrete elements, building elements, or other elements.

EXAMPLE: Steel construction assemblies, such as trusses and different kinds of frames, can be represented by the IfcElementAssembly entity. Other examples include slab fields aggregated from a number of precast concrete slabs or reinforcement units made from several reinforcement bars. Also bathroom units, staircase sections and other premanufactured or precast elements are examples of the general IfcElementAssembly entity

NOTE: The IfcElementAssembly is a general purpose entity that is required to be decomposed. Also other subtypes of Element can be decomposed, with some dedicated entities such as WallElementedCase and SlabElementedCase. The assembly structure can be nested, i.e. an ElementAssembly could be an aggregated part within another ElementAssembly.

NOTE View definitions and/or implementer agreements may restrict the number of allowed levels of nesting. The geometry of an ElementAssembly is generally formed from its components, in which case it does not need to have an explicit geometric representation. In some cases it may be useful to also expose an own explicit representation of the aggregate.

NOTE: View definitions or implementer agreements may further constrain the applicability of certain shape representations at the ElementAssembly in respect of the shape representations of its parts.

Member Enumeration Documentation

◆ ElementAssemblyTypeEnum

Enumerator
ACCESSORY_ASSEMBLY 
ARCH 
BEAM_GRID 
BRACED_FRAME 
GIRDER 
REINFORCEMENT_UNIT 
RIGID_FRAME 
SLAB_FIELD 
TRUSS 
USERDEFINED 
NOTDEFINED 

Constructor & Destructor Documentation

◆ ~ElementAssembly()

virtual OpenLxApp::ElementAssembly::~ElementAssembly ( void  )
virtual

◆ ElementAssembly()

OpenLxApp::ElementAssembly::ElementAssembly ( )
inlineprotected

Member Function Documentation

◆ addToAssembly()

void OpenLxApp::ElementAssembly::addToAssembly ( std::shared_ptr< Element aElement)

◆ getAssembledElements()

std::vector<std::shared_ptr<Element> > OpenLxApp::ElementAssembly::getAssembledElements ( ) const

◆ getPredefinedType()

ElementAssemblyTypeEnum OpenLxApp::ElementAssembly::getPredefinedType ( ) const

◆ removeFromAssembly()

void OpenLxApp::ElementAssembly::removeFromAssembly ( std::shared_ptr< Element aElement)

◆ setPredefinedType()

void OpenLxApp::ElementAssembly::setPredefinedType ( ElementAssemblyTypeEnum  aType)

The documentation for this class was generated from the following file: