- Engine with Schematics
- ArcGIS for Desktop Basic with Schematics
- ArcGIS for Desktop Standard with Schematics
- ArcGIS for Desktop Advanced 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:
- Database objects
- In-memory objects
- Layer objects
- Layout algorithm objects
- Trace analyst objects
- Builder objects
- Rule objects
- Linker objects
- Relation objects
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 can contain the following types of schematic data:
- Data sources (SchematicDataSource)
- Diagram class (SchematicDiagramClass)
- Element classes (SchematicElementClass)
- Folders (SchematicFolder)
- Diagrams (SchematicDiagram)
- Elements (SchematicNode, SchematicLink, SchematicNodeOnLink, and SchematicSubLink)
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 interfaces. Typically, the events occur when a diagram is edited.
The SchematicDatasetManager class is a singleton object that 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 featuresIn-memory objects
When a diagram is edited, the diagram is loaded in memory to accomplish the following:
- 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 accomplishes 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 process, changes to the in-memory features are reported on the related schematic elements in the schematic database.
The SchematicInMemoryDiagram class is the central object allowing access to the SchematicInMemoryFeatureClass.
The schematic in-memory feature objects are as follows:
- SchematicInMemoryFeatureNode
- SchematicInMemoryFeatureLink
- SchematicInMemoryFeatureNodeOnLink
- SchematicInMemoryFeatureSubLink
These objects allow access to the topology of the diagram.
For further information see:
Sample: Implementing a schematic digitizing toolLayer 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 containing feature layers based on schematic element classes.
Layout algorithm objects
Schematic layout algorithms are used to lay out schematic diagrams. Several types of predefined schematic algorithms are provided, and they all implement the ISchematicAlgorithm interface.
The schematic layout algorithms are as follows:
- Geoschematic algorithms - 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. SchematicAlgoSpatialDispatch, SchematicAlgoLinearDispatch, and SchematicAlgoPartialOverlappingLinks are geoschematic layout algorithms.
- Hierarchical algorithms - Hierarchically arrange the schematic elements contained in a schematic diagram. SchematicAlgoMainLineTree, SchematicAlgoRadialTree, and SchematicAlgoCompactTree are hierarchical algorithms.
- Schematic algorithms - 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. SchematicAlgoGrid, SchematicAlgoMainRing, and SchematicAlgoOrthogonal are schematic layout algorithms.
You can also implement your own custom schematic algorithm.
The composite algorithm (SchematicAlgoComposite) is a unique case. This algorithm allows you to chain other existing schematic algorithms.
For further information see:
Sample: Implementing a schematic layout algorithm and its layout property pageTrace analyst objects
Schematic trace analyst objects are used to find algorithms that can be applied to 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.
The schematic trace task analysts are as follows:
- SchematicAnalystFindConnected - Detects schematic elements connected to a given schematic node in a schematic diagram.
- SchematicAnalystFindLoops - Detects the loops in a schematic diagram.
- SchematicAnalystFindOverlappingLinks - Detects the schematic link elements that are overlapping in a schematic diagram.
- SchematicAnalystFindPath - Detects the shortest path between two schematic node elements in a schematic diagram.
Builder objects
Schematic builders are used to generate diagrams that are related to a SchematicDiagramClass class. They expect specific data and a specific context from which they build or update the schematic elements contained in schematic diagrams. The predefined schematic builders are as follows:
- Standard builder (ISchematicStandardBuilder) - Operates from a geographic information system (GIS) feature class or layer or an object table. It is essentially dedicated to work with GIS feature classes that are organized into a geometric network and can also be used to generate schematic diagrams in which whole contents are built from custom queries.
- Network Dataset builder (ISchematicNetworkDatasetBuilder) - Works from solved Network Analyst layers.
- XML builder (ISchematicXmlBuilder) - Works from Extensible Markup Language (XML) data.
You can also implement your own custom schematic builder.
Rule objects
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). A schematic rule operates from the set of schematic elements created by a builder or another rule that is executed upfront. The following table lists the predefined rules are provided; they all implement the ISchematicRule interface:
Rule |
Class |
Description |
Collapse Related Elements |
Collapses schematic elements based on a particular schematic element class. | |
Expand Links |
Gets schematic diagrams in which all links or particular links related to a specified link schematic feature class have been expanded into several links based on specific values. | |
Feature Removal |
Removes all or some particular schematic elements related to a specified schematic element class without preserving the network topology. | |
Node Reduction By Flow |
Simplifies 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 |
Gets 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 |
Creates or relates schematic elements contained in a schematic diagram from a relationship class. | |
Route Node Reduction |
Reduces nodes along a route. | |
Spatial Query |
Adds 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 also implement your own custom schematic rule.
For further information see:
Sample: Implementing a schematic rule and its property pageLinker objects
The SchematicLinker class handles the interfaces that allow you to manage associations between GIS features and objects and schematic elements. The following are examples:
- Specifying the association between a GIS feature or object and a schematic element, or removing the association between a GIS feature or object and a schematic element.
- Retrieving GIS features or objects associated with specified schematic elements, and vice versa.
For further information see:
Sample: Implementing associations between GIS features and schematic featuresRelation objects
The SchematicRelationController class handles the interfaces that allow you to control relations between schematic elements. The following are examples:
- Creating or removing parent-child relations between schematic elements.
- Managing the geometry and position of the parents in the diagrams.
- Retrieving elements in relation to other elements.
- Controlling the behavior of the elements when their related elements are moved, and vice versa.
The type of geometry for the parent-child relations is controlled by the ISchematicRelationManager interface. This interface is implemented by the SchematicBarycenterManager or SchematicContainerManager class.