I've been beating my head against a wall for a full workday trying to figure this one out. What I want to accomplish is to turn a number of fields off in a feature layer. There is a method using the fieldInfo() method, but that only seems to work when creating a NEW feature layer. I want to apply the turned off fields to the EXISTING layer.
Code example below
This is where I'm not sure what to do, all the examples show making an new layer like:
This however set's me down a rabbit hole I really don't want to go down. (duplicate layers, symbology, labeling, etc...) Is there a way to apply the field visibilities back to the original layer and not a new one?
Thanks in advance!
Code example below
Code:
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd, "*")[0]
LayerNeedsFieldsTurnedOff = arcpy.mapping.ListLayers(mxd, "Layer Name", df)[0]
desiredFields = ["LAST","FIRST","CITY","ZIP"]
# This makes the field_info object that can then be applied to a layer
field_info = arcpy.Describe(LayerNeedsFieldsTurnedOff).fieldInfo
for index in xrange(0, field_info.count):
if field_info.getfieldname(index) not in engineFields:
field_info.setvisible(index,"HIDDEN")
Code:
arcpy.MakeFeatureLayer_management(LayerNeedsFieldsTurnedOff,"temp_layer","","",field_info)
Thanks in advance!