Llevas tres horas renombrando 400 vistas de un proyecto en Revit. Una por una. Haciendo clic derecho, Rename, borrando el nombre anterior, escribiendo el nuevo nombre, Enter. Tres horas de la vida de un ingeniero que factura su tiempo. Eso tiene solución en exactamente 15 líneas de Python.
pyRevit es la herramienta que convierte ese tiempo perdido en un botón. Un clic. Listo. Y lo mejor: no necesitas saber C# ni configurar Visual Studio ni compilar ningún .dll. Solo Python y una estructura de carpetas.
Instalación de pyRevit (10 minutos, sin sorpresas)
Ve al repositorio oficial de pyRevit en GitHub (github.com/pyrevitlabs/pyRevit) y descarga el instalador .exe de la última versión estable. Al ejecutarlo, el instalador agrega automáticamente una pestaña "pyRevit" al Ribbon de Revit.
Hay un detalle crítico para 2025/2026: Revit 2025 y 2026 ya no incluyen IronPython 2.7. Si tienes Revit 2024 o anterior, tienes ambos motores disponibles. Si usas Revit 2025+, asegúrate de que pyRevit esté configurado para usar CPython 3.x. Puedes verificarlo en: pyRevit tab → pyRevit Settings → CPython Engine.
La diferencia práctica: con CPython 3, puedes usar librerías modernas como pandas, requests o openpyxl directamente desde tus scripts de Revit. Con IronPython 2.7 (el viejo motor), estás limitado a las librerías del framework .NET y Python 2.
Estructura de Carpetas — El Corazón de pyRevit
pyRevit usa una estructura de carpetas como menú. No hay archivos de configuración XML ni registros en el sistema. Solo carpetas con nombres específicos:
MiEmpresa.extension/
├── Estructuras.tab/
│ ├── Herramientas.panel/
│ │ ├── RenombrarVistas.pushbutton/
│ │ │ ├── script.py
│ │ │ └── icon.png (opcional, 16x16 px)
│ │ └── ExportarSchedules.pushbutton/
│ │ └── script.py
│ └── Modelos.panel/
│ └── ...
└── BIM.tab/
└── ...
Cada sufijo tiene un significado:
.extension — define el paquete completo.tab — pestaña en el Ribbon de Revit.panel — grupo de botones dentro de la pestaña.pushbutton — botón simple que ejecuta un script.pulldown — botón desplegable con sub-opciones.stack — apila 2-3 botones verticalmente
Para registrar tu extensión en pyRevit: pyRevit tab → pyRevit Settings → Custom Extension Folders → Add Folder. Apunta a la carpeta que contiene tu .extension. Luego haz Reload y tu pestaña aparecerá en Revit.
Tu Primer Script Real — Renombrar Vistas en Masa
Aquí el script que te ahorra tres horas. Añade prefijo "EST-" a todas las vistas estructurales del modelo:
# -*- coding: utf-8 -*-
from pyrevit import revit, DB, forms
doc = revit.doc
# Recopilar todas las vistas (excepto templates)
views = DB.FilteredElementCollector(doc) .OfClass(DB.View) .WhereElementIsNotElementType() .ToElements()
views_to_rename = [v for v in views if not v.IsTemplate]
# Confirmar con el usuario
if not forms.alert(
"Se renombrarán {} vistas con prefijo 'EST-'. ¿Continuar?".format(len(views_to_rename)),
ok=True, cancel=True
):
import sys; sys.exit()
# Transacción (obligatoria para modificar el modelo)
with revit.Transaction("Renombrar vistas estructurales"):
for view in views_to_rename:
nombre_actual = view.Name
if not nombre_actual.startswith("EST-"):
try:
view.Name = "EST-" + nombre_actual
except Exception as e:
print("No se pudo renombrar '{}': {}".format(nombre_actual, e))
forms.alert("¡Listo! Vistas renombradas.", ok=True)
Puntos clave de este script:
revit.Transaction — todo cambio al modelo de Revit debe estar dentro de una transacción. Si algo falla, Revit revierte automáticamente los cambios.forms.alert — es el sistema de diálogos nativo de pyRevit. No necesitas importar tkinter ni wx.- El
try/except — algunas vistas tienen nombres protegidos por Revit (vistas de hoja activa, vistas de sistema). Sin el manejo de excepciones, el script fallaría en la primera vista conflictiva.
⚠️ Ojo en obra: Antes de correr cualquier script de renombre o modificación masiva en un modelo compartido (workshared), sincroniza y haz un backup. pyRevit no tiene botón de deshacer para operaciones dentro de una transacción comprometida. Si el script rename sobreescribe 500 vistas con nombres incorrectos, revertir manualmente es una pesadilla. Prueba siempre en un modelo de prueba antes de ejecutar en producción.
Distribución Corporativa — El Verdadero Poder
Lo que convierte pyRevit en una herramienta corporativa es que puedes alojar tu extensión en una ruta de red compartida (servidor de la empresa o SharePoint). Cada proyectista apunta su pyRevit a esa ruta. Cuando actualizas un script en el servidor, todos los usuarios lo tienen disponible al hacer Reload — sin instalar nada, sin enviar archivos por email.
Para empresas con 10 a 50 modeladores en Revit, esto es el equivalente de tener un repositorio de herramientas centralizado. El BIM Manager agrega el botón, lo prueba, lo sube al servidor, y al día siguiente toda la oficina lo tiene.
Si te interesa comparar cuándo conviene usar pyRevit versus Dynamo para automatizar tareas, la guía de Dynamo vs pyRevit en 2026 detalla los casos de uso reales de cada herramienta con benchmarks de velocidad.
Y si quieres ver un ejemplo más avanzado — extraer todos los elementos estructurales y exportarlos a Excel con sus parámetros — revisa el post de scripts Python para Revit 2025 donde construimos ese flujo completo con pandas.