Arcpy: Allow access to all layer field properties via the FieldInfo object

Idea created by LTS_DSolari on Sep 13, 2019
    • No one has voted for this idea

    In ArcMap and ArcGIS Pro, layers in a MXD or Map can have different field properties (order, aliases, visibility etc.) than their underlying data sources. This is fantastic as it separates the presentation of the data in certain contexts from its implementation, allowing one feature class or table to serve multiple clients.


    Unfortunately, arcpy is unable to access these modified properties from a Feature Layer or Table View object: the information provided is taken straight from the underlying data source. There's partial support for field visibility but the ObjectID and Shape fields are always visible which isn't always desirable. What's even more curious is that both Feature Layers and Table Views expose a FieldInfo object through the Describe function, but this object is just a mirror of the layer fields.


    My proposal is to ensure that the FieldInfo object for a Feature Layer or Table View inherits the full properties of the MXD or Map layer. This would include adding "getFieldAlias" and "setFieldAlias" methods to the object, as well as other relevant methods for other properties. This would allow developers to write script tools that honor these properties without changing the default behavior of the applications.


    An alternative would be for layer fields properties to override data field properties across the board but I understand this would be a breaking change for many processes.