如果我在项目文档中运行此代码,一切都很完美,但是当在系列文档中时,我会收到错误。
代码
Document pDoc = uiapp.ActiveUIDocument.Document;
FilteredElementCollector fec = new FilteredElementCollector(pDoc);
IList<Element> ec = fec.OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_SpecialityEquipment).ToElements();
错误
异常消息 :
输入参数&#34;文档&#34;功能 `anonymous-namespace&#39; :: FilteredElementCollector_constructor或者一个 集合中的item在文件的第326行为null ... \ APIFilteredElementCollectorProxy.cpp。
参数名称:document
栈跟踪 :
at?A0x3fe3c5fb.FilteredElementCollectorProxy_constructor(Document document)
at Autodesk.Revit.DB.FilteredElementCollector..ctor(Document document)
at
myNamespace
。myExternalCommandName
。执行(UIApplication uiapp)
答案 0 :(得分:1)
uiapp.ActiveUIDocument
是有效的项目文档。
除非家庭是当前有效的文件,否则您需要一个与家庭不同的东西。
如果项目文档当前处于活动状态且系列已加载,则可以使用EditFamily
方法检索系列文档的Document
实例。
Building Coder在Family API和Loading a Family上的主题组中提供了大量示例。
答案 1 :(得分:0)
真正的罪魁祸首是再次围绕ExternalEvents。它实际上与此代码的逻辑无关。