
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
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.