Hello,
I have created 100 layouts that I need to refine their legend one by one using python CIM access. I'm looping through them and my code looks like below:
import arcpy
aprx = arcpy.mp.ArcGISProject("CURRENT")
# I stored the 100 features (the "featureclasses") I want to loop through in a gdb called "spp_gdb"
# and I already exported them into layouts using their feature class names respectively (they are in the form of "D:/Pro_Projects/layouts/Layout_"+ fc + ".pagx")
arcpy.env.workspace = r"D:/Pro_Projects/Project_may10th2021/spp_gdb.gdb"
featureclasses = arcpy.ListFeatureClasses()
# create a for loop
for fc in featureclasses:
aprx.importDocument(r"D:/Pro_Projects/layouts/Layout_"+ fc + ".pagx")
# get the newly imported layout
x = aprx.listLayouts()[-1]
# and check its name
print(x.name)
x_cim = x.getDefinition('V2')
# here, I did something with python CIM and then I saved my edits
x.setDefinition(x_cim)
# map layout export
x.exportToPNG(r"D:/Pro_Projects/Map_"+ fc + ".png", resolution = 300)
print("loop finished")
However, there seems to be a layout jam in the end since I did not delete each layout I added to the current project every time. The print (x.name) that I used to check the added layout name started to return the same value when it reached layout9. (does it mean 9 layouts maximum in a single Pro project?)
This problematic access of layout names affected this automated refinement and I was getting identical map exports in my output folder. I wonder if there is a way to delete added layouts using arcpy scripts in Pro to keep my intended loop functioning?
Regards,
Ming