- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
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.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
¿A qué te refieres con tipoligía?
Saludos.
Arquitectura | Análisis CAD & BIM | Diseño Paramétrico | Programación
BIM-METADATA | LinkedIn | YouTube
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
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:
Saludos.
Arquitectura | Análisis CAD & BIM | Diseño Paramétrico | Programación
BIM-METADATA | LinkedIn | YouTube
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Rey Santos
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
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