-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsetObjDataTest.py
More file actions
61 lines (44 loc) · 1.16 KB
/
setObjDataTest.py
File metadata and controls
61 lines (44 loc) · 1.16 KB
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
import rhinoscriptsyntax as rs
import trkRhinoPy as trp
objs = rs.GetObjects('select objects', preselect=True)
rs.EnableRedraw(False)
keys = 'usage func type'
def valuesFromLayer(obj):
layer = rs.ObjectLayer(obj)
if "::" in layer:
layer = layer.split("::")
layer = layer[-1]
if " " in layer:
values = layer.split(" ")
return values
else:
return [layer]
def setValueByLayer(obj, keys):
keys = keys.split()
values = valuesFromLayer(obj)
# values[1], values[-1] = values[-1], values[1]
kv = zip(keys, values)
map(lambda x: rs.SetUserText(obj, x[0], x[1]), kv)
def Func(x):
valuesFromLayer(x)
setValueByLayer(x,keys)
trp.setObjAreaValue(x)
trp.setBrepHeight(x)
def setClass(obj):
classKeys = 'units public'
try:
func = rs.GetUserText(obj, "func")
if func in classKeys:
classValue = func
else:
classValue = "na"
rs.SetUserText(obj, "class", classValue)
except:
return
def applyFunc(objs):
map(Func, objs)
map(setClass, objs)
if objs:
applyFunc(objs)
'''class data'''
rs.EnableRedraw(True)