I finally worked out how to do it a Python Toolbox, here's an example:
In Init:
# Spatial Data Layer
param0 = arcpy.Parameter(
displayName="Spatial Data Layer (SPATIALDATA_LYR)",
name ="SPATIALDATA_LYR",
datatype="GPFeatureLayer",
parameterType="Derived",
direction="Output")
param0.value = "SPATIALDATA_LYR"
# SMG (line) Layer
param1 = arcpy.Parameter(
displayName="SMG_LINE_LYR",
name ="SMG_LINE_LYR",
datatype="GPFeatureLayer",
parameterType="Derived",
direction="Output")
param1.value = "SMG_LINE_LYR"
……...
def execute(self, parameters, messages):
"""The source code of the tool."""
arcpy.env.overwriteOutput=True
# Script arguments
SPATIALDATA_LYR=parameters[0].valueAsText
SMG_LINE_LYR= parameters[1].valueAsText
…..
#LYRX File vars
SPATIALDATA_LYRX =os.path.join(SEVENA_LYRX_DIR, "SPATIALDATA.lyrx")
SMG_LYRX =os.path.join(SEVENA_LYRX_DIR, "SMG_NAME.lyrx")
…...
arcpy.management.ApplySymbologyFromLayer(SPATIALDATA_LYR, SPATIALDATA_LYRX)
arcpy.SetParameterAsText(0, SPATIALDATA_LYR) #
<--------------this!!!
# SMG Line - getParameterInfo incl value, symb as os.path.join
arcpy.management.ApplySymbologyFromLayer(SMG_LINE_LYR, SMG_LYRX, None, "UPDATE")
arcpy.SetParameterAsText(1, SMG_LINE_LYR)
I have no idea why setting the parameter again makes it work, but it works.