如何在家庭文档中获取嵌套的 FamilySymbols

How can I get nested FamilySymbols inside of a family document

如果我 运行 项目文档中的此代码一切正常,但是当在家庭文档中时,我会收到错误消息。

代码

Document pDoc = uiapp.ActiveUIDocument.Document;
FilteredElementCollector fec = new FilteredElementCollector(pDoc);
IList<Element> ec = fec.OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_SpecialityEquipment).ToElements();

错误

异常消息:

The input argument "document" of function `anonymous-namespace'::FilteredElementCollector_constructor or one item in the collection is null at line 326 of file ...\APIFilteredElementCollectorProxy.cpp.

Parameter name: document

StackTrace:

at ?A0x3fe3c5fb.FilteredElementCollectorProxy_constructor(Document document)

at Autodesk.Revit.DB.FilteredElementCollector..ctor(Document document)

at myNamespace.myExternalCommandName.Execute(UIApplication uiapp)

uiapp.ActiveUIDocument 是活动的项目文档。

你需要一个不同的家庭,除非家庭当前活动的文档。

如果项目文档当前处于活动状态并且族已加载到其中,您可以使用 EditFamily 方法检索族文档的 Document 实例。

Building Coder 在 Family API and Loading a Family 上的主题组中为此提供了许多示例。

真正的罪魁祸首是我又一次陷入了 ExternalEvents 的困境。真的和这段代码的逻辑没有关系。