desc = arcpy.Describe("FeatureLayer") field_info = desc.fieldInfo visibleFields = ["ID", "NAME", "Rank", "Count"] for index in xrange(0, field_info.count): fieldName = str(field_info.getfieldname(index)) if fieldName in visibleFields: print "Found Field " + str(fieldName) + " in visibleFields. Setting Visible..." field_info.setvisible(index, "VISIBLE") else: print "Field " + str(fieldName) + " not found in visibleFields. Setting Hidden..." field_info.setvisible(index, "HIDDEN")
Solved! Go to Solution.
visibleFields = ["ID", "NAME", "Rank", "Count"] field_info = arcpy.Describe("FeatureLayer").fieldInfo for index in xrange(0, field_info.count): if field_info.getfieldname(index) not in visibleFields: field_info.setvisible(index,"HIDDEN") arcpy.MakeFeatureLayer_management("FeatureLayer","Feature_Layer_With_New_Visibilities","","",field_info)
visibleFields = ["ID", "NAME", "Rank", "Count"] field_info = arcpy.Describe("FeatureLayer").fieldInfo for index in xrange(0, field_info.count): if field_info.getfieldname(index) not in visibleFields: field_info.setvisible(index,"HIDDEN") arcpy.MakeFeatureLayer_management("FeatureLayer","Feature_Layer_With_New_Visibilities","","",field_info)
The general workflow is like you have it above. Make your field info object base on your existing feature layer, then you want to make a new feature layer using the optional "field_info" attribute.