-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprop.py
105 lines (89 loc) · 5.56 KB
/
prop.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import bpy
from bpy.types import Scene
from bpy.props import BoolProperty, StringProperty
prop_globalid = 'GlobalId'
prop_ifcproduct = 'IfcProduct'
prop_ifcbuildingstorey = 'IfcBuildingStorey'
prop_ifcproductname = 'Name'
prop_ifcproducttypename = 'Type'
prop_classification = 'Classification(s)'
prop_materials = 'Material(s)'
prop_isexternal = 'IsExternal'
prop_loadbearing = 'LoadBearing'
prop_firerating = 'FireRating'
prop_acousticrating = 'AcousticRating'
prop_basequantities = 'BaseQuantities'
prop_length = 'Length'
prop_width = 'Width'
prop_height = 'Height'
prop_grossfootprintarea = 'GrossFootprintArea'
prop_netfootprintarea = 'NetFootprintArea'
prop_area = 'Area'
prop_netarea = 'NetArea'
prop_netsidearea = 'NetSideArea'
prop_grossarea = 'GrossArea'
prop_grosssidearea = 'GrossSideArea'
prop_volume = 'Volume'
prop_netvolume = 'NetVolume'
prop_grossvolume = 'GrossVolume'
prop_workbook = 'Workbook'
class IFCProperties(bpy.types.PropertyGroup):
my_selectionload: bpy.props.StringProperty( name="Load Selection",
description="Load your previous saved selections",
default="",
maxlen=1024,
subtype="FILE_PATH")
my_ifcproduct: bpy.props.BoolProperty(name=prop_ifcproduct, default=True)
my_ifcproductname: bpy.props.BoolProperty(name=prop_ifcproductname, default=True)
my_ifcproducttypename: bpy.props.BoolProperty(name=prop_ifcproducttypename,default=True)
my_ifcbuildingstorey: bpy.props.BoolProperty(name=prop_ifcbuildingstorey, default=True)
my_ifcclassification: bpy.props.BoolProperty(name=prop_classification, default=True)
my_ifcmaterial: bpy.props.BoolProperty(name=prop_materials, default=True)
my_property_IsExternal: bpy.props.BoolProperty(name=prop_isexternal, default=False)
my_property_LoadBearing: bpy.props.BoolProperty(name=prop_loadbearing, default=False)
my_property_FireRating: bpy.props.BoolProperty(name=prop_firerating, default=False)
my_property_AcousticRating: bpy.props.BoolProperty(name=prop_acousticrating, default=False)
my_quantity_Length: bpy.props.BoolProperty(name=prop_length, default=False)
my_quantity_Width: bpy.props.BoolProperty(name=prop_width, default=False)
my_quantity_Height: bpy.props.BoolProperty(name=prop_height, default=False)
my_quantity_GrossFootprintArea: bpy.props.BoolProperty(name=prop_grossfootprintarea, default=False)
my_quantity_NetFootprintArea: bpy.props.BoolProperty(name=prop_netfootprintarea, default=False)
my_quantity_Area: bpy.props.BoolProperty(name=prop_area, default=False)
my_quantity_NetArea: bpy.props.BoolProperty(name=prop_netarea, default=False)
my_quantity_NetSideArea: bpy.props.BoolProperty(name=prop_netsidearea, default=False)
my_quantity_GrossArea: bpy.props.BoolProperty(name=prop_grossarea, default=False)
my_quantity_GrossSideArea: bpy.props.BoolProperty(name=prop_grosssidearea, default=False)
my_quantity_Volume: bpy.props.BoolProperty(name=prop_volume, default=False)
my_quantity_NetVolume: bpy.props.BoolProperty(name=prop_netvolume, default=False)
my_quantity_GrossVolume: bpy.props.BoolProperty(name=prop_grossvolume, default=False)
my_spreadsheetfile: bpy.props.StringProperty( name="Spreadsheet",
description="your .ods or .xlsx file",
default="",
maxlen=1024,
subtype="FILE_PATH")
ods_or_xlsx: bpy.props.EnumProperty(
name="File format",
items=[
("ODS", ".ods (recommended with Libre Office Calc)", "ods"),
("XLSX", ".xlsx", "xlsx"),
],
default="ODS",
)
class CustomItem(bpy.types.PropertyGroup):
name: bpy.props.StringProperty(name ="Property",
description ="Use the PropertySet name and Property name divided by a .",
default ="PropertySet.Property"
)
class CustomCollection(bpy.types.PropertyGroup):
items: bpy.props.CollectionProperty(type=CustomItem)
def register():
bpy.utils.register_class(IFCProperties)
bpy.utils.register_class(CustomItem)
bpy.utils.register_class(CustomCollection)
bpy.types.Scene.ifc_properties = bpy.props.PointerProperty(type=IFCProperties)
bpy.types.Scene.custom_collection = bpy.props.PointerProperty(type=CustomCollection)
def unregister():
bpy.utils.unregister_class(IFCProperties)
bpy.utils.unregister_class(CustomItem)
bpy.utils.unregister_class(CustomCollection)
del bpy.types.Scene.ifc_properties