Finding Items (Python)

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