Как сделать инструмент необязательным?и будет ли он работать, только если параметры заполнены? - PullRequest
0 голосов
/ 30 января 2019

Я использую несколько инструментов в скрипте arcpy.В конце сценария я хочу дать возможность изменить проекцию с помощью Определить проекцию.Только я не хочу, чтобы инструмент запускался, если пользователь не хочет, чтобы он запускался, поэтому, если в инструмент не введены никакие параметры, он не запустится.

Возможно ли это?

Я использую ArcMap 10.5.не уверен, что еще вам нужно знать.

Prjs = arcpy.GetParameter(4)
Prjs_List = []
for Prj in Prjs:
    if Prj not in Prjs_List:
        print Prj
        Prjs_List.append(dem)
if len(Prjs_List) == True:
    arcpy.DefineProjection_management(Cont_Cliff_Merged, Prjs)
else:
   arcpy.AddMessage("Define Projection tool Skipped.")

Я надеялся, что это создаст список, основанный на входных параметрах, и если бы не было ввода, отобразился бы оператор print.

Я получаю сообщение об ошибке, сообщающее, что параметры геообработки не повторяются, то есть файлы .prj не могут быть помещены в список.

Мысли?

1 Ответ

0 голосов
/ 11 февраля 2019

Вместо этого вам нужно использовать функцию GetParameterAsText ().Таким образом, если вход пустой, он вернет пустую строку, в противном случае он вернет строку.Если входной параметр принимает несколько входов, вам нужно использовать функцию split (), чтобы разбить несколько входов на список строк.

Т.е.:

Prjs = GetParameterAsText(4)
Prjs_List = Prjs.split(‘,’)
If len(Prjs_List):
Do something
Else:
Do otherthing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...