Comment mettre à jour la propriété de longueur du champ de classe d'entités dans ArcGIS Desktop?

10

J'ai une classe d'entités avec un champ de chaîne dont je souhaite mettre à jour la longueur de 10 à 25.

Existe-t-il un moyen ou un outil pour mettre à jour cette propriété sans avoir à créer un nouveau champ et à utiliser la calculatrice de champ pour déplacer les enregistrements de l'ancien vers le nouveau champ?


Ce script ci-dessous fait ce que je veux, la seule chose est qu'il pousse le champ mis à jour à la fin de la table (sans garder l'ordre des champs d'origine).

http://arcscripts.esri.com/details.asp?dbid=16503

Une autre option qui semblait prometteuse consiste à utiliser l'outil Classe d'entités vers classe d'entités (accédez à cet outil en cliquant avec le bouton droit sur une couche dans ArcCatolog et en sélectionnant l'option Exporter> vers la géodatabase). Il crée une nouvelle couche, mais vous pouvez mettre à jour les noms de champ et les informations de propriété. Il semble également que vous pouvez modifier l'ordre des champs à l'aide des flèches "Déplacer le champ de saisie vers le haut / vers le bas", mais ils semblent ne pas fonctionner.

Il doit y avoir une solution pour simplement modifier les propriétés des champs sans avoir à créer un nouveau champ.

oeuvre21
la source
S'agit-il d'une source de données spécifique? Pour les fichiers de formes?
underdark
@underdark, La classe d'entités se trouve dans une géodatabase.
artwork21
Non pas que cela vous aide en ce moment, mais à en juger par les commentaires sur cette idée ArcGIS , ils envisagent de l'implémenter dans "l'avenir".
Chad Cooper
XTools contient l'outil "Restructuration de la table" qui fait tout le gros du travail pour changer les caractéristiques du domaine, mais malheureusement, ce n'est pas l'un des outils gratuits fournis avec l'extension.
kenbuja

Réponses:

12

Pour autant que je sache, il n'existe actuellement aucun moyen d'effectuer des modifications de schéma dans une géodatabase sans supprimer et ajouter des champs, ni supprimer et recharger les classes / tables d'entités. C'est ce dernier que je recommande afin de maintenir l'ordre des champs.

Ce que je fais normalement, c'est:

  1. Faire une sauvegarde de la classe d'entités d'origine
  2. Exportez le schéma de la classe d'entités d'origine vers un fichier XML
  3. Modifiez le schéma dans un éditeur de texte ou ArcGIS Diagrammer 10.0 , 10.1 ou 10.2 .
  4. Supprimer la classe d'entités d'origine
  5. Réimportez le schéma dans la géodatabase
  6. Utilisez l'outil Ajouter, Simple Data Loader ou Object Loader pour charger le contenu de la classe d'entités de sauvegarde dans la classe d'entités nouvellement importée. Consultez la rubrique d'aide «A propos du chargement de données dans des classes d'entités et des tables existantes» pour plus d'informations.

Dans ArcGIS 10.1 et versions ultérieures, il existe des outils de géotraitement pour gérer l' importation / exportation XML, mais à partir de la version 10.0, vous devez utiliser ArcObjects ou le faire manuellement. Pour un exemple ArcObjects, voir: Exporter un document d'espace de travail XML

blah238
la source
Quelle exportation xml dois-je faire, doc espace de travail ou doc ​​jeu d'enregistrements?
artwork21
1
Espace de travail et l'option schéma uniquement (pas les données) si vous suivez les étapes ci-dessus.
blah238
Ok, donc j'ai fait mes mises à jour enregistrées dans le XML dans Diagrammer en tant que doc d'espace de travail et lorsque j'essaie de charger le schéma dans la classe d'entités, cela ne me donne qu'une option pour charger le doc du jeu d'enregistrements pas l'espace de travail? Et Diagrammer ne publie que sur un document d'espace de travail. Comment contournez-vous cela?
artwork21
1
Cliquez avec le bouton droit sur la connexion à la géodatabase / base de données et effectuez Importer -> Document d'espace de travail XML.
blah238
1
Cette procédure a parfaitement fonctionné! Pour charger vos données dans le nouveau schéma une fois que vous avez suivi les étapes ci-dessus, utilisez l' assistant Simple Data Loader
Elliott