OpenLexocad  27.1
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 
52  void setPredefinedType(ElementAssemblyTypeEnum aType);
53  ElementAssemblyTypeEnum getPredefinedType() const;
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
ElementAssemblyTypeEnum
Definition: ElementAssembly.h:37
An element is a generalization of all components that make up an AEC product. Those elements can be l...
Definition: Element.h:29
#define PROXY_HEADER(_openlexocadclass_, _corelexocadclass_, _type_)
Definition: Globals.h:146
ElementAssembly()
Definition: ElementAssembly.h:63
Definition: ActiveScript.h:7
The IfcElementAssembly represents complex element assemblies aggregated from several elements,...
Definition: ElementAssembly.h:32
#define FORWARD_DECL(x, y)
Definition: Globals.h:93