laptop and a wrench

Bogue

Unable to set the ObjectID field as invisible and change the alias name of a field in the attribute table of a feature class using the Python Cartographic Information Model (CIM) code with an SQL Server database from ArcGIS Pro.

ArcGIS Pro
Numéro d’ID de bogue BUG-000155637
EnvoiFebruary 6, 2023
Dernière modificationJune 5, 2024
S’applique àArcGIS Pro
Version trouvée2.9
Système d’exploitationWindows OS
Version du système d’exploitationN/A
StatutAs Designed

Informations supplémentaires

The CIM often only persist changes made to an element in a project (to reduce the amount of bloat that would otherwise need to be persisted). In the case with field descriptions, the newly added data does not have any changes, therefore, nothing is persisted in the CIM. As a workaround, faking an alteration of a field in a feature or table can result in the information being persisted in the CIM. The following code uses arcpy.AlterField (but simply keeps the field info the same). First, it reports zero field descriptions for a feature class and a table, makes the modifications, then reports the field description counts. p = arcpy.mp.ArcGISProject('current') m = p.listMaps()[0] lyr = m.listLayers('NE_State_Boundaries')[0] tab = m.listTables('CensusData')[0] #Try returning cim field defs - NOPE lyr_cim = lyr.getDefinition('V3') print(f'LYR desc count PRE mod: {len(lyr_cim.featureTable.fieldDescriptions)}') tab_cim = tab.getDefinition('V3') print(f'TAB desc count PRE mod: {len(tab_cim.fieldDescriptions)}') #Modify fields lyrFld = arcpy.ListFields(lyr)[0] arcpy.management.AlterField(lyr, lyrFld.name, lyrFld.name, lyrFld.name) tabFld = arcpy.ListFields(tab)[0] arcpy.management.AlterField(tab, tabFld.name, tabFld.name, tabFld.name) #Try again lyr_cim = lyr.getDefinition('V3') print(f'LYR desc count POST mod: {len(lyr_cim.featureTable.fieldDescriptions)}') tab_cim = tab.getDefinition('V3') print(f'TAB desc count POST mod: {len(tab_cim.fieldDescriptions)}')

Solution de contournement

In ArcGIS Pro, manually change the alias name of the field and run the code.

Étapes pour reproduire

ID de bogue: BUG-000155637

Logiciel:

  • ArcGIS Pro

Recevoir une notification lorsque le statut d’un bogue change

Télécharger l’application Esri Support

En savoir plus sur ce sujet

Obtenir de l’aide auprès des experts ArcGIS

Contacter le support technique

Télécharger l’application Esri Support

Accéder aux options de téléchargement