En resumen
- ParameterFilterElement funciona con categorías y una o más reglas.
- SelectionFilterElement utiliza los identificadores de los elementos incluidos en el filtro, en lugar de reglas.
- View.SetFilterVisibility() controla la visibilidad, mientras que View.SetFilterOverrides() gestiona las opciones gráficas.
- En Revit 2024, el almacenamiento interno de ElementId pasó a 64 bits; puede ser necesario recompilar código creado para versiones anteriores de la API.
¿Qué aprenderás en esta guía?
En Revit API, un filtro de vista permite controlar qué elementos se muestran en una vista o cómo se ven. En esta guía abordaremos dos tipos de filtros: ParameterFilterElement, que utiliza condiciones de categoría y parámetros, y SelectionFilterElement, compuesto por identificadores de elementos específicos. Veremos paso a paso cómo crear filtros, añadirlos a una vista, cambiar su visibilidad y aplicar opciones gráficas.
En la documentación arquitectónica, este enfoque puede servir, por ejemplo, para ocultar de una vista las paredes que cumplan determinadas condiciones o para distinguir elementos seleccionados con un color de línea diferente. Se trata de escenarios ilustrativos; las categorías y reglas que se utilicen deben definirse según las necesidades del proyecto.
Requisitos y compatibilidad de versiones
Esta guía está dirigida al desarrollo de complementos con Revit API; no es una serie de instrucciones para usar los menús de la interfaz de Revit. Las referencias a la API cubren la creación y gestión de filtros en un documento de Revit y una vista. No se indican requisitos específicos de tipo de cuenta, costo ni hardware adicional.
Es importante utilizar la documentación de la API correspondiente a la versión de Revit de destino. La documentación de Revit 2024 API de Autodesk señala que los desarrolladores pueden consultar el archivo de ayuda RevitAPI.chm y la solución Samples\SDKSamples.sln, incluidos con el SDK. No debe darse por sentado que el código escrito para una versión anterior funcionará sin cambios en una versión nueva.
Por ejemplo, en Revit 2024, el almacenamiento interno de ElementId pasó de 32 a 64 bits. La propiedad anterior IntegerValue fue sustituida por Value, que devuelve el valor completo de 64 bits. Autodesk indica que el código compilado para versiones anteriores de la API puede presentar algunos problemas de conversión de tipos y que debe recompilarse para Revit 2024 API. Por eso, al desarrollar filtros, conviene consultar la documentación de las clases y los métodos correspondientes a la versión de destino.
Paso a paso: crear un filtro de parámetros
Define las categorías y las condiciones.
ParameterFilterElementutiliza una o más categorías permitidas y reglas que se aplican a los elementos de esas categorías. Antes de crear el filtro, determina qué grupo de elementos quieres incluir y qué valores de parámetros quieres buscar. En el ejemplo de Autodesk se selecciona la categoría de muros; las reglas incluyen que la función del muro sea “Exterior” y que un valor de longitud sea igual o superior a un umbral determinado.Crea el elemento de filtro y asigna las reglas.
ParameterFilterElement.Createcrea el elemento de filtro a partir del documento, el nombre del filtro y la lista de categorías. Una vez preparadas las reglas, se asignan al filtro medianteSetRules. La referencia muestra como ejemplos las condiciones de igualdad, de valor mayor o igual que un umbral y de texto que comienza con una cadena determinada. Esto no significa que todos los proyectos deban usar los mismos parámetros: la regla debe ser compatible con las categorías y los parámetros pertinentes.Asocia el filtro a la vista.
View.AddFilter()aplica el filtro a la vista de destino. Sin embargo, esta llamada utiliza las anulaciones gráficas predeterminadas, por lo que es posible que no haya una diferencia visible aunque el filtro esté aplicado. Considera por separado la existencia del filtro y el resultado que produce en la vista.Configura la visibilidad.
View.SetFilterVisibility()determina si los elementos que cumplen las condiciones del filtro son visibles. Si el filtro aún no está aplicado a la vista, este método también lo añade, por lo que no es obligatorio llamar además aAddFilter(). Por ejemplo, si se quiere ocultar los elementos coincidentes, la visibilidad debe configurarse en consecuencia.Aplica las opciones gráficas. Para cambiar propiedades visuales de los elementos que cumplen el filtro, como el color de línea, se puede usar
View.SetFilterOverrides(). Las opciones existentes se pueden consultar conView.GetFilterOverrides(). Así, además de controlar la visibilidad, el filtro permite diferenciar visualmente los elementos en la vista.
Paso a paso: filtros de selección y edición de filtros
Determina qué elementos incluir en el filtro.
SelectionFilterElementfunciona con los identificadores de un grupo de elementos, en lugar de utilizar reglas de parámetros. En el ejemplo de referencia, primero se recopilan las etiquetas de habitación de una vista específica y, después, se añaden a una lista los identificadores de las etiquetas que cumplen una condición sobre el número de habitación. En este método, el alcance se define mediante los identificadores de los elementos seleccionados, no mediante reglas del filtro.Crea el filtro de selección. El elemento de filtro se crea con
SelectionFilterElement.Createy los identificadores de los elementos se le asignan medianteSetElementIds. El identificador del filtro se añade a la vista de destino conView.AddFilter(). Comprobar que se hayan recopilado los elementos correctos ayuda a reducir los resultados inesperados.Añade, si lo necesitas, una anulación gráfica. En el ejemplo de Autodesk, se recuperan las opciones de filtro existentes en la vista, se establece el color de línea en azul y se aplican con
View.SetFilterOverrides(). Este ejemplo muestra cómo añadir opciones gráficas a un filtro de selección; el color y las demás preferencias visuales deben elegirse según los estándares del proyecto.Revisa los filtros existentes.
View.GetFilters()devuelve los identificadores de los filtros de una vista. Puedes consultar la visibilidad de un filtro específico conView.GetFilterVisibility()y sus opciones gráficas conView.GetFilterOverrides().View.RemoveFilter()elimina el filtro de la vista. Para cambiar las opciones existentes, primero lee los valores de los filtros y luego aplica las opciones gráficas correspondientes conView.SetFilterOverrides().
En los ejemplos de Autodesk, las operaciones que modifican el documento se realizan dentro de una transacción. Al crear filtros, asociarlos a una vista y cambiar las opciones gráficas, ten en cuenta que estas operaciones modifican el documento. Comprobar cada función por separado facilita determinar si el problema se debe a una regla del filtro, a la visibilidad o a las opciones gráficas.
Errores frecuentes y próximos pasos
Se añadió el filtro, pero la vista no cambió: AddFilter() utiliza las opciones gráficas predeterminadas y, por sí solo, puede no producir ningún cambio visible. Comprueba SetFilterVisibility() para la visibilidad y SetFilterOverrides() para las diferencias gráficas.
La regla no encuentra los elementos esperados: Revisa las categorías permitidas del filtro y los parámetros utilizados en las condiciones. Como el filtro de parámetros está limitado por categoría, los elementos de una categoría fuera del alcance no se incluirán aunque cumplan la regla.
El filtro de selección incluye elementos incorrectos: Revisa la lista de identificadores creada antes de SetElementIds y las condiciones de selección que se usaron para generarla. Este tipo de filtro no aplica reglas de parámetros por sí mismo; los identificadores de los elementos deseados deben asignarse explícitamente al filtro.
El complemento da problemas en otra versión de Revit: Comprueba los cambios de la API para la versión de destino. El cambio a ElementId de 64 bits en Revit 2024 puede requerir recompilar el código creado para una API anterior. Antes de desarrollar o actualizar, es útil trabajar en una vista de prueba y asegurarse de que la documentación de la API utilizada corresponda a la versión.
Para los equipos de arquitectura, diseño de interiores y visualización, los filtros pueden ser útiles, sobre todo cuando se necesita gestionar de forma coherente grupos de elementos en las vistas. El filtro de parámetros define criterios mediante categorías y reglas; el filtro de selección, en cambio, se centra en grupos de elementos determinados directamente. El método adecuado depende del estándar de la vista y de cómo se seleccionen los elementos. También conviene considerar la compatibilidad del complemento y las transiciones entre versiones como parte del flujo de trabajo.
Al empezar la implementación, utiliza una vista de prueba pequeña: limita primero el alcance y luego valida por separado las coincidencias del filtro, la visibilidad y las opciones gráficas. Cuando el resultado sea el esperado, adapta el enfoque a los estándares del proyecto.
Fuentes y licencia
Esta guía se basa en la explicación “View Filters” de Revit API Developers Guide de Autodesk y en el contenido de ayuda de Autodesk sobre los cambios de Revit 2024 API. Según la información de licencia indicada en las fuentes, están disponibles libremente; este texto es una adaptación al turco de sus explicaciones técnicas.
Fuentes
2 fuentesNo republicamos los textos de las fuentes; las citas breves van marcadas y el resto es resumen y comentario propios.
Los filtros de Revit API pueden ayudar a las oficinas a gestionar de forma más ordenada los grupos de elementos en las vistas. Las reglas basadas en parámetros pueden resultar útiles en situaciones recurrentes, mientras que el filtro de selección ofrece una opción adecuada para limitar el alcance directamente a los elementos determinados.
Las fuentes no incluyen información sobre precios ni licencias para las oficinas y los estudiantes de Turquía, por lo que conviene investigar esos aspectos por separado al elegir. En la práctica, no hay que pasar por alto la compatibilidad de versiones: los cambios de Revit API pueden afectar a complementos antiguos. Probar los filtros y el complemento en la versión de destino antes de pasar a archivos de producción es una medida más prudente.
Preguntas frecuentes
¿Cómo se crea un filtro de parámetros en Revit API?
Con `ParameterFilterElement.Create` se define el alcance de las categorías; luego se preparan las reglas del filtro y se asignan mediante `SetRules`. Después, el filtro se puede asociar a una vista y configurar su visibilidad y sus opciones gráficas.
¿Cuál es la diferencia entre un filtro de selección y uno de parámetros en Revit API?
El filtro de parámetros funciona mediante categorías y reglas. El filtro de selección, en cambio, utiliza los identificadores de los elementos añadidos al filtro, en lugar de evaluar reglas.
¿El cambio de Revit 2024 API puede afectar a los complementos antiguos?
En Revit 2024, el almacenamiento de `ElementId` pasó a 64 bits y se añadió la propiedad `Value` en sustitución de `IntegerValue`. Autodesk indica que parte del código compilado para una API anterior puede tener problemas de tipos y que puede ser necesario recompilarlo para Revit 2024 API.



