Hey guys,
I am dealing with unable to use postExecute method within Python Toolbox or atbx toolbox.
class Tool(object
def __init__(self):
"""Define the tool (tool name is the name of the class)."""
self.label = "Tool"
self.description = ""
self.canRunInBackground = False
def getParameterInfo(self):
"""Define parameter definitions"""
param1 = arcpy.Parameter(
displayName="Dos",
name="param1",
datatype="DEFeatureClass",
parameterType="Required",
direction="Input")
param2 = arcpy.Parameter(
displayName="Output Features",
name="out_features",
datatype="GPFeatureLayer",
parameterType="Derived",
direction="Output")
return [param1, param2]
def execute(self, parameters, messages):
"""The source code of the tool."""
param1 = parameters[0].valueAsText
gdb = "gdb_path"
out = f"{gdb}/layer2"
arcpy.CopyFeatures_management(param1, out)
arcpy.SetParameter(1, out)
arcpy.AddMessage("Tool has finished executing222")
return
def postExecute(self, parameters, messages):
"""This method takes place after outputs are processed and
added to the display."""
arcpy.AddMessage("Tool has finished executing!!!!!!!!!!!!!!!!!!!!")
try:
project = arcpy.mp.ArcGISProject('CURRENT')
active_map = project.activeMap
if active_map:
out_layer = active_map.listLayers(os.path.basename(self.params[1].valueAsText))[0]
symbology = out_layer.symbology
symbology.updateRenderer('SimpleRenderer')
symbology.renderer.symbol.applySymbolFromGallery('Airport')
symbology.renderer.symbol.size = 12
out_layer.symbology = symbology
except Exception:
pass
return
I've used example from documentation, has anyone had any success with using postExecute?
Do I need to execute it someway?
Code is basic, just for testing purpose.
regards,
Yanu