本发明专利技术公开一种基于Revit API的栏杆构件轻量化方法,该方法主要包括轻量化栏杆族原始文件的创建、系统初始化、栏杆族类型的加载、栏杆对象简化等步骤。其中,轻量化栏杆族原始文件的创建是指,手动构建简化的栏杆族原始文件;系统的初始化是指对系统运行中涉及的全局变量进行初始化;栏杆族类型的加载是将简化的栏杆族类型加载到BIM模型中;栏杆对象简化是指将原有的栏杆族类型替换为简化的栏杆族类型,以实现构件的轻量化。本发明专利技术相比较其他轻量化方法,该方法可以专门针对栏杆族进行简化,大大减少表达栏杆构件三维几何形态所需的三角面片。三角面片。三角面片。
【技术实现步骤摘要】
一种基于Revit API的栏杆构件轻量化方法
[0001]本专利技术涉及一种BIM模型轻量化方法,具体涉及为一种Revit API的栏杆构件轻量化方法。
技术介绍
[0002]在当前,BIM技术已经广泛的应用到建筑、环保、消防、交通、测绘、地理信息、数字城市等多个领域。在这些应用中,建筑物模型起到了至关重要的作用。但BIM模型携带的数据信息较多:例如管道线路的布设,门窗结构的细节构造等,单个建筑模型数据量往往达到百兆级别。若在城市级别场景中加载成千上万个这样的模型,将使得系统变得异常卡顿。
[0003]一个单体建筑的BIM模型中,栏杆作为楼梯、阳台的附属构件,在建筑物中大量存在,且具有较多的几何细节,占了较大一部分存储空间。而在大多数实际的应用场景中(例如室内疏散路径规划、日照分析、气流运动等),根本无需关注栏杆的复杂几何细节,只需关注栏杆的位置和简单的几何轮廓。因此亟待采取某种方法,在确保计算分析顺利进行的情况下对栏杆构件进行轻量化以提高运行效率。
技术实现思路
[0004]针对上述现有技术存在的问题,本专利技术提供一种基于Revit API的栏杆构件轻量化方法,从而解决上述技术问题。
[0005]为了实现上述目的,本专利技术采用的技术方案是:一种基于Revit API的栏杆构件轻量化方法,包括以下步骤:
[0006]步骤S1:新建一个BIM模型P,编辑其中自带的栏杆族,将其进行简化,生成简化的栏杆族类型R,并将该模型保存为路径Path;
[0007]步骤S2:打开一个待简化的BIM模型M,并进行系统环境初始化;
[0008]步骤S3:将P中简化的栏杆族类型R传递到模型M中;
[0009]步骤S4:从模型M中查找到简化的栏杆族类型R;
[0010]步骤S5:将模型M中所有的栏杆对象的族类型替换为R。
[0011]进一步的,所述步骤S1具体步骤为:
[0012]S11:新建一个建筑样板项目;
[0013]S12:选中栏杆扶手的默认族类型“900mm圆管”,并转步骤S13进行编辑;
[0014]S13:点击复制按钮,新建一个族类型R,并将其命名为“900mm方管”;
[0015]S14:对族类型R的“扶栏结构”参数进行编辑,在“轮廓”这一列,将其默认值“圆形扶手:30mm”改为“矩形扶手:20mm”;
[0016]S15:对族类型R的“栏杆位置”参数进行编辑,分别在“主样式”和“支柱”中,将“栏杆族”这一列的默认值“栏杆
‑
圆形:25mm”改为“栏杆
‑
正方形:25mm”;
[0017]S16:对族类型R的“顶部扶栏”这一参数集合的参数“类型”进行编辑,将其属性“轮廓”的默认值“圆形扶手:40mm”改为“矩形扶手:20mm”;
[0018]S17:将该项目保存为模型P,路径设为Path。
[0019]进一步的,所述步骤S2中系统环境初始化具体方法为:
[0020]S21:从commandData对象中获取类型为UIApplication的对象uiApp;
[0021]S22:从uiApp对象中获取类型为Document的对象doc。
[0022]进一步的,所述步骤S2中采用Execute方法,其包含三个参数,分别为类型为ExternalCommandData的对象commandData,类型为string的对象message,以及类型为ElementSet的对象elements。
[0023]进一步的,所述步骤S3栏杆族类型传递的具体操作为:
[0024]S31:打开路径为Path的模型P;
[0025]S32:过滤出P中所有的栏杆族类型,并存储到类型为ICollection<Element>的集合railingsEles中;
[0026]S33:定义一个类型为ICollection<ElementId>的集合transIDs,用于存储待传递到模型M中的族实例编号;
[0027]S34:遍历railingsEles中所有的栏杆族类型,如果该族类型为R,则将它的编号(“Id”属性值)加入到集合transIDs中;
[0028]S35:定义并启动一个事务T;
[0029]S36:将transIDs从模型P复制到模型M中;
[0030]S37:提交事务T;
[0031]S38:关闭模型P。
[0032]进一步的,所述步骤S4中的具体操作为:
[0033]S41:定义一个类型为FamilySymbol的族类型对象symbol;
[0034]S42:过滤出当前项目M中所存在的栏杆族类型,并存储到类型为ICollection<Element>的集合rSymbolItem中;
[0035]S43:遍历rSymbolItem中的所有栏杆族类型,如果该族类型为R,则将其赋值给对象symbol。
[0036]进一步的,所述步骤S4中的具体操作包括:
[0037]S51:定义一个事务T1;
[0038]S52:过滤出当前项目M中所存在的栏杆族实例,并存储到类型为ICollection<Element>的集合railingss中;
[0039]S53:启动事务T1;
[0040]S54:遍历railingss中所有的栏杆族实例,将其栏杆族类型替换为symbol;
[0041]S55:提交事务T1。
[0042]本专利技术的有益效果是:相比较其他轻量化方法,该方法可以专门针对栏杆族进行简化,大大减少表达栏杆构件三维几何形态所需的三角面片。
附图说明
[0043]图1为本专利技术的算法流程图;
[0044]图2为本专利技术的步骤S1中手动简化栏杆族的具体操作方法;
[0045]图3为本专利技术所述方法实施前后的栏杆对比图(a)以及图(b)。
具体实施方式
[0046]为使本专利技术的目的、技术方案和优点更加清楚明了,下面通过附图及实施例,对本专利技术进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限制本专利技术的范围。
[0047]除非另有定义,本文所使用的所有的技术术语和科学术语与属于本专利技术的
的技术人员通常理解的含义相同,本文中在本专利技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本专利技术。
[0048]如图1、图2和图3所示,一种基于Revit API的栏杆构件轻量化方法,包括以下步骤:
[0049]步骤S1:新建一个BIM模型P,编辑其中自带的栏杆族,将其进行简化,生成简化的栏杆族类型R,并将该模型保存为路径Path;该实施例中,简化的族类型R被命名为"900mm方管",路径Path为“D:\\RvtWork本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于Revit API的栏杆构件轻量化方法,其特征在于,包括以下步骤:步骤S1:新建一个BIM模型P,编辑其中自带的栏杆族,将其进行简化,生成简化的栏杆族类型R,并将该模型保存为路径Path;步骤S2:打开一个待简化的BIM模型M,并进行系统环境初始化;步骤S3:将P中简化的栏杆族类型R传递到模型M中;步骤S4:从模型M中查找到简化的栏杆族类型R;步骤S5:将模型M中所有的栏杆对象的族类型替换为R。2.根据权利要求1所述的一种基于Revit API的栏杆构件轻量化方法,其特征在于,所述步骤S1具体步骤为:S11:新建一个建筑样板项目;S12:选中栏杆扶手的默认族类型“900mm圆管”,并转步骤S13进行编辑;S13:点击复制按钮,新建一个族类型R,并将其命名为“900mm方管”;S14:对族类型R的“扶栏结构”参数进行编辑,在“轮廓”这一列,将其默认值“圆形扶手:30mm”改为“矩形扶手:20mm”;S15:对族类型R的“栏杆位置”参数进行编辑,分别在“主样式”和“支柱”中,将“栏杆族”这一列的默认值“栏杆
‑
圆形:25mm”改为“栏杆
‑
正方形:25mm”;S16:对族类型R的“顶部扶栏”这一参数集合的参数“类型”进行编辑,将其属性“轮廓”的默认值“圆形扶手:40mm”改为“矩形扶手:20mm”;S17:将该项目保存为模型P,路径设为Path。3.根据权利要求1所述的一种基于Revit API的栏杆构件轻量化方法,其特征在于,所述步骤S2中系统环境初始化具体方法为:S21:从commandData对象中获取类型为UIApplication的对象uiApp;S22:从uiApp对象中获取类型为Document的对象doc。4.根据权利要求1所述的一种基于Revit API的栏杆构件轻量化方法,其特征在于,所述步骤S2中采用Execute方法,其包含三个参数,分别为类型为ExternalCommandData的对象commandDa...
【专利技术属性】
技术研发人员:张驰,杨帆,曹鑫亮,车明亮,张季一,王英利,
申请(专利权)人:南通大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。