선택한 피처에서 레이어 만들기 DYNAMIC 레이어를 만들지 않습니다 . 결과 레이어는 전혀 동적이지 않습니다. FIDset을 기반으로합니다.
소스 데이터를 변경하면 FID가 변경되고 선택 레이어가 손상됩니다.
선택 레이어에는 where 절이 없습니다. FIDset ( '선택한 기능에서 레이어 작성'을 사용할 때 선택한 FID)을 기반으로합니다.
소스 데이터에서 레코드를 추가하거나 제거하면 FID가 변경되고 선택 레이어에 잘못된 레코드가 표시됩니다.
선택 레이어를 where 절을 저장하고 동적 인 쿼리 레이어와 혼동하고 있습니다.
편집 : 선택 레이어의 기능 목록이 메모리에 저장됩니다. 선택 레이어가 끊어지면 원래 선택을 복구 할 방법이 없으므로 임시 작업 이외의 선택 레이어를 사용하는 것은 좋지 않습니다.
선택 레이어에서 기능 목록을 찾으려면 SearchCursor를 비롯한 여러 가지 방법을 사용하여 ID 목록을 작성할 수 있습니다.
이 같은:
OIDlist = []
with arcpy.da.SearchCursor(layer, 'OBJECTID') as scur:
for row in scur:
OIDlist.append(row[0])
crmackey의 코멘트에서 :
FIDSet을 얻기위한 describe가 내장되어 있습니다. 이것은 문자열이지만 목록으로 쉽게 변환 할 수 있습니다.
OIDlist = map(int, arcpy.Describe(layer).FIDSet.split(';'))