OpenLexocad  27.1
OpenLxApp::BuildingElementProxy Class Reference

The BuildingElementProxy is a proxy definition that provides the same functionality as subtypes of BuildingElement, but without having a predefined meaning of the special type of building element, it represents. Proxies can also be used as spatial place holders or provisions, that are later replaced by special types of elements. One use of the proxy object is a provision for voids, i.e. where a particular volume of space is requested by an engineering function that might later be accepted or rejected. If accepted it is transformed into a void within a building element, like a wall opening, or a slab opening. The provision for voids is exchanged as an BuildingElementProxy with the PredefinedType = ProvisionForVoid. Such proxy shall have a swept solid geometry, where the profile of the swept solid lies on/near the surface of the referred building element and the extrusion depths is equal to or bigger then (in case of round or otherwise irregular element shape) the thickness of the building element. The appropriate property set should be attached. In addition to the provision for voids, the building element proxy can also represent a provision for space, often the necessary space allocation for mechanical equipment that will be determined in a later design phase. The provision for space is exchanged as an IfcBuildingElementProxy with the PredefinedType = ProvisionForSpace. More...

#include <BuildingElementProxy.h>

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

Public Types

enum  BuildingElementProxyTypeEnum {
  BuildingElementProxyTypeEnum::COMPLEX, BuildingElementProxyTypeEnum::ELEMENT, BuildingElementProxyTypeEnum::PARTIAL, BuildingElementProxyTypeEnum::PROVISIONFORVOID,
  BuildingElementProxyTypeEnum::USERDEFINED, BuildingElementProxyTypeEnum::NOTDEFINED
}
 

Public Member Functions

void setPredefinedType (BuildingElementProxyTypeEnum aType)
 
BuildingElementProxyTypeEnum getPredefinedType () const
 
virtual ~BuildingElementProxy (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

 BuildingElementProxy ()
 
- 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 BuildingElementProxy is a proxy definition that provides the same functionality as subtypes of BuildingElement, but without having a predefined meaning of the special type of building element, it represents. Proxies can also be used as spatial place holders or provisions, that are later replaced by special types of elements. One use of the proxy object is a provision for voids, i.e. where a particular volume of space is requested by an engineering function that might later be accepted or rejected. If accepted it is transformed into a void within a building element, like a wall opening, or a slab opening. The provision for voids is exchanged as an BuildingElementProxy with the PredefinedType = ProvisionForVoid. Such proxy shall have a swept solid geometry, where the profile of the swept solid lies on/near the surface of the referred building element and the extrusion depths is equal to or bigger then (in case of round or otherwise irregular element shape) the thickness of the building element. The appropriate property set should be attached. In addition to the provision for voids, the building element proxy can also represent a provision for space, often the necessary space allocation for mechanical equipment that will be determined in a later design phase. The provision for space is exchanged as an IfcBuildingElementProxy with the PredefinedType = ProvisionForSpace.

Other usages of BuildingElementProxy include:

  • The BuildingElementProxy can be used to exchange special types of building elements for which the current specification does not yet provide a semantic definition.
  • The BuildingElementProxy can also be used to represent building elements for which the participating applications can not provide a semantic definition.
See also
Documentation from IFC4: IfcBuildingElementProxy

Member Enumeration Documentation

◆ BuildingElementProxyTypeEnum

Enumerator
COMPLEX 
ELEMENT 
PARTIAL 
PROVISIONFORVOID 
USERDEFINED 
NOTDEFINED 

Constructor & Destructor Documentation

◆ ~BuildingElementProxy()

virtual OpenLxApp::BuildingElementProxy::~BuildingElementProxy ( void  )
virtual

◆ BuildingElementProxy()

OpenLxApp::BuildingElementProxy::BuildingElementProxy ( )
inlineprotected

Member Function Documentation

◆ getPredefinedType()

BuildingElementProxyTypeEnum OpenLxApp::BuildingElementProxy::getPredefinedType ( ) const

◆ setPredefinedType()

void OpenLxApp::BuildingElementProxy::setPredefinedType ( BuildingElementProxyTypeEnum  aType)

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