I am struggling to get the ArcGIS ModelBuilder "While" Iterator to work as I would expect it. I have a hunch it's user error, but even reading the help hasn't seemed to get it working for me.

I have a simple model that calls a Python script that simple does a time.sleep(15) and then sends back the conditional parameter of "TRUE" or "FALSE" using arcpy.SetParameterAsText(1, "FALSE") or similar for True statements in an if/else statement. I've also tried every combination of TRUE, True, and true, as outputs from my Python script without success.

Model with WHILE Iterator

I can see in the results that my conditions are being set correctly:

Executing (While): IterateCondition FALSE TRUE
Start Time: Tue Nov 20 16:10:06 2012
Succeeded at Tue Nov 20 16:10:06 2012 (Elapsed Time: 0.00 seconds)


Executing (While): IterateCondition TRUE TRUE
Start Time: Tue Nov 20 16:26:41 2012
Succeeded at Tue Nov 20 16:26:41 2012 (Elapsed Time: 0.00 seconds)

but the WHILE Iterator continues to fire the sleep script, even if I change the output parameter of my script. Any ideas on why I cannot seem to get the sleep script to stop firing? What should I be passing from my SetParametersAsText() in order to get the While Iterator to stop firing the Sleep script?

1 Answer 1


The input of the While loop should be of boolean data type.

I recreated your model and script and called arcpy.SetParameterAsText(1, "FALSE") in the script. For the script output, I used a boolean. ModelBuilder automatically converts the output string "FALSE" to boolean false. The boolean false can be evaluated by the While loop.

  • I was sure it was something simple like that, but for the life of me I couldn't get it to work correctly. Setting the script output to "Boolean" and "Derived" worked great and now the model and While Iterator are working as expected. Thank you so much! Commented Nov 21, 2012 at 15:14
  • 2
    NOTE: I previously had my output variable set to "string", hence the problem. Commented Nov 21, 2012 at 15:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.