REVIT ARCHITECTURE (994) – PYTHON – Bucles (78) – Usando range() con for y else en Python y Revit

En Python, la función range() nos permite generar secuencias de números que podemos recorrer con un bucle for.
Además, podemos combinarlo con una cláusula else que se ejecuta una vez terminado el bucle sin interrupciones.

Veamos un ejemplo en Python y luego cómo aplicarlo en un flujo de trabajo Revit.

Ejemplo en Python

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

valores = range(1, 5)
Creamos un rango que va del 1 al 4 (el número 5 no se incluye).

for v in valores:
Iteramos sobre cada número del rango, asignándolo a la variable v.

print(v * 2)
Mostramos en pantalla el doble del número actual.

else:
Este bloque se ejecuta al terminar el bucle de forma natural (sin break).

print(«Último valor procesado:», v)
Imprimimos el último valor recorrido en el bucle.

Salida esperada:

Aplicación en Revit Open Source Converter

En un flujo de exportación, podríamos querer recorrer un conjunto de muros y al final mostrar cuál fue el último muro exportado.

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

muros = obtener_muros_revit()
Obtenemos la lista de muros del proyecto Revit.

for muro in muros:
Recorremos uno por uno los muros.

exportar_muro(muro)
Exportamos cada muro al formato deseado.

else:
Una vez que el bucle ha terminado (porque ya no quedan muros), se ejecuta este bloque.

print(«Último muro exportado:», muro[«id»])
Informamos cuál fue el último muro procesado.

Esto ayuda a tener una confirmación clara de que la exportación terminó correctamente y saber hasta dónde se procesó.

Conclusión

range() nos permite generar secuencias numéricas fácilmente.

La cláusula else en un for se ejecuta al finalizar el bucle, salvo que usemos break.

En un flujo BIM, esta estructura puede servir para confirmar el último elemento procesado tras recorrer un conjunto de objetos Revit.

Bonus: ¿Qué pasa si usamos break en un for con else?

La cláusula else en un bucle for (o while) solo se ejecuta si el bucle termina de manera natural.
Si usamos break, el else se salta.

Ejemplo 1: con else ejecutándose

Salida:

Ejemplo 2: con break, el else no se ejecuta

Salida:

Fíjate que el mensaje del else no aparece porque el break detuvo el bucle antes de su final natural.

Bonus 2: Where do Python functions come from?

When we code in Python, we constantly use functions, such as print(), range(), or len(). But where do these functions actually come from?

  • Built-in functions

These are available immediately, without importing anything.

Examples: print(), range(), len(), type().

Python loads them automatically when the interpreter starts.

  • Functions from the standard library

Python includes a standard library, which is a collection of modules that extend functionality.

Example:

  • User-defined functions

We can also create our own functions with the def keyword.

Example:

Key idea: effect vs. value

  • Some functions cause an effect (like print(), which displays text).
  • Others evaluate a value (like len(), which returns the length of a string).

In practice, this distinction helps us predict whether a function will do something or give something back for later use.

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

Deja un comentario