【问题标题】:GetFamilySymbolsId null in newly loaded family Revit API新加载的族 Revit API 中的 GetFamilySymbolsId null
【发布时间】:2019-03-14 18:44:23
【问题描述】:

我很好奇下面代码片段的结果。我想按名称获取一个家族并插入在该家族中找到的第一个符号。

这适用于具有多个符号的家庭。但是,对于没有特定类型定义的那些,有时symId.Count() = 1 和其他时候,会返回一个空异常。为什么会这样?

  Element el1 = new FilteredElementCollector(doc).OfClass(typeof(Autodesk.Revit.DB.Family)).FirstOrDefault(x => x.Name == familyName);

                Autodesk.Revit.DB.Family fam = el1 as Autodesk.Revit.DB.Family;

                ISet<ElementId> symIds = fam.GetFamilySymbolIds();

                foreach (ElementId elid in symIds)
                {
                    FamilySymbol symbol = doc.GetElement(elid) as FamilySymbol;
                    try
                    {
                        uidoc.PromptForFamilyInstancePlacement(symbol);
                    }
                    catch { }
                    break;
                }

有趣的跟进。当我进入基本系列时,添加一些类型,删除 fom 项目并重新加载 - 我得到了同样的错误。

【问题讨论】:

    标签: c# revit


    【解决方案1】:

    你说,'有时会返回一个空异常'。

    那是相当不具体的。

    我建议您逐步调试代码,并确定究竟是哪个 API 调用引发了异常,以及异常消息的确切内容。

    这可能会澄清发生了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-15
      • 2019-03-29
      • 1970-01-01
      • 2019-10-05
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      相关资源
      最近更新 更多