PerformanceAdviserControl 性能优化建议控制器
来源:Revit SDK samples 中PerformanceAdviserControl
级别:Beginning
1、PerformanceAdviser这个API的使用方式,对当前文档元素规则进行检测
- static GetPerformanceAdviser()获取PerformanceAdviser
- GetAllRuleIds 获取当前rule id
- GetRuleName(ruleID) -----> 名称 GetRuleDescription(ruleID) -----> 描述 IsRuleEnabled(ruleID); 是否激活
- SetRuleEnabled(int index, bool) 激活规则
- ExecuteAllRules(doc) 执行规则
- 错误处理流程 得到返回的FailureMessage集合获取对应的GetFailingElements() 元素,进行处理。
具体每条对应的内容
1、名称: 视图剪裁处于禁用状态, 描述: “视图剪裁被禁用。视图可能会生成与图元无关的图形,这需要额外的时间。”
2、名称: 在三维视图中启用了内部类别, 描述:“大型三维视图启用了内部类别。它可能导致 Revit 花费额外的时间为许多遮挡对象生成图形。”
未定位到内部类别类型,无法复现
3、名称: 视图的详细程度过高, 描述: “大视图将视图详细程度设置为“中等”或“精细”。Revit 将花费额外的时间生成无关详细信息。”
4、名称: 多个非重叠环, 描述: “包含多个非重叠环的草图生成具有多个不相交实体的复杂图元,通常可以替换为几个较小且更简单的图元。”
5、名称: 草图过于复杂, 描述:“ 包含多于 500个图元的草图可能会花费大量时间来解析。”
6、名称: 草图面积太大, 描述: 面积大于 200000 平方英尺的草图可能会降低选择、绘制和几何计算的速度。
7、名称: 主体包含过多的插入对象, 描述: 主体对象包含太多剪切插入对象,可能会花费较长的时间来更新。请考虑将此类主体对象分割为较小的部分或使用叠层墙。
8、名称: 重叠的墙, 描述: 墙重叠可能会减慢自动连接和几何更新速度。使用嵌入墙或其他 ediditn 工具(立面轮廓、墙范围)来避免重叠。
9、名称: 族文件太大, 描述: 族文件大小较大,提高了整体 Revit 内存消耗量。
单个族文件不宜过大(多大?官方未给出)
10、名称: 许多嵌套族未使用, 描述: 嵌套在其他族中且未实例化的族会浪费内存
11、名称: 族中的图元太多, 描述: 族包含太多图元。重新生成此类族的速度较低。
12、名称: 族中的视图专用导入, 描述: 族中的视图专用导入在项目中不可访问,但它们仍会占用内存。
视图专用没有找到定义
13、名称: 重复的实例, 描述: 在相同位置的重复实例会占用内存、降低选择和模型更新速度,并会导致明细表不正确。
14、名称: 内建族包含未连接的实体, 描述: 具有未连接实体的内建族会降低选择和模型更新速度。
15、名称: 项目中包含未使用的族和类型, 描述: 项目中未使用的族和类型会浪费内存。
16、名称: 房间分隔线未关联, 描述: 未关联的房间分隔线导致针对房间边界计算执行其他计算。
17、名称: 过多的面积边界线, 描述: 大量的面积边界线将增加模型打开、保存、SWC 和模型更新的时间。
2、创建一个自定义的PerformanceAdviser
1)InitCheck 执行前初始化工作
2)GetElementFilter 过滤哪些元素需要过滤
3)ExecuteElementCheck 执行检测
4)FinalizeCheck 元素检测结束
适用场景:
1、根据已有的规则,优化Revit本身的性能,例如:RevitAPI实现清理未使用项(https://blog.csdn.net/qq_29143307/article/details/100667211)
2、自定义元素检测规则,查找不满足规定的元素。
BIM树洞
做一个静谧的树洞君
用建筑的语言描述IT事物;
用IT的思维解决建筑问题;
共建BIM桥梁,聚合团队。
本学习分享资料不得用于商业用途,仅做学习交流!!如有侵权立即删除!!
-
微信公众号: BIM树洞
-
知乎专栏:BIM树洞
-
气氛组博客:http://www.31bim.com
-
BIM应用及咨询,CAD,Revit, OpenGL,图形开发交流,加Q群1083064224