CFx SDK Documentation
2024 SP0
Loading...
Searching...
No Matches
SDK
CFx
bim_ifc
IfcRxProperties.h
Go to the documentation of this file.
1
2
// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3
// All rights reserved.
4
//
5
// This software and its documentation and related materials are owned by
6
// the Alliance. The software may only be incorporated into application
7
// programs owned by members of the Alliance, subject to a signed
8
// Membership Agreement and Supplemental Software License Agreement with the
9
// Alliance. The structure and organization of this software are the valuable
10
// trade secrets of the Alliance and its suppliers. The software is also
11
// protected by copyright law and international treaty provisions. Application
12
// programs incorporating this software must include the following statement
13
// with their copyright notices:
14
//
15
// This application incorporates Open Design Alliance software pursuant to a license
16
// agreement with Open Design Alliance.
17
// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18
// All rights reserved.
19
//
20
// By use of this software, its documentation or related materials, you
21
// acknowledge and accept the above terms.
23
24
#ifndef _IFC_RX_PROPERTIES_H
25
#define _IFC_RX_PROPERTIES_H
26
27
#include "
OdaCommon.h
"
28
#include "daiRxProperties.h"
29
#include "
IfcValueTypes.h
"
30
31
#undef ODRX_DECLARE_RX_PROPERTY_RO_TREE
32
#define ODRX_DECLARE_RX_PROPERTY_RO_TREE(Object, Name, Type, Category, Description, HierarchyLevel) \
33
struct Object ## Name ## Property : OdRxProperty {\
34
static OdRxMemberPtr createObject(const OdRxClass* owner)\
35
{\
36
OdRxMemberPtr res = OdRxObjectImpl<Object ## Name ## Property>::createObject();\
37
((Object ## Name ## Property*)res.get())->init(__OD_T(#Name), &OdRxValueType::Desc<Type>::value(), owner);\
38
if( OdString::kEmpty != Description ) \
39
((Object ## Name ## Property*)res.get())->attributes().add(OdRxDescriptionAttribute::createObject(OD_T(Description))); \
40
if( OdString::kEmpty != Category ) \
41
((Object ## Name ## Property*)res.get())->attributes().add(OdRxUiPlacementAttribute::createObject(OD_T(Category), 1)); \
42
if( OdString::kEmpty != HierarchyLevel ) \
43
((Object ## Name ## Property*)res.get())->attributes().add(OdDAIRxHierarchyLevelAttribute::createObject()); \
44
return res;\
45
}\
46
virtual OdResult subGetValue(const OdRxObject* pO, OdRxValue& value) const ODRX_OVERRIDE;\
47
virtual bool isReadOnly(const OdRxObject*) const ODRX_OVERRIDE { return true; }\
48
}
49
50
#undef ODRX_DAI_DECLARE_RX_PROPERTY_COLLECTION_TREE
51
#define ODRX_DAI_DECLARE_RX_PROPERTY_COLLECTION_TREE(Object, Name, Type, Category, Description, HierarchyLevel) \
52
struct Object ## Name ## Property : OdRxCollectionProperty {\
53
static OdRxMemberPtr createObject(const OdRxClass* owner)\
54
{\
55
OdRxMemberPtr res = OdRxObjectImpl<Object ## Name ## Property>::createObject();\
56
((Object ## Name ## Property*)res.get())->init(__OD_T(#Name), &OdRxValueType::Desc<Type>::value(), owner);\
57
((Object ## Name ## Property*)res.get())->attributes().add(OdIfcRxDisplayAsAttribute::createObject(false, true)); \
58
if( OdString::kEmpty != Description ) \
59
((Object ## Name ## Property*)res.get())->attributes().add(OdRxDescriptionAttribute::createObject(OD_T(Description))); \
60
if( OdString::kEmpty != Category ) \
61
((Object ## Name ## Property*)res.get())->attributes().add(OdRxUiPlacementAttribute::createObject(OD_T(Category), 1)); \
62
if( OdString::kEmpty != HierarchyLevel ) \
63
((Object ## Name ## Property*)res.get())->attributes().add(OdDAIRxHierarchyLevelAttribute::createObject()); \
64
return res;\
65
}\
66
virtual OdRxValueIteratorPtr subNewValueIterator(const OdRxObject* pO) const ODRX_OVERRIDE;\
67
virtual OdResult subTryGetCount(const OdRxObject* pO, int& count) const ODRX_OVERRIDE;\
68
}
69
70
#endif
// _IFC_RX_PROPERTIES_H
IfcValueTypes.h
OdaCommon.h
Generated on Wed Apr 5 2023 17:29:09