![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Revit C# ::: Dicas & Truques ::: Níveis - Levels |
Como retornar uma lista dos ids de todos os níveis em um documento do Revit usando a Revit C# APIQuantidade de visualizações: 325 vezes |
Em várias situações nós precisamos dos ids dos níveis do documento Revit para posicionar pisos, colunas, pilares, e outros elementos de forma precisa via programação. Nesta dica mostrarei como podemos retornar uma lista com todos os níveis do documento atual do Revit usando um objeto FilteredElementCollector. Uma vez construída uma instância desse filtro, nós a usamos para retornar uma ICollection<Element> com todos os elementos do tipo Level. O passo seguinte é percorrer essa lista e acessar a propriedade Id de cada um dos níveis retornados. Lembre-se de que a propriedade Id retorna um elemento do tipo ElementId. Veja o código Revit C# completo para o exemplo: using System; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autodesk.Revit.UI.Selection; using System.Collections.Generic; using System.Linq; namespace Estudos { [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes. TransactionMode.Manual)] [Autodesk.Revit.DB.Macros.AddInId("ED8EC6C4-9489-48F7-B04E-B45B5D1BEB12")] public partial class ThisApplication { private void Module_Startup(object sender, EventArgs e) { // vamos obter uma referência ao Document ativo Document doc = this.ActiveUIDocument.Document; // criamos um novo objeto FilteredElementCollector FilteredElementCollector collector = new FilteredElementCollector(doc); // obtemos uma coleção com todos os elementos Level ICollection<Element> niveis = collector.OfClass(typeof(Level)).ToElements(); // monta a lista de ids dos níveis String lista_ids = "Foram encontrados " + niveis.Count + " níveis com os seguintes ids:\n\n"; foreach (Element nivel in niveis) { lista_ids = lista_ids + nivel.Id + "\n"; } // e mostramos o resultado TaskDialog.Show("Aviso", lista_ids); } private void Module_Shutdown(object sender, EventArgs e) { // para fazer alguma limpeza de memória ou algo assim } #region Revit Macros generated code private void InternalStartup() { this.Startup += new System.EventHandler(Module_Startup); this.Shutdown += new System.EventHandler(Module_Shutdown); } #endregion } } Ao executar este código Revit C# nós teremos o seguinte resultado: Foram encontrados 3 níveis com os seguintes ids: 43282 52338 87127 |
![]() |
Veja mais Dicas e truques de Revit C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |