如何在家庭文档中

时间:2018-02-28 16:54:55

标签: c# revit-api

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

代码

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 myNamespacemyExternalCommandName。执行(UIApplication uiapp)

2 个答案:

答案 0 :(得分:1)

uiapp.ActiveUIDocument是有效的项目文档。

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

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

Building Coder在Family APILoading a Family上的主题组中提供了大量示例。

答案 1 :(得分:0)

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