Hello,
I have been unsuccessfully attempting to add layers programmatically to an open mxd document via arcpy scripting. I AM, however, able to add the layers to the mxd, save a copy of the mxd and then open the new mxd with the layers successfully added.
Is it not possible to add these layers and refresh the TOC and Active View dynamically with the mxd open? Or does it have to be closed, saved and reopened?
I don't receive any errors when I run my code it is that the layers aren't visibly added to the mxd on the fly.
Here is a code excerpt:
I have been unsuccessfully attempting to add layers programmatically to an open mxd document via arcpy scripting. I AM, however, able to add the layers to the mxd, save a copy of the mxd and then open the new mxd with the layers successfully added.
Is it not possible to add these layers and refresh the TOC and Active View dynamically with the mxd open? Or does it have to be closed, saved and reopened?
I don't receive any errors when I run my code it is that the layers aren't visibly added to the mxd on the fly.
Here is a code excerpt:
Code:
arcpy.MakeFeatureLayer_management(fc, fl, whereClause)
outLayerFilePath = outputFL + "\\" + fl + ".lyr"
# Save to Layer file
arcpy.SaveToLayerFile_management(fl, outLayerFilePath)
out_layer = arcpy.mapping.Layer(outLayerFilePath)
# Line checks to ensure the feature layers were created with the right feature count
#countFeatures = arcpy.GetCount_management(out_layer).getOutput(0)
#print countFeatures
arcpy.mapping.AddLayer(df, out_layer)
arcpy.RefreshTOC()
arcpy.RefreshActiveView()
mxd.saveACopy(outputMXDpath) # only when this line is added to save to a new mxd can I see the newly added layers.