C# 如何在族文档中获取嵌套的族符号
如果我在项目文档中运行这段代码,一切都会很完美,但是在族文档中运行时,我会出错 代码C# 如何在族文档中获取嵌套的族符号,c#,revit-api,C#,Revit Api,如果我在项目文档中运行这段代码,一切都会很完美,但是在族文档中运行时,我会出错 代码 Document pDoc = uiapp.ActiveUIDocument.Document; FilteredElementCollector fec = new FilteredElementCollector(pDoc); IList<Element> ec = fec.OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_
Document pDoc = uiapp.ActiveUIDocument.Document;
FilteredElementCollector fec = new FilteredElementCollector(pDoc);
IList<Element> ec = fec.OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_SpecialityEquipment).ToElements();
Document pDoc=uiapp.ActiveUIDocument.Document;
FilteredElementCollector fec=新的FilteredElementCollector(pDoc);
IList ec=类别(内置类别。OST_特殊设备)。ToElements()的类(类型(家族符号));
错误
异常消息:
函数的输入参数“document”
`匿名命名空间“::FilterDeleteCollector_构造函数或一个
集合中的项在文件的第326行为null
…\APIFilteredElementCollectorProxy.cpp
参数名称:文档
堆栈跟踪:
at?A0x3fe3c5fb.过滤器删除收集器Proxy_构造函数(文件)
位于Autodesk.Revit.DB.FilterDeleteCollector..ctor(文档)
在myNamespace
myExternalCommandName
。执行(UIApplication-uiapp)
uiapp.activeui文档
是活动项目文档
除非族是当前活动文档,否则族需要不同的内容
如果项目文档当前处于活动状态,并且族已加载到其中,则可以使用EditFamily
方法检索族文档的文档
实例
建筑编码员在和上的主题组中提供了许多这样的例子。真正的罪魁祸首是再次将我的头缠绕在外部事件上。它真的与代码的逻辑无关。在我的测试用例中,family.rfa file文档是唯一的活动文档。不管怎样,在处理代码之后,我才意识到这只是我所指责的第一次传递,结果证明我运行的是来自引发事件的相同代码,由于嵌套,我需要将我的pDoc转换成一个全局可访问的变量引用,返回到相同的上下文中。我未能在上下文中将我的pDoc移动到族文档中(尽管我认为默认情况下这是一样的,但我完全错了,我需要执行额外的步骤并移动变量范围,以将其视为您提到的项目)。抱歉给你添麻烦了。