新加载的Revit API系列中的GetFamilySymbolsId为null

问题描述 投票:0回答:1

我很好奇下面的代码片段的结果。我想通过名字抓住一个家庭并插入该家族中的第一个符号。

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

  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;
                }

有趣的跟进。当我进入基类,添加一些类型,从项目中删除,并重新加载 - 我得到相同的错误。

c# revit
1个回答
0
投票

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

这是非常不具体的。

我建议您逐步调试代码并确定哪个API调用正在抛出异常,以及异常消息的确切内容。

这可能会澄清正在发生的事情。

© www.soinside.com 2019 - 2024. All rights reserved.