Getting Started
Understanding spatial search indexes
In its simplest form, a spatial index is the bounding box that encloses the bounding boxes of all item revisions of an item.
A spatial index is also the bounding box that encloses all the extents of the constituent substructure (that is, subassemblies).
When Teamcenter calculates spatial indexes, it rolls up the boxes up wherever they are used. Consequently, the boxes of Rev A, Rev B, and Rev C are rolled into the index of item A. This index is saved separately to represent item A's volume and is then propagated upward. It is transformed into the coordinate space of its parent in the structure. The parent's own index is extended to accommodate the transformed indexes of all its children.
The spatial indexes are updated when Teamcenter processes requests on the index update queue. The update queue contains items, occurrence threads, and appearance path nodes (APNs) that are processed in batches. The queue is processed in batches on a first in, first out (FIFO) basis. Teamcenter does not wait until the queue is full, but is configured with a maximum batch size for optimum scalability. Only certain types of objects are placed in the queue, for example, changes to a bounding box attached to an item revision causes Teamcenter to place the corresponding item in the queue. Likewise, a change to a transform causes Teamcenter to place the corresponding occurrence thread in the queue when the occurrence is saved in the database.
You create spatial indexes when you run the qsearch_process_queue utility to process the queue and can optionally validate the indexes by running the same utility with the check_structure_indexes option specified.
Note: There is a single indexer (qsearch_process_queue process) for each database.
Internally, a spatial search with spatial indexes is a BOM expansion guided by the index. Teamcenter traverses down one level and finds any indexes that meet the specific spatial criteria. It prunes out nonmatching indexes and continues the traversal down to the next level. Pruning removes subtrees and discards unnecessary parts of the structure, contributing to the speed of the search. It also processes overrides similarly. After configuration of the necessary lines, Teamcenter validates the results against actual bounding boxes and TruShape data.
To correctly configure the data, Teamcenter generates a partial BOM structure. The time it spends performing a search typically includes:
- Creating the partial BOM structure (50 to 70% of the total time).
- Spatial filtering by bounding boxes (10 to 20% of the total time).
- Configuring variants and processing properties (10 to 20% of the total time).
The lower the variation in geometry between different revisions of the same item, the better the search engine performs. The greater the correlation between the product structure and the geometry breakdown, the better the search engine performs.
Similarly, attribute searches require a partial BOM structure configuration, using objects that satisfy the given attribute search criteria. Teamcenter first searches for the objects in the database and then traverses up all BOM configurations. Some of the traversals may be outside of the structure you are searching. However, implementation of product scoping avoids unnecessary traversals. Teamcenter traverses up until it reaches the product in which the required results are found and the final result is the same.
Source: https://docs.sw.siemens.com/en-US/doc/282219420/PL20251212545240207.plm00301/xid598521 · retrieved 2026-07-11