如果我在项目文档中运行此代码,一切都很完美,但是当在系列文档中时,我会收到错误。
码
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)
uiapp.ActiveUIDocument
是活跃的项目文件。
除非家庭是当前活动的文件,否则您需要一个与家庭不同的东西。
如果项目文档当前处于活动状态且已加载族,则可以使用EditFamily
方法检索族文档的Document
实例。
Building Coder在Family API和Loading a Family的主题组中提供了许多示例。
真正的罪魁祸首是再次围绕ExternalEvents。它实际上与此代码的逻辑无关。