I was able to compare two annotation feature classes using the Shape fields. Below is an example of the code I used:fc = "AirportsAnno"
fc2 = "AirportsAnno_1"
y = str(arcpy.GetCount_management(fc))
x = 1
while x <= int(y):
rows = arcpy.SearchCursor(fc, "OBJECTID = " + str(x))
rows2 = arcpy.SearchCursor(fc2, "OBJECTID = " + str(x))
for row in rows:
geom = row.shape
for row2 in rows2:
geom2 = row2.shape
if geom.equals(geom2):
print "OBJECTID " + str(row.OBJECTID) + " matches"
else:
print "OBJECTID " + str(row.OBJECTID) + " does not match"
x += 1
del row, rows, row2, rows2
I tested this on the annotation feature class when a feature's text was updated, and when the annotation was moved. In both cases the script reported that the features do not match.