ArcGIS Server Banner

Topology and versioned geodatabases

Topology and versioned geodatabases

Release 9.3 E-mail This TopicPrintable VersionGive Us feedback
Working with topology in versioned geodatabases is relatively straightforward. But first, you need to understand some version-based workflows and the behavior of topology in a versioned environment.

Adding to and changing the schema of a versioned geodatabase

Making any schema changes to a geodatabase dataset requires that you first register it as unversioned, make the schema changes, then register it as versioned to begin using it.

Creating a topology in a versioned geodatabase

The process for creating a new topology or changing the schema of an existing topology in a versioned feature dataset requires that you follow the steps for making schema changes to a versioned geodatabase. First, you must unregister the feature dataset as versioned. Then, you can create a topology using the typical creation steps, and finally, declare that your feature dataset is versioned. Here are the steps:

1. Create a custom toolbar in ArcCatalog for working with versioned geodatabases.

2. Unregister the versioned feature dataset.

3. Create your new topology.

See Creating a topology.

4. Click the feature dataset and click Register As Versioned on your custom toolbar.

Dirty areas in versioned feature classes

A number of editors can simultaneously edit a feature dataset and its topology.

The following sections describe the results of a reconcile on dirty areas, errors, exceptions, and potential conflicts. In each case, the results are based on a reconcile in which a parent and child version have both been updated since the child version was created. If the parent version is not edited before the child version is reconciled, the results of the reconcile will be the contents of the child version. In each example, Version2 is created as a child of Version1. Both versions are then edited in the manner described in the example; then Version2 is reconciled against Version1. For the illustrations in the following examples, use the following as a legend:


Legend for interpreting the examples below

Results of the reconcile on dirty areas can be summarized as

Dirty areas created as a result of the reconcile process

There are a number of scenarios in which a reconcile can result in new dirty areas that did not exist in the parent or child due to cluster processing during the validate process. In the following example, both versions contain polygons that share edges in a topology. A polygon is split in the child version, and the dirty area is validated.

Splitting a polygon deletes the original feature and replaces it with two new ones. When the dirty area is validated, cluster processing introduces new vertices into the shared edges of the adjacent polygons. When the versions are reconciled, all the features that have been modified in the child version—the split polygons and the polygons with new vertices added by cluster processing—are covered by dirty areas.


A reconcile can result in new dirty areas that did not exist in the parent or child

The following example illustrates why this is necessary. Suppose that new features were created in two versions, and the resulting dirty areas were validated, resulting in no errors. On a reconcile, dirty areas must be created so that potential errors introduced by merging the changes from the two versions together can be discovered. In this example, features added in Version1 and Version2 overlap each other, which is a violation of the Must not overlap rule:


A reconcile can result in new dirty areas that did not exist in the parent or child

Error features and versioned feature classes

Error features and error features marked as exceptions have special behavior for how they are treated during the version reconcile process. Error features can only be updated by repairing the error (making an edit) or by marking an error as an exception.

The results of a reconcile on errors and exceptions in the parent version can be summarized as

The results of a reconcile on errors and exceptions in the child version can be summarized as

There are cases in which the same error can be created in both versions by validating a dirty area that existed in the parent version when the child version was created. If this error is marked as an exception in either the parent or child version, the reconcile will result in duplicate error features. In these cases, the error features will be covered by a dirty area and will be reduced to a single error or exception when the dirty area is validated. This is illustrated in the following two examples:

Example 9


The results of a reconcile on errors and exceptions in the child version

Example 10


The results of a reconcile on errors and exceptions in the child version

Exceptions and versioned feature classes

When an error is marked as an exception, only the error feature is modified. If an error is marked as an exception in the child version, it remains an exception after reconcile. Here are some implications of this behavior:

Learn more about how errors and exceptions work with versioned topological feature classes.

Version conflicts and topology features

Features that participate in topology do not have any special behavior with respect to conflicts resulting from version reconciliation. If the same feature is edited in two separate versions, and those versions are reconciled, they will be in conflict.

The most common source of conflicts resulting from the validation process of topologies is the introduction of vertices due to the integration of features during the cluster processing phase of validation.

Learn more about topology validation.

The following examples illustrate how conflicts can result from the validate process.

Example 1—Splitting two adjacent polygons in each version

Polygons that share edges in a topology in the parent version are inherited by the child version. In this scenario, a polygon is split in the parent version, an adjacent polygon is split in the child version, and the dirty areas are validated. Splitting the polygons deletes the original features and replaces each of them with two new ones. When the versions are reconciled, both original polygons are reported as update–delete conflicts. In other words, the feature that was deleted in the parent version was updated by the clustering process when the child version was validated, and the feature that was deleted in the child version was updated by the clustering process in the parent version.


The introduction of vertices by the validate process can introduce conflicts

Example 2—Splitting polygons that share edges with a large right-of-way polygon

This illustrates another example in which the introduction of vertices by the validate process can introduce conflicts in a land records database. In this case, the parcel polygons that are split share edges with a very large right-of-way polygon.


The introduction of vertices by the validate process can introduce conflicts

Conflicts, such as those described here, can be avoided by structuring your workflow so that editors are working in different areas and by using geodatabase replication to control where users can and cannot edit. In addition, data model design can help reduce the types of conflicts illustrated in the second example by subdividing the right-of-way polygon into smaller chunks.