SaveAs Related Table Values¶
SaveAs Related Table Values¶
1# This script shows how to save additional data related to a project. This includes data in
2# child tables linked to the main drawing or layer tables.
3
4# This script requires a DRAWINFO table linked to the DRAWINGS table (DRAWINFO.di_drawkey->DRAWINGS.d_key)
5# and a ONEINFO table linked to the ONE_UP table (ONEINFO.oi_oukey->ONE_UP.ou_key)
6
7
8ui = impact.gui
9ot = ui.output_toolbox
10
11db = impact.active_database
12ad = impact.active_drawing
13
14folder_name = "2. Personal work"
15customer_code = "DEFAULT"
16
17draw_relationship_key = "DRAWINFO.DI_DRAWKEY->DRAWINGS.D_KEY"
18oneup_relationship_key = "ONEINFO.OI_OUKEY->ONE_UP.OU_KEY"
19
20ot.clear()
21
22db = impact.active_database
23
24folder = db.projects.find(folder_name)
25
26ot.add("Located folder '" + str(folder.folder_name) + "'")
27
28d = db.create_item(ipDrawingType.dtProject, "")
29
30if not d.isNone():
31 ot.add("Created new project")
32
33 ot.add("Setting project customer")
34 d.customer = db.customers.find_by_code(customer_code)
35
36 ot.add("Adding related data for drawing")
37 draw_info = d.database_values.related_table_values.item(draw_relationship_key)
38
39 d_row1 = draw_info.add()
40
41 d_row1.save("DI_CHAR", "My First Row")
42 d_row1.save("DI_INT", 10)
43 d_row1.save("DI_DIST", 100) # mm
44
45 d_row2 = draw_info.add()
46
47 d_row2.save("DI_CHAR", "My Second Row")
48 d_row2.save("DI_INT", 20)
49
50 ot.add("Adding related data for layer (10 rows)")
51 oneup_info = d.active_layer.database_values.related_table_values.item(oneup_relationship_key)
52
53 for i in range(1, 10 + 1):
54 ou_row = oneup_info.add()
55
56 ou_row.save("OI_NAME", "OneUp Info Row" + str(i))
57 ou_row.save("OI_INT", i)
58 ou_row.save("OI_BOOL", i % 2)
59
60 if d.save_as("", "DB Related Data Test", "", folder, True):
61 ot.add("Successfully saved new project")
62
63 di = d.database_item
64
65 if di.close_and_release():
66 ot.add("Successfully closed and released")
67
68 else:
69 ot.add("Unable to close and release project")
70
71 else:
72 ot.add("Unable to save new project")
73
74else:
75 ot.add("Unable to create new project")
76
77