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