Je souhaite accéder aux couches d'annotations en utilisant arcpy (le but est de vérifier quelques chaînes de texte dans les annotations de texte). Par annotation, je veux dire des annotations d'outils de dessin , pas des étiquettes dynamiques. Ces couches d'annotations se trouvent sous une couche de groupes nommée «Par défaut».
La documentation Esri parle d'annotation de dessin comme étant des couches elles-mêmes:
Il existe essentiellement trois catégories de couches dans un document ArcMap: les couches d'entités, les couches de groupe et les couches raster. Les propriétés isFeatureLayer, isGroupLayer et isRasterLayer vous permettent d'identifier ou d'isoler la majorité des types de calques mais pas tous les types de calques. Il existe quelques couches et jeux de données spécialisés qui ne tombent pas dans l'une de ces trois catégories: sous-classes d'annotations, entités de dimension, jeux de données réseau, jeux de données de terrain, jeux de données de topologie, etc. Dans ces cas, vous devrez peut-être tester d'autres propriétés pour isoler une couche d'intérêt avant de lui faire quelque chose.
Une chose à savoir est la façon dont ArcGIS gère les annotations de dessin , deux configurations moyennes sont possibles:
ArcGIS prend entièrement en charge deux types d'annotations: géodatabase et document cartographique
Dans mon cas, c'est un document cartographique.
À la lumière de toute cette documentation, il apparaît donc que les annotations draw ne sont que de simples couches, donc un simple code comme celui-ci devrait fonctionner:
mxd = arcpy.mapping.MapDocument("some\mxdpath\here")
df = arcpy.mapping.ListDataFrames(mxd,"Layers")
lyr = arcpy.mapping.ListLayers(mxd,"current_annotation_layer",df)
Mais le problème est que les annotations ne semblent pas pouvoir être obtenues via dataframe (ce qui est étrange étant donné que chacune de mes couches d'annotations est associée à une couche d'entités).
Une classe arcpy spécifique pour accéder aux annotations (comparable à IAnnotationFeature2 du SDK ArcObject)? Une solution?
Merci !