Model Builder에서 다중 값 반복과 관련된 이상한 문제가 있습니다. 모델의 일부분은 Generating a multivalue choice list 예를 기반으로합니다.다중 값 문자열 반복
내가하려는 것은 사용자가 일부를 선택할 수있는 필터링 된 레이어 목록을 표시하는 것입니다. 이를 위해 1 입력 다중 값 문자열 매개 변수 및 1 파생 다중 값 모든 값 매개 변수가있는 스크립트 도구를 사용하고 있습니다.
그런 다음 선택한 반복 레이어 값 (다중 값 변수)은 각 반복 값이 계산 값에 사용되는 다중 값 반복에서 사용됩니다. 레이어는 ToolValidator에서 필터링됩니다.
이제 다중 값 반복은 값을 반복하지 않습니다. 대신 하나의 루프 만 실행하고 선택된 모든 레이어 이름이 세미콜론으로 구분 된 문자열 인 하나의 값을 전달합니다. 스크립트 도구 주요 모델에서 전달 된 다중를 사용
ToolValidator의 UpdateParameters 코드
if not self.params[0].altered:
mxd = arcpy.mapping.MapDocument("CURRENT")
dataframe = arcpy.mapping.ListDataFrames(mxd)[0]
layers = set()
for lyr in arcpy.mapping.ListLayers(mxd, "", dataframe):
if lyr.visible == True:
desc = arcpy.Describe(lyr.name)
if desc.dataType == "RasterLayer":
layers.add(desc.name)
self.params[0].filter.list = sorted(layers)
self.params[0].values = sorted(layers)
return
서브 모델. 여기
는 도구의 출력
사람이 이상한 행동에 대한 설명을 가지고 있습니까? 내가 뭘 잘못하고있어?