1.本发明涉及计算机辅助设计技术领域,具体涉及算量模型的导出方法、装置、电子设备及存储介质。
背景技术:2.在建筑工程设计领域,通过建筑信息模型工具软件可以实现建筑模型的设计。在传统的算量业务中,安装造价师需理解设计师的设计内容,并做图纸处理以满足后续算量需求,设计分类与算量类别不同,导出设计模型需通过设置,将模型中的图元分类转化为算量专业可识别的分类,不同分类所挂接的属性不同,构件分类映射可确保挂接的算量属性正确,以便算量及编制清单时,可按照特定要求统计和形成清单报表。设计阶段构件的定位通常以建筑标高为基准,但造价阶段的构件归属部分场景需按照结构标高为基准,因此设计模型导出为算量模型需进行楼层转化,即按照建筑标高或结构标高转化。为了更准确更快速且可满足更大规模用户的算量导出分析,需要实现一种基于云端的算量导出分析技术方案。
3.在现有技术方案中,都是在revit软件里以插件化的形式开发模型算量软件,包含:工程设置、模型映射、套用做法、分析计算,输出报表。其中,在revit算量里面的模型映射,其原理也是生成算量模型,相关操作包括楼层转化、构件转化、计算构件归属楼层,生成算量模型;再基于revit软件进行算量计算,得到具体的工程量。由于算量模型的生成是基于revit软件的二次开发,一旦离开revit将无法独立工作。
技术实现要素:4.有鉴于此,本发明实施例提供了一种算量模型的导出方法、装置、电子设备及存储介质,以解决现有算量模型强依赖于revit软件的问题。
5.根据第一方面,本发明实施例提供了一种算量模型的导出方法,应用于算量云,所述方法包括:
6.获取目标算量模型的导出请求,所述导出请求中包括目标建筑模型中目标工作单元的标识;
7.基于所述目标工作单元的标识确定目标工作单元;
8.查询所述目标工作单元中待导出构件对应的算量映射规则,所述算量映射规则用于表示构件信息与算量信息的对应关系;
9.从所述目标建筑模型中获取所述待导出构件的构件信息,并基于所述算量映射规则对所述构件信息进行映射,确定目标算量模型。
10.本发明实施例提供的算量模型的导出方法,目标建筑模型是存储在算量云中的,且通过算量云先查询到待导出构件的算量映射规则,为了后续的算量规则映射做数据准备,再基于该算量映射规则对目标建筑模型中待导出构件的构件信息进行映射处理,得到目标算量模型。该处理过程是在算量云中实现的,无需借助于第三方软件,且算量模型的导
出是基于算量云中存储的目标建筑模型进行的,在算量模型导出之前无需对建筑模型进行转换,提高了算量模型的导出效率。
11.在一些实施方式中,所述查询所述目标工作单元中待导出构件对应的算量映射规则,包括:
12.在所述目标建筑模型中并行查询所述目标工作单元,以确定所述待导出构件;
13.在预设规则库中查询并确定所述待导出构件对应的算量映射规则。
14.本发明实施例提供的算量模型的导出方法,通过并行方式查询目标工作单元,以确定出待导出构件,能够提高构件的查询效率。
15.在一些实施方式中,所述查询所述目标工作单元中待导出构件对应的算量映射规则,还包括:
16.获取所述目标工作单元中所述待导出构件的数量;
17.基于所述待导出构件的数量以及所述待导出构件的实时查询处理时间,确定所述目标工作单元的映射查询进度。
18.本发明实施例提供的算量模型的导出方法,由于构件查询的过程比较耗时,用户端的等待时间会变长,通过确定出目标工作单元的映射查询进度,使得用户能够知晓当前查询处理进度,提高了用户体验。
19.在一些实施方式中,所述基于所述算量映射规则对所述构件信息进行映射,确定目标算量模型,包括:
20.基于所述构件信息的数量确定用于映射处理的计算节点的数量;
21.调用所述计算节点基于所述算量映射规则对所述构件信息进行映射,确定所述目标算量模型。
22.本发明实施例提供的算量模型的导出方法,在对构件信息进行映射处理时,利用构件信息的数量调整计算节点的数量,根据需求按需进行计算节点的配置,提高重行映射计算的处理效率。
23.在一些实施方式中,所述基于所述构件信息的数量确定用于映射处理的计算节点的数量,包括:
24.利用所述构件信息确定各算量专业的导出消息队列的初始长度;
25.基于所述初始长度确定所述计算节点的初始数量;
26.监控各专业的导出消息队列的实时长度,并基于所述实时长度调整所述计算节点的数量。
27.本发明实施例提供的算量模型的导出方法,通过监测导出消息队列的实施长度,实现计算节点数量的实时调整,实现智能话动态的弹性伸缩,以满足计算处理性能的要求。
28.在一些实施方式中,所述调用所述计算节点基于所述算量映射规则对所述构件信息进行映射,确定所述目标算量模型,包括:
29.将所述构件信息以及对应的所述算量映射规则发送至所述计算节点;
30.接收所述计算节点反馈的所述目标算量模型,所述目标算量模型是所述计算节点基于算量映射规则对所述构件信息进行映射得到构件映射结果,利用关联属性对所述构件数据映射结果进行关联得到关联数据,基于所述构件数据映射结果中的属性数据以及所述关联数据得到的。
31.本发明实施例提供的算量模型的导出方法,对于计算节点而言,在对构件信息映射处理之后,还对存在关联关系的构件数据映射结果进行关联处理,得到关联数据,即,在所得到的目标算量模型中已经对关联数据进行了整理,便于后续算量清单的导出。
32.在一些实施方式中,所述获取目标算量模型的导出请求,包括:
33.接收协同平台发送的至少一个所述目标模型的导出请求,所述目标建筑模型为设计端通过所述协同平台上传的。
34.本发明实施例提供的算量模型的导出方法,利用协同平台实现多人同时协同处理,即同一个项目在云端不同专业多人同时发起算量模型的导出请求。
35.根据第二方面,本发明实施例还提供了一种算量模型的导出装置,应用于算量云,所述装置包括:
36.获取模块,用于获取目标算量模型的导出请求,所述导出请求中包括目标建筑模型中目标工作单元的标识;
37.确定模块,用于基于所述目标工作单元的标识确定目标工作单元;
38.查询模块,用于查询所述目标工作单元中待导出构件对应的算量映射规则,所述算量映射规则用于表示构件信息与算量信息的对应关系;
39.映射模块,用于从所述目标建筑模型中获取所述待导出构件的构件信息,并基于所述算量映射规则对所述构件信息进行映射,确定目标算量模型。
40.根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的算量模型的导出方法。
41.根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的算量模型的导出方法。
42.本发明实施例提供的算量模型的导出装置、电子设备及计算机可读存储介质的相应有益效果,请参见上文算量模型的导出方法的对应有益效果描述,在此不再赘述。
附图说明
43.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是根据本发明实施例的算量模型导出的总体技术架构示意图;
45.图2是根据本发明实施例的算量模型导出的系统架构示意图;
46.图3是根据本发明实施例的算量模型导出的系统架构示意图;
47.图4是根据本发明实施例的数据模型的示意图;
48.图5是根据本发明实施例的算量模型的导出方法的流程图;
49.图6是根据本发明实施例的算量映射规则的确定示意图;
50.图7是根据本发明实施例的算量模型的导出方法的流程图;
51.图8是根据本发明实施例的工作单元的并行查询示意图;
52.图9是根据本发明实施例的查询进度的示意图;
53.图10是根据本发明实施例的算量模型的导出方法的流程图;
54.图11是根据本发明实施例的算量分析的示意图;
55.图12是根据本发明实施例的算量导出任务的处理示意图;
56.图13是根据本发明实施例的算量导出任务的处理示意图;
57.图14是根据本发明实施例的算量模型的导出装置的结构框图;
58.图15是本发明实施例提供的电子设备的硬件结构示意图;
59.图16是本发明实施例提供的gfc文件的格式示意图。
具体实施方式
60.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
61.本发明实施例提供的算量模型的导出方法,应用于算量云中,该方法用于确定用于算量软件进行算量清单计算的算量模型。其中,在本发明实施例中,算量云包括算量云平台以及数据平台。如图1所示,设计软件负责生成建筑模型,算量云负责将建筑模型生成算量模型,算量软件负责生成算量清单,从而完成设计算量一体化,全部基于同一个三维建筑模型。具体地,用户在桌面端设计建筑模型之后通过协同平台上传至算量云,算量云基于本发明实施例中提供的算量模型的导出方法确定算量模型;后续将该算连改模型导入算量软件中,即可得到算量清单。
62.对于算量云与协同平台之间的交互关系,如图2以及图3所示,整个系统采用分布式系统架构,按照每个服务节点的功能特点进行伸缩。为了下文描述方便,将图2中涉及到的内容描述如下:
63.1)数据平台:存储建筑模型(building information modeling,简称为bim)数据,负责调度系统处理任务排队,调起计算节点进行算量模型的转换,上传算量数字建筑数据交换标准(general foundation classes,简称为gfc)数据文件和报告数据文件。
64.2)协同平台:提供数据平台、桌面端、算量gfc导出应用之间的协作支持,同时存储协作数据,如项目信息、交付包,子项信息等。
65.3)bimface:bim模型的轻量可视化,浏览bim三维模型和视图。
66.4)算量云平台:算量gfc导出分析计算和数据存储,查看gfc导出结果,包括算量应用管理服务,构件数据查询服务,任务状态查询服务。工具端设计软件将设计好的bim模型上传至协同平台,用户在云端算量gfc导出分析系统的web页面创建算量gfc导出任务,选择模型交付包及相关专业的工作单元,进行楼层标高转化,构件数据与算量规则转化,发起任务,查询任务状态并查看结果报告和下载gfc文件。
67.5)worker:算量gfc导出分析计算模块,用于计算并生成输出gfc算量模型,并将计算出的算量模型上传至算量云平台,以供用户下载使用。
68.本发明实施例提供的算量模型的导出方法,是基于云端技术进行实现的,算量模
型导出的模型浏览,规则设置和构件转化映射、导出计算处理、数据存储等能力都在云端进行实现。分析计算性能和数据存储能力支持在云端进行按需动态扩展,处理能力不再受用户端机器配置的限制;同时支持对算量分析过程数据的协同处理和实时共享,用户协同工作的能力得到完善。
69.如图4所示,所涉及到的数据存储件包括应用数据存储mysql,数据缓存redis,分布式对象数据存储obs,模型数据存储es及hbase。云端算量导出的数据主要包括:工作单元,即构件基本数据,存储在数据平台的分布式存储系统es及hbase里;计算结果,即算量模型存储在数据平台的分布式存储系统obs里;gfc报告数据存储在算量云数据库mysql里;其它应用数据,如算量设置数据,规则数据,规则映射数据等,存储在结构化的关系数据库里,如mysql;应用管理过程中的一些临时数据例如,处理进度信息,采用分布式缓存,如redis;计算过程中产生的临时结果数据存储在各计算节点的临时数据目录里。
70.图4中所存储的各个数据的具体含义解释如下:
71.1)算量导出任务:用户在算量应用里创建gfc导出任务;
72.2)建筑模型及工作单元:用于在某一个导出任务里选择一个建筑模型及其下面的工作单元;
73.3)楼层标高转化:用户对指定工作单元的所有楼层标高选择按结构标高或建筑标高计算;
74.4)构件映射规则:各个算量专业有自己的构件映射规则;
75.5)构件映射规则文件:将工作单元的构件信息与构件映射规则进行匹配,将匹配结果推送给计算节点计算时以json文件形式传输到数据平台的obs里存储,供计算节点计算分析是读取映射规则;
76.6)建筑模型:桌面端软件设计提交工作单元时转换后生成的构件及图形数据。
77.结合图2或图3所示的算量模型的导出架构,具体在进行导出任务处理时,其处理步骤如图12所示,主要可以分为发起任务、计算分析、结果数据上传以及任务状态查询。具体地,
78.a1处理阶段:算量云发起任务,数据平台调度排队,下载规则文件,调起计算节点程序。
79.a2处理阶段:计算节点分析输入规则数据,打开gdoc整理需要导出的构件数据,根据映射规则计算导出构件类型及公有属性,导出构件实例及图元和属性信息,生成gfc数据文件和报告数据文件。
80.a3处理阶段:数据平台将生成的gfc数据文件上传到分布式存储obs里,生成任务结果的关联数据。
81.a4处理阶段:算量云向数据平台查询任务的状态,如果成功写入报告数据和相关结果关联数据,包括下载gfc数据文件的名称。
82.进一步地,为了更加准确地向用户展示任务的处理精度信息,在任务处理过程中,每个服务或模块在不同的处理阶段都会报告处理进度信息。
83.本发明实施例提供的算量模型的导出方法,是一种基于bim的云端算量导出模式。该导出方法不再依赖revit,模型数据存储在云端,从云端选择项目交付包,进行楼层标高转化,规则转化,从云端发起算量导出任务,使用云端的计算服务节点导出算量数据,从云
端下载gfc算量数据文件。
84.根据本发明实施例,提供了一种算量模型的导出方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
85.在本实施例中提供了一种算量模型的导出方法,可用于上述的算量云等,图5是根据本发明实施例的算量模型的导出方法的流程图,如图5所示,该流程包括如下步骤:
86.s11,获取目标算量模型的导出请求。
87.其中,所述导出请求中包括目标建筑模型中目标工作单元的标识。
88.如上文所述,用户通过协作平台上安装的算量导出软件,触发目标算量模型的导出。具体地,在发出导出请求时,用户通过与算量导出软件的交互,选择需要导出的目标建筑模型中的目标工作单元;再向算量云发送导出请求,对目标建筑模型中目标工作单元的标识进行封装,得到导出请求。相应地,算量云获取到导出请求,得到目标工作单元的标识。
89.s12,基于目标工作单元的标识确定目标工作单元。
90.对于目标建筑模型而言,其是存储在算量云中。算量云在获取到导出请求之后,利用导出请求中目标工作单元的标识,即可查询到目标工作单元。各个建筑模型上传至算量云之后,在算量云中均会有唯一的标识用于区分各个建筑模型。建筑模型包括至少一个工作单元,在建筑模型确定之后,利用目标工作单元的标识就能够确定出目标工作单元。
91.s13,查询目标工作单元中待导出构件对应的算量映射规则。
92.其中,所述算量映射规则用于表示构件信息与算量信息的对应关系。
93.由于不同专业(例如,建筑、结构、机电)的构件其构件信息的表述方式不同,因此,为了后续算量清单的导出,需要对构件信息进行统一的映射。对于不同的专业,其具有对应的算量映射规则,因此,需要对待导出构件对应的算量映射规则进行查询。
94.在进行算量映射规则查询时,对于楼层标高需要统一转化为结构标高或建筑标高。其中,如图6所示,构件转化的结果是得到构件对应的算量映射规则,包括3个步骤:构件查询、构件映射规则查询以及构件与映射规则的匹配。经过上述处理后,得到构件与算量映射规则的对应关系。其中,该对应关系可以采用上文所述的构件映射规则文件进行表示。
95.s14,从目标建筑模型中获取待导出构件的构件信息,并基于算量映射规则对构件信息进行映射,确定目标算量模型。
96.上述步骤中得到的算量映射规则是为此处的算量映射进行数据准备的,算量映射规则用于确定构件信息需要如何进行算量映射。在进行算量映射时,需要结合该算量映射规则对目标建筑模型中待导出构件的构件信息进行映射,最终确定出目标算量模型。
97.关于该步骤具体将在下文中进行详细描述。
98.本实施例提供的算量模型的导出方法,目标建筑模型是存储在算量云中的,且通过算量云先查询到待导出构件的算量映射规则,为了后续的算量规则映射做数据准备,再基于该算量映射规则对目标建筑模型中待导出构件的构件信息进行映射处理,得到目标算量模型。该处理过程是在算量云中实现的,无需借助于第三方软件,且算量模型的导出是基于算量云中存储的目标建筑模型进行的,在算量模型导出之前无需对建筑模型进行转换,提高了算量模型的导出效率。
99.在本实施例中提供了一种算量模型的导出方法,可用于上述的算量云等,图7是根据本发明实施例的算量模型的导出方法的流程图,如图7所示,该流程包括如下步骤:
100.s21,获取目标算量模型的导出请求。
101.其中,所述导出请求中包括目标建筑模型中目标工作单元的标识。
102.详细请参见图5所示实施例的s11,在此不再赘述。
103.s22,基于目标工作单元的标识确定目标工作单元。
104.详细请参见图5所示实施例的s12,在此不再赘述。
105.s23,查询目标工作单元中待导出构件对应的算量映射规则。
106.其中,所述算量映射规则用于表示构件信息与算量信息的对应关系。
107.具体地,上述s23包括:
108.s231,在目标建筑模型中并行查询目标工作单元,以确定待导出构件。
109.目标建筑模型中包括多个工作单元,而对于导出请求而言,并不需要将所有工作单元进行算量模型的导出处理。因此,就需要在目标建筑模型中进行目标工作单元的查询。其中,为了提高查询效率,采用并行查询的方式进行处理。对于各个工作单元而言,其包括多个构件。例如,可以将一个房间作为一个工作单元,那么该工作单元中包括门、窗、墙体等构件。基于此,查询到目标工作单元之后,即可确定目标工作单元中的待导出构件。
110.如图8所示,机电安装专业有自己的构件转化规则和数据过滤规则,构件转化是生成映射规则步骤当中最费时的。其中,主要的耗时操作是构件查询。为了提高构件查询的效率,采用了hbase数据集群和并行查询处理机制来加快查询构件的速度。
111.s232,在预设规则库中查询并确定待导出构件对应的算量映射规则。
112.在确定待导出构件之后,在预设规则库中进行算量映射规则的查询。例如,依据构件所属的专业进行查询。
113.在一些实施方式中,上述s23包括:
114.(1)获取目标工作单元中待导出构件的数量。
115.(2)基于待导出构件的数量以及待导出构件的实时查询处理时间,确定目标工作单元的映射查询进度。
116.由于构件查询比较耗时,用户端的等待时间会变长。因此,为了提高用户体验,增加了构件转换进度的提示进度条,并能根据多个工作单元的构件的数量及其处理情况,以及构件查询的处理进度提示给用户相对精确的进度数值。如图9所示,映射查询进度的总体时间=构件查询时间+构件与规则匹配时间。
117.关于进度数值的计算可以是:总体时间(100%)=构件数据查询时间(90%)+构件数据与规则的匹配时间(10%),上述的2段时间按照实际运行情况预设了百分比。其中90%里面再根据工作单元数量及每一个工作单元的构件数量占总体规模的百分比,估算出每一个工作单元占总体的百分比数值。例如,3个工作单元a的构件数量100,b的构件数量200,c的构件数量200,那么完成a的时间约为100/(100+200+200)=20%*90%。
118.如图8所示,工作单元的构件查询是并行处理的,每处理完一个工作单元的构件数据就通知到算量服务,算量服务再立即更新redis里的进度信息,方便用户端可以实时查询到当前的总体进度。当几个工作单元的构件全部查询完毕后,开始进行构件与映射规则的匹配,将映射结果入库,同时更新redis里的进度信息到100%。当用户端查询到进度已经达
到100%时查询出构件映射结果数据并展示到web页面上。
119.由于构件查询的过程比较耗时,用户端的等待时间会变长,通过确定出目标工作单元的映射查询进度,使得用户能够知晓当前查询处理进度,提高了用户体验。
120.s24,从目标建筑模型中获取待导出构件的构件信息,并基于算量映射规则对构件信息进行映射,确定目标算量模型。
121.详细请参见图5所示实施例的s14,在此不再赘述。
122.本实施例提供的算量模型的导出方法,通过并行方式查询目标工作单元,以确定出待导出构件,能够提高构件的查询效率。
123.在本实施例中提供了一种算量模型的导出方法,可用于上述的算量云等,图10是根据本发明实施例的算量模型的导出方法的流程图,如图10所示,该流程包括如下步骤:
124.s31,获取目标算量模型的导出请求。
125.其中,所述导出请求中包括目标建筑模型中目标工作单元的标识。
126.在一些实施方式中,上述s31包括:接收协同平台发送的至少一个目标模型的导出请求,所述目标建筑模型为设计端通过协同平台上传的。利用协同平台实现多人同时协同处理,即同一个项目在云端不同专业多人同时发起算量模型的导出请求。
127.即,在云端不同专业的多人可以同时发起对同一个建筑模型的导出请求,也可以是对不同建筑模型的导出请求。其中,每一个导出请求为一个导出任务,算量云可以先对各个导出任务进行分析,确定是否是相同的导出请求。若相同,则可以对仅处理一次,并将得到的目标算量模型供各个请求共享。
128.如上文所述,算量云包括算连平台以及数据平台,其中,数据平台用于存储数据,例如,建筑模型、中间计算结果以及gfc报告文件等等。为提高事务响应效率,算量云平台与数据平台之间采用了异步消息机制来投递任务,算量云平台采用异步查询机制来查询任务的处理状态。
129.如图13所示,消息中间件队列分为消费队列,即待处理消息、死信队列,即无法处理的消息或重试3次都失败的任务消息。任务接收服务app1具有重试机制,它会定时查询任务的状态,查询到任务失败就会重新发一条消息到消息中间件重试执行任务。任务处理执行程序app2负责下载数据文件,调起计算节点计算程序,将计算后生成的gfc数据文件推送到obs存储里,并通知app1任务已经计算完成。同时,该任务执行程序还能开展监控告警,当计算节点失败之后,app2可以推送消息到企业微信,通知到企业用户管理员,提高用户体验。
130.监控服务可以监控消息中间件队列里面的任务消息数量,当任务数量达到一定的规模时可以动态调整计算服务节点的数量,以保障整个系统的计算吞吐处理效率。为了提高计算节点的利用率,同一个计算节点内可以同时部署包括建筑/结构/机电的3个专业的计算节点,即一个计算节点最多可以同时处理3个任务。
131.s32,基于目标工作单元的标识确定目标工作单元。
132.详细请参见图5所示实施例的s12,在此不再赘述。
133.s33,查询目标工作单元中待导出构件对应的算量映射规则。
134.其中,所述算量映射规则用于表示构件信息与算量信息的对应关系。
135.详细请参见图7所示实施例的s23,在此不再赘述。
136.s34,从目标建筑模型中获取待导出构件的构件信息,并基于算量映射规则对构件信息进行映射,确定目标算量模型。
137.具体地,上述s34包括:
138.s341,从目标建筑模型中获取待导出构件的构件信息。
139.待导出构件的具体构件信息是记载在目标建筑模型中的,在进行构件的算量映射处理时,需要从目标建筑模型中获取到具体的构件信息。
140.s342,基于构件信息的数量确定用于映射处理的计算节点的数量。
141.如图11所示,在对构件进行算量映射处理时,为了减少映射处理延时,利用构件信息的数量匹配对应数量的计算节点,以便于及时进行处理。
142.在一些实施方式中,上述s342包括:
143.(1)利用构件信息确定各算量专业的导出消息队列的初始长度。
144.(2)基于初始长度确定计算节点的初始数量。
145.(3)监控各专业的导出消息队列的实时长度,并基于实时长度调整计算节点的数量。
146.具体地,在计算节点开始处理导出任务时,算量云需要先利用构件信息确定各算量专业的导出消息队列的初始长度。如上文所述,不同的专业具有各自不同的构件映射规则,因此,需要针对不同的算量专业进行构件映射。基于此,为不同的专业设置对应的导出消息队列。先确定出导出消息队列的初始长度,在映射处理过程中,导出消息队列的长度时实时变化的,再依据实时变化的消息队列的长度调整计算节点的数量。
147.由于计算服务比较重且计算时间相对比较长,为了提高系统整体处理任务的吞吐量,算量worker计算服务支持智能化动态的弹性伸缩。利用一个消息中间件监控服务对各专业的计算队列的消息总量进行监控,以一个专业为分析单位,设置规则n=mq/threshold-n,threshold是预先设定的固定值(通常》=10,可修改可配置),mq是计算队列的某专业的需要算量的消息总量,n是当前已经启动的计算节点数量,n是需要动态伸缩的节点数量。利用公有云镜像服务启停能力,通过实时监控计算消息总量,当消息数量升高到触发设定规则时动态启动一批节点,也可以是一个;当消息数量降低到一定程度时销毁这一批节点,但一定会保留原始计算节点。这种灵活的弹性调度方式可以通过按需动态创建和按时销毁弹性ecs资源的方式,满足公有云平台环境下的规模化用户并行计算需求,同时也能大大地降低生产成本。
148.通过监测导出消息队列的实施长度,实现计算节点数量的实时调整,实现智能话动态的弹性伸缩,以满足计算处理性能的要求。
149.s343,调用计算节点基于算量映射规则对构件信息进行映射,确定目标算量模型。
150.计算节点在进行构件算量映射处理时,需要获取到算量映射规则以及构件信息,再对其进行映射处理。在一些实施方式中,上述s343包括:
151.(1)将构件信息以及对应的算量映射规则发送至计算节点。
152.(2)接收计算节点反馈的目标算量模型,所述目标算量模型是计算节点基于算量映射规则对构件信息进行映射得到构件映射结果,利用关联属性对构件数据映射结果进行关联得到关联数据,基于构件数据映射结果中的属性数据以及关联数据得到的。
153.计算处理的是数据按协议整理,并写入gfc文件中。其处理过程包括:将设计软件
中的系统类型和分类,映射到算量中,并决定导出哪些类型的构件;遍历设计软件中当前项目需要导出的类型构件,整理数据,按算量规定的数据格式,整理并封装数据,分别有项目信息、建筑信息、楼层信息以及各构件信息,而构件信息又分为构件类型与构件实例,一个构件类型对应着多个构件实例;生成gfc文件。其中,gfc文件分为属性数据,关联数据等。即将第二步整理的数据,按规定的格式写入gfc文件中,并将数据进行关联。
154.具体地,算量映射包括系统映射以及分类映射。对于系统映射是基于系统分类处理的,即,系统分类包括管道类、管件类和设备类。管道类:根据管道接口获得系统类型,根据系统类型获得系统分类;管件类:根据主连接点获得系统类型,再获得系统分类,系统分类不明确再查看系统类型关键字;设备类:因为设备有很多连接点,优先看该设备是否可以直接通过类别映射成功,如果不可以则需要查询其是否有水专业连接点,有的话根据水连接点找到系统类型或者系统分类,从而达到映射效果。如果没有水连接点则给默认的映射,用户自己调整。
155.分类映射的映射规则,可以如下表所示:
[0156][0157]
对于计算节点而言,在对构件信息映射处理之后,还对存在关联关系的构件数据映射结果进行关联处理,得到关联数据,即,在所得到的目标算量模型中已经对关联数据进行了整理,便于后续算量清单的导出。
[0158]
计算节点在计算得到算量映射结果之后,需要将其导出至算量云中以供多人下载。具体地,根据系统映射和分类映射,遍历当前项目文档的所有构件,获取构件信息,以算量要求的数据协议,整理相关的数据导出。构件实例作为模型显示数据,分为线式构件及点式构件。线式构件导出中心线,及局部坐标系。点式构件,导出设备的连接点或者安装点。
[0159]
在一些实施方式中,最终得到的目标算量模型可以采用gfc文件的形式表示。如图16所示,数据端开始于data,结束于endsec,该gfc文件的格式表示如下:
[0160]
(1)编号(#行号)
[0161]
#:固定标识,不用特殊处理
[0162]
行号:glodon::objectbuf::entityref(int),写入数据时顺序安排的号码,相当
于地址,是递增形式,为0或为-1,都可用于错误判断。
[0163]
(2)数据信息
[0164]
构件类型,即有相同公有属性的构件。如地址#9
[0165]
构件实例,即构件的私有属性及图元信息。如#22
[0166]
(3)数据关联
[0167]
构件类型与构件实例相关联,为一对多的关系。如#25
[0168]
建筑与楼层关联,为一对多的关系。如#23
[0169]
楼层与构件关联,为一对多的关系。如#24
[0170]
在本实施例中,利用gfc文件表示目标算量模型,即,将涉及软件组宏所有的构件信息及图元信息,按照协议整理并打包整理,并对数据进行关联。
[0171]
本实施例提供的算量模型的导出方法,在对构件信息进行映射处理时,利用构件信息的数量调整计算节点的数量,根据需求按需进行计算节点的配置,提高重行映射计算的处理效率。
[0172]
本发明实施例提供的算量模型的导出方法,支持同一个项目在云端不同专业多人同时发起算量gfc导出分析,对于导出处理过程中的数据支持协同编辑处理,如项目级的映射规则;支持导出分析结果报告多人在线查看和下载。依靠协同平台的协同能力实现设计与算量一体化,支持桌面端设计软件将设计模型上传至云端存储,算量导出分析可以利用协同平台能力读取云端设计模型数据计算导出算量模型。设计及造价平台基于同一个三维图形引擎开发,不同业务构件映射准确度及匹配度很高,且更符合行业设计师和造价师的业务操作习惯。
[0173]
根据实际算量导出分析功能使用情况,可以在云端动态调整服务器配置,以满足计算处理性能的要求;随着算量导出分析结果数据的增长,可随时以对云端存储空间进行升级扩容。对于算量模型的导出处理是在云端处理,云端数据存储服务具备稳定、高效的特性,同时提供数据同步备份服务,降低数据丢失的风险,对数据安全更加有保障。由于算量导出分析处理过程都在云端服务器进行,对用户客户端的机器配置要求不高,不会因为用户机器配置差异影响算量导出分析的处理能力,用户体验方面更加的友好和一致。
[0174]
在本实施例中还提供了一种算量模型的导出装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0175]
本实施例提供一种算量模型的导出装置,应用于算量云,如图14所示,该装置包括:
[0176]
获取模块41,用于获取目标算量模型的导出请求,所述导出请求中包括目标建筑模型中目标工作单元的标识;
[0177]
确定模块42,用于基于所述目标工作单元的标识确定目标工作单元;
[0178]
查询模块43,用于查询所述目标工作单元中待导出构件对应的算量映射规则,所述算量映射规则用于表示构件信息与算量信息的对应关系;
[0179]
映射模块44,用于从所述目标建筑模型中获取所述待导出构件的构件信息,并基于所述算量映射规则对所述构件信息进行映射,确定目标算量模型。
[0180]
在一些实施方式中,查询模块43包括:
[0181]
查询单元,用于在所述目标建筑模型中并行查询所述目标工作单元,以确定所述待导出构件;
[0182]
第一确定单元,用于在预设规则库中查询并确定所述待导出构件对应的算量映射规则。
[0183]
在一些实施方式中,查询模块43还包括:
[0184]
获取单元,用于获取所述目标工作单元中所述待导出构件的数量;
[0185]
第二确定单元,用于基于所述待导出构件的数量以及所述待导出构件的实时查询处理时间,确定所述目标工作单元的映射查询进度。
[0186]
在一些实施方式中,映射模块44包括:
[0187]
第三确定单元,用于基于所述构件信息的数量确定用于映射处理的计算节点的数量;
[0188]
调用单元,用于调用所述计算节点基于所述算量映射规则对所述构件信息进行映射,确定所述目标算量模型。
[0189]
在一些实施方式中,第三确定单元包括:
[0190]
第一确定子单元,用于利用所述构件信息确定各算量专业的导出消息队列的初始长度;
[0191]
第二确定子单元,用于基于所述初始长度确定所述计算节点的初始数量;
[0192]
监控子单元,用于监控各专业的导出消息队列的实时长度,并基于所述实时长度调整所述计算节点的数量。
[0193]
在一些实施方式中,调用单元包括:
[0194]
发送子单元,用于将所述构件信息以及对应的所述算量映射规则发送至所述计算节点;
[0195]
接收子单元,用于接收所述计算节点反馈的所述目标算量模型,所述目标算量模型是所述计算节点基于算量映射规则对所述构件信息进行映射得到构件映射结果,利用关联属性对所述构件数据映射结果进行关联得到关联数据,基于所述构件数据映射结果中的属性数据以及所述关联数据得到的。
[0196]
在一些实施方式中,获取模块包括:
[0197]
接收单元,用于接收协同平台发送的至少一个所述目标模型的导出请求,所述目标建筑模型为设计端通过所述协同平台上传的。
[0198]
本实施例中的算量模型的导出装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0199]
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0200]
本发明实施例还提供一种电子设备,具有上述图14所示的算量模型的导出装置。
[0201]
请参阅图15,图15是本发明可选实施例提供的一种电子设备的结构示意图,如图15所示,该电子设备可以包括:至少一个处理器51,例如cpu(central processing unit,中央处理器),至少一个通信接口53,存储器54,至少一个通信总线52。其中,通信总线52用于实现这些组件之间的连接通信。其中,通信接口53可以包括显示屏(display)、键盘
(keyboard),可选通信接口53还可以包括标准的有线接口、无线接口。存储器54可以是高速ram存储器(random access memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器54可选的还可以是至少一个位于远离前述处理器51的存储装置。其中处理器51可以结合图15所描述的装置,存储器54中存储应用程序,且处理器51调用存储器54中存储的程序代码,以用于执行上述任一方法步骤。
[0202]
其中,通信总线52可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。通信总线52可以分为地址总线、数据总线、调用总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0203]
其中,存储器54可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:hdd)或固态硬盘(英文:solid-state drive,缩写:ssd);存储器54还可以包括上述种类的存储器的组合。
[0204]
其中,处理器51可以是中央处理器(英文:central processing unit,缩写:cpu),网络处理器(英文:network processor,缩写:np)或者cpu和np的组合。
[0205]
其中,处理器51还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:asic),可编程逻辑器件(英文:programmable logic device,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:fpga),通用阵列逻辑(英文:generic array logic,缩写:gal)或其任意组合。
[0206]
可选地,存储器54还用于存储程序指令。处理器51可以调用程序指令,实现如本技术任一实施例中所示的算量模型的导出方法。
[0207]
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的算量模型的导出方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0208]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。