Quantcast
Channel: Forums - Python
Viewing all articles
Browse latest Browse all 2485

Turn fields off by script

$
0
0
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

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")

This is where I'm not sure what to do, all the examples show making an new layer like:

Code:

arcpy.MakeFeatureLayer_management(LayerNeedsFieldsTurnedOff,"temp_layer","","",field_info)
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!

Viewing all articles
Browse latest Browse all 2485

Trending Articles