@ পল এবং @ পলিজিওর পরামর্শ অনুসারে, আমি মনে করি এটিকে পাইথন অ্যাড-ইন করার চেষ্টা করা সবচেয়ে বেশি অর্থবোধ করে এবং আমি পরে এই ধারণাটি অনুসরণ করব।
ইতিমধ্যে, আমি একসাথে কোড রেখেছি যা একটি এমএক্সডি-তে বৈশিষ্ট্য গণনা সহ ব্যবহারকারী-সংজ্ঞায়িত স্তরগুলির TOC নাম যুক্ত / আপডেট করবে। আমার উদ্দেশ্যগুলির জন্য, আমি কেবল এটি একটি জিপি সরঞ্জাম হিসাবে তৈরি করেছি যা স্ক্রিপ্ট সরঞ্জামটিতে "স্তর" স্বীকার করে এমন মাল্টিভ্যালু ইনপুটটির মাধ্যমে স্বতন্ত্র স্তরগুলি গ্রহণ করবে। এটি আমাকে একাধিক স্তর "অন-ডিমান্ড" আপডেট করার অনুমতি দেয়, কেবলমাত্র সেই স্তরের আগ্রহের বৈশিষ্ট্যগুলির বৈশিষ্ট্যটি আপডেট করে।
আমি স্বয়ংক্রিয়ভাবে এই রান করার কোনও উপায় নিয়ে আসিনি, তবে পুরানো এমএক্সডি-র কিছু পরীক্ষা-নিরীক্ষা করে, এটি পছন্দসইও নাও হতে পারে। আপনার যদি অনেকগুলি বৈশিষ্ট্য সহ প্রচুর স্তর থাকে তবে এটি ধীর প্রক্রিয়া হতে পারে।
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