Supported with:
Additional library information: Contents, Object Model Diagram
See the following sections for more information about this namespace:
For further information see:
Sample: Implementing schematic containers around schematic features
For further information see:
Sample: Implementing a schematic digitizing tool
For further information see:
Sample: Implementing a schematic digitizing tool
For further information see:
Sample: Implementing a schematic layout algorithm and its layout property page
For further information see:
Sample: Implementing a schematic rule and its property page
For further information see:
Sample: Implementing associations between GIS features and schematic features
Sample: Implementing schematic containers around schematic features
- Engine with Schematics
- ArcView with Schematics
- ArcEditor with Schematics
- ArcInfo with Schematics
Additional library information: Contents, Object Model Diagram
The Schematic library implements the non-user interface functionality of the Schematics extension. It handles the core objects of the ArcGIS Schematics extension that are used to manage schematic data and processes. The Schematics extension supports the analysis, display, and manipulation of schematic data in ArcGIS. Developers can extend this library by implementing custom schematic algorithms, custom rules, and custom builders.
See the following sections for more information about this namespace:
- Schematic database objects
- Schematic in-memory objects
- Schematic layer objects
- Schematic layout algorithm and schematic trace analyst objects
- Schematic builder and rule objects
- Linker and relation objects
Schematic database objects
The schematic database is the set of primitive objects that forms the foundation of the schematic objects. The SchematicDataset class is the central object in the schematic database. A schematic dataset is a container of schematic data such as:
- schematic data sources (SchematicDataSource class),
- schematic diagram class (SchematicDiagramClass class),
- schematic element classes (SchematicElementClass class),
- schematic folders (SchematicFolder class),
- schematic diagrams (SchematicDiagram class),
- schematic elements (SchematicNode class, SchematicLink class, SchematicNodeOnLink class, and SchematicSubLink class)
A schematic dataset resides in a geodatabase. Several schematic datasets can be stored in the same geodatabase.
A schematic dataset is also source of the ISchematicDatasetEvents and ISchematicAlgorithmEvents events. Most of them occur when a diagram is edited.
The SchematicDatasetManager is a singleton object which centralizes events coming from all schematic datasets. This helper object avoids the need to subscribe to events for any schematic dataset.
For further information see:
Sample: Implementing schematic containers around schematic featuresSchematic in-memory objects
When a diagram is being edited, the diagram is loaded in memory in order to:
- enhance performances when applying global modifications such as an algorithm layout,
- modify the diagram content in memory only without altering the schematic database.
The memory loading process does the following:
- One in-memory feature class is created by diagram and by schematic element class,
- One in-memory feature is created by schematic element.
During the diagram saving, the changes on the in-memory features are reported on the related schematic elements in the schematic database.
The SchematicInMemoryDiagram class is the central object allowing to access to the SchematicInMemoryFeatureClass.
There are four kinds of schematic in-memory feature objects:
- SchematicInMemoryFeatureNode,
- SchematicInMemoryFeatureLink,
- SchematicInMemoryFeatureNodeOnLink,
- SchematicInMemoryFeatureSubLink.
These objects give access to the topology of the diagram.
For further information see:
Sample: Implementing a schematic digitizing toolSchematic layer objects
In ArcMap, schematic data is represented in schematic layers. The SchematicLayer class is the central object for managing schematic layers. It lets you access the schematic diagram associated with a schematic layer.
A schematic layer is a composite layer composed of feature layers based on schematic element classes.
For further information see:
Sample: Implementing a schematic digitizing toolSchematic layout algorithm and schematic trace analyst objects
Schematic algorithm
Schematic layout algorithms are used to lay out schematic diagrams. Several types of predefined schematic algorithms are provided; they all implement the ISchematicAlgorithm interface.
There are three kinds of schematic layout algorithms:
- Geoschematic algorithms which are used to separate schematic elements that are visually close in your schematic diagrams while preserving the position of the schematic elements as much as possible. For example, SchematicAlgoSpatialDispatch, SchematicAlgoLinearDispatch, and SchematicAlgoPartialOverlappingLinks are geoschematic layout algorithms.
- Hierarchical algorithms which hierarchically arrange the schematic elements contained in a schematic diagram like SchematicAlgoMainLineTree, SchematicAlgoRadialTree, SchematicAlgoCompactTree, and so on.
- Schematic algorithms which are used to lay out schematic diagrams by maintaining the network connectivity, but positioning schematic node elements according to a set of rules that dictates their relative positions and normalizes the distances between these elements. For example, SchematicAlgoGrid, SchematicAlgoMainRing, and SchematicAlgoOrthogonal are schematic layout algorithms.
You can also implement your own custom schematic algorithm.
The composite algorithm (SchematicAlgoComposite) is a particular case. This algorithm allows you to chain other existing schematic algorithms.
Schematic trace analyst
Schematic trace analysts are finding algorithms that can be applied on schematic diagrams to help you analyze the schematic diagram content. They all implement the ISchematicAlgorithm interface and return a solved trace result by ISchematicAnalystTraceResult, that provides the set of schematic elements detected by the trace operation.
Four types of schematic trace task analyst are available:
- SchematicAnalystFindConnected to detect schematic elements connected to a given schematic node in a schematic diagram
- SchematicAnalystFindLoops to detect all the loops in a schematic diagram
- SchematicAnalystFindOverlappingLinks to detect all the schematic link elements that are overlapping in a schematic diagram
- SchematicAnalystFindPath to detect the shortest path between two schematic node elements in a schematic diagram
For further information see:
Sample: Implementing a schematic layout algorithm and its layout property pageSchematic builder and rule objects
Schematic builders
Schematic builders are used to generate the diagrams related to a SchematicDiagramClass class. They expect specific data and a specific context from which they are able to build/update the schematic elements contained in schematic diagrams. Three types of predefined builders are provided:
- The Standard builder, ISchematicStandardBuilder, which operates from any GIS feature class/layer or object table. It is especially dedicated to work with GIS feature classes organized into a geometric network and can also be used to generate schematic diagrams in which whole contents are built from custom queries.
- The Network Dataset builder, ISchematicNetworkDatasetBuilder, which works from solved network analyst layers,
- The XML builder, ISchematicXmlBuilder, which works from XML data
You can implement your own custom schematic builder.
Schematic rules
Schematic rules are specific tasks that are executed during schematic diagram generation and update to either simplify the diagram content or create new schematic elements such as containers around the elements contained in a diagram (relationship rules). Any schematic rule operates from the set of schematic elements created by a builder or another rule which is executed upfront. Eight types of predefined rules are provided; they all implement the ISchematicRule interface:
- Collapse Related Elements rule, SchematicCollapseRelatedElementsRule, to collapse schematic elements based on a particular schematic element class.
- Expand Links rule, SchematicExpandLinksByAttributeRule, to get schematic diagrams in which all links or some particular links related to a specified link schematic feature class have been expanded into several links based on specific values
- Feature Removal rule, SchematicFeatureRemovalRule, to remove all or some particular schematic elements related to a specified schematic element class without preserving the network topology.
- Node Reduction By Flow rule, SchematicNodeReductionRuleByFlow, to simplify schematic diagram content after all nodes based on a particular schematic element class have been removed and after the links that connected these removed nodes are reconnected so the logical flow of the network is preserved.
- Node Reduction By Priority rule, SchematicNodeReductionRuleByPriority, to get schematic diagrams after all nodes or some particular nodes based on a particular node schematic feature class have been removed and after the links that connected these removed nodes have been reconnected to a given target node so the topology is preserved.
- Relationship rule, SchematicRelationshipRule, to create/relate schematic elements contained in a schematic diagram from a relationship class
- Route Node Reduction rule, SchematicRouteNodeReductionRule, to reduce nodes along any route.
- Spatial Query rule, SchematicSpatialQueryRule, to add new schematic elements from one or more schematic element classes, based on where their associated features are located in relation to the GIS features in input.
You can implement your own custom schematic rule.
For further information see:
Sample: Implementing a schematic rule and its property pageLinker and relation objects
Schematic Linker
The SchematicLinker class handles the interfaces that allow you to manage associations between GIS features/objects and schematic elements; for example:
- Specifying the association between a GIS feature/object and a schematic element, or removing the association between a GIS feature/object and a schematic element,
- Retrieving GIS features/objects associated with specified schematic elements, and conversely.
Schematic Relation
The SchematicRelationController class handles the interfaces that allow you to control relations between schematic elements; for example:
- Creating or removing parent-child relations between schematic elements
- Managing the geometry and position of the parents in the diagrams
- Retrieving elements in relation with other elements
- Controlling the elements' behavior when their related elements are moved, and conversely
The type of geometry for the parent-child relations is controlled by the ISchematicRelationManager interface. This interface is implemented by one of the following classes: SchematicBarycenterManager or SchematicContainerManager.
For further information see:
Sample: Implementing associations between GIS features and schematic featuresSample: Implementing schematic containers around schematic features