REVIT ARCHITECTURE (993) – PYTHON – Bucles (77) – El uso del else en los bucles while en Python

En Python, los bucles while y for pueden tener una cláusula else, como ya hemos comentado en otros artículos.
La clave es que el bloque else solo se ejecuta si el bucle termina de manera natural, es decir, sin ser interrumpido por un break.

Vamos a verlo con un ejemplo simple y luego lo aplicaremos a un escenario de Revit.

Ejemplo en Python

Explicación línea por línea de código

x = 5
Definimos una variable inicial x con valor 5.

while x > 2:
Creamos un bucle while que seguirá ejecutándose mientras x sea mayor que 2.

print(«Contando:», x)
En cada iteración mostramos el valor actual de x.

x -= 1
Restamos 1 a x en cada vuelta del bucle.

else:
Este bloque se ejecuta cuando la condición x > 2 ya no se cumple (es decir, cuando el bucle termina de manera natural).

print(«Fin del conteo, x =», x)
Mostramos un mensaje final indicando el valor de x en el momento en que el bucle terminó.

Salida del programa:

Aplicación en Revit Open Source Converter

En un flujo de trabajo de conversión BIM, podemos usar esta lógica para procesar elementos mientras existan, y al terminar, mostrar un mensaje final de confirmación.

Explicación línea por línea

pendientes = obtener_elementos_revit()
Obtenemos todos los elementos pendientes de procesar.

i = 0
Inicializamos el índice en 0 para recorrer la lista.

while i < len(pendientes):
El bucle se ejecuta mientras queden elementos por procesar.

procesar(pendientes[i])
Procesamos el elemento en la posición actual.

i += 1
Avanzamos al siguiente elemento.

else:
Cuando ya no queden más elementos (i alcanzó la longitud de la lista), se ejecuta el bloque else.

printTodos los elementos fueron procesados.»)
Confirmamos que el bucle terminó correctamente y todo fue procesado.

Conclusión

La cláusula else en un bucle while solo se ejecuta si el bucle termina sin un break.

Es muy útil para mostrar mensajes finales o confirmar que un proceso se completó correctamente.

En el flujo Revit Open Source Converter, podemos aplicarlo para validar que todos los elementos fueron exportados sin errores.

Bonus: ¿Cuándo se ejecuta else y cuándo no?

La cláusula else en los bucles puede ser confusa al principio.
La regla es simple:

  • Se ejecuta si el bucle finaliza de manera normal.
  • No se ejecuta si el bucle es interrumpido con break.

Ejemplo 1: con else ejecutándose

Salida:

Ejemplo 2: con break, el else no se ejecuta

Salida:

Aplicación en Revit Open Source Converter

Si procesamos muros en Revit:

Si todos los muros tienen material → se ejecuta el else.

Si encontramos un muro con error → el break detiene el proceso y el else no se ejecuta.

Licencia Creative Commons Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.

Deja un comentario