1

I'm trying to create an mxd that can dynamically create and name group layers, and populate them with various feature layers. I've seen some examples of how to do this, such as : Creating empty group layer within existing group layer using arcpy.mapping?

The basics seem to be: reference an empty layer file:

  • groupLayer = arcpy.mapping.Layer(r"D:\Test\GroupTest.lyr")

Add it to the map:

  • arcpy.mapping.AddLayer(df, groupLayer, "BOTTOM")

  • listedGroupLayer = arcpy.mapping.ListLayers(mxd, "GroupTest", df)[0]

Then add some layer to it:

  • addLayer = arcpy.mapping.layer(r"D\Test\Rivers.lyr")

  • arcpy.mapping.AddLayerToGroup(df, listedGroupLayer, addLayer, "BOTTOM")[0]

I'm getting stuck on the first step: I need to dynamically create an empty layer file (based off of group layer names in a spreadsheet), before referencing it.

Any examples of how to create an empty layer file (rather than reference one), within python?

  • It's not possible to create an empty group layer using arcpy. It is possible using python if you use arcobjects via the comtypes module. See gis.stackexchange.com/q/80 – user2856 Aug 21 '15 at 11:52
2

Another option is to have a generic group layer saved as *.lyr file. Then when you load the layer change the name property and add it to the map document. You may be able to rename it after adding it to the map document. Then save the map document to retain the changes.

lyr = arcpy.mapping.Layer("grouplayer.lyr")
lyr.name = "Test Name"
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
arcpy.mapping.AddLayer(df,lyr,"BOTTOM")
0

As commented by @Luke:

It's not possible to create an empty group layer using arcpy. It is possible using python if you use arcobjects via the comtypes module. See Accessing ArcObjects from Python?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.