A continuación está el código que estoy usando para replicar las "tablas relacionadas" botón en ArcMap. En ArcMap que botón se selecciona características en una clase de entidad o tabla se basa en la selección de características en una clase de entidad o tabla.
En ArcMap puedo usar ese botón para "empujar" mi selección a la tabla relacionada en cuestión de segundos. Yo era incapaz de encontrar algo integrado en arcpy que replica el botón de lo que he usado algunos bucles anidados para realizar la misma tarea.
El código de abajo bucles a través de una tabla de "tratamientos". Para cada tratamiento, se repite a través de una lista de "los árboles". Cuando se encuentra una coincidencia entre la IDENTIFICACIÓN de los campos de tratamiento y árboles, una selección que se produce en el árbol de capas. Una vez que se encuentra una coincidencia para un tratamiento, el código no continuar la búsqueda del árbol de la capa adicional de los partidos. Se remonta a la mesa de tratamiento, selecciona el siguiente tratamiento y de nuevo busca a través del árbol de la clase de entidad.
El código en sí funciona bien, pero es dolorosamente lento. El tratamiento de "tabla" en este caso ha de 16.000 registros. El "árbol" de la clase de entidad tiene 60.000.
Hay otra manera más eficiente para recrear lo ESRI está haciendo cuando se empuja la selección de una tabla a otra? Debo ser la creación de un índice de las tablas? NOTA: los datos se almacenan en un SDE.
# Create search cursor to loop through the treatments
treatments = arcpy.SearchCursor(treatment_tv)
treatment_field = "Facility_ID"
for treatment in treatments:
#Get ID of treatment
treatment_ID = treatment.getValue(treatment_field)
# Create search cursor for looping through the trees
trees = arcpy.SearchCursor(tree_fl)
tree_field = "FACILITYID"
for tree in trees:
# Get FID of tree
tree_FID = tree.getValue(tree_field)
if tree_FID == treatment_FID:
query = "FACILITYID = " + str(tree_FID)
arcpy.SelectLayerByAttribute_management(tree_fl, "REMOVE_FROM_SELECTION", query)
break