Finding Items¶
Finding Items¶
1db = impact.active_database
2
3
4def describe_item(db_item):
5 if db_item is None:
6 return
7
8 values = db_item.values
9
10 impact.gui.output_toolbox.add("GUID: " + values.load("D_GUID"))
11 impact.gui.output_toolbox.add("Code: " + str(db_item.code))
12 impact.gui.output_toolbox.add("Name: " + str(db_item.reference))
13 impact.gui.output_toolbox.add("Key: " + str(db_item.key))
14 impact.gui.output_toolbox.add("Type: " + str(db_item.drawing_type))
15 impact.gui.output_toolbox.add("customer: " + str(db_item.customer.name))
16 impact.gui.output_toolbox.add("folder: " + str(db_item.folder.display_path))
17
18 impact.gui.output_toolbox.add("Layer by GUID (5c35a3a1-f5a0-434e-8c37-00ec8234034e):")
19 describe_layer(db_item.layers.by_guid_string("5c35a3a1-f5a0-434e-8c37-00ec8234034e"))
20 impact.gui.output_toolbox.add("Layer by Key (4468):")
21 describe_layer(db_item.layers.by_key(4468))
22 impact.gui.output_toolbox.add("*****")
23
24def describe_layer(db_layer):
25 if db_layer is None:
26 return
27
28 impact.gui.output_toolbox.add(" Name: " + str(db_layer.name))
29
30 values = db_layer.values
31
32 impact.gui.output_toolbox.add(" GUID: " + values.load("L_GUID"))
33 impact.gui.output_toolbox.add(" Key: " + str(db_layer.key))
34
35
36
37impact.gui.output_toolbox.clear()
38
39impact.gui.output_toolbox.add("**** Finding Item by Key 853 ****")
40describe_item(db.find_item_by_key(ipDrawingType.dtProject, 130))
41
42impact.gui.output_toolbox.add("**** Finding Item by Code 'P059598' ****")
43describe_item(db.find_item_by_code(ipDrawingType.dtProject, "P059598"))
44
45impact.gui.output_toolbox.add("**** Finding Item by Name 'DB Mac Test 1' ****")
46describe_item(db.find_item_by_name(ipDrawingType.dtProject, "DB Mac Test 1"))
47
48impact.gui.output_toolbox.add("**** Finding Item by GUID '39e3f132-667c-4776-89f4-fea6a0517484' ****")
49describe_item(db.find_item_by_guid_string(ipDrawingType.dtProject, "39e3f132-667c-4776-89f4-fea6a0517484"))
50
51impact.gui.output_toolbox.add("**** Finding Items by SQL 'D_NAME like 'DB Mac Test %'' ****")
52
53items = db.find_items_by_sql(ipDrawingType.dtProject, "D_NAME like 'DB Mac Test %'")
54
55# Wrap variant return items with Impact.py wrapper
56if items is not None:
57 items = [IDatabaseItem(item) for item in items]
58
59for db_item in items:
60 describe_item(db_item)
61
62# give a project and its layers GUIDs
63db_item = db.find_item_by_key(ipDrawingType.dtProject, 851)
64
65if db_item is not None:
66 db_item.save_guid_string()
67
68 for db_layer in db_item.layers:
69 db_layer.save_guid_string()