Saltar al contenido
Especialista3D

FilteredElementCollector de Revit API: uso y ejemplo en Español

filteredelementcollector revit api python español

El FilteredElementCollector es una herramienta valiosa para buscar, filtrar e iterar a través de elementos dentro del modelo utilizando la API de Revit, vamos a ver cómo utilizarlo.

Encontrando lo que queremos filtrar con FilteredElementCollector. Habitualmente categorías o clases

Antes de comenzar a trabajar con el FilteredElementCollector, necesitamos saber las categorías adecuadas de los elementos que queremos seleccionar. En este ejemplo, vamos a buscar específicamente tubos eléctricos.

Podemos encontrar las categorías mediante aplicaciones como Revit LookUp, que nos permite seleccionar elementos y ver su información, incluida la categoría a la que pertenecen.

Accediendo a la API de Revit con Python

Primero, asegurémonos de que estamos trabajando dentro del entorno de Dynamo, donde utilizaremos Python para acceder a la API de Revit. Dynamo es una herramienta que nos permite realizar scripts y tareas automatizadas con Revit.

Empezando con FilteredElementCollector

El FilteredElementCollector es una clase que nos permite buscar y filtrar elementos dentro del modelo de Revit. Comenzamos inicializando el colector con el documento actual. En la web de la API de Revit podemos ver cómo se construye.

En el ejemplo vemos como utilizarlo para obtener todos los elementos del documento de la categoría de conductos eléctricos:

# Carga las bibliotecas de DesignScript y normas de Python.
import clr

# Import ToDSType(bool) extension method
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

# Import geometry conversion extension methods
clr.ImportExtensions(Revit.GeometryConversion)

# Import DocumentManager and TransactionManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

# Standard areas for Current Document
doc = DocumentManager.Instance.CurrentDBDocument

conductos= 	FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Conduit).WhereElementIsNotElementType().ToElements()

# Asigne la salida a la variable OUT.
OUT = conductos

Curso de Revit API

¿Quieres formarte de Revit? Échale un ojo al programa de Especialización Dynamo Python Online  para aprender de cero y ver muchísimos más ejemplos con la API.

CC BY-NC 4.0 FilteredElementCollector de Revit API: uso y ejemplo en Español por Especialista3D está licenciado bajo una Licencia Creative Commons Atribución-NoComercial 4.0 Internacional.