Você está aqui: Revit C# ::: Dicas & Truques ::: Parameter - Parâmetros |
Como listar todos os parâmetros de um elemento do Revit usando a classe ParameterSet da Revit C# APIQuantidade de visualizações: 240 vezes |
Em várias situações nós precisamos listar todos os parâmetros de uma parede, viga, janela, coluna, etc, juntamente com seus valores. Para isso nós podemos usar um objeto da classe ParameterSet da Revit C# API. Este objeto é retornado a partir da propriedade Parameters do elemento desejado. No exemplo abaixo eu usei a função PickObject() do objeto Selection para pedir para o usuário selecionar um objeto na área de desenho do Revit. A função PickObject() retorna uma Reference, que passamos para a função GetElement() da classe Document para retornar o elemento selecionado como um Element. O passo final é acessar a propriedade Parameter do Element e retornar todos seus parâmetros e valores como um ParameterSet. Note que usei Definition.Name para retornar o nome do parâmetro e AsValueString() para retornar o valor do parâmetro como uma string. 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 Autodesk.Revit.DB.Architecture; 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; UIDocument uidoc = this.ActiveUIDocument; // agora mostramos uma mensagem para o usuário selecionar um elemento TaskDialog.Show("Aviso", "Selecione um elemento"); // obtemos uma referência ao objeto Selection do // UIDocument ativo Selection selecao = uidoc.Selection; // e finalmente esperamos que o usuário selecione o elemento Reference selecionado = selecao.PickObject(ObjectType.Element, "Selecione um elemento"); // agora testamos se o usuário realmente selecionou um // elemento if (selecionado != null) { // vamos obter o elemento selecionado a partir da // referência Element elemento = uidoc.Document.GetElement(selecionado); // vamos criar um objeto ParameterSet a partir da propriedade // Parameters do elemento selecionado pelo usuário ParameterSet parametros = elemento.Parameters; string lista = ""; // vamos percorrer todos os parâmetros encontrados foreach (Parameter p in parametros) { lista = lista + p.Definition.Name + ": " + p.AsValueString() + "\n"; } // e mostramos o resultado TaskDialog.Show("Aviso", lista); } } 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: Imagem: <Nenhum> Estilo de coluna: Vertical Categoria: Pilares estruturais Categoria: Pilares estruturais Tipo IFC predefinido: Exportar para IFC como: Exportar para IFC: Por tipo IfcGUID: 14jRc_bYjC_R2vTTtKf5Vi Existe associação: Não Recobrimento de vergalhão - Fase inferior: Rebar Cover 1 <25 mm> Recobrimento de vergalhão - Face superior: Rebar Cover 1 <25 mm> Recobrimento de vergalhão - Outras Faces: Rebar Cover 1 <25 mm> Opção de desenho: -1 Volume: 1.44 m³ Fase demolida: Nenhum Fase criada: New Construction Comentários: Marca da localização da coluna: 5-7 ID de hospedeiro: -1 Deslocamento superior: 0.000 m Deslocamento da base: 0.000 m Nível superior: 02 Segundo Nível base: 01 Primeiro Nível: 01 Primeiro Família e tipo: Pilar de Concreto - Retangular: 80 x 50 Família: Pilar de Concreto - Retangular Tipo: 80 x 50 Nome da família: Nome do tipo: ID de tipo: 355634 Comprimento: 3.600 m Move com eixos: Sim Deslocamento superior: 0.000 m Deslocamento da base: 0.000 m Nível superior: 02 Segundo Nível base: 01 Primeiro Marca: Delimitação de ambientes: Sim Single Rebar W: 0.49 kN Rebar Grids W: 0.98 kN Tie Rod W: 0.29 kN Single Rebar Weight: 50 Rebar Grids Weight: 100 Tie Rod Weight: 30 |
![]() |
Veja mais Dicas e truques de Revit C# |
Dicas e truques de outras linguagens |
Python - Como calcular o limite de uma função usando Python e a biblioteca Sympy - Python para Engenharia |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |