I have a python script that will position the scale bar, north arrow, title, and legend on a map layout in ArcGIS Pro. This script also references a bookmark and then exports the layout to a PDF. I need to turn this script into a script tool so that it can be used in ModelBuilder, but I have no idea where to start.
Here is the python script I need to convert to a script tool in ArcGIS Pro.
# input name of layout
p = arcpy.mp.ArcGISProject("CURRENT")
lyt = p.listLayouts("Test")[0]
# Reposition the scale bar
scaleBar = lyt.listElements("MAPSURROUND_ELEMENT", "Scale Bar")[0]
mf = scaleBar.mapFrame
scaleBar.elementPositionX = mf.elementPositionX + 0.0
scaleBar.elementPositionY = mf.elementPositionY - 0.5
# Reposition the north arrow
northArrow = lyt.listElements("MAPSURROUND_ELEMENT", "North Arrow")[0]
mf = northArrow.mapFrame
northArrow.elementPositionX = mf.elementPositionX + 8.8
northArrow.elementPositionY = mf.elementPositionY + 0.7
# Align the title with the center of the map frame
title = lyt.listElements("TEXT_ELEMENT","Name of Map Text")[0]
mf = lyt.listElements('MAPFRAME_ELEMENT',"Map Frame")[0]
title.elementPositionX = mf.elementPositionX + (mf.elementWidth / 3.7)
title.elementPositionY = mf.elementPositionY + (mf.elementHeight / 0.98)
# Reposition the Legend and fix legend title
legend = lyt.listElements("LEGEND_ELEMENT", "Legend")[0]
legend.title = "Legend"
legend.elementPositionX = mf.elementPositionX + 7.7
legend.elementPositionY = mf.elementPositionY + 7.15
# setting layout to bookmark
aprx = arcpy.mp.ArcGISProject("Current")
# add name of layout
lyt = aprx.listLayouts("Test")[0]
mf = lyt.listElements("MAPFRAME_ELEMENT")[0]
# add name of bookmark and export as PDF
bkmks = mf.map.listBookmarks("Castro_Py")
for bkmk in bkmks:
mf.zoomToBookmark(bkmk)
lyt.exportToPDF(r"C:\arcGIS_Shared\Exports" + "\\" + bkmk.name + ".pdf")