Revit.2025.Utils
2025.9.25
dotnet add package Revit.2025.Utils --version 2025.9.25
NuGet\Install-Package Revit.2025.Utils -Version 2025.9.25
<PackageReference Include="Revit.2025.Utils" Version="2025.9.25" />
<PackageVersion Include="Revit.2025.Utils" Version="2025.9.25" />
<PackageReference Include="Revit.2025.Utils" />
paket add Revit.2025.Utils --version 2025.9.25
#r "nuget: Revit.2025.Utils, 2025.9.25"
#:package Revit.2025.Utils@2025.9.25
#addin nuget:?package=Revit.2025.Utils&version=2025.9.25
#tool nuget:?package=Revit.2025.Utils&version=2025.9.25
RevitUtils
Uma biblioteca utilitária para desenvolvimento com Autodesk Revit API, contendo coletores e serviços essenciais para trabalhar com elementos, categorias, unidades e conversões.
📦 Instalação
dotnet add package RevitUtils
🚀 Funcionalidades
🔍 Coletores (Collectors)
Conjunto abrangente de classes estáticas para coleta eficiente de elementos do Revit:
- Coletores Genéricos: Métodos universais para coletar qualquer tipo de elemento
- Coletores de Categoria: Obtenção de categorias e subcategorias
- Coletores de Paredes: Funcionalidades específicas para paredes básicas
- Coletores de Salas: Funcionalidades completas para salas válidas e inválidas
- Coletores de Fases: Busca de fases por nome
- Coletores de Estilos de Linha: Obtenção de estilos de projeção e corte
⚙️ Conversão de Unidades
Serviços para trabalhar com unidades do Revit:
- Alteração de Unidades de Exibição: Mudança programática de unidades
- Conversão de Densidade: Fatores de conversão específicos
- Obtenção de Unidades Atuais: Recuperação das configurações de unidade
📚 Documentação das Classes
GenericCollectors
Classe estática com métodos universais para coleta de elementos.
Métodos Principais
// Coleta todos os elementos de uma categoria específica
List<TCast> GetAllElementsOfCategory<TCast>(
Document doc,
BuiltInCategory cat,
View? view = null,
ElementFilter? filter = null
) where TCast : Element
// Coleta todos os tipos de elemento de uma categoria
List<TCast> GetAllElementTypesOfCategory<TCast>(
Document doc,
BuiltInCategory cat
) where TCast : ElementType
// Coleta todos os símbolos de família de uma categoria
List<FamilySymbol> GetAllFamilySymbolsOfCategory(
Document doc,
BuiltInCategory cat
)
// Coleta todos os elementos de uma classe específica
List<TClass> GetAllElementsOfClass<TClass>(
Document doc,
View? view = null,
ElementFilter? filter = null
) where TClass : Element
// Coleta todos os tipos de elemento de uma classe
List<TClass> GetAllElementTypesOfClass<TClass>(
Document doc
) where TClass : ElementType
Características:
- Suporte a filtros personalizados
- Opção de filtrar por vista específica
- Validação automática de elementos
- Tratamento especial para documentos linkados
CategoryCollectors
Classe estática para coleta e manipulação de categorias do Revit.
Métodos Principais
// Obtém todas as categorias do Revit
List<Category> GetAllRevitCategories(
Document doc,
CategoryType? categoryType = null
)
// Obtém subcategorias de linhas
List<Category> GetLinesSubCategories(Document doc)
// Obtém todas as categorias de tags
List<BuiltInCategory> GetTagCategories()
Funcionalidades:
- Filtragem por tipo de categoria (Model, Annotation, Analytical)
- Acesso às subcategorias de linhas
- Identificação automática de categorias de tags via regex
WallCollectors
Classe especializada na coleta de paredes.
Métodos Principais
// Obtém todas as paredes básicas do documento
List<Wall> GetBasic(
Document doc,
View? view = null
)
Características:
- Filtra apenas paredes básicas (WallKind.Basic)
- Exclui paredes empilhadas e membros de paredes empilhadas
- Validação automática de objetos
RoomCollectors
Classe abrangente para trabalhar com salas (Rooms).
Métodos Principais
// Obtém todas as salas válidas
List<Room> GetAllValidRooms(Document doc, View? view = null)
// Obtém todas as salas inválidas
List<Room> GetAllInvalidRooms(Document doc, View? view = null)
// Obtém salas da opção de design ativa
List<Room> GetValidRoomsFromActiveDesignOption(Document doc, View? view = null)
// Obtém salas de uma opção de design específica
List<Room> GetValidRoomsFromDesignOption(Document doc, ElementId designOptionId)
// Obtém acabamentos de uma sala
List<Element> GetRoomFinishes(
Document doc,
Room room,
SpatialElementGeometryCalculator calculator,
SubfaceType subfaceType,
bool includeLinkedElements = false
)
// Obtém linhas de separação de salas
List<ModelLine> GetAllRoomSeparationLines(Document doc)
// Obtém linhas de separação por opção de design
List<Element> GetRoomSeparationLinesFromDesignOption(
Document doc,
ElementId designOptionId
)
Características:
- Validação rigorosa de salas (área > 0, bounding box válido)
- Suporte a Design Options
- Análise geométrica para obtenção de acabamentos
- Suporte a elementos linkados
PhaseCollectors
Utilitários para trabalhar com fases do projeto.
Métodos Principais
// Obtém o ID de uma fase pelo nome
ElementId? GetPhaseIdByName(Document doc, string phaseName)
Características:
- Busca case-insensitive
- Tratamento de espaços em branco
LineStyleCollectors
Coletores especializados em estilos de linha.
Métodos Principais
csharp
// Coleta todos os estilos de linha de projeção
List<GraphicsStyle> AllProjectionStyles(Document doc)
// Coleta todos os estilos de linha de corte
List<GraphicsStyle> AllCutStyles(Document doc)
UnitsServices
Serviços para manipulação de unidades de medida.
Métodos Principais
// Altera a unidade de exibição (REQUER TRANSAÇÃO)
void ChangeDisplayUnit(
Document doc,
ForgeTypeId specTypeId,
ForgeTypeId unitTypeId
)
// Obtém a unidade de exibição atual
ForgeTypeId GetDisplayUnit(Document doc, ForgeTypeId specTypeId)
Características:
- Validação automática de compatibilidade entre SpecTypeId e UnitTypeId
- Documentação completa com links para API do Revit
- Tratamento de exceções para unidades incompatíveis
SpecificFactorsServices
Fatores de conversão específicos para densidade de massa.
Propriedades e Métodos
// Fatores de conversão pré-calculados
double KilogramsPerCubicMeter_To_KilogramsPerCubicFoot
double PoundsMassPerCubicFoot_To_KilogramsPerCubicFoot
// Obtém fator de conversão por tipo de unidade
double GetMassDensityConversionFactorByDisplayUnits(ForgeTypeId displayUnitTypeId)
Conversões Suportadas:
- kg/m³ → kg/ft³
- lb/ft³ → kg/ft³
🛠️ Exemplos de Uso
Coletando Paredes Básicas
using RevitUtils.Services.Collectors;
// Obter todas as paredes básicas do documento
List<Wall> basicWalls = doc.GetBasic();
// Obter paredes básicas visíveis em uma vista específica
List<Wall> visibleWalls = doc.GetBasic(view: activeView);
Trabalhando com Rooms
using RevitUtils.Services.Collectors;
// Obter todas as salas válidas
List<Room> validRooms = doc.GetAllValidRooms();
// Obter acabamentos de piso de uma sala
var calculator = new SpatialElementGeometryCalculator(doc);
List<Element> floorFinishes = RoomCollectors.GetRoomFinishes(
doc,
room,
calculator,
SubfaceType.Bottom
);
Alterando Unidades
using RevitUtils.Services.UnitsConversion;
// Dentro de uma transação
using (Transaction trans = new Transaction(doc, "Change Units"))
{
trans.Start();
// Alterar unidades de comprimento para metros
doc.ChangeDisplayUnit(SpecTypeId.Length, UnitTypeId.Meters);
trans.Commit();
}
// Obter unidade atual
ForgeTypeId currentLengthUnit = doc.GetDisplayUnit(SpecTypeId.Length);
Coletando Elementos por Categoria
using RevitUtils.Services.Collectors;
// Obter todas as portas
List<FamilyInstance> doors = doc.GetAllElementsOfCategory<FamilyInstance>(BuiltInCategory.OST_Doors);
// Obter tipos de parede
List<WallType> wallTypes = doc.GetAllElementTypesOfCategory<WallType>(BuiltInCategory.OST_Walls);
🎯 Compatibilidade
- Autodesk Revit: 2022.1, 2023.1, 2024.2 e 2025.3~~~~
- .NET Framework: 4.8
- .NET: 8.0
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- DotNetServicesForAECDevelopment (>= 2025.9.24.1)
- Newtonsoft.Json (>= 13.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
2025.9.25 | 109 | 9/25/2025 |
Initial release