Reading Layer Values (Python)

Reading Layer Values (Python)
 1db = impact.active_database
 2
 3projName = "DB Mac Test 1"
 4
 5def DescribeValues(values):
 6    for i in range(1, values.field_count + 1):
 7        field = values.field_name(i)
 8        val = values.load(field)
 9
10        if isinstance(val):
11            impact.gui.output_toolbox.add(field + ": Array of " + str(len(val) - 1 - 0) + " bytes")
12        else:
13            impact.gui.output_toolbox.add(field + ": " + val)
14
15def DescribeItem(dbItem):
16    if dbItem.isNone():
17        return
18
19    DescribeValues(dbItem.values)
20
21    for layer in dbItem.layers:
22        impact.gui.output_toolbox.add("**** Layer: " + layer.name + " ****")
23        impact.gui.output_toolbox.add("Layer Key: " + str(layer.key))
24        impact.gui.output_toolbox.add("Layer Type: " + layer.type)
25        impact.gui.output_toolbox.add("Layer Type Key: " + str(layer.type_key))
26        impact.gui.output_toolbox.add("Field Count: " + str(layer.values.field_count))
27
28        DescribeValues(layer.values)
29
30impact.gui.output_toolbox.clear()
31
32impact.gui.output_toolbox.add("**** Finding Project by Name '" + projName + "' ****")
33DescribeItem(db.find_item_by_name(ipDrawingType.dtProject, projName))