Número de ID del error |
BUG-000151663 |
Enviado | August 18, 2022 |
Última modificación | June 5, 2024 |
Relacionado con | ArcGIS Pro |
Versión encontrada | 3.0 |
Sistema operativo | N/A |
Versión de sistema operativo | N/A |
Estado | As Designed
Tras revisión realizada por el equipo de desarrollo, se ha determinado que este comportamiento es acorde con lo designado. Consulte los detalles en la sección Información adicional.
|
Información adicional
Although the keyword 'Current' works the same in the Python window, notebooks, and script tools, the core geoprocessing functions do not return 'arcpy.mp Layer objects'. Instead, it returns 'Result objects', and it is up to the user to use the correct index to return the appropriate object from the result. The code below is modified to return a layer object from the geoprocessing 'Result object', and this works in models, stand-alone scripts, script tools, and the Python window.
p = arcpy.mp.ArcGISProject('current')
m = p.listMaps('Map')[0]
lyr1 = m.listLayers('States_WithRegions')[0]
res = arcpy.management.Merge(['States_WithRegions', 'Provinces'], os.path.join(basePath, 'GPSyncLayers.gdb', 'MergeOutputOpt1'))
resLyr = m.addDataFromPath(res[0])
Note that the geoprocessing tools run from the Python window or notebooks often automatically add layer results to the table of contents. This is a geoprocessing option that can be configured, but it does not automatically add layers if run from a script tool. This is because script tools are designed to work out of process, even if views are not active to add the output to. Use the logic above to more consistently get the expected results.
Solución alternativa
Use the Python Window or notebooks in ArcGIS Pro.
Pasos para reproducir