Создать слой из выбранных объектов НЕ создает ДИНАМИЧЕСКИЙ слой . Результирующий слой вообще не является динамическим. Он основан на FIDset.
Если вы измените исходные данные, FID изменится, и ваш слой выбора сломается.
В слое выбора нет предложения where. Он основан на наборе FID (FID, которые были выбраны при использовании «Создать слой из выбранных объектов»).
Обратите внимание, что если вы добавляете или удаляете записи из исходных данных, FID изменится, и ваш слой выбора покажет неверные записи.
Вы путаете слой выбора со слоем запроса, который хранит предложение where и является динамическим.
РЕДАКТИРОВАТЬ: список объектов для слоя выбора сохраняется в памяти. Не рекомендуется использовать слои выбора, кроме как для временной работы, поскольку невозможно восстановить исходное выделение после разрыва слоя выбора.
Чтобы найти список объектов в слое выбора, вы можете использовать множество различных методов, включая SearchCursor, для создания списка идентификаторов.
Что-то вроде этого:
OIDlist = []
with arcpy.da.SearchCursor(layer, 'OBJECTID') as scur:
for row in scur:
OIDlist.append(row[0])
Из комментария crmackey :
Существует также встроенный способ с описанием для получения FIDSet. Это строка, но ее легко преобразовать в список:
OIDlist = map(int, arcpy.Describe(layer).FIDSet.split(';'))