Você está aqui: Revit C# ::: Dicas & Truques ::: Paredes - Walls |
Como listar os tipos de paredes disponíveis no Revit usando a Revit C# APIQuantidade de visualizações: 404 vezes |
Quando estamos criando paredes no Revit via programação, em geral usamos o construtor Create() da classe Wall que pede o id do tipo da parede, além do id do nível. É nessa hora que a programação Revit C# API fica interessante, pois temos que oferecer uma forma de o usuário escolher o tipo de parede que ele deseja. Uma sugestão é uma janela Windows Forms com uma lista de opções. No código a seguir eu mostro como listar todos os tipos de paredes disponíveis na sua instalação do Revit, incluindo o nome do elemento, seu id o seu tipo. O primeiro passo é obter um FilteredElementCollector a partir do documento atual do Revit this.ActiveUIDocument.Document. Note a condição WhereElementIsElementType() para retornar apenas os elementos que são tipos de elementos, e não tipos de famílias. A segunda condição BuiltInCategory.OST_Walls trará apenas os elementos relacionados a paredes. Como o FilteredElementCollector traz uma coleção de elementos do tipo Element, fique atento ao trecho de código que converte um Element em WallType. Isso é feito para que consigamos acessar a propriedade Kind, que retorna o nome do tipo da parede. Veja o código Revit C# API completo para o exemplo: using System; using Autodesk.Revit.UI; using Autodesk.Revit.DB; using Autodesk.Revit.DB.Structure; 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; // vamos obter um FilteredElementCollector contendo apenas // elementos que sejam ElementType e pertençam à categoria // OST_Walls FilteredElementCollector elementos = new FilteredElementCollector(doc) .WhereElementIsElementType().OfCategory(BuiltInCategory.OST_Walls); String lista = ""; // vamos percorrer os elementos retornados foreach(Element elemento in elementos) { Ao executar este código Revit C# nós teremos o seguinte resultado: Id: 334; Nome: Curtain Wall; Tipo: Curtain Id: 396; Nome: Interior - 138mm Partition (1-hr); Tipo: Basic Id: 397; Nome: Exterior - Brick on Mtl. Stud; Tipo: Basic Id: 398; Nome: Generic - 200mm; Tipo: Basic Id: 399; Nome: Generic - 225mm Masonry; Tipo: Basic Id: 400; Nome: Generic - 140mm Masonry; Tipo: Basic Id: 401; Nome: Generic - 90mm Brick; Tipo: Basic Id: 402; Nome: Interior - 79mm Partition (1-hr); Tipo: Basic Id: 403; Nome: Interior - Blockwork 100; Tipo: Basic Id: 404; Nome: Interior - 135mm Partition (2-hr); Tipo: Basic Id: 408; Nome: CW 102-50-100p; Tipo: Basic Id: 410; Nome: CW 102-85-140p; Tipo: Basic Id: 411; Nome: CW 102-50-140p; Tipo: Basic Id: 412; Nome: CW 102-50-215p; Tipo: Basic Id: 413; Nome: CW 102-85-215p; Tipo: Basic Id: 5476; Nome: CW 102-85-100p; Tipo: Basic Id: 5533; Nome: Interior - Blockwork 140; Tipo: Basic Id: 5541; Nome: Interior - Blockwork 190; Tipo: Basic Id: 6291; Nome: Generic - 300mm; Tipo: Basic Id: 9426; Nome: Foundation - 300mm Concrete; Tipo: Basic Id: 9427; Nome: Retaining - 300mm Concrete; Tipo: Basic Id: 18921; Nome: Generic - 200mm - Filled; Tipo: Basic Id: 22694; Nome: Exterior - Render on Brick on Block; Tipo: Basic Id: 29096; Nome: Exterior Glazing; Tipo: Curtain Id: 29097; Nome: Storefront; Tipo: Curtain Id: 54538; Nome: Exterior - Block on Mtl. Stud; Tipo: Basic |
![]() |
Veja mais Dicas e truques de Revit C# |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |