I'm creating a script to process all layers in an ArcGIS Pro project but would only like it to process maps that the user has open in the current project and not all maps associated with the project.
aprx = arcpy.mp.ArcGISProject("CURRENT")
maps = aprx.listMaps()
for map in maps:
layers = map.listLayers()
for layer in layers:
If I was looking at data sources for example, the above code would process layers in all maps even if they aren't currently open.
How would I only process layers in open maps only?
From Map—ArcGIS Pro | Documentation
I don't see something that would process only the open maps (eg. isOpen or equivalent).
There is also nothing in the arcgis project class
This would be a good candidate for an Idea
Have you tried this? I would test it in Pro, but I'm all of a sudden getting Kernel Error, and none of my Notebooks are working... Apparently, It won't work in a stand-alone. You'd have to run it in a Pro Notebook or console.
import arcpy
aprx = arcpy.mp.ArcGISProject('CURRENT')
print(aprx.activeMap)
Taken from: https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/arcgisproject-class.htm