Geodatabase topology rules and topology error fixes
This topic applies to ArcGIS for Desktop Standard and ArcGIS for Desktop Advanced only.
You can create simple, temporary topological relationships between features in ArcGIS for Desktop Basic. Creating or editing geodatabase topology requires an ArcGIS for Desktop Standard or ArcGIS for Desktop Advanced license.
There are many topology rules you can implement in your geodatabase, depending on the spatial relationships that are most important for your organization to maintain. You should carefully plan the spatial relationships you will enforce on your features. Some topology rules govern the relationships of features within a given feature class, while others govern the relationships between features in two different feature classes or subtypes. Topology rules can be defined between subtypes of features in one or another feature class. This could be used, for example, to require street features to be connected to other street features at both ends, except in the case of streets belonging to the cul-de-sac or dead-end subtypes.
Many topology rules can be imposed on features in a geodatabase. A well-designed geodatabase will have only those topology rules that define key spatial relationships needed by an organization.
Most topology violations have fixes that you can use to correct errors. Some topology rules, however, have no predefined fixes. Once you have discovered the topology errors, you can select the error on the map with the Fix Topology Error tool , or select the error from within the Error Inspector.
For a poster of the available topology rules and examples of them, see the ArcGIS Geodatabase Topology Rules PDF.
If this link does not work, you can open the topology_rules_poster.pdf from the \Documentation folder in the directory where you installed ArcGIS. To view this document, you need a copy of Adobe Reader.
Polygon rules
Topology rule |
Rule description |
Potential fixes |
Examples | |
---|---|---|---|---|
Must Be Larger Than Cluster Tolerance |
Requires that a feature does not collapse during a validate process. This rule is mandatory for a topology and applies to all line and polygon feature classes. In instances where this rule is violated, the original geometry is left unchanged. |
Delete: The Delete fix removes polygon features that would collapse during the validate process based on the topology's cluster tolerance. This fix can be applied to one or more Must Be Larger Than Cluster Tolerance errors. |
Any polygon feature, such as the one in red, that would collapse when validating the topology is an error. |
|
Must Not Overlap |
Requires that the interior of polygons not overlap. The polygons can share edges or vertices. This rule is used when an area cannot belong to two or more polygons. It is useful for modeling administrative boundaries, such as ZIP Codes or voting districts, and mutually exclusive area classifications, such as land cover or landform type. |
Subtract: The Subtract fix removes the overlapping portion of geometry from each feature that is causing the error and leaves a gap or void in its place. This fix can be applied to one or more selected Must Not Overlap errors. Merge: The Merge fix adds the portion of overlap from one feature and subtracts it from the others that are violating the rule. You need to pick the feature that receives the portion of overlap using the Merge dialog box. This fix can be applied to one Must Not Overlap error only. Create Feature: The Create Feature fix creates a new polygon feature out of the error shape and removes the portion of overlap from each of the features, causing the error to create a planar representation of the feature geometry. This fix can be applied to one or more selected Must Not Overlap errors. |
|
|
Must Not Have Gaps |
This rule requires that there are no voids within a single polygon or between adjacent polygons. All polygons must form a continuous surface. An error will always exist on the perimeter of the surface. You can either ignore this error or mark it as an exception. Use this rule on data that must completely cover an area. For example, soil polygons cannot include gaps or form voids—they must cover an entire area. |
Create Feature: The Create Feature fix creates new polygon features using a closed ring of the line error shapes that form a gap. This fix can be applied to one or more selected Must Not Have Gaps errors. If you select two errors and use the Create Feature fix, the result will be one polygon feature per ring. If you want one multipart feature as a result, you will need to select each new feature and click Merge from the Editor menu. Note that the ring that forms the outer bounds of your feature class will be in error. Using the Create Feature fix for this specific error can create overlapping polygons. Remember that you can mark this error as an exception. |
You can use Create Feature to create a new polygon in the void in the center. You can also use Create Feature or mark the error on the outside boundary as an exception. |
|
Must Not Overlap With |
Requires that the interior of polygons in one feature class (or subtype) must not overlap with the interior of polygons in another feature class (or subtype). Polygons of the two feature classes can share edges or vertices or be completely disjointed. This rule is used when an area cannot belong to two separate feature classes. It is useful for combining two mutually exclusive systems of area classification, such as zoning and water body type, where areas defined within the zoning class cannot also be defined in the water body class and vice versa. |
Subtract: The Subtract fix removes the overlapping portion of each feature that is causing the error and leaves a gap or void in its place. This fix can be applied to one or more selected Must Not Overlap With errors. Merge: The Merge fix adds the portion of overlap from one feature and subtracts it from the others that are violating the rule. You need to pick the feature that receives the portion of overlap using the Merge dialog box. This fix can be applied to one Must Not Overlap With error only. |
|
|
Must Be Covered By Feature Class Of |
Requires that a polygon in one feature class (or subtype) must share all of its area with polygons in another feature class (or subtype). An area in the first feature class that is not covered by polygons from the other feature class is an error. This rule is used when an area of one type, such as a state, should be completely covered by areas of another type, such as counties. |
Subtract: The Subtract fix removes the overlapping portion of each feature that is causing the error so the boundary of each feature from both feature classes is the same. This fix can be applied to one or more selected Must Be Covered By Feature Class Of errors. Create Feature: The Create Feature fix creates a new polygon feature out of the portion of overlap from the existing polygon so the boundary of each feature from both feature classes is the same. This fix can be applied to one or more selected Must Be Covered By Feature Class Of errors. |
|
|
Must Cover Each Other |
Requires that the polygons of one feature class (or subtype) must share all of their area with the polygons of another feature class (or subtype). Polygons may share edges or vertices. Any area defined in either feature class that is not shared with the other is an error. This rule is used when two systems of classification are used for the same geographic area, and any given point defined in one system must also be defined in the other. One such case occurs with nested hierarchical datasets, such as census blocks and block groups or small watersheds and large drainage basins. The rule can also be applied to nonhierarchically related polygon feature classes, such as soil type and slope class. |
Subtract: The Subtract fix removes the overlapping portion of each feature that is causing the error so the boundary of each feature from both feature classes is the same. This fix can be applied to one or more selected Must Cover Each Other errors. Create Feature: The Create Feature fix creates a new polygon feature out of the portion of overlap from the existing polygon so the boundary of each feature from both feature classes is the same. This fix can be applied to one or more selected Must Cover Each Other errors. |
|
|
Must Be Covered By |
Requires that polygons of one feature class (or subtype) must be contained within polygons of another feature class (or subtype). Polygons may share edges or vertices. Any area defined in the contained feature class must be covered by an area in the covering feature class. This rule is used when area features of a given type must be located within features of another type. This rule is useful when modeling areas that are subsets of a larger surrounding area, such as management units within forests or blocks within block groups. |
Create Feature: The Create Feature fix creates a new polygon feature out of the portion of overlap from the existing polygon so the boundary of each feature from both feature classes is the same. This fix can be applied to one or more selected Must Be Covered By errors. |
|
|
Boundary Must Be Covered By |
Requires that boundaries of polygon features must be covered by lines in another feature class. This rule is used when area features need to have line features that mark the boundaries of the areas. This is usually when the areas have one set of attributes and their boundaries have other attributes. For example, parcels might be stored in the geodatabase along with their boundaries. Each parcel might be defined by one or more line features that store information about their length or the date surveyed, and every parcel should exactly match its boundaries. |
Create Feature: The Create Feature fix creates a new line feature from the boundary segments of the polygon feature generating the error. This fix can be applied to one or more selected Boundary Must Be Covered By errors. |
|
|
Area Boundary Must Be Covered By Boundary Of |
Requires that boundaries of polygon features in one feature class (or subtype) be covered by boundaries of polygon features in another feature class (or subtype). This is useful when polygon features in one feature class, such as subdivisions, are composed of multiple polygons in another class, such as parcels, and the shared boundaries must be aligned. |
None |
|
|
Contains Point |
Requires that a polygon in one feature class contain at least one point from another feature class. Points must be within the polygon, not on the boundary. This is useful when every polygon should have at least one associated point, such as when parcels must have an address point. |
Create Feature: The Create Feature fix creates a new point feature at the centroid of the polygon feature that is causing the error. The point feature that is created is guaranteed to be within the polygon feature. This fix can be applied to one or more selected Contains Point errors. |
The top polygon is an error because it does not contain a point. |
|
Contains One Point |
Requires that each polygon contains one point feature and that each point feature falls within a single polygon. This is used when there must be a one-to-one correspondence between features of a polygon feature class and features of a point feature class, such as administrative boundaries and their capital cities. Each point must be properly inside exactly one polygon and each polygon must properly contain exactly one point. Points must be within the polygon, not on the boundary. |
None |
The top polygon is an error because it contains more than one point. Points are errors when they are outside a polygon. |
Line rules
Topology rule |
Rule description |
Potential fixes |
Examples | |
---|---|---|---|---|
Must Be Larger Than Cluster Tolerance |
Requires that a feature does not collapse during a validate process. This rule is mandatory for a topology and applies to all line and polygon feature classes. In instances where this rule is violated, the original geometry is left unchanged. |
Delete: The Delete fix removes line features that would collapse during the validate process based on the topology's cluster tolerance. This fix can be applied to one or more Must Be Larger Than Cluster Tolerance errors. |
Any line feature, such as these lines in red, that would collapse when validating the topology is an error. |
|
Must Not Overlap |
Requires that lines not overlap with lines in the same feature class (or subtype). This rule is used where line segments should not be duplicated, for example, in a stream feature class. Lines can cross or intersect but cannot share segments. |
Subtract: The Subtract fix removes the overlapping line segments from the feature causing the error. You must select the feature from which the error will be removed. If you have duplicate line features, select the line feature you want to delete from the Subtract dialog box. Note that the Subtract fix will create multipart features, so if the overlapping segments are not at the end or start of a line feature, you might want to use the Explode command on the Advanced Editing toolbar to create single-part features. This fix can be applied to one selected Must Not Overlap error only. |
|
|
Must Not Intersect |
Requires that line features from the same feature class (or subtype) not cross or overlap each other. Lines can share endpoints. This rule is used for contour lines that should never cross each other or in cases where the intersection of lines should only occur at endpoints, such as street segments and intersections. |
Subtract: The Subtract fix removes the overlapping line segments from the feature causing the error. You must select the feature from which the error will be removed. If you have duplicate line features, select the line feature you want to delete from the Subtract dialog box. Note that the Subtract fix will create multipart features, so if the overlapping segments are not at the end or start of a line feature, you might want to use the Explode command on the Advanced Editing toolbar to create single-part features. This fix can be applied to one Must Not Intersect error only. Split: The Split fix splits the line features that cross one another at their point of intersection. If two lines cross at a single point, applying the Split fix at that location will result in four features. Attributes from the original features will be maintained in the split features. If a split policy is present, the attributes will be updated accordingly. This fix can be applied to one or more Must Not Intersect errors. |
|
|
Must Not Intersect With |
Requires that line features from one feature class (or subtype) not cross or overlap lines from another feature class (or subtype). Lines can share endpoints. This rule is used when there are lines from two layers that should never cross each other or in cases where the intersection of lines should only occur at endpoints, such as streets and railroads. |
Subtract: The Subtract fix removes the overlapping line segments from the feature causing the error. You must select the feature from which the error will be removed. If you have duplicate line features, select the line feature you want to delete from the Subtract dialog box. Note that the Subtract fix will create multipart features, so if the overlapping segments are not at the end or start of a line feature, you might want to use the Explode command on the Advanced Editing toolbar to create single-part features. This fix can be applied to one Must Not Intersect With error only. Split: The Split fix splits the line features that cross one another at their point of intersection. If two lines cross at a single point, applying the Split fix at that location will result in four features. Attributes from the original features will be maintained in the split features. If a split policy is present, the attributes will be updated accordingly. This fix can be applied to one or more Must Not Intersect With errors. |
|
|
Must Not Have Dangles |
Requires that a line feature must touch lines from the same feature class (or subtype) at both endpoints. An endpoint that is not connected to another line is called a dangle. This rule is used when line features must form closed loops, such as when they are defining the boundaries of polygon features. It may also be used in cases where lines typically connect to other lines, as with streets. In this case, exceptions can be used where the rule is occasionally violated, as with cul-de-sac or dead-end street segments. |
Extend: The Extend fix will extend the dangling end of line features if they snap to other line features within a given distance. If no feature is found within the distance specified, the feature will not extend to the distance specified. Also, if several errors were selected, the fix will simply skip the features that it cannot extend and attempt to extend the next feature in the list. The errors of features that could not be extended remain on the Error Inspector dialog box. If the distance value is 0, lines will extend until they find a feature to snap to. This fix can be applied to one or more Must Not Have Dangles errors. Trim: The Trim fix will trim dangling line features if a point of intersection is found within a given distance. If no feature is found within the distance specified, the feature will not be trimmed, nor will it be deleted if the distance is greater than the length of the feature in error. If the distance value is 0, lines will be trimmed back until they find a point of intersection. If no intersection is located, the feature will not be trimmed and the fix will attempt to trim the next feature in error. This fix can be applied to one or more Must Not Have dangles errors. Snap: The Snap fix will snap dangling line features to the nearest line feature within a given distance. If no line feature is found within the distance specified, the line will not be snapped. The Snap fix will snap to the nearest feature found within the distance. It searches for endpoints to snap to first, then vertices, and finally to the edge of line features within the feature class. The Snap fix can be applied to one or more Must Not Have Dangles errors. |
|
|
Must Not Have Pseudo Nodes |
Requires that a line connect to at least two other lines at each endpoint. Lines that connect to one other line (or to themselves) are said to have pseudo nodes. This rule is used where line features must form closed loops, such as when they define the boundaries of polygons or when line features logically must connect to two other line features at each end, as with segments in a stream network, with exceptions being marked for the originating ends of first-order streams. |
Merge To Largest: The Merge To Largest fix will merge the geometry of the shorter line into the geometry of the longest line. The attributes of the longest line feature will be retained. This fix can be applied to one or more Must Not Have Pseudo Nodes errors. Merge: The Merge fix adds the geometry of one line feature into the other line feature causing the error. You must pick the line feature into which to merge. This fix can be applied to one selected Must Not Have Pseudo Nodes error. |
|
|
Must Not Intersect Or Touch Interior |
Requires that a line in one feature class (or subtype) must only touch other lines of the same feature class (or subtype) at endpoints. Any line segment in which features overlap or any intersection not at an endpoint is an error. This rule is useful where lines must only be connected at endpoints, such as in the case of lot lines, which must split (only connect to the endpoints of) back lot lines and cannot overlap each other. |
Subtract: The Subtract fix removes the overlapping line segments from the feature causing the error. You must select the feature from which the error will be removed. If you have duplicate line features, choose the line feature you want to delete from the Subtract dialog box. The Subtract fix creates multipart features, so if the overlapping segments are not at the end or start of a line feature, you might want to use the Explode command on the Advanced Editing toolbar to create single-part features. This fix can be applied to one selected Must Not Intersect Or Touch Interior error only. Split: The Split fix splits the line features that cross one another at their point of intersection. If two lines cross at a single point, applying the Split fix at that location will result in four features. Attributes from the original features will be maintained in the split features. If a split policy is present, the attributes will be updated accordingly. This fix can be applied to one or more Must Not Intersect Or Touch Interior errors. |
|
|
Must Not Intersect Or Touch Interior With |
Requires that a line in one feature class (or subtype) must only touch other lines of another feature class (or subtype) at endpoints. Any line segment in which features overlap or any intersection not at an endpoint is an error. This rule is useful where lines from two layers must only be connected at endpoints. |
Subtract: The Subtract fix removes the overlapping line segments from the feature causing the error. You must select the feature from which the error will be removed. If you have duplicate line features, choose the line feature you want to delete from the Subtract dialog box. The Subtract fix creates multipart features, so if the overlapping segments are not at the end or start of a line feature, you might want to use the Explode command on the Advanced Editing toolbar to create single-part features. This fix can be applied to one selected Must Not Intersect Or Touch Interior With error only. Split: The Split fix splits the line features that cross one another at their point of intersection. If two lines cross at a single point, applying the Split fix at that location will result in four features. Attributes from the original features will be maintained in the split features. If a split policy is present, the attributes will be updated accordingly. This fix can be applied to one or more Must Not Intersect Or Touch Interior With errors. |
|
|
Must Not Overlap With |
Requires that a line from one feature class (or subtype) not overlap with line features in another feature class (or subtype). This rule is used when line features cannot share the same space. For example, roads must not overlap with railroads or depression subtypes of contour lines cannot overlap with other contour lines. |
Subtract: The Subtract fix removes the overlapping line segments from the feature causing the error. You must select the feature from which the error will be removed. If you have duplicate line features, choose the line feature you want to delete from the Subtract dialog box. The Subtract fix creates multipart features, so if the overlapping segments are not at the end or start of a line feature, you might want to use the Explode command on the Advanced Editing toolbar to create single-part features. This fix can be applied to one selected Must Not Overlap With error only. |
Where the purple lines overlap is an error. |
|
Must Be Covered By Feature Class Of |
Requires that lines from one feature class (or subtype) must be covered by the lines in another feature class (or subtype). This is useful for modeling logically different but spatially coincident lines, such as routes and streets. A bus route feature class must not depart from the streets defined in the street feature class. |
None |
Where the purple lines do not overlap is an error. |
|
Must Be Covered By Boundary Of |
Requires that lines be covered by the boundaries of area features. This is useful for modeling lines, such as lot lines, that must coincide with the edge of polygon features, such as lots. |
Subtract: The Subtract fix removes line segments that are not coincident with the boundary of polygon features. If the line feature does not share any segments in common with the boundary of a polygon feature, the feature will be deleted. This fix can be applied to one or more Must Be Covered By Boundary Of errors. |
|
|
Must Be Inside |
Requires that a line is contained within the boundary of an area feature. This is useful for cases where lines may partially or totally coincide with area boundaries but cannot extend beyond polygons, such as state highways that must be inside state borders and rivers that must be within watersheds. |
Delete: The Delete fix removes line features that are not within polygon features. Note that you can use the Edit tool and move the line inside the polygon feature if you do not want to delete it. This fix can be applied to one or more Must Be Inside errors. |
|
|
Endpoint Must Be Covered By |
Requires that the endpoints of line features must be covered by point features in another feature class. This is useful for modeling cases where a fitting must connect two pipes or a street intersection must be found at the junction of two streets. |
Create Feature: The Create Feature fix adds a new point feature at the endpoint of the line feature that is in error. The Create Feature fix can be applied to one or more Endpoint Must Be Covered By errors. |
The square at the bottom indicates an error, because there is no point covering the endpoint of the line. |
|
Must Not Self-Overlap |
Requires that line features not overlap themselves. They can cross or touch themselves but must not have coincident segments. This rule is useful for features, such as streets, where segments might touch in a loop but where the same street should not follow the same course twice. |
Simplify: The Simplify fix removes self-overlapping line segments from the feature in error. Applying the Simplify fix can result in multipart features, which you can detect using the Must Be Single Part rule. The Simplify fix can be applied to one or more Must Not Self-Overlap errors. |
The individual line feature overlaps itself, with the error indicated by the coral line. |
|
Must Not Self-Intersect |
Requires that line features not cross or overlap themselves. This rule is useful for lines, such as contour lines, that cannot cross themselves. |
Simplify: The Simplify fix removes self-overlapping line segments from the feature in error. Note that applying the Simplify fix can result in multipart features. You can detect multipart features using the Must Be Single Part rule. This fix can be applied to one or more Must Not Self-Intersect errors. |
|
|
Must Be Single Part |
Requires that lines have only one part. This rule is useful where line features, such as highways, may not have multiple parts. |
Explode: The Explode fix creates single-part line features from each part of the multipart line feature that is in error. This fix can be applied to one or more Must Be Single Part errors. |
Multipart lines are created from a single sketch. |
Point rules
Topology rule |
Rule description |
Potential fixes |
Examples |
---|---|---|---|
Must Coincide With |
Requires that points in one feature class (or subtype) be coincident with points in another feature class (or subtype). This is useful for cases where points must be covered by other points, such as transformers must coincide with power poles in electric distribution networks and observation points must coincide with stations. |
Snap: The Snap fix will move a point feature in the first feature class or subtype to the nearest point in the second feature class or subtype that is located within a given distance. If no point feature is found within the tolerance specified, the point will not be snapped. The Snap fix can be applied to one or more Must Coincide With errors. |
Where a red point is not coincident with a blue point is an error. |
Must Be Disjoint |
Requires that points be separated spatially from other points in the same feature class (or subtype). Any points that overlap are errors. This is useful for ensuring that points are not coincident or duplicated within the same feature class, such as in layers of cities, parcel lot ID points, wells, or streetlamp poles. |
None |
Where a red point and a blue point overlap is an error. |
Must Be Covered By Boundary Of |
Requires that points fall on the boundaries of area features. This is useful when the point features help support the boundary system, such as boundary markers, which must be found on the edges of certain areas. |
None |
The square on the right indicates an error because it is a point that is not on the boundary of the polygon. |
Must Be Properly Inside |
Requires that points fall within area features. This is useful when the point features are related to polygons, such as wells and well pads or address points and parcels. |
Delete: The Delete fix removes point features that are not properly within polygon features. Note that you can use the Edit tool and move the point inside the polygon feature if you do not want to delete it. This fix can be applied to one or more Must Be Properly Inside errors. |
The squares are errors where there are points that are not inside the polygon. |
Must Be Covered By Endpoint Of |
Requires that points in one feature class must be covered by the endpoints of lines in another feature class. This rule is similar to the line rule Endpoint Must Be Covered By except that, in cases where the rule is violated, it is the point feature that is marked as an error rather than the line. Boundary corner markers might be constrained to be covered by the endpoints of boundary lines. |
Delete: The Delete fix removes point features that are not coincident with the endpoint of line features. Note that you can snap the point to the line by setting edge snapping to the line layer, then moving the point with the Edit tool. This fix can be applied to one or more Must Be Covered By Endpoint Of errors. |
The square indicates an error where the point is not on an endpoint of a line. |
Point Must Be Covered By Line |
Requires that points in one feature class be covered by lines in another feature class. It does not constrain the covering portion of the line to be an endpoint. This rule is useful for points that fall along a set of lines, such as highway signs along highways. |
None |
The squares are points that are not covered by the line. |