【发布时间】:2019-03-29 03:06:03
【问题描述】:
我正在处理一个项目,我需要在 Revit 文档中加载管件(弯头)Revit 族并将其共享参数更新为类型参数。
我能够完成这项任务,因为我需要访问弯曲族作为族实例。
要求的第二部分是同时更新折弯的耦合族参数。 问题是我无法从 revit 文档中访问耦合参数。
如果我手动尝试,只有双击折弯族时才能访问耦合参数,这将打开 revit 族文件。然后我可以访问弯头两侧的两个联轴器。 如何以编程方式从 revit 文档中向 revit 族元素添加参数。
请指导我。
提前谢谢你。
我的代码:
foreach (var item in MainModel.listElement)//List<Element>
{
FamilyInstance elFamInst = item as FamilyInstance;
if (elFamInst.Symbol.FamilyName == "MainFamilyName")//Bend Family
{
ElementId id = item.GetTypeId();
ElementType et = doc.GetElement(id) as ElementType;
Family fam = elFamInst.Symbol.Family;
if (elFamInst.SuperComponent == null)
{
var subElements = elFamInst.GetSubComponentIds();
if (subElements.Count != 0)
{
foreach (var aSubElemId in subElements)
{
var aSubElem = doc.GetElement(aSubElemId);
if (aSubElem is FamilyInstance)
{
FamilyInstance subEl = aSubElem as FamilyInstance;
Family fm = subEl.Symbol.Family;
if(subEl.Symbol.FamilyName == "subFamilyName")//coupling family
{
Document docfamily = doc.EditFamily(fam);
if (null != docfamily && docfamily.IsFamilyDocument == true)
{
FamilyManager familyManager = docfamily.FamilyManager;
using (Transaction trans = new Transaction(docfamily, "param"))
{
trans.Start();
FamilyParameter fp = familyManager.AddParameter("Namess",BuiltInParameterGroup.PG_IDENTITY_DATA,ParameterType.Text, false);
familyManager.Set(fp, "JP");
trans.Commit();
}
}
}
}
}
}
}
}
}
我无法达到结果,我也希望参数“JP”仅在耦合系列上设置,即名称为“subFamilyName”的参数。
【问题讨论】: