This document is archived and information here might be outdated.  Recommended version.


Schematic

Schematic


Supported with:
  • Engine with Schematics
  • ArcGIS for Desktop Basic with Schematics
  • ArcGIS for Desktop Standard with Schematics
  • ArcGIS for Desktop Advanced with Schematics
Library dependencies: Version, System, SystemUI, Geometry, GraphicsCore, Display, Server, Output, Geodatabase, GISClient, DataSourcesFile, DataSourcesGDB, DataSourcesOleDB, DataSourcesRaster, DataSourcesNetCDF, GeoDatabaseDistributed, GeoDatabaseExtensions, Carto, NetworkAnalysis, Location, GeoAnalyst, Animation, Maplex, Geoprocessing, NetworkAnalyst

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

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:
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 features

In-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:
These objects allow access to the topology of the diagram.

For further information see:

Sample: Implementing a schematic digitizing tool

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 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:
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 page

Trace 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:

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 page

Linker 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 features

Relation 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.

For further information see:

Sample: Implementing schematic containers around schematic features

See Also:

Migrating schematic custom code to ArcGIS 10