Does anyone now how to add a group layer with Python in ArcGIS Desktop 10?
I can use arcpy.mapping.AddLayer but surely this is only for an actual layer as opposed to a group layer.
so far I have this
import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.listdataframes(mxd, "layers")[0]
arcpy.mapping.AddLayer
3 Answers 3
I do not think ArcPy provides anything to create group layer directly, but there is a simple workaround. You can create a .lyr file which contains a single empty group layer and add it to your map:
groupLayer = arcpy.mapping.Layer(r"EmptyGroupLayer.lyr")
arcpy.mapping.AddLayer(dataFrame, groupLayer, "BOTTOM")
Then you can use the AddLayerToGroup function to add another layers under your group layer.
-
I have a couple of layer groups but within them further groups. Let's call them parent and child. the parents are all unique however the children within each parent are the same. EG Incidentals>Birds and Transects>Bird. Is there anyway to avoid the conflict of the two bird group layers having the same name?Oliver Burdekin– Oliver Burdekin2012年11月26日 18:57:43 +00:00Commented Nov 26, 2012 at 18:57
-
This gave me an error when I called AddLayerToGroup. I found a solution here: geonet.esri.com/thread/105771#comment-393442
groupLayer = arcpy.mapping.ListLayers(mxd, "AAAA", dataFrame)[0]
Gabriel Littman– Gabriel Littman2016年05月24日 02:28:33 +00:00Commented May 24, 2016 at 2:28 -
For ArcGIS Pro readers that may found this question. As of ArcGIS Pro 3.0, you have access to
createGroupLayer (name, group_layer)
in theMap
class. If you are still on 2.x, this answer is still valid butarcpy.mp.LayerFile
is nowarcpy.mapping.Layer
.Marc_Alx– Marc_Alx2023年03月02日 09:31:23 +00:00Commented Mar 2, 2023 at 9:31
Save an empty group layer as a .lyr
file. Then you can use AddLayer
to add it to your map and then add new layers from there.
For ArcGIS 10.2 and 10.3, you cannot add a Layer to that group. You should refer to the layer added in the TOC and not the one on the drive. Finish with the steps described in the following post : AddLayertoGroup
newlyrGr = arcpy.mapping.ListLayers(df)[0]
Then, all works!
arcpy.mapping.AddLayerToGroup(df, newlyrGr, feat_layer)