本发明涉及一种bim模型轻量化方法,具体涉及为一种revit api的栏杆构件轻量化方法。
背景技术:
1、在当前,bim技术已经广泛的应用到建筑、环保、消防、交通、测绘、地理信息、数字城市等多个领域。在这些应用中,建筑物模型起到了至关重要的作用。但bim模型携带的数据信息较多:例如管道线路的布设,门窗结构的细节构造等,单个建筑模型数据量往往达到百兆级别。若在城市级别场景中加载成千上万个这样的模型,将使得系统变得异常卡顿。
2、一个单体建筑的bim模型中,栏杆作为楼梯、阳台的附属构件,在建筑物中大量存在,且具有较多的几何细节,占了较大一部分存储空间。而在大多数实际的应用场景中(例如室内疏散路径规划、日照分析、气流运动等),根本无需关注栏杆的复杂几何细节,只需关注栏杆的位置和简单的几何轮廓。因此亟待采取某种方法,在确保计算分析顺利进行的情况下对栏杆构件进行轻量化以提高运行效率。
技术实现思路
1、针对上述现有技术存在的问题,本发明提供一种基于revit api的栏杆构件轻量化方法,从而解决上述技术问题。
2、为了实现上述目的,本发明采用的技术方案是:一种基于revit api的栏杆构件轻量化方法,包括以下步骤:
3、步骤s1:新建一个bim模型p,编辑其中自带的栏杆族,将其进行简化,生成简化的栏杆族类型r,并将该模型保存为路径path;
4、步骤s2:打开一个待简化的bim模型m,并进行系统环境初始化;
5、步骤s3:将p中简化的栏杆族类型r传递到模型m中;
6、步骤s4:从模型m中查找到简化的栏杆族类型r;
7、步骤s5:将模型m中所有的栏杆对象的族类型替换为r。
8、进一步的,所述步骤s1具体步骤为:
9、s11:新建一个建筑样板项目;
10、s12:选中栏杆扶手的默认族类型“900mm圆管”,并转步骤s13进行编辑;
11、s13:点击复制按钮,新建一个族类型r,并将其命名为“900mm方管”;
12、s14:对族类型r的“扶栏结构”参数进行编辑,在“轮廓”这一列,将其默认值“圆形扶手:30mm”改为“矩形扶手:20mm”;
13、s15:对族类型r的“栏杆位置”参数进行编辑,分别在“主样式”和“支柱”中,将“栏杆族”这一列的默认值“栏杆-圆形:25mm”改为“栏杆-正方形:25mm”;
14、s16:对族类型r的“顶部扶栏”这一参数集合的参数“类型”进行编辑,将其属性“轮廓”的默认值“圆形扶手:40mm”改为“矩形扶手:20mm”;
15、s17:将该项目保存为模型p,路径设为path。
16、进一步的,所述步骤s2中系统环境初始化具体方法为:
17、s21:从commanddata对象中获取类型为uiapplication的对象uiapp;
18、s22:从uiapp对象中获取类型为document的对象doc。
19、进一步的,所述步骤s2中采用execute方法,其包含三个参数,分别为类型为externalcommanddata的对象commanddata,类型为string的对象message,以及类型为elementset的对象elements。
20、进一步的,所述步骤s3栏杆族类型传递的具体操作为:
21、s31:打开路径为path的模型p;
22、s32:过滤出p中所有的栏杆族类型,并存储到类型为icollection<element>的集合railingseles中;
23、s33:定义一个类型为icollection<elementid>的集合transids,用于存储待传递到模型m中的族实例编号;
24、s34:遍历railingseles中所有的栏杆族类型,如果该族类型为r,则将它的编号(“id”属性值)加入到集合transids中;
25、s35:定义并启动一个事务t;
26、s36:将transids从模型p复制到模型m中;
27、s37:提交事务t;
28、s38:关闭模型p。
29、进一步的,所述步骤s4中的具体操作为:
30、s41:定义一个类型为familysymbol的族类型对象symbol;
31、s42:过滤出当前项目m中所存在的栏杆族类型,并存储到类型为icollection<element>的集合rsymbolitem中;
32、s43:遍历rsymbolitem中的所有栏杆族类型,如果该族类型为r,则将其赋值给对象symbol。
33、进一步的,所述步骤s4中的具体操作包括:
34、s51:定义一个事务t1;
35、s52:过滤出当前项目m中所存在的栏杆族实例,并存储到类型为icollection<element>的集合railingss中;
36、s53:启动事务t1;
37、s54:遍历railingss中所有的栏杆族实例,将其栏杆族类型替换为symbol;
38、s55:提交事务t1。
39、本发明的有益效果是:相比较其他轻量化方法,该方法可以专门针对栏杆族进行简化,大大减少表达栏杆构件三维几何形态所需的三角面片。
1.一种基于revit api的栏杆构件轻量化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于revit api的栏杆构件轻量化方法,其特征在于,所述步骤s1具体步骤为:
3.根据权利要求1所述的一种基于revit api的栏杆构件轻量化方法,其特征在于,所述步骤s2中系统环境初始化具体方法为:
4.根据权利要求1所述的一种基于revit api的栏杆构件轻量化方法,其特征在于,所述步骤s2中采用execute方法,其包含三个参数,分别为类型为externalcommanddata的对象commanddata,类型为string的对象message,以及类型为elementset的对象elements。
5.根据权利要求1所述的一种基于revit api的栏杆构件轻量化方法,其特征在于,所述步骤s3栏杆族类型传递的具体操作为:
6.根据权利要求1所述的一种基于revit api的栏杆构件轻量化方法,其特征在于,所述步骤s4中的具体操作为:
7.根据权利要求1所述的一种基于revit api的栏杆构件轻量化方法,其特征在于,所述步骤s4中的具体操作包括: