1.一种基于BIM的施工模拟方法,其特征在于,所述方法包括以下步骤:
获取BIM模型文件和施工计划文件,根据施工顺序对BIM模型进行拆分得到排序后的多个集合;基于所述施工计划文件、所述多个集合得到多个施工模拟阶段,每个施工模拟阶段对应至少一个集合;
获取每个施工模拟阶段对应的模型类图元个数;判断处理器核心是否存在大小核,如果存在,根据大小核的性能比值和大小核的数量将施工模拟阶段分配给处理器核心,否则,按照施工顺序对所述施工模拟阶段合并,将合并后的每个施工模拟阶段分配个一个处理器核心;
建立处理器核心和施工模拟阶段的对应关系,在所述处理器核心上生成每个施工模拟阶段的施工动画模拟视频,将各个施工模拟阶段对应的施工动画模拟视频合并得到施工模拟视频。
2.如权利要求1所述的方法,其特征在于,所述根据大小核的性能比值和大小核的数量将施工模拟阶段分配给处理器核心,具体为:获取所有施工模拟阶段中模型类图元个数的总和,并将小核对应的性能设置为1,大核对应的性能设置为所述比值,计算得到第一值,所述第一值为大核个数与所述比值的乘积再加上小核个数;将所述总和与所述第一值的商作为小核要处理的模型类图元个数;将小核要处理的模型类图元个数与所述比值的乘积作为大核要处理的模型类图元个数;
计算一个或多个施工模拟阶段中模型类图元个数的和SUM1,将SUM1最接近大核要处理的模型类图元个数的一个或多个施工模拟阶段分配给第一大核;计算剩余的施工模拟阶段中一个或多个施工模拟阶段中模型类图元个数的和SUM2,将SUM2最接近大核要处理的模型类图元个数的一个或多个施工模拟阶段分配给第二大核;依次类推,直到所有大核被分配有施工模拟阶段;
在分配完大核后,计算剩余的施工模拟阶段中一个或多个施工模拟阶段中模型类图元个数的和SUM3,将SUM3最接近小核要处理的模型类图元个数的一个或多个施工模拟阶段分配给第一小核;依次类推,直到所有小核被分配有施工模拟阶段;
判断是否还有没有分配的施工模拟阶段,如果无,则分配结束,否则,对没有分配的施工模拟阶段的每一个,执行如下操作:计算每个大核对应所有施工模拟阶段的模型类图元个数,将没有分配的施工模拟阶段分配给模型类图元个数最少的大核。
3.如权利要求1所述的方法,其特征在于,所述按照施工顺序对所述施工模拟阶段合并,将合并后的每个施工模拟阶段分配个一个处理器核心,具体为:按照施工模拟阶段的顺序,计算相邻的一个或多个施工模拟阶段对应的模型类图元个数之和,若所述之和在以最大值为中心的预设范围内,则将所述一个或多个施工模拟阶段合并为一个施工模拟阶段,将所述合并后的施工模拟阶段分配给一个核心,依次类推,直到不存在一个或多个施工阶段对应的模型类图元个数之和不在所述预设范围内;其中,所述最大值是目标施工模拟阶段含有的模型类图元的个数,所述目标施工模拟阶段是含有模型类图元个数最多的施工模拟阶段;
判断是否还有没有分配的施工模拟阶段,如果无,则分配结束,否则,对没有分配的施工模拟阶段的每一个,执行如下操作:计算每个核心对应所有施工模拟阶段的模型类图元个数,将没有分配的施工模拟阶段分配给模型类图元个数最少的核心。
4.如权利要求1所述的方法,其特征在于,所述按照施工顺序对所述施工模拟阶段合并,将合并后的每个施工模拟阶段分配个一个处理器核心,具体为:获取处理器核心个数以及空闲率,根据空闲率按照施工顺序对施工模拟阶段序列进行分割得到处理器核心个数个子序列,将子序列和处理器核心绑定。
5.如权利要求4所述的方法,其特征在于,所述根据空闲率按照施工顺序对施工模拟阶段序列进行分割得到处理器核心个数个子序列,具体为:计算每个施工模拟阶段对应的模型类图元个数,得到按施工模拟阶段排序方式排列的模型类图元个数序列,将所述模型类图元个数序列分割为处理器核心个子序列,计算每个子序列中模型类图元个数,对所述个数进行归一化,将归一化结果加1再除以2得到每个子序列中模型类图元个数权重,并将所述权重与所述空闲率的欧式距离最短的分割方式分割作为目标分割方式,将目标分割方式分割得到的子序列依次分配给处理器核心。
6.一种基于BIM的施工模拟系统,其特征在于,所述系统包括以下模块:
施工阶段划分模块,用于获取BIM模型文件和施工计划文件,根据施工顺序对BIM模型进行拆分得到排序后的多个集合;基于所述施工计划文件、所述多个集合得到多个施工模拟阶段,每个施工模拟阶段对应至少一个集合;
施工阶段分配模块,用于获取每个施工模拟阶段对应的模型类图元个数;判断处理器核心是否存在大小核,如果存在,根据大小核的性能比值和大小核的数量将施工模拟阶段分配给处理器核心,否则,按照施工顺序对所述施工模拟阶段合并,将合并后的每个施工模拟阶段分配个一个处理器核心;
模拟施工生成模块,用于建立处理器核心和施工模拟阶段的对应关系,在所述处理器核心上生成每个施工模拟阶段的施工动画模拟视频,将各个施工模拟阶段对应的施工动画模拟视频合并得到施工模拟视频。
7.如权利要求6所述的系统,其特征在于,所述根据大小核的性能比值和大小核的数量将施工模拟阶段分配给处理器核心,具体为:获取所有施工模拟阶段中模型类图元个数的总和,并将小核对应的性能设置为1,大核对应的性能设置为所述比值,计算得到第一值,所述第一值为大核个数与所述比值的乘积再加上小核个数;将所述总和与所述第一值的商作为小核要处理的模型类图元个数;将小核要处理的模型类图元个数与所述比值的乘积作为大核要处理的模型类图元个数;
计算一个或多个施工模拟阶段中模型类图元个数的和SUM1,将SUM1最接近大核要处理的模型类图元个数的一个或多个施工模拟阶段分配给第一大核;计算剩余的施工模拟阶段中一个或多个施工模拟阶段中模型类图元个数的和SUM2,将SUM2最接近大核要处理的模型类图元个数的一个或多个施工模拟阶段分配给第二大核;依次类推,直到所有大核被分配有施工模拟阶段;
在分配完大核后,计算剩余的施工模拟阶段中一个或多个施工模拟阶段中模型类图元个数的和SUM3,将SUM3最接近小核要处理的模型类图元个数的一个或多个施工模拟阶段分配给第一小核;依次类推,直到所有小核被分配有施工模拟阶段;
判断是否还有没有分配的施工模拟阶段,如果无,则分配结束,否则,对没有分配的施工模拟阶段的每一个,执行如下操作:计算每个大核对应所有施工模拟阶段的模型类图元个数,将没有分配的施工模拟阶段分配给模型类图元个数最少的大核。
8.如权利要求6所述的系统,其特征在于,所述按照施工顺序对所述施工模拟阶段合并,将合并后的每个施工模拟阶段分配个一个处理器核心,具体为:按照施工模拟阶段的顺序,计算相邻的一个或多个施工模拟阶段对应的模型类图元个数之和,若所述之和在以最大值为中心的预设范围内,则将所述一个或多个施工模拟阶段合并为一个施工模拟阶段,将所述合并后的施工模拟阶段分配给一个核心,依次类推,直到不存在一个或多个施工阶段对应的模型类图元个数之和不在所述预设范围内;其中,所述最大值是目标施工模拟阶段含有的模型类图元的个数,所述目标施工模拟阶段是含有模型类图元个数最多的施工模拟阶段;
判断是否还有没有分配的施工模拟阶段,如果无,则分配结束,否则,对没有分配的施工模拟阶段的每一个,执行如下操作:计算每个核心对应所有施工模拟阶段的模型类图元个数,将没有分配的施工模拟阶段分配给模型类图元个数最少的核心。
9.如权利要求6所述的系统,其特征在于,所述按照施工顺序对所述施工模拟阶段合并,将合并后的每个施工模拟阶段分配个一个处理器核心,具体为:获取处理器核心个数以及空闲率,根据空闲率按照施工顺序对施工模拟阶段序列进行分割得到处理器核心个数个子序列,将子序列和处理器核心绑定;
所述根据空闲率按照施工顺序对施工模拟阶段序列进行分割得到处理器核心个数个子序列,具体为:
计算每个施工模拟阶段对应的模型类图元个数,得到按施工模拟阶段排序方式排列的模型类图元个数序列,将所述模型类图元个数序列分割为处理器核心个子序列,计算每个子序列中模型类图元个数,对所述个数进行归一化,将归一化结果加1再除以2得到每个子序列中模型类图元个数权重,并将所述权重与所述空闲率的欧式距离最短的分割方式分割作为目标分割方式,将目标分割方式分割得到的子序列依次分配给处理器核心。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时实现如权利要求1‑5任一项所述的方法。