获取不到刚刚加载的族类型(访问刚刚更新的数据)

 

 
原文链接:http://blog.csdn.net/joexiongjin/article/details/7750678

 

作者:  叶雄进 , Autodesk ADN

 

 


接到一个问题如下:
在装上Revit2013后以前的程序遇到了一些问题,希望叶老师给予解答。
1、我在用LoadFamily的函数加载了洞口族后,紧接着用FilteredElementCollector方法 获取洞口族类型的集合,却获取不到刚刚加载进去的族类型。2012中此段代码可以直接找到,相关代码段如下:
string whpath = strPath + @"Family\洞口\YJK-矩形洞口.rfa";//加载族类型
doc.LoadFamily(whpath);
FilteredElementCollector collector = new FilteredElementCollector(doc);//遍历获得第一个洞口的族类型
collector.OfClass(typeof(FamilySymbol)).OfCategory(BuiltInCategory.OST_Windows);


答:

从你的描述看,分析原因是刚刚加载的族没有及时更新的文档中,紧接着就想找他找不到。

你可以在加载LoadFamily之后调用一次Document.Regenerate() 函数对模型进行全面更新。然后在过滤应该能找到。

至于2012工作正常,2013 不行,原因可能是Revit内部对LoadFamily进行了优化。在2013中加载族后不再自动更新模型,而是让调用者自行决定何时更新模型。

你可能感兴趣的:(windows,优化,工作,String,文档)