IsKnownSimple property of a top-level geometry (polygon, polyline, multipoint and point) is used to determine whether this geometry is topologically correct (Simple) or not. ITopologicalOperator::IsSimple returns TRUE when the geometry is aware that it is Simple. ITopologicalOperator2::IsKnownSimple may return FALSE even if the geometry is simple as long as the geometry is not aware of its IsSimple state. Calling either IsSimple or Simplify makes the IsSimple state known to the geometry. Topologically altering the geometry makes the IsKnownSimple state FALSE until the IsSimple state is again checked. If you are not certain the geometry is simple or IsKnownSimple flag been correctly set, and try to call ITopologicalOperator::IsSimple or ITopologicalOperator::Simplify to enforce the geometry to be simple, the flag should be set to false first by calling ITopologicalOperator2::IsKnownSimple = FALSE. There are situations that you can determine or make assumptions of IsKnownSimple status.

A geometry is known simple or assumed to be simple if: