一种BIM模型分拆展示的方法与流程

文档序号:32351064发布日期:2022-11-26 13:08阅读:49来源:国知局
一种BIM模型分拆展示的方法与流程
一种bim模型分拆展示的方法
技术领域
1.本发明涉及一种bim模型分拆展示的方法,属于建筑工程信息技术领域。


背景技术:

2.近年来,建筑行业发展越来越迅速,建筑信息模型简称bim技术(buildinginformation modeling)作为一种新兴的信息技术,已经广泛应用于建筑项目的各个领域,建筑学、工程学及土木工程的新工具。建筑信息模型或建筑资讯模型一词由autodesk所创的。它是来形容那些以三维图形为主、物件导向、建筑学有关的电脑辅助设计。当初这个概念是由jerry laiserin把autodesk、奔特力系统软件公司、graphisoft所提供的技术向公众推广。通过对建筑三维模型的数据化、信息化整合,实现信息在项目策划、设计、施工和运维的全生命周期过程中进行共享和传递,为各方建设主体提供协同工作的基础,在提高生产效率、节约成本和缩短工期方面发挥重要作用。在通过bim协同工作的过程中,往往采用的是适用于浏览器加载的轻量化bim模型,但目前轻量化bim引擎的展示功能较为单一,当需要查看模型中某个构件的细节时,只能在整体模型中对其进行放大,往往无法全面展示构件的全部细节。例如申请号为 cn201810913254.0,发明名称为“一种bim展示的方法”的发明专利申请,以模型中心为球心,公开了一种bim展示的方法,通过特殊模型的特性获取相关坐标,利用公式求出新坐标完成爆炸效果展示;在网页中导入obj模型和stl 模型,通过obj模型可以获取每个部件的中心坐标,通过stl模型可以获取模型整体的中心坐标,以整体坐标为中心点,设定部件爆炸距离,设定爆炸方向,通过公式获取每个部件爆炸后的坐标,将部件通过动画移动到指定坐标,完成爆炸效果。但这种方法展开效果较好,对远离球心的部件则展开效果并不明显,因此更适用于构件数量少、结构简单的bim模型,同时可能模型的部件较紧凑,造成某个区域的部件较多,影响部件的展开效果。


技术实现要素:

3.针对上述存在的技术问题,本发明提供了一种使bim模型中部件的展开效果更好的bim模型分拆展示的方法。
4.一种bim模型分拆展示的方法,包括如下步骤:
5.以待拆分展示模型的外接长方体的最小角点为原点建立与bim系统中实际坐标系平行的相对坐标系,根据预设的网格划分密度在相对坐标系中划分网格;
6.将包含至少两个构件的网格确定为目标网格,根据预设的曼哈顿距离计算策略计算目标网格中每个构件与目标网格中心点之间的曼哈顿距离;
7.将曼哈顿距离最小的构件作为目标构件,并安置在目标网格中;
8.将目标网格中除了目标构件其他的构件作为剩余构件,确定目标网格中每个剩余构件与目标构件之间的初始距离,以使每个目标构件通过预设的构件移动策略根据初始距离进行移动;
9.重复执行从将包含至少两个构件的网格确定为目标网格至确定目标网格中每个
剩余构件与目标构件之间的初始距离,以使每个目标构件通过预设的构件移动策略根据初始距离进行移动的步骤,直至所有网格中包含的构件数量均小于等于1为止;
10.根据相对坐标系和实际坐标系之间的对应关系,确定按照构件移动策略移动之后每个构件在实际坐标系中的实际坐标值,以完成待分拆模型的分拆和展示。
11.对上述技术方案的进一步改进为:以待拆分展示模型的外接长方体的最小角点为原点建立与bim系统中实际坐标系平行的相对坐标系的计算模型为:
[0012][0013]
式中,为构件i在相对坐标系下的x轴坐标;为构件i在相对坐标系下的y轴坐标;为构件i在相对坐标系下的z轴坐标;x(i)为构件i在实际坐标系下的x轴坐标;y(i)为构件i在实际坐标系下的y轴坐标;z(i)为构件i在实际坐标系下的z轴坐标;x0为待拆分展示模型的外接长方体在实际坐标系下的最小角点的x轴坐标;y0为待拆分展示模型的外接长方体在实际坐标系下的最小角点的y轴坐标;z0为待拆分展示模型的外接长方体在实际坐标系下的最小角点的 z轴坐标;n为待拆分展示模型中构件的总数;
[0014]
其中待拆分展示模型的外接长方体的长作为x轴,待拆分展示模型的外接长方体的宽作为y轴,待拆分展示模型的外接长方体的高作为z轴。
[0015]
进一步的,根据预设的网格划分密度在相对坐标系中划分网格还包括如下子步骤;
[0016]
根据预设的网格划分密度在相对坐标系中划分网格,得到相对坐标系中x轴、 y轴和z轴方向的步长;其计算模型为:
[0017][0018]
式中,s
x
为相对坐标系下的x轴方向的步长;sy为相对坐标系下的y轴方向的步长;sz为相对坐标系下的z轴方向的步长;l
x
为待拆分展示模型的外接长方体的长;ly为待拆分展示模型的外接长方体的宽;lz为待拆分展示模型的外接长方体的高;n为预设的网格划分密度。
[0019]
进一步的,将包含至少两个构件的网格确定为目标网格,根据预设的曼哈顿距离计算策略计算目标网格中每个构件与目标网格中心点之间的曼哈顿距离之前还包括如下步骤:
[0020]
根据相对坐标系中x轴、y轴和z轴方向的步长,计算每个构件所属网格编号,其计算模型为:
[0021][0022]
式中,为构件i在相对坐标系中x轴方向中的网格编号;为构件i在相对坐标系中y轴方向中的网格编号;为构件i在相对坐标系中z轴方向中的网格编号;为构
件i在相对坐标下的x轴坐标;为构件i在相对坐标下的y轴坐标;为构件i在相对坐标下的z轴坐标;s
x
为相对坐标下的x轴方向的步长; sy为相对坐标下的y轴方向的步长;sz为相对坐标下的z轴方向的步长。
[0023]
进一步的,预设的曼哈顿距离计算策略为:
[0024][0025]
式中d(i)为构件i距离目标网格中心点的曼哈顿距离,为构件i在相对坐标下的 x轴坐标;为构件i在相对坐标下的y轴坐标;为构件i在相对坐标下的z轴坐标;为构件i在相对坐标系中x轴方向中的网格编号;为构件i在相对坐标系中y轴方向中的网格编号;为构件i在相对坐标系中z轴方向中的网格编号;s
x
为相对坐标下的x轴方向的步长;sy为相对坐标下的y轴方向的步长; sz为相对坐标下的z轴方向的步长。
[0026]
进一步的,确定目标网格中每个剩余构件与目标构件之间的初始距离包括如下子步骤:计算目标网格中每个剩余构件与目标构件之间相对坐标系中x轴、 y轴和z轴方向的距离,其计算模型为:
[0027][0028]
式中,为剩余构件k与目标构件m在相对坐标系中x轴方向的初始距离;为剩余构件k与目标构件m在相对坐标系中y轴方向的初始距离;为剩余构件k与目标构件m在相对坐标系中z轴方向的初始距离;为剩余构件k 在相对坐标系下的x轴坐标;为剩余构件k在相对坐标系下的y轴坐标;为剩余构件k在相对坐标系下的z轴坐标;为目标构件m在相对坐标系下的 x轴坐标;为目标构件m在相对坐标系下的y轴坐标;为目标构件m在相对坐标系下的z轴坐标。
[0029]
进一步的,预设的构件移动策略为:
[0030]
选取每个剩余构件在相对坐标系中x轴、y轴和z轴方向的距离中绝对值最大的轴,作为移动方向进行移动;其计算模型为:
[0031][0032]
式中,为每个剩余构件k与目标构件m在相对坐标系中x轴方向的初始距离;为剩余构件k与目标构件m在相对坐标系中y轴方向的初始距离;为剩余构件k与目标构件m在相对坐标系中z轴方向的初始距离;p轴为剩余构件k在相对坐标系中x轴、y轴和z轴方向的距离中绝对值最大的轴;为为剩余构件k在相对坐标系中p轴方向的距离。
[0033]
若大于零,则向p轴正方向移动一个网格,若小于零,则往p轴负方向移动一个网格,其计算模型为:
[0034]
[0035]
为剩余构件k在相对坐标系下p轴方向中的网格编号;为目标构件 m在相对坐标系下p轴方向中的网格编号,为剩余构件k在相对坐标系中p 轴方向的距离;sign为符号函数,当当>0时,则当时,则当时,则
[0036]
若剩余构件待移至的网格内已有其它构件,若剩余构件k是沿p轴正方向移动的,则除剩余构件k外,对所有p轴方向上编号大于的构件,都往向p轴正方向移动一个网格;若剩余构件k是沿p轴负方向移动的,对所有p轴方向上编号大于的构件,都往向p轴正方向移动一个网格,其计算模型为:
[0037]
时,对使得令
[0038]
时,对使得令
[0039]
式中,为剩余构件k在相对坐标系中p轴方向的距离,为构件i在相对坐标系中p轴方向中的网格编号,为目标构件m在相对坐标系下p轴方向中的网格编号。
[0040]
进一步的,根据相对坐标系和实际坐标系之间的对应关系,确定按照构件移动策略移动之后每个构件在实际坐标系中的实际坐标值之前还包括如下步骤,
[0041]
计算相对坐标系中x轴方向上的最大网格数和网格的相对尺寸,其计算模型为
[0042][0043]
式中,为相对坐标系中x轴方向上的最大网格数,为构件i在相对坐标系中x轴方向上的网格编号,
[0044][0045]
式中,为所述相对坐标系中x轴方向上第j层网格的相对长度,为所述相对坐标系中x轴方向上第j层网格中所有构件的长度的集合,如果该集合为空集,则说明该层网格中没有构件,于是该层网格的相对长度为0;如果该集合非空,则取该层所有构件中长度最大的构件,以其长度作为本层网格的相对长度。
[0046]
进一步的,计算相对坐标系中x轴方向上的最大网格数和网格的相对尺寸之后还包括如下步骤:
[0047]
根据相对坐标系中x轴方向上的最大网格数和网格的相对尺寸计算出各网格在相对坐标系中x轴方向上的相对坐标系中的相对坐标;
[0048][0049]
[0050]
式中,和分别为所述相对坐标系中x轴方向上第j层网格的坐标和相对尺寸,为所述相对坐标系中x轴方向上的最大网格数。
[0051]
同理计算出各网格在相对坐标系中y轴和z轴方向上相对坐标系中的相对坐标;
[0052]
根据构件的网格编号对应其在相对坐标系中的相对坐标。
[0053]
进一步的,根据相对坐标系和实际坐标系之间的对应关系,确定按照构件移动策略移动之后每个构件在实际坐标系中的实际坐标值包括如下子步骤:
[0054]
按照构件移动策略移动之后每个构件在相对坐标系中的相对坐标,按照相对坐标系和实际坐标系之间的对应关系,转换成构件移动策略移动之后每个构件的实际坐标值;其相对坐标系和实际坐标系之间的对应关系为
[0055][0056]
式中,为构件i在实际坐标系下的x轴坐标;为构件i在实际坐标系下的y轴坐标;为构件i在实际坐标系下的z轴坐标;为构件i在子相对坐标系中的x轴坐标;为构件i在相对坐标系中的y轴坐标,为构件i在相对坐标系中的z轴坐标。
[0057]
由上述技术方案可知:本发明提供的使bim模型分拆展示的方法通过建立与bim系统中实际坐标系平行的相对坐标系,并在相对坐标系中划分网格;来把控拆分后的构件的相对距离,使所有构件分拆后与相邻构件保持充分距离,将待拆分展示模型的细节更好的展示;
[0058]
再将包含至少两个构件的网格确定为目标网格,根据预设的曼哈顿距离计算策略计算目标网格中每个构件与目标网格中心点之间的曼哈顿距离;将曼哈顿距离最小的构件作为目标构件;将目标网格中除了目标构件其他的构件作为剩余构件,确定目标网格中每个剩余构件与目标构件之间的初始距离,以使每个目标构件通过预设的构件移动策略根据初始距离进行移动;重复执行从将包含至少两个构件的网格确定为目标网格至确定目标网格中每个剩余构件与目标构件之间的初始距离,以使每个目标构件通过预设的构件移动策略根据初始距离进行移动的步骤,直至所有网格中包含的构件数量均小于等于1为止;使构件拆分后不会太集中,并且根据相对坐标系和实际坐标系之间的对应关系,确定按照构件移动策略移动之后每个构件在实际坐标系中的实际坐标值,以完成待分拆模型的分拆和展示。
附图说明
[0059]
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0060]
图1为本发明提供的bim模型分拆展示的方法的流程图。
[0061]
图2为图1中步骤s101的子步骤的流程图。
[0062]
图3为图1中步骤s104的子步骤的流程图。
[0063]
图4为图1中步骤s106的子步骤的流程图。
具体实施方式
[0064]
下面将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通的技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明的保护范围。
[0065]
一种bim模型分拆展示的方法,包括如下步骤:
[0066]
参考图1,步骤s101以待拆分展示模型的外接长方体的最小角点为原点建立与bim系统中实际坐标系平行的相对坐标系,根据预设的网格划分密度在相对坐标系中划分网格;
[0067]
参考图2,步骤s1011使用threej s在网页中导入gltf模型,即待拆分展示模型,通过threej s获取待拆分展示模型每个部件的中心坐标和模型整体的包围盒。
[0068]
步骤s1012获取待拆分展示模型的外接长方体的最小角点。
[0069]
其计算机程序代码为:
[0070]
this.box=this.getboundingbox(this.models);//获取包围盒,获取模型外接长方体
[0071]
const boxinfo=threeutil.getbondingboxinfo(this.box);
[0072]
this.origin=boxinfo.min;//获取模型外接长方体的最小角点(x0,y0,z0);
[0073]
获取待拆分展示模型的外接长方体的长、宽和高,其计算机程序代码为:
[0074]
this.lx=boxinfo.lx;//外接长方体的长lx
[0075]
this.ly=boxinfo.ly;//外接长方体的宽ly
[0076]
this.lz=boxinfo.lz;//外接长方体的高lz
[0077]
获取待拆分展示模型的中构件总数,其计算机程序代码为:
[0078]
this.modelcount=models.length;//获取构件总数n
[0079]
步骤s1013以待拆分展示模型的外接长方体的最小角点为原点建立与bim 系统中实际坐标系平行的相对坐标系,并且将待拆分展示模型中全部构件从实际坐标系转换成相对坐标系。
[0080]
其计算模型为:
[0081][0082]
式中,为构件i在相对坐标系下的x轴坐标;为构件i在相对坐标系下的y轴坐标;为构件i在相对坐标系下的z轴坐标;x(i)为构件i在实际坐标系下的x轴坐标;y(i)为构件i在实际坐标系下的y轴坐标;z(i)为构件i在实际坐标系下的z轴坐标;x0为待拆分展示模型的外接长方体在实际坐标系下的最小角点的x轴坐标;y0为待拆分展示模型的外接长方体在实际坐标系下的最小角点的y轴坐标;z0为待拆分展示模型的外接长方体在实际
坐标系下的最小角点的 z轴坐标;n为待拆分展示模型中构件的总数;
[0083]
其中待拆分展示模型的外接长方体的长作为x轴,待拆分展示模型的外接长方体的宽作为y轴,待拆分展示模型的外接长方体的高作为z轴;
[0084]
其计算机程序代码为:
[0085][0086]
步骤s1014根据预设的网格划分密度在相对坐标系中划分网格,得到相对坐标系中x轴、y轴和z轴方向的步长。
[0087]
其中,其计算模型为:
[0088][0089]
式中,s
x
为相对坐标系下的x轴方向的步长;sy为相对坐标系下的y轴方向的步长;sz为相对坐标系下的z轴方向的步长;l
x
为待拆分展示模型的外接长方体的长;ly为待拆分展示模型的外接长方体的宽;lz为待拆分展示模型的外接长方体的高;n为预设的网格划分密度。
[0090]
在另外一些实施例中预设的网格划分密度为1000,根据1000在相对坐标系中划分网格的计算机程序代码为:
[0091]
thisx=this.lx/n;
[0092]
this.sy=this.ly/n;
[0093]
this.sz=this.lz/n;
[0094]
步骤s1015计算每个待拆分展示模型中构件所属网格编号。
[0095]
其计算模型:
[0096][0097]
式中,为待拆分展示模型中构件i在相对坐标系中x轴方向中的网格编号;为待拆分展示模型中构件i在相对坐标系中y轴方向中的网格编号;为待拆分展示模型中构件i在相对坐标系中z轴方向中的网格编号;为待拆分展示模型中构件i在相对坐标下的x轴坐标;为待拆分展示模型中构件i在相对坐标下的y轴坐标;为待拆分展示模型中构件i在相对坐标下的z轴坐标;s
x
为相对坐标下的x轴方向的步长;sy为相对坐标下的y
轴方向的步长;sz为相对坐标下的z轴方向的步长。
[0098]
其计算机程序代码为:
[0099]
item.mx=math.floor(item.center.x/this.sx);
[0100]
item.my=math.floor(item.center.y/this.sy);
[0101]
item.mz=math.floor(item.center.z/this.sz);
[0102]
const grid=this.creategrid(item.mx,item.my,item.mz);
[0103]
参考图1,步骤s102将包含至少两个构件的网格确定为目标网格,根据预设的曼哈顿距离计算策略计算目标网格中每个构件与目标网格中心点之间的曼哈顿距离。
[0104]
其中将包含至少两个构件的网格确定为目标网格的计算机程序代码为:
[0105][0106]
预设的曼哈顿距离计算策略为:
[0107][0108]
式中d(i)为构件i距离目标网格中心点的曼哈顿距离,为构件i在相对坐标下的 x轴坐标;为构件i在相对坐标下的y轴坐标;为构件i在相对坐标下的z轴坐标;为构件i在相对坐标系中x轴方向中的网格编号;为构件i在相对坐标系中y轴方向中的网格编号;为构件i在相对坐标系中z轴方向中的网格编号;s
x
为相对坐标下的x轴方向的步长;sy为相对坐标下的y轴方向的步长; sz为相对坐标下的z轴方向的步长。
[0109]
其计算目标网格中每个构件与目标网格中心点之间的曼哈顿距离的计算机程序代码为:
[0110]
items.foreach((item)=》{
[0111]
const dx=math.abs(item.center.x-item.mx-this.sx/2);
[0112]
const dy=math.abs(item.center.y-item.my-this.sy/2);
[0113]
const dz=math.abs(item.center.z-item.mz-this.sz/2);
[0114]
item.d=dx+dy+dz;
[0115]
参考图1,步骤s103将曼哈顿距离最小的构件作为目标构件,并安置在目标网格中。具体为曼哈顿距离最小的构件不进行移动。
[0116]
其计算机程序代码为:
[0117]
igrid.items=[minitem];
[0118]
参考图1,步骤s104将目标网格中除了目标构件其他的构件作为剩余构件,确定目标网格中每个剩余构件与目标构件之间的初始距离,以使每个目标构件通过预设的构件移动策略根据初始距离进行移动。
[0119]
参考图3,步骤s1041,识别目标网格中除了目标构件的其他的构件,其将其作为剩余构件。
[0120]
步骤s1042计算目标网格中每个剩余构件与目标构件之间相对坐标系中x 轴、y轴和z轴方向的距离。其计算x轴方向的距离的计算模型为:
[0121][0122]
式中,为剩余构件k与目标构件m在相对坐标系中x轴方向的初始距离;为剩余构件k与目标构件m在相对坐标系中y轴方向的初始距离;为剩余构件k与目标构件m在相对坐标系中z轴方向的初始距离;为剩余构件k 在相对坐标系下的x轴坐标;为剩余构件k在相对坐标系下的y轴坐标;为剩余构件k在相对坐标系下的z轴坐标;为目标构件m在相对坐标系下的 x轴坐标;为目标构件m在相对坐标系下的y轴坐标;为目标构件m在相对坐标系下的z轴坐标。
[0123]
计算y轴和z轴方向的距离的计算模型原理,
[0124]
其计算目标网格中每个剩余构件与目标构件之间相对坐标系中x轴、y轴和z 轴方向的距离的计算机程序代码为:
[0125]
item.dx=item.center.x-minitem.center.x;
[0126]
item.dy=item.center.y-minitem.center.y;
[0127]
item.dz=item.center.z-minitem.center.z;
[0128]
步骤s1043选取每个剩余构件在相对坐标系中x轴、y轴和z轴方向的距离中绝对值最大的轴设为p轴,作为移动方向进行移动。其计算模型为:
[0129][0130]
式中,为每个剩余构件k与目标构件m在相对坐标系中x轴方向的初始距离;为剩余构件k与目标构件m在相对坐标系中y轴方向的初始距离;为剩余构件k与目标构件m在相对坐标系中z轴方向的初始距离;p轴为剩余构件k在相对坐标系中x轴、y轴和z轴方向的距离中绝对值最大的轴;为剩余构件k在相对坐标系中p轴方向的距离。
[0131]
其计算机程序代码为:
[0132]
[0133]
[0134][0135]
步骤s1044,若大于零,则向p轴正方向移动一个网格,若小于零,则往p轴负方向移动一个网格。其计算模型为:
[0136][0137]
为剩余构件k在相对坐标系下p轴方向中的网格编号;为目标构件 m在相对坐标系下p轴方向中的网格编号,为剩余构件k在相对坐标系中p 轴方向的距离;sign为符号函数,当当>0时,则当时,则当时,则
[0138]
步骤s1045若剩余构件待移至的网格内已有其它构件,若剩余构件k是沿p 轴正方向移动的,则除剩余构件k外,对所有p轴方向上编号大于的构件,都往向p轴正方向移动一个网格;若剩余构件k是沿p轴负方向移动的,对所有 p轴方向上编号大于的构件,都往向p轴正方向移动一个网格。其计算模型为:
[0139]
时,对使得令
[0140]
时,对使得令
[0141]
式中,为剩余构件k在相对坐标系中p轴方向的距离,为构件i在相对坐标系中p轴方向中的网格编号,为目标构件m在相对坐标系下p轴方向中的网格编号。
[0142]
其计算机程序代码为:
[0143][0144]
参考图1,步骤s105重复执行从将包含至少两个构件的网格确定为目标网格至确定目标网格中每个剩余构件与目标构件之间的初始距离,以使每个目标构件通过预设的构件移动策略根据初始距离进行移动的步骤,直至所有网格中包含的构件数量均小于等于1为止;。
[0145]
识别目标网格中除了目标构件的其他的构件,其将其作为剩余构件,并计算目标网格中每个剩余构件与目标构件之间相对坐标系中x轴、y轴和z轴方向的距离,选取每个剩余构件在相对坐标系中x轴、y轴和z轴方向的距离中绝对值最大的轴设为p轴,作为移动方向进行移动,若大于零,则向p轴正方向移动一个网格,若小于零,则往p轴负方向移动一个网格,若剩余构件待移至的网格内已有其它构件,若剩余构件k是沿p轴正方向移动
的,则除剩余构件 k外,对所有p轴方向上编号大于的构件,都往向p轴正方向移动一个网格;若剩余构件k是沿p轴负方向移动的,对所有p轴方向上编号大于的构件,都往向p轴正方向移动一个网格,重复上述步骤,直至所有网格中包含的构件数量均小于等于1为止。
[0146]
参考图1,步骤s106根据相对坐标系和实际坐标系之间的对应关系,确定按照构件移动策略移动之后每个构件在实际坐标系中的实际坐标值,以完成待分拆模型的分拆和展示。
[0147]
参考图4,步骤s1061,计算相对坐标系中x轴方向上的最大网格数和网格的相对尺寸。其计算模型为
[0148][0149]
式中,为相对坐标系中x轴方向上的最大网格数,为构件i在相对坐标系中x轴方向上的网格编号,
[0150][0151]
式中,为所述相对坐标系中x轴方向上第j层网格的相对长度,为所述相对坐标系中x轴方向上第j层网格中所有构件的长度的集合,如果该集合为空集,则说明该层网格中没有构件,于是该层网格的相对长度为0;如果该集合非空,则取该层所有构件中长度最大的构件,以其长度作为本层网格的相对长度。
[0152]
步骤s1062,计算相对坐标系中x轴方向上的最大网格数和网格的相对尺寸。其计算模型为
[0153][0154]
式中,为相对坐标系中x轴方向上的最大网格数,为构件i在相对坐标系中x轴方向上的网格编号,
[0155][0156]
式中,为所述相对坐标系中x轴方向上第j层网格的相对长度,为所述相对坐标系中x轴方向上第j层网格中所有构件的长度的集合,如果该集合为空集,则说明该层网格中没有构件,于是该层网格的相对长度为0;如果该集合非空,则取该层所有构件中长度最大的构件,以其长度作为本层网格的相对长度。其计算机程序代码为:
[0157][0158][0159]
步骤s1063,同理,计算相对坐标系中y轴和z轴方向上的最大网格数和网格的相对尺寸。
[0160]
步骤s1064,根据构件的网格编号对应其在相对坐标系中的相对坐标。
[0161]
其计算机程序代码为:
[0162][0163][0164]
步骤s1065按照构件移动策略移动之后每个构件在相对坐标系中的相对坐标,按照相对坐标系和实际坐标系之间的对应关系,转换成构件移动策略移动之后每个构件的实际坐标值。其相对坐标系和实际坐标系之间的对应关系为
[0165][0166]
式中,为构件i在实际坐标系下的x轴坐标;为构件i在实际坐标系下的y轴坐标;为构件i在实际坐标系下的z轴坐标;为构件i在子相对坐标系中的x轴坐标;为构件i在相对坐标系中的y轴坐标,为构件i在相对坐标系中的z轴坐标。
[0167]
本发明提供的使bim模型分拆展示的方法通过建立与bim系统中实际坐标系平行的相对坐标系,并在相对坐标系中划分网格;来把控拆分后的构件的相对距离,使所有构件分拆后与相邻构件保持充分距离,将待拆分展示模型的细节更好的展示;
[0168]
再将包含至少两个构件的网格确定为目标网格,根据预设的曼哈顿距离计算策略计算目标网格中每个构件与目标网格中心点之间的曼哈顿距离;将曼哈顿距离最小的构件作为目标构件;将目标网格中除了目标构件其他的构件作为剩余构件,确定目标网格中每个剩余构件与目标构件之间的初始距离,以使每个目标构件通过预设的构件移动策略根据初始距离进行移动;重复执行从将包含至少两个构件的网格确定为目标网格至确定目标网格中每个剩余构件与目标构件之间的初始距离,以使每个目标构件通过预设的构件移动策略根据初始距离进行移动的步骤,直至所有网格中包含的构件数量均小于等于1为止;使构件拆分后不会太集中,并且根据相对坐标系和实际坐标系之间的对应关系,确定按照构件移动策略移动之后每个构件在实际坐标系中的实际坐标值,以完成待分拆模型的分拆和展示。
[0169]
本技术实施例提供了一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述任一一项运行方法。
[0170]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0171]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0172]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0173]
以上借助具体实施例对本发明做了进一步描述,但是应该理解的是,这里具体的描述,不应理解为对本发明的实质和范围的限定,本领域内的普通技术人员在阅读本说明书后对上述实施例做出的各种修改,都属于本发明所保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1