Добрый день, уважаемые форумчане. Подскажите пожалуйста, немного запутался. Как получить и изменять параметры открытого документа семейства?
Если семейство открыто в проекте, то я это делаю так:
FilteredElementCollector FamilyS = new FilteredElementCollector(doc)
.OfClass(typeof(FamilySymbol));
foreach (FamilySymbol FS in FamilyS)
{
foreach (Parameter P in FS.Parameters)
{
if (P.Definition.Name == "Мой параметр")
{
//что-то делаю с параметром
}
}
}
А если открытый документ(doc) - это семейство, то ведь doc.Parameters - такого нету. Я пробовал делать следующее:
FilteredElementCollector ParamElem = new FilteredElementCollector(familyDoc)
.OfClass(typeof(ParameterElement));
foreach (ParameterElement PE in ParamElem)
{
if (PE.Name == "Мой параметр")
{
//Находит мой параметр,
//но методов для изменения параметра в PE нету
}
foreach (Parameter P in PE.Parameters)
{
if (P.Definition.Name == "Мой параметр")
{
//не находит мой параметр
}
}
}
Потом, делал так:
FamilyManager FM = familyDoc.FamilyManager;
foreach (FamilyParameter FamilyP in FM.Parameters)
{
if (FamilyP.Definition.Name =="Мой параметр")
{
//Находит мой параметр,
//но методов для изменения параметра в FamilyP нету
}
foreach (Parameter P in FamilyP.AssociatedParameters)
{
if (P.Definition.Name == "Мой параметр")
{
//не находит мой параметр
}
}
}
Собственно, это все мои изыскания.