OpenLexocad  27.1
Beam.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, Beam)
7 
8 
13 namespace OpenLxApp
14 {
23 class LX_OPENLXAPP_EXPORT Beam : public Element
24 {
25  PROXY_HEADER(Beam, App::Beam, IFCBEAM)
26 
27 public:
28  enum class BeamTypeEnum
29  {
30  BEAM,
31  JOIST,
32  HOLLOWCORE,
33  LINTEL,
34  SPANDREL,
35  T_BEAM,
36  USERDEFINED,
37  NOTDEFINED
38 
39  };
40 
41  void setPredefinedType(BeamTypeEnum aType);
42  BeamTypeEnum getPredefinedType() const;
43 
44  virtual ~Beam(void);
45 
46  static std::shared_ptr<Beam> buildFrom2Points(std::shared_ptr<Document> aDoc,
47  double aWidth,
48  double aHeight,
49  const Geom::Pnt& aPnt1,
50  const Geom::Pnt& aPnt2);
51 
52 
53 protected:
54  Beam() {}
55 };
56 
57 } // namespace OpenLxApp
Beam()
Definition: Beam.h:54
An Beam is a horizontal, or nearly horizontal, structural member that is capable of withstanding load...
Definition: Beam.h:23
An element is a generalization of all components that make up an AEC product. Those elements can be l...
Definition: Element.h:29
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:43
BeamTypeEnum
Definition: Beam.h:28
#define PROXY_HEADER(_openlexocadclass_, _corelexocadclass_, _type_)
Definition: Globals.h:146
Definition: ActiveScript.h:7
#define FORWARD_DECL(x, y)
Definition: Globals.h:93