The Schematic View window allows users to browse, and perform certain operations on, many of the objects that compose a 3ds Max scene. Like Track Views, multiple Schematic Views can be opened within 3ds Max, both in modeless windows and docked in viewports.
Within a Schematic View window, a subset of the set of all Animatable objects within the 3ds Max scene is represented by a collection of rectangular "nodes." These nodes are organized in tree form (or directed acyclic graph). The set of objects displayed depends on the current filter settings, the hide/show state of the nodes, and which objects were added to the Schematic View during the traversal phase. Schematic View is a GlobalReferenceMaker
and any time it detects a change in the structure of the 3ds Max scene it performs a traversal of the scene's object network and updates the Schematic View graph. During the traversal, the actual Animatable objects (object's derived from Animatable) are responsible for adding themselves to the Schematic View and continuing the traversal by recursively calling SvTraverseAnimGraph
(...). In practice, many objects in the scene are not added to the schematic view. In general, these omitted objects are either internal data structures that might confuse the user if displayed or they are objects whose shear quantity might overwhelm the user (vertices, for example). Furthermore, although the Schematic View requires that the represented objects be derived from Animatable, there are very few restrictions on the reference pointers between objects (called "node pointers" in this section to distinguish them from 3ds Max references). In particular, node pointers need not necessarily correspond to actual 3ds Max references (though in practice they usually do). This flexibility allows the schematic view to represent object relationships in a manner different from the actual internal reference relationships. This can be useful in places where the internal structure does not agree with the user's notion of how the objects are structured (e.g., a linked list displayed as siblings under a parent node, or vice-versa).
The topology of the objects added to the schematic view must be a directed acyclic graph (DAG). Cyclic references are currently not allowed.
Currently, nodes in the schematic view are arranged in tree form even if the underlying topology is a DAG. This is accomplished by duplicating shared nodes in the DAG. The DAG is essentially "flattened" into a tree. This is also how the track view works but, as will be explained in detail later, the schematic view stores additional information about the context of "shared" nodes which allows greater insight into instance relationships in the tree (multiple objects referencing a common node).