public static bool IsSimple( Geometry geometry )
Public Shared Function IsSimple ( geometry As Geometry ) As Boolean
For Polylines the only condition is there can be no degenerate segments. When the polyline has no Z, the degenerate segments are those that have length in xy plane less or equal the tolerance. When the polyline has Z, the degenerate segments are those that are shorter than the tolerance in xy plane, and the change in Z value along the segment is less than or equal to the Z tolerance. For Polygons: Exterior rings are clockwise, and holes are counterclockwise. Rings can touch other rings in finite number of points. Rings can be self tangent in finite number of points. Vertices are either exactly coincident, or further than the Spatial_reference tolerance from each other. If a vertex is not equal to any boundary point of a segment, it has to be further than tolerance from any segment. No segment length is zero or less than tolerance. Each path contains at least three non-equal vertices. No empty paths allowed. Order of rings does not matter.
Point geometry is always simple. For Multi_point: there can be no point with exactly equal x and y - the tolerance is not taken into account.