com.esri.arcgis.geodatabase
Interface ITopologyErrorFeature

All Superinterfaces:
Serializable
All Known Implementing Classes:
ITopologyErrorFeatureProxy, TopologyErrorFeature

public interface ITopologyErrorFeature
extends Serializable

Provides access to members that return information about topology errors.

Remarks

The ITopologyErrorFeature interface provides access to the properties of error features in a topology. Topology errors are generated for each instance of a topology rule that is determined to be invalid during the validation process. Topology error features can also be deleted during the validation process.

Error features cannot be edited directly, so while you can QI for interfaces such as IFeature on a TopologyErrorFeature, calling methods such as IFeature::Value or IFeature::Store will fail. Topology errors have an associated geometry that can be used for rendering or fixing the error. Topology errors are persisted with the topology.

The only modification that can be made to an error feature is to mark it as an exception. An error feature that is marked as an exception will return True for its IsException property. Error features can be marked as exceptions by passing them to the ITopologyRuleContainer::PromoteToRuleException method, and those marked as exceptions can be demoted to error features by passing them to ITopologyRuleContainer::DemoteFromRuleException.

The following table shows the properties of error features created by violations of each rule. If an object ID or class ID is not applicable for a feature, a value of zero will be returned.

Name

(esriTopologyRuleType value)

Origin

OID

Origin

ClassID

Destination

OID

Destination

ClassID

Error Feature

Geometry (1)

Must Not Overlap (Polygons)

esriTRTAreaNoOverlap

Yes Yes Yes No Polygon

Must Not Have Gaps

esriTRTAreaNoGaps

No Yes No No Polyline

Must Not Overlap With (Polygons)

esriTRTAreaNoOverlapArea

Yes Yes Yes Yes Polygon

Must Be Covered By Feature Class Of (Polygons)

esriTRTAreaCoveredByAreaClass

Yes Yes No Yes Polygon

Must Cover Each Other

esriTRTAreaAreaCoverEachOther

(2) Yes (2) Yes Polygon

Must Be Covered By

esriTRTAreaCoveredByArea

Yes Yes No Yes Polygon

Boundary Must Be Covered By

esriTRTAreaBoundaryCoveredByLine

Yes Yes No Yes Polyline

Area Boundary Must Be Covered By

esriTRTAreaBoundaryCoveredByAreaBoundary

Yes Yes No Yes Polyline

Contains Point

esriTRTAreaContainPoint

Yes Yes No Yes Polygon

Must Not Overlap (Lines)

esriTRTLineNoOverlap

Yes Yes Yes No Polyline

Must Not Intersect

esriTRTLineNoIntersection

Yes Yes Yes No

Point, Polyline

Must Be Covered By Feature Class Of (Lines)

esriTRTLineCoveredByLineClass

Yes Yes No Yes Polyline

Must Not Overlap With (Lines)

esriTRTLineNoOverlapLine

Yes Yes Yes Yes Polyline

Must Be Covered By Boundary Of (Lines)

esriTRTLineCoveredByAreaBoundary

Yes Yes No Yes Polyline

Must Not Have Dangles

esriTRTLineNoDangles

Yes Yes No No Point

Must Not Have Pseudos

esriTRTLineNoPseudos

Yes Yes Yes No Point

Must Not Self-Overlap

esriTRTLineNoSelfOverlap

Yes Yes No No Polyline

Must Not Self-Intersect

esriTRTLineNoSelfIntersect

Yes Yes No No Point, Polyline

Must Be Single Part

esriTRTLineNoMultipart

Yes Yes No No Polyline (3)

Must Not Intersect Or Touch Interior

esriTRTLineNoIntersectOrInteriorTouch

Yes Yes Yes No Point, Polyline

Endpoint Must Be Covered By

esriTRTLineEndpointCoveredByPoint

Yes Yes No Yes Point

Must Be Covered By Boundary Of (Points)

esriTRTPointCoveredByAreaBoundary

Yes Yes No Yes Point

Must Be Covered By Endpoint Of

esriTRTPointCoveredByLineEndpoint

Yes Yes No Yes Point

Point Must Be Covered By Line

esriTRTPointCoveredByLine

Yes Yes No Yes Point

Must Be Properly Inside

esriTRTPointProperlyInsideArea

Yes Yes (4) Yes Point

(1) Every Topology rule can return an error that is a point geometry, because of the special case where the error geometry is completely collapsed. If a feature has all of its vertices within the cluster tolerance, it will collapse in on itself during validation and an error feature with a point geometry will be created.

(2) Error features caused by a "Must Cover Each Other" rule will have either an origin object ID or a destination object ID, but not both.

(3) An error feature will be created for each part of a polyline that contains multiple parts.

(4) If a point is on the boundary of a polygon from the destination class, an error feature will be created, and the polygon's object ID will be returned as the destination object ID. If a point does not touch any polygons of the destination class, no destination object ID will be returned.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux


Method Summary
 int getDestinationClassID()
          ObjectClassID of the destination feature that created the topology error.
 int getDestinationOID()
          ObjectID of the destination feature that created the topology error.
 int getErrorID()
          ID of the error.
 int getOriginClassID()
          ObjectClassID of the origin feature that created the topology error.
 int getOriginOID()
          ObjectID of the origin feature that created the topology error.
 int getShapeType()
          The geometry type of the topology error.
 IRule getTopologyRule()
          The topology rule that caused the topology error.
 int getTopologyRuleType()
          The Object Class for the row.
 boolean isDeleted()
          Indicates if this topology error feature has been deleted.
 boolean isException()
          Indicates if topology error is an exception.
 

Method Detail

getErrorID

int getErrorID()
               throws IOException,
                      AutomationException
ID of the error.

Remarks

The ErrorID of a topology error feature is not unique across all topology error features within the topology, but is unique for each topology error feature geometry type. For example, while a topology error feature with polygon geometry may have the same ErrorID as a topology error feature with point geometry, the ErrorID will be unique for all topology error features with polygon geometry.

Combining the ErrorID and ShapeType of a topology error feature will result in a unique value within the topology.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The iD
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isDeleted

boolean isDeleted()
                  throws IOException,
                         AutomationException
Indicates if this topology error feature has been deleted.

Remarks

The IsDeleted property returns a Boolean value indicating if the topology error has been deleted through a fix being applied to its relevant features. This property is intended for use by developers creating custom topology error fixes.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The deleted
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOriginOID

int getOriginOID()
                 throws IOException,
                        AutomationException
ObjectID of the origin feature that created the topology error.

Remarks

The OriginOID and DestinationOID properties represent the object IDs of the origin and destination features that created the topology error.

In general, all topology errors for which only the origin class has been specified will return values for the OriginClassID and OriginOID properties and a value of zero for the DestinationClassID and DestinationOID properties. The exception is for topology errors generated from the esriTRTNoGaps rule, which will return a value of zero for the OriginOID as well as DestinationClassID and DestinationOID properties. In addition, topology rules whose origin and destination feature class have been specified will generally return zero for the Destination feature class properties. The exceptions to this rule are:

The exception to both of these statements is the esriTRTAreaAreaCoverEachOther rule, which may generate topology errors referencing either the Origin or Destination feature class.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The oID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getOriginClassID

int getOriginClassID()
                     throws IOException,
                            AutomationException
ObjectClassID of the origin feature that created the topology error.

Remarks

The OriginClassID and DestinationClassID properties represent the object class IDs of the origin and destination feature classes of the topology rule.

In general, all topology errors for which only the origin class has been specified will return values for the OriginClassID and OriginOID properties and a value of zero for the DestinationClassID and DestinationOID properties. The exception is for topology errors generated from the esriTRTNoGaps rule, which will return a value of zero for the OriginOID as well as DestinationClassID and DestinationOID properties. In addition, topology rules whose origin and destination feature class have been specified will generally return zero for the Destination feature class properties. The exceptions to this rule are:

The exception to both of these statements is the esriTRTAreaAreaCoverEachOther rule, which may generate topology errors referencing either the Origin or Destination feature class.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The classID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDestinationOID

int getDestinationOID()
                      throws IOException,
                             AutomationException
ObjectID of the destination feature that created the topology error.

Remarks

The OriginOID and DestinationOID properties represent the object IDs of the origin and destination features that created the topology error.

In general, all topology errors for which only the origin class has been specified will return values for the OriginClassID and OriginOID properties and a value of zero for the DestinationClassID and DestinationOID properties. The exception is for topology errors generated from the esriTRTNoGaps rule, which will return a value of zero for the OriginOID as well as DestinationClassID and DestinationOID properties. In addition, topology rules whose origin and destination feature class have been specified will generally return zero for the Destination feature class properties. The exceptions to this rule are:

The exception to both of these statements is the esriTRTAreaAreaCoverEachOther rule, which may generate topology errors referencing either the Origin or Destination feature class.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The oID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getDestinationClassID

int getDestinationClassID()
                          throws IOException,
                                 AutomationException
ObjectClassID of the destination feature that created the topology error.

Remarks

The OriginClassID and DestinationClassID properties represent the object class IDs of the origin and destination feature classes of the topology rule.

In general, all topology errors for which only the origin class has been specified will return values for the OriginClassID and OriginOID properties and a value of zero for the DestinationClassID and DestinationOID properties. The exception is for topology errors generated from the esriTRTNoGaps rule, which will return a value of zero for the OriginOID as well as DestinationClassID and DestinationOID properties. In addition, topology rules whose origin and destination feature class have been specified will generally return zero for the Destination feature class properties. The exceptions to this rule are:

The exception to both of these statements is the esriTRTAreaAreaCoverEachOther rule, which may generate topology errors referencing either the Origin or Destination feature class.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The classID
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

isException

boolean isException()
                    throws IOException,
                           AutomationException
Indicates if topology error is an exception.

Remarks

Denotes if the topology error has been marked as an exception. Exceptions arise when a topology rule is purposefully violated. The topology error can be marked as an exception with the ITopologyRuleContainer::PromotetoRuleException method. Marking purposeful topology errors as exceptions allows other clients of the topology to handle them in an appropriate or specific manner, e.g., in reporting or symbolization.

Note that it is also possible to demote an exception or mark the exception as an error with the ITopologyRuleContainer::DemoteFromRuleException method.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
The exception
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTopologyRule

IRule getTopologyRule()
                      throws IOException,
                             AutomationException
The topology rule that caused the topology error.

Remarks

The TopologyRule property returns an IRule object corresponding to the topology rule. This can be used to get the unique ID of the topology rule using IRule::ID or obtain a ITopologyRule object. TopologyRule provides access the properties of the topology rule that the Error feature has violated. Note that each Topology has one inherent rule, esriTRTFeatureLargerThanClusterTolerance. It can be identified by checking the ITopologyErrorFeature::TopologyRuleType property

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
A reference to a com.esri.arcgis.geodatabase.IRule
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getTopologyRuleType

int getTopologyRuleType()
                        throws IOException,
                               AutomationException
The Object Class for the row.

Remarks

The TopologyRuleType property returns the type of topology rule associated with the topology error feature from the esriTopologyRuleType constants. Each topology has one inherent rule, esriTRTFeatureLargerThanClusterTolerance, which identified features that are less than the defined cluster tolerance for the topology.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
A com.esri.arcgis.geodatabase.esriTopologyRuleType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getShapeType

int getShapeType()
                 throws IOException,
                        AutomationException
The geometry type of the topology error.

Remarks

The ShapeType property will return the esriGeometryType of the topology error feature. Topology error features will be one of three possible geometry types: esriGeometryPolygon , esriGeometryPolyline or esriGeometryPolyline. Several topology rules can produce topology error features of different shape types, use the ITopologyRule::ErrorShapeTypes method to determine the valid shape types for each rule.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Supported Platforms

Windows, Solaris, Linux

Returns:
A com.esri.arcgis.geometry.esriGeometryType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.