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.
¡Resuelto! Ir a solución.
Resuelto por Organon. Ir a solución.
¿A qué te refieres con tipoligía?
Saludos.
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:
Esto es con Dynamo:
Saludos.
Rey Santos
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.
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.