BIMHome v1.0.0
BIMHome接口文档说明
IPropertyAccessor.h
浏览该文件的文档.
1/************************************************************************
2* @file IPropertyAccessor.h
3*
4* @brief 属性访问器
5*
6* @details 属性访问器
7*
8* @author sunpeng
9*
10* @version 1.0
11*
12* @date 2025-05-29
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17
18#ifndef BIMHOMEAPP_APP_IPROPERTYACCESSOR_H
19#define BIMHOMEAPP_APP_IPROPERTYACCESSOR_H
20
21#include "BHGlobal.h"
22#include <boost/any.hpp>
23
24
26// 基本类型
27#define BIMHomeProTypeBool "bool"
28#define BIMHomeProTypeInt "int"
29#define BIMHomeProTypeLong "long"
30#define BIMHomeProTypeFloat "float"
31#define BIMHomeProTypeDouble "double"
32#define BIMHomeProTypeStdString "std::string" //字符串属性值必须是 std::string("xxx") 这种类型(std::string)
33#define BIMHomeProTypeString "string" //字符串属性值必须是 std::string("xxx") 这种类型(std::string)
34
35// 容器类型
36#define BIMHomeProTypeStdVectorInt "std::vector<int>"
37#define BIMHomeProTypeStdVectorFloat "std::vector<float>"
38#define BIMHomeProTypeStdVectorDouble "std::vector<double>"
39#define BIMHomeProTypeStdVectorString "std::vector<std::string>"
40#define BIMHomeProTypeStdMapStrongAndString "std::map<std::string, std::string>"
41
42// 特殊类型
43#define BIMHomeProTypeFileIncluded "FileIncluded"
44#define BIMHomeProTypeLinkList "std::vector<App::IDcoumentObject*>"
45#define BIMHomeProTypeLink "App::IDcoumentObject*"
46#define BIMHomeProTypeStdVectorVector3d "std::vector<Base::Vector3d>"
47#define BIMHomeProTypeVector3d "Base::Vector3d"
48#define BIMHomeProTypeColor "App::Color"
49#define BIMHomeProTypeLinkSub "LinkSub"
50
51//几何线条类型
52#define BIMHomeProTypePolyLine "std::vector<std::shared_ptr<Curve>>"
53
54namespace App
55{
61 class AppExport IPropertyAccessor
62 {
63 public:
64
65
76 virtual bool addProperty(const char* type, const char* name, const boost::any& delValue, bool readOnly = false, bool hidden = false) = 0;
77
86 virtual void setProperty(const char* name, const boost::any& value, bool readOnly = false, bool hidden = false) = 0;
87
94 virtual boost::any getPropertyValue(const char* name) = 0;
95
102 virtual bool hasPropertyByGivingName(const char* name) = 0;
103
104 };
105}
106
107#endif // BIMHOMEAPP_APP_IPROPERTYACCESSOR_H
virtual boost::any getPropertyValue(const char *name)=0
获取属性值
virtual void setProperty(const char *name, const boost::any &value, bool readOnly=false, bool hidden=false)=0
设置属性值
virtual bool hasPropertyByGivingName(const char *name)=0
检查是否存在指定名称的属性
virtual bool addProperty(const char *type, const char *name, const boost::any &delValue, bool readOnly=false, bool hidden=false)=0
添加新属性
属性访问器接口类
Definition IPropertyAccessor.h:62
Definition BaseFigureFactory.h:28