•Diagram types are visible unless specifically hidden.
•All definition types are initially deemed disabled.
•The set of enabled diagram types is reviewed and all the symbol types resident on those diagrams are noted.
•The definition types needed to support those diagram and symbol types are then enabled.
•Any definition types explicitly enabled (using the “Show definition” command) are enabled.
•A few definition types need to be enabled. These are principally the types that can be “addressed” such as “Test Plan” and “Change Request”.
•The reference properties of these enabled diagrams, symbols and definitions are then reviewed. Any type that is referenced but is not yet enabled is also enabled. This process is iterated until there are no referenced types that are not enabled.
•Any definition types requested to be hidden are hidden if they are not needed to define symbols.
The purpose of this logic is to include in the user’s view only those object types deemed relevant to the diagram types that are enabled. In essence, it assumes that the primary “driving” issue is the set of enabled diagram types.