Revit 2023之前版本中ViewSheetSet.OrderedViewList属性的替代方案
Revit 2023之前版本获取图纸集中视图的替代方案
我开发了一个Revit插件功能,用于自动填充图纸列表进度表的**发布日期(共享参数)**列。初始化阶段需要获取所有ViewSheetSet并添加到界面列表框和字典中,当前在Revit 2023/24版本中通过OrderedViewList属性实现的代码如下:
FilteredElementCollector sheetSetColl = new FilteredElementCollector(doc); var allSheetSets = sheetSetColl.OfClass(typeof(ViewSheetSet)).ToElements(); foreach(ViewSheetSet vss in allSheetSets) { if(!sheetSetDict.ContainsKey(vss.Id)) { if(vss.OrderedViewList.Where(x => x.ViewType == ViewType.DrawingSheet).Count() != 0) { sheetSetDict.Add(vss.Id, $"{vss.Name} - {vss.OrderedViewList.Where(x => x.ViewType == ViewType.DrawingSheet).Count()} sheets"); dpSheetSetCB.Items.Add($"{vss.Name} - {vss.OrderedViewList.Where(x => x.ViewType == ViewType.DrawingSheet).Count()} sheets"); } } }
这段代码在Revit 2023/24中可以正常运行,但我发现ViewSheetSet类的OrderedViewList属性在2023之前的版本中并不存在。
我自己尝试了两种方法,但都不满意:
- 方法1:收集所有关联了非空图纸集的视图,遍历过程中按唯一集ID创建单独列表。但这种方法繁琐又耗时,我想尽量避免。
- 方法2:尝试用
ViewSheetSet.Views提取视图或ID并转为列表,模拟OrderedViewList的用法。但它仅返回原ViewSheetSet实例,问题又回到了原点。
想请教一下,在Revit 2023之前的版本中,开发者是如何列出图纸集中的视图的?应该有我忽略的简单替代方案。
内容的提问来源于stack exchange,提问作者Benyomin Faden
相关产品推荐
相关产品推荐

