Créer un calque à partir des entités sélectionnées NE crée PAS un calque DYNAMIQUE . La couche résultante n'est pas dynamique du tout. Il est basé sur un FIDset.
Si vous modifiez les données source, les FID changeront et votre couche de sélection se cassera.
Il n'y a pas de clause where dans une couche de sélection. Il est basé sur FIDset (les FID qui ont été sélectionnés lorsque vous avez utilisé «Créer une couche à partir d'entités sélectionnées»).
Veuillez noter que si vous ajoutez ou supprimez des enregistrements des données source, les FID changeront et votre couche de sélection affichera des enregistrements incorrects.
Vous confondez la couche de sélection avec une couche de requête, qui stocke une clause where et est dynamique.
MODIFIER: La liste des fonctionnalités d'une couche de sélection est stockée en mémoire. Il n'est pas recommandé d'utiliser des calques de sélection autres que pour un travail temporaire car il n'y a aucun moyen de récupérer la sélection d'origine une fois le calque de sélection rompu.
Pour trouver la liste des fonctionnalités dans une couche de sélection, vous pouvez utiliser de nombreuses méthodes différentes, dont SearchCursor, pour créer une liste d'ID.
Quelque chose comme ça:
OIDlist = []
with arcpy.da.SearchCursor(layer, 'OBJECTID') as scur:
for row in scur:
OIDlist.append(row[0])
Extrait du commentaire de crmackey :
Il existe également un moyen intégré de décrire pour obtenir le FIDSet. Ceci est une chaîne, mais est facile à convertir en liste:
OIDlist = map(int, arcpy.Describe(layer).FIDSet.split(';'))