Identity-tool FID-kolomnaam wordt afgekapt

Nadat mijn ArcMap-extensie het Identity-hulpprogramma uitvoert, heeft de resulterende identiteits-shapefile FID-kolommen voor de "invoerfuncties" FeatureClass en de "identiteitsfuncties" FeatureClass maar worden de kolomnamen afgekapt. Ik moet toegang krijgen tot deze kolommen wanneer ik later door de identiteits-shapefile loop.

Ik dacht dat ik het veld bij naam kon vinden om de kolomindex te krijgen, maar ik weet nooit wat ze worden genoemd. Het is "FID_" plus een deel van de naam van de invoer, maar de reeks van kolomnamen is te kort om alleen de reeksen te vergelijken. De ingangen kunnen vergelijkbare namen hebben.

Als ik dit handmatig doe in ArcMap, worden de namen niet afgekapt. De kolomnaam is 'FID_' plus de volledige naam van de ingangsfunctie FeatureClass-naam.

Is er een manier om in te stellen wat de FID-kolomnamen zullen zijn?

1

2 antwoord

Ik heb eerder IFieldChecker gebruikt , naast andere scenario's, om te bepalen welke kolomnamen zullen zijn na het uitvoeren van geoprocessing-tools. IFieldChecker.Validate keert ook terug lijst van vaste velden, waarvan de namen worden ingekort (en eventueel genummerd) indien vereist door de doelwerkruimte.

Vergeet niet dat u ook de werkruimten van de veldcontrole correct moet instellen, zie de gekoppelde documentatie. Als u shapefile-werkruimte als ValidateWorkspace gebruikt, krijgt u een ander resultaat dan met bijvoorbeeld een bestandsgeodatabase of SDE, omdat de naamlengtebeperkingen er anders van afwijken.

U moet een deel van de logica van het hulpprogramma dupliceren, namelijk u aansluiten bij de veldnamen en die namen opgeven voor de veldcontrole. Zodra u dat echter doet, kunt u zien hoe de afgekapte namen eruitzien in de shapefile.

Als u andere resultaten ziet in ArcMap, komt dit waarschijnlijk omdat u een geodatabase gebruikt, in tegenstelling tot shapefiles in uw ArcObjects-code.

1
toegevoegd
Ik zal IFieldChecker en een geodatabase in plaats van een shapefile in de toekomst gebruiken.
toegevoegd de auteur mysterious, de bron

Ten eerste denk ik niet dat er een manier is om aan te geven wat het 'FID_'-veld zal heten omdat het automatisch wordt gegenereerd. U kunt echter uw eigen veld maken vóór de identiteitsoperatie en uw FID-waarden ernaar kopiëren. Op die manier kunt u de naam van een veld waarop u later kunt zoeken, effectief beheren. U krijgt ook het veld 'FID_' maar kunt het nu negeren.

Onthoud dat shapefiles korte limieten hebben voor de lengte van de veldnamen. Geodatabases kunnen langere veldnamen hebben, dus een ander alternatief zou zijn om het geodatabase-formaat te gebruiken in plaats van shapefiles

1
toegevoegd
De Shapefile is een vrij oud formaat en gebaseerd op het DBF-bestandsformaat deelt het de beperkingen voor veldnamen.
toegevoegd de auteur Nick, de bron
Ik was tot nu toe niet op de hoogte van de verschillende veldnaamlengtes, bedankt. Uiteindelijk heb ik een geodatabase gemaakt om de uitvoer op te slaan in plaats van de shapefile.
toegevoegd de auteur mysterious, de bron