首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在revit-api c#中从revit文档中向revit族元素添加参数

如何在revit-api c#中从revit文档中向revit族元素添加参数
EN

Stack Overflow用户
提问于 2018-10-24 16:00:49
回答 1查看 2.8K关注 0票数 0

我正在进行一个项目,在这个项目中,我需要加载管道配件(弯曲),修复家庭,修改文档,并将其共享参数更新为类型参数。

我能够完成这一任务,因为我需要作为家庭实例访问弯曲家庭。

第二部分要求对弯管的耦合族参数进行更新。问题是,我无法访问revit文档中的耦合参数。

如果我手动尝试,耦合参数只有在双击弯曲家族时才能访问,这将打开revit家族文件。然后,我可以访问两个联轴器的任何一边的弯道。如何以编程方式完成将参数添加到revit家族元素的上述任务。

请引导我。

提前谢谢你。

我的守则:

代码语言:javascript
运行
复制
 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”的参数上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-25 08:51:00

是的,您也可以通过API以编程方式实现相同的目标。

正如您需要在手动方法中打开家庭文件一样,您可以在API中调用EditFamily方法这样做:

https://apidocs.co/apps/revit/2019/56e636ee-5008-0ee5-9d6c-5f622dedfbcb.htm

请查看Building中提到此方法的各种帖子,例如修改、保存和重新装载家庭

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52973403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档