Suite

Ajouter/supprimer une relation à l'aide d'ArcPy sans ArcGIS Pro ?

Ajouter/supprimer une relation à l'aide d'ArcPy sans ArcGIS Pro ?


J'essaie d'ajouter une relation entre 2 classes d'entités afin de pouvoir utiliser la zone de la table associée pour mettre à jour un champ dans la table d'origine.

J'ai trouvé qu'ArcGIS Pro (http://pro.arcgis.com/en/pro-app/tool-reference/data-management/add-relate.htm) peut le faire, mais une fonctionnalité similaire n'est pas disponible pour ArcPy lorsque utilisé avec l'environnement ArcGIS 10.3, c'est-à-dire que je n'utilise pas ArcGIS Pro.

J'ai suivi le script au bas de la page d'aide d'ArcGIS Pro pour Add Relate (estimant qu'ils seraient identiques), mais j'obtiens l'erreur que le module n'a pas d'attribut 'AddRelate'. Cela confirme le résultat vu dans Terminologie pour distinguer ArcPy installé avec ArcGIS 10.x for Desktop de celui fourni avec ArcGIS Pro ?

Je connais l'outil CreateRelationshipClass_management, mais je ne sais pas si c'est la même chose et si c'est le cas, comment appeler un champ connexe après avoir établi la relation.

Quelqu'un peut-il mieux expliquer l'outil CreateRelationshipClass (je n'arrive pas à comprendre les documents d'aide) ou expliquer comment mieux relier deux tables afin que je puisse accéder à une autre colonne ?

J'ai essayé de joindre les tables, mais je n'arrive pas à les dissocier par la suite et je ne veux pas que les champs supplémentaires se trouvent réellement dans ma table.


En l'absence de l'outil Ajouter une relation, cela a été ajouté à ArcGIS Pro, et non à l'architecture ArcGIS 10.x que vous utilisez, le pseudo-code pour savoir comment procéder :

  1. Utilisez un curseur de recherche pour lire et charger toutes les valeurs de la deuxième table (celle à laquelle vous souhaitez ajouter la relation) dans un dictionnaire Python. Utilisez le même champ que votre clé que vous utiliseriez si vous utilisiez un lien.
  2. Utilisez un curseur de mise à jour pour parcourir la première table et utilisez le même champ que votre clé que vous utiliseriez si vous utilisiez une relation pour rechercher les valeurs à écrire à partir de votre dictionnaire Python.

Vous voudrez peut-être également enquêter sur l'outil Ajouter une jointure, car je ne lis rien dans votre question qui indique que vous l'avez envisagé, ni aucune exigence à laquelle il ne répondrait pas :

Joint une couche à une autre couche ou table (où la couche est une couche d'entités, une vue tabulaire ou une couche raster avec une table attributaire de raster) en fonction d'un champ commun.

Les enregistrements de la table de jointure sont mis en correspondance avec les enregistrements du nom de couche d'entrée. Une correspondance est établie lorsque les valeurs du champ de jointure d'entrée et du champ de jointure de sortie sont égales. Cette jointure est temporaire.


Voir la vidéo: Microsoft Access 2016 #03: Modifier les propriétés dune relation