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