La forma en que siempre me he limitado a qué páginas se incluyen es a través de una definición de consulta.
Si no se puede editar los datos originales, entonces puede hacer una copia de la misma. Sin embargo, no estoy seguro de todos sus requisitos.
La secuencia de comandos siguiente será hacer una copia de la original de la capa de área, y agregar un campo llamado DisplayPage
. A continuación, hace una SelectByLocation
, para seleccionar todas las áreas que contienen una HVAC característica. Después de la selección se utiliza un UpdateCursor
a rellenar el DisplayPage
de campo con un Yes
de toda la actualidad de las áreas seleccionadas.
import arcpy
arcpy.env.overwriteOutput = True
#change paths to where your data is located
original_area = "C:\\temp\\Data.gdb\\Area"
hvac_features = "C:\\temp\\Data.gdb\\HVAC"
#change path to where you'd like the copy outputted
copy_area = "C:\\temp\\Data.gdb\\AreaCopy"
arcpy.CopyFeatures_management(original_area, copy_area)
arcpy.AddField_management(copy_area, "DisplayPage", "TEXT")
copy_area_fl = arcpy.MakeFeatureLayer_management(copy_area, "copy_area_fl")
hvac_features_fl = arcpy.MakeFeatureLayer_management(hvac_features, "hvac_features_fl")
arcpy.SelectLayerByLocation_management(copy_area_fl, "CONTAINS", hvac_features_fl)
with arcpy.da.UpdateCursor(copy_area_fl, ("DisplayPage")) as cursor:
for row in cursor:
row[0] = "Yes"
cursor.updateRow(row)
arcpy.Delete_management(copy_area_fl)
arcpy.Delete_management(hvac_features_fl)
A continuación, en ArcMap establecer una definición de consulta en el área de copiado de la capa de a DisplayPage = 'Yes'
. Y el uso de esta capa como el índice de las Páginas controladas por Datos.
![enter image description here]()