Detailed Item Info

Detailed Item Info
 1# Create a local variable for the active database
 2
 3# Create a local variable for the active database
 4db = impact.active_database
 5
 6# Create a local variable for the output toolbox
 7ot = impact.gui.output_toolbox
 8
 9# Create a local variable for a convertor
10convertor = impact.system.convertor
11
12# Create a local variable for the folder to find
13folder_name = "4. Examples"
14
15
16def describe_layer(layer):
17    ot.add("Key: " + str(layer.key))
18    ot.add("Name: " + str(layer.name))
19    ot.add("Type: " + str(layer.type))
20    ot.add("TypeKey: " + str(layer.type_key))
21    ot.add("From Master: " + str(layer.from_master))
22    ot.add("Locked: " + str(layer.locked))
23    ot.add("Deleted: " + str(layer.deleted))
24
25    if not layer.user.isNone():
26        ot.add("User: " + str(layer.user.login_id))
27
28def describe_revision(revision):
29    ot.add("Key: " + str(revision.key))
30    ot.add("Number: " + str(revision.number))
31    ot.add("Comments: " + str(revision.comments))
32    ot.add("Created: " + str(revision.created_date_time))
33    ot.add("User: " + str(revision.user.login_id))
34    ot.add("HasGeometry: " + str(revision.has_geometry))
35
36def describe_item(db_item):
37    if db_item is None:
38        return
39
40    ot.add("Code: " + str(db_item.code))
41    ot.add("Name: " + str(db_item.reference))
42    ot.add("description: " + str(db_item.description))
43    ot.add("Key: " + str(db_item.key))
44    ot.add("Type: " + str(db_item.drawing_type))
45    ot.add("customer: " + str(db_item.customer.name))
46    ot.add("folder: " + str(db_item.folder.display_path))
47    ot.add("Created: " + str(db_item.created_date_time))
48    ot.add("Created By: " + str(db_item.created_by.login_id))
49    ot.add("Modified: " + str(db_item.modified_date_time))
50    ot.add("Modified By: " + str(db_item.modified_by.login_id))
51    ot.add("Being Modified: " + str(db_item.being_modified))
52    ot.add("Master: " + str(db_item.master))
53    ot.add("version: " + str(db_item.version))
54    ot.add("Size: " + str(convertor.bytes_as_string(db_item.size, True)))
55
56    if not db_item.customer_locked_by.isNone():
57        ot.add("customer Locked User: " + str(db_item.customer_locked_by.login_id))
58
59    if not db_item.project_info_locked_by.isNone():
60        ot.add("Project Info Locked User: " + str(db_item.project_info_locked_by.login_id))
61
62    ot.add("Layer Count: " + str(db_item.layers.count))
63    for i in range(1, db_item.layers.count  + 1):
64        describe_layer(db_item.layers.item(i))
65
66    # Alternative syntax
67    # for each layer in db_item.layers
68    # DescribeLayer(layer)
69    # next
70
71    ot.add("Revision Count: " + str(db_item.revisions.count))
72    for i in range(1, db_item.revisions.count  + 1):
73        describe_revision(db_item.revisions.item(i))
74
75    # Alternative syntax
76    # for each revision in db_item.revisions
77    # DescribeRevision(revision)
78    # next
79
80    ot.add("*****")
81
82
83# Clear the output toolbox
84ot.clear()
85
86ot.add("**** Finding folder '" + str(folder_name) + "' ****")
87
88# Find the folder
89folder = db.projects.find(folder_name)
90
91# Check the folder was found
92if not folder.isNone():
93
94    # Iterate the items in the folder
95    for item in folder.items:
96        describe_item(item)
97else:
98    ot.add("Unable to find folder '" + str(folder_name) + "'")
99