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

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

如果我在项目文档中运行此代码,一切都很完美,但是当在系列文档中时,我会收到错误。

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

错误

例外消息:

函数`anonymous-namespace':: FilteredElementCollector_constructor的输入参数“document”或集合中的一个项在文件... \ APIFilteredElementCollectorProxy.cpp的第326行为null。

参数名称:文档

堆栈跟踪:

at?A0x3fe3c5fb.FilteredElementCollectorProxy_constructor(Document document)

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

myNamespace.myExternalCommandName.Execute(UIApplication uiapp)

c# revit-api
2个回答
1
投票

uiapp.ActiveUIDocument是活跃的项目文件。

除非家庭是当前活动的文件,否则您需要一个与家庭不同的东西。

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

Building Coder在Family APILoading a Family的主题组中提供了许多示例。


0
投票

真正的罪魁祸首是再次围绕ExternalEvents。它实际上与此代码的逻辑无关。

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