Hi everyone.
I am trying to move a Group Layer (A) next to another Group Layer (B). B is the child of a third Group Layer (C). When I try to move the A next to B with the method map.MoveLayer, A is not placed on the same hierarchy level as B but on the same hierarchy level as C.
Intended result:
C
∟ B
∟ A
Actual result:
C
∟ B
A
To make this more concrete, please see my example code starting from an empty map. In the code, the respective Group Layers correspond to the following variable names:
A = group_layer_to_move_next_to_child_layer
B = child_group_layer
C = parent_group_layer
Here is my code:
##### SCRIPT VARIABLES TO ADJUST #####
PATH_LYRX_FILE = r'C:\Projects\ArcGISPro\Test_GroupLayer_below_GroupLayer6\all.lyrx' # TODO: adjust to your project
##### ACTUAL SCRIPT #####
current_project = arcpy.mp.ArcGISProject("CURRENT")
map = current_project.activeMap
lyrx_file = arcpy.mp.LayerFile(PATH_LYRX_FILE)
# add parent_group_layer to the map
parent_group_layer = map.addLayer(lyrx_file)[0]
parent_group_layer.name = 'Parent_Group_Layer'
# add child_group_layer to the map ...
child_group_layer = map.addLayer(lyrx_file)[0]
child_group_layer.name = 'Child_Group_Layer'
# ... and move it below parent_group_layer
map.addLayerToGroup(parent_group_layer, child_group_layer)
map.removeLayer(child_group_layer)
# add group_layer_to_move_next_to_child_layer to the map ...
group_layer_to_move_next_to_child_layer = map.addLayer(lyrx_file)[0]
group_layer_to_move_next_to_child_layer.name = 'Group_Layer_to_Move_Next_to_Child_Layer'
# ... and try to move it next to child_group_layer
map.moveLayer(child_group_layer, group_layer_to_move_next_to_child_layer, "AFTER")
So initially, my map and the table of contents are empty:
Then, my script adds C (or parent_group_layer) (line 10). Afterwards, B (or child_group_layer) is added (line 14) and moved below C (line 17-18). In the next step, A (or group_layer_to_move_next_to_child_layer) is added to the map (line 21).
The table of contents now looks as follows:
Finally, I want to move A next to B (line 24). However, A is not placed as child of C and on the same hierarchy level as B, but on the same hierarchy level as C:
My intended result would look as follows:
How can I achieve my goal by using the map.moveLayer method?
I am running my script in the ArcGIS Pro Python Window.