Comunidad
Revit, BIM 360 & Autodesk Construction Cloud (ACC) - Español
Bienvenido a los foros de Autodesk Revit (todos los productos), ACC, Navisworks y BIM 360. Comparta conocimientos, haga preguntas, colabore con ideas y explore temas en torno a la familia Revit y productos como Navisworks o BIM 360, que se incluyen en el portafolio de Autodesk Construction Cloud.
cancelar
Mostrando los resultados de 
Mostrar  solo  | Buscar en lugar de 
Quiere decir: 

Cómo obtener la lista de todos los parámetros de una tipología mediante la API

6 RESPUESTAS 6
RESUELTAS
Responder
Mensaje 1 de 7
santos.bravo
1415 Vistas, 6 Respuestas

Cómo obtener la lista de todos los parámetros de una tipología mediante la API

Saludos,

 

Actualmente estoy trabando en una extensión para Revit 2017 y requiero leer todos los parámetros (incluidos los de instancia) de una tipología: 

 

 

 private void ReadParameters( IEnumerable<Element> elements, List<Data.Entities.Parameter> ParamLst)
        {
            foreach (var element in elements)
            {
                foreach (Parameter Param in element.Parameters)
                {
                    var p = ParamLst.FirstOrDefault(o => o.Name.Equals(Param.Definition.Name));
                    if (p == null)
                    {
                        ParamLst.Add(new Data.Entities.Parameter { Name = Param.Definition.Name, Id = Param.Id.IntegerValue });

                        var instance = new FilteredElementCollector(doc)
                               .WhereElementIsNotElementType()
                               .Where(e=> e.GetTypeId() == element.Id) 
                               .FirstOrDefault();
                        if (instance != null)
                        {
                            ReadParameters(new List<Element> { instance }, ParamLst);
                        }
                    }
                }
            }

        }

Que estoy haciendo mal?...

 

De antemano gracias por su ayuda.

 

 

6 RESPUESTAS 6
Mensaje 2 de 7
Organon
en respuesta a: santos.bravo

¿A qué te refieres con tipoligía?

 

Saludos.


Arquitectura | Análisis CAD & BIM | Diseño Paramétrico | Programación
BIM-METADATA | LinkedIn | YouTube
Mensaje 3 de 7
Organon
en respuesta a: Organon

Quiero entender que te refieres a los parámetros de tipo y de instancia de un elemento. Yo lo haría separado, algo así:

 

elements = UnwrapElement(IN[0])

elemType = doc.GetElement(elements[0].GetTypeId())
elemTypeParameters = elemType.Parameters

typeParameters = []
for tp in elemTypeParameters:
    typeParam = tp.Definition.Name
    typeParameters.append(typeParam)

instanceParameters = []
for el in elements:
    params = el.Parameters
    paramElement = []
    for ip in params:
        instParam = ip.Definition.Name
        paramElement.append(instParam)
    instanceParameters.append(paramElement)    

OUT = [typeParameters, instanceParameters]

 

Obviamente es diferente la sintaxis pues es con Python, pero es lo mismo:

 

  • Tomé el primer elemento de la lista, obtuve su tipo y sus parámetros.
  • Hice una iteración sobre cada elemento(instancia) y otra iteración sobre cada parámetro de cada elemento y obtuve sus parámetros.

 

Esto es con Dynamo:

 

Parameters.png

 

Saludos.


Arquitectura | Análisis CAD & BIM | Diseño Paramétrico | Programación
BIM-METADATA | LinkedIn | YouTube
Mensaje 4 de 7
ReySantos
en respuesta a: Organon

Esto me recuerda que debo retomar mis clases de Python.........inicié un curso y lo dejé a medio camino.....Python es bien intuitivo para programar, además para los involucrados con Revit, es la base de Dynamo.....

Rey Santos

EESignature

Mensaje 5 de 7
Organon
en respuesta a: ReySantos

La verdad es fácil de aprender, pero como todo lo demás se debe de practicar constantemente. Si decides retomar Python y puedo ayudarte en algo me lo comentas. Así es, actualmente es el lenguaje que accede a la API por medio de Dynamo.

 

Saludos.


Arquitectura | Análisis CAD & BIM | Diseño Paramétrico | Programación
BIM-METADATA | LinkedIn | YouTube
Mensaje 6 de 7
ReySantos
en respuesta a: Organon

Gracias, lo tendré presente.

Rey Santos

EESignature

Mensaje 7 de 7

Muy buenas, un saludo a todos los presentes quisiera saber yo igual como tengo que manejar la sintaxis para poder hacer toda mi programa que deseo integrar para revit mep para el área de fontaneria o en si para aprender a manejar los códigos e ir integrando según la necesidad que se vaya teniendo al pasar en tiempo ya que sabemos que a medida que pasa el tiempo todo evoluciona 

¿No encontraste lo que buscabas? Pregúntale a la comunidad o comparte tus conocimientos.

Publicar en los foros  

New events in the Spanish Community


Autodesk State of Design & Make Report