• SuperMap BIM+GIS-Revit模型处理-第三节 Revit模型优化方法及模型缓存策略


    在模型导入SuperMap平台之后,在应用过程中必然会遇到性能问题,随之而来的就是如何优化模型。本文将总结使用经验和理解,从实际出发介绍几种优化方法和缓存策略。以下操作均在SuperMap iDesktop 11i(2022)中进行。

    本文为对Revit模型优化方法及模型缓存策略的补充博文,原文为:SuperMap BIM+GIS-Revit模型处理-第三节 Revit模型优化方法及模型缓存策略_supermapsupport的博客-CSDN博客

    一、数据性能优化

    在项目中,有时会遇到由多个BIM数据组成的场景。该类场景中,数据范围不大,但主要数据类型为BIM类型数据,数据精细且集中分布。

    比如在一个工厂的场景中,存在有原料库,成品库,水处理设施,加热炉等建筑,每一栋建筑都是一个BIM模型。每个模型都很精细,并且有很多类别组成,比如,一栋建筑可以由常规模型,窗,门,墙,结构框架,楼板,幕墙,屋顶,楼梯等等很多种类别。

    如果按照常规的方式,一个类别对应一个图层,会使得图层的数量急剧膨胀;如果一栋建筑对应一个图层,也会导致性能与效果的问题。

    本模块将介绍如何组织处理该类数据

    重新组织数据结构

    数据结构组织原则:内外分离、地上地下分离。

    1.1内外分离:将所有建筑的外壳对象,整理到一个图层里面;再将所有建筑的内部结构对象整理到一个图层里面。通过设置图层的可见距离,在远处观察时,只加载建筑外壳的数据;进入到建筑内部时,再加载内部结构的数据。

    例如:

    建筑外轮廓图层:墙、窗、屋顶等对象

    建筑内部结构图层:家具、结构连接、天花板、楼板边缘、卫浴装置、墙饰条等对象

    1.2地上地下分离:将地上部分的模型与地下部分的模型,分离开来。通过开关按钮等控制方式,只加载需要观察的数据部分。

    例如:

    地上部分:地上管道、地上管件、地上软管

    地下部分:地下管道、地下管件、地下软管

    1.3特殊处理对象

    有的模型中,存在有共用次数成百上千的对象,它们是具有实例化信息的,比如螺丝钉、螺丝帽、铁轨枕木、电杆、绝缘子串等等。

    可把该种类型的对象,单独提取出来,做为一个图层,通过点外挂的方式生成缓存(具体方法及步骤参考Bentley导出插件点位+模型功能使用说明及注意事项,如果不是DGN格式的数据,且已经将BIM数据导出为UDBX格式的数据集,需要我们提供的工具,来生成支持点外挂的模型数据集)。

    注意事项:

    1.如果是少量模型是共用的,不需要勾选实例化;

    2.如果共用对象较多,类别又比较多的,常规生成缓存有较大切片,可以使用实例化

    3.如果对象共用次数很多、类型少,使用点外挂模型的方式

    二、模型优化方法

    1、导出设置模型精细度

    BIM模型的一个特征就是比较精细,特别是管子、圆弧状等构件,三角面较多,在导出过程中进行适当的简化可以很好的提高性能。通常默认模型精细度为100%,可进行调整,例如设置精细度为80%。


    导出设置模型精细度
    2、模型拆分子对象(【三维地理设计】-【模型编辑】-【模型拆分】)

        部分模型在建模时,创建的族类型较为复杂,在最终的模型中单个对象存在较多对象,且三角面过多,导致场景性能较差,此时可以使用拆分子对象的方式,将单个对象拆分为多个小对象。

    拆分子对象
    3、模型切分(【三维地理设计】-【模型编辑】-【模型切分】)

    在管道模型中,常存在单个管道对象非常长,长度能达到几千米以上,三角面数几十万,此时模型就相对非常复杂,不利于使用。对此类型数据的优化通常采用模型切分的方式,将长的模型切分成多段小模型。


    4、移除重复顶点和重复面

        导出的模型通常存在一些重复顶点和重复面,这些重复顶点和重复面在渲染过程中是不必要的,会造成资源的消耗。


     


    5、三角网简化

    在导出模型设置简化之后发现三角面任然较多,性能较差,可使用三角网简化功能对模型进行再次简化,简化过程可以预览,不断尝试简化率以达到比较理想的效果。


    6、子对象操作

    在以上操作之后发现个别对象的子对象仍然比较大,可单独选中对象,对该对象的子对象进行简化和编辑。


    模型缓存策略

    BIM模型和传统的Max模型区别非常明显,BIM模型对象通常尺寸较小,对象非常多,模型复杂切三角面比较多。如果再使用传统的Max切片边长值,必然会出现单个.s3m文件过大,加载慢的情况,不利于web端应用。根据BIM模型的特征,需要适当的减小切片边长,个人推荐50或者100,视具体的数据情况可适当的做调整。

    小结

    不同类型的模型具有独特的数据特征,需要根据具体的数据特征具体分析,同时注重理论的应用和操作方法。尤其在Web端应用的过程中,数据存在下载和渲染的过程,下载过程中要求数据碎片化,单文件不宜过大,渲染过程中,三角面越少渲染越快。

    笔者:wzr

  • 相关阅读:
    传统目标检测算法【1】-Mean shift
    有趣的按钮分享
    【圣诞文】用python带你体验多重花样圣诞树
    SqlServer 系统表
    C、指针基础2
    SpringCloud搭建微服务之OAuth2实现SSO单点登录
    推荐一本计算机领域可以发的2区计算机智能医疗类SCI
    Python中的推导式
    学习Uni-app开发小程序Day5
    手撕LRU缓存——LinkedHashMap简易源码
  • 原文地址:https://blog.csdn.net/supermapsupport/article/details/126340472