我很好奇下面的代码片段的结果。我想通过名字抓住一个家庭并插入该家族中的第一个符号。
这适用于具有多个符号的家庭。但是,对于没有特定类型定义的那些,有时候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;
}
有趣的跟进。当我进入基类,添加一些类型,从项目中删除,并重新加载 - 我得到相同的错误。
你说,'有时会返回一个null异常'。
这是非常不具体的。
我建议您逐步调试代码并确定哪个API调用正在抛出异常,以及异常消息的确切内容。
这可能会澄清正在发生的事情。