@Paul & @PolyGeo'nun önerdiği gibi, bunu bir Python Eklentisi yapmaya çalışmanın en mantıklı olduğunu düşünüyorum ve bu fikri daha sonra takip edeceğim.
Bu arada, bir MXD'de özellik tanımlı kullanıcı tanımlı katmanların TOC Adını Ekleyecek / Güncelleyecek kodu bir araya getirdim. Benim amacım için, bunu sadece komut dosyası aracında "Katmanlar" kabul eden bir çok değerli giriş yoluyla tek tek katmanları kabul edecek bir GP aracı olarak oluşturdum. Bu, yalnızca ilgili katmanların özellik sayılarını güncelleyerek birden fazla "isteğe bağlı" katmanı güncellememe olanak tanır.
Bunu otomatik olarak çalıştırmanın bir yolunu bulamadım, ancak eski MXD'lerin bazı testlerini yaparken, bu istenmeyebilir. Çok sayıda özelliğe sahip çok sayıda katmanınız varsa, bu yavaş bir işlem olabilir.
import arcpy
LayerInput = arcpy.GetParameterAsText(0)
mxd = arcpy.mapping.MapDocument("CURRENT")
for lyr in arcpy.mapping.ListLayers(mxd):
#Skip over group layers, as they have no values to count
if lyr.isGroupLayer:
continue
#Determine basename of the layer, without the feature count
name = str(lyr.name)
#Determine if the layer is in the user-defined list
if name not in LayerInput:
continue
#Determine if the layer name already includes a COUNT
if "[" in name and "]" in name:
lpos = name.find("[")
basename = name[:lpos-1]
else:
basename = name
print " Updating feature count in TOC name for layer: " + str(basename)
arcpy.AddMessage(" Updating feature count in TOC name for layer: " + str(basename) )
# In 10.1, you may be able to use arcpy.da.SearchCursor to increase the speed.
#http://gis.stackexchange.com/questions/30140/fastest-way-to-count-the-number-of-features-in-a-feature-class
#fcount = 0
#cursor = arcpy.SearchCursor(lyr)
#for row in cursor:
# fcount += 1
#del cursor
#Get the feature count
fcount = int(arcpy.GetCount_management(lyr).getOutput(0))
#Update the lyr.name property
lyr.name = basename + " [n=" + str(fcount) + "]"
del fcount
arcpy.RefreshTOC()
#Garbage collection
del mxd