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()