Count and Find Layers by Query¶
Count and Find Layers by Query¶
1# This example shows how to count and find ONE_UP layers using a Database Query
2# having a single criterion on LAYERS.l_name
3
4ot = impact.gui.output_toolbox
5ot.clear()
6
7db = impact.active_database
8settings = db.find_master_tool_settings(ipMasterSettingType.mstDBQuery)
9
10if settings is not None:
11 query_name = "Name contains"
12 setting = settings.item(query_name)
13 if not setting.isNone():
14 criteria = setting.criteria
15 criterion = criteria.item(1)
16 criterion.value = "base"
17
18 CountOpts = impact.creator.count_items_options()
19 CountOpts.query_mts = setting
20 CountOpts.layer_table_context = "ONE_UP"
21 q_count = db.count_layers(CountOpts)
22 ot.add("Found " + str(q_count) + " items")
23
24 FindOpts = impact.creator.find_items_options()
25 FindOpts.query_mts = setting
26 FindOpts.layer_table_context = "ONE_UP"
27 FindOpts.order_ascending = False
28 FindOpts.order_by = "DRAWINGS.D_NAME"
29 layers = db.find_layers(FindOpts)
30 for layer in layers:
31 proj_name = layer.database_item.reference
32 ot.add(str(proj_name) + " - " + layer.name)
33 else:
34 ot.add("Count not find query: " + str(query_name))