OpenLexocad  28.0
ElementAssembly.h
Go to the documentation of this file.
1 #pragma once
2 #include <OpenLxApp/Element.h>
3 
4 #include <memory>
5 
6 FORWARD_DECL(App, ElementAssembly)
7 
8 namespace OpenLxApp
9 {
32 class LX_OPENLXAPP_EXPORT ElementAssembly : public Element
33 {
34  PROXY_HEADER(ElementAssembly, App::ElementAssembly, IFCELEMENTASSEMBLY)
35 
36 public:
38  {
39  ACCESSORY_ASSEMBLY, // Assembled accessories or components.
40  ARCH, // A curved structure.
41  BEAM_GRID, // Interconnected beams, located in one(typically horizontal) plane.
42  BRACED_FRAME, // A rigid frame with additional bracing members.
43  GIRDER, // A beam - like superstructure.
44  REINFORCEMENT_UNIT, // Assembled reinforcement elements.
45  RIGID_FRAME, // A structure built up of beams, columns, etc.with moment - resisting joints.
46  SLAB_FIELD, // Slabs, laid out in one plane.
47  TRUSS, // A structure built up of members with(quasi) pinned joint.
48  USERDEFINED, // User - defined element assembly.
49  NOTDEFINED, // Undefined element assembly.
50  };
51 
54 
55  void addToAssembly(std::shared_ptr<Element> aElement);
56  void removeFromAssembly(std::shared_ptr<Element> aElement);
57  std::vector<std::shared_ptr<Element>> getAssembledElements() const;
58 
59  virtual ~ElementAssembly(void);
60 
61 
62 protected:
64 };
65 
66 } // namespace OpenLxApp
OpenLxApp
Definition: ActiveScript.h:10
Element.h
FORWARD_DECL
#define FORWARD_DECL(x, y)
Definition: Globals.h:93
OpenLxApp::ElementAssembly::ElementAssembly
ElementAssembly()
Definition: ElementAssembly.h:63
OpenLxApp::Element
An element is a generalization of all components that make up an AEC product. Those elements can be l...
Definition: Element.h:30
OpenLxApp::ElementAssembly::removeFromAssembly
void removeFromAssembly(std::shared_ptr< Element > aElement)
OpenLxApp::ElementAssembly::ElementAssemblyTypeEnum
ElementAssemblyTypeEnum
Definition: ElementAssembly.h:38
OpenLxApp::ElementAssembly::setPredefinedType
void setPredefinedType(ElementAssemblyTypeEnum aType)
OpenLxApp::ElementAssembly::addToAssembly
void addToAssembly(std::shared_ptr< Element > aElement)
OpenLxApp::ElementAssembly::~ElementAssembly
virtual ~ElementAssembly(void)
OpenLxApp::ElementAssembly
The IfcElementAssembly represents complex element assemblies aggregated from several elements,...
Definition: ElementAssembly.h:33
OpenLxApp::ElementAssembly::getAssembledElements
std::vector< std::shared_ptr< Element > > getAssembledElements() const
OpenLxApp::ElementAssembly::getPredefinedType
ElementAssemblyTypeEnum getPredefinedType() const
PROXY_HEADER
#define PROXY_HEADER(_openlexocadclass_, _corelexocadclass_, _type_)
Definition: Globals.h:146