基于构件级的建筑信息模型数据协同方法和系统与流程

文档序号:24422880发布日期:2021-03-26 22:26阅读:277来源:国知局
基于构件级的建筑信息模型数据协同方法和系统与流程

1.本公开的实施例涉及计算机领域,并且更具体地,涉及基于构件级的建筑信息模型数据协同方法和系统。


背景技术:

2.在针对项目(例如,建筑工程项目)的计算机辅助设计中,由于项目的复杂性,通常需要例如具有不同领域知识的多个用户在多个终端上进行协同以完成项目的设计。例如,在一些常规方案中,在采用建筑信息模型(building information modeling,bim)的情况下,由于bim数据的复杂性,通常每个时刻仅支持由一名用户进行编辑,只有在该用户编辑完成并上传以后,其他用户才能开始编辑,以此方式避免多用户同时对该数据进行编辑所导致的数据冲突。因此,存在对能够在多终端的协同场景中对bim数据进行高效协同的方案的需要。


技术实现要素:

3.本公开的实施例提供了基于构件级的建筑信息模型数据协同的方案。
4.在本公开的第一方面中,提供了一种基于构件级的建筑信息模型bim数据协同方法,包括:由协同场景下的多个终端设备中的第一终端设备从服务器获取bim数据的第一副本,第一副本包括第一构件的第一数据;由第一终端设备接收第一用户将要对第一数据执行的编辑操作,第一构件具有第一唯一标识符;响应于编辑操作,由第一终端设备向服务器发送用于查询第一构件是否被锁定的第一锁定查询请求;响应于第一锁定查询请求,由服务器基于全局服务锁来构建指示第一构件是否被锁定的第一响应;由服务器向第一终端设备发送第一响应;如果第一响应指示第一构件未被锁定,则由第一终端设备向服务器发送用于锁定第一构件的锁定请求,锁定请求包括第一唯一标识符;以及响应于接收到锁定请求,由服务器根据第一唯一标识符来更新全局服务锁,以用于响应来自多个终端中的第二终端设备的查询,使得在第二终端设备处,与第一构件相关的编辑操作被禁用。
5.在本公开的第二方面中,提供了一种基于构件级的建筑信息模型bim数据协同系统,包括在协同场景下的服务器、以及与服务器通信连接的多个终端设备,其中服务器处维护有bim数据、并且多个终端设备中的每个终端设备处均维护有bim数据的对应副本,其中多个终端设备包括第一终端设备,第一终端设备被配置为:从服务器获取bim数据的第一副本,第一副本包括第一构件的第一数据;接收第一用户将要对第一数据执行的编辑操作,第一构件具有第一唯一标识符;响应于编辑操作,由第一终端设备向服务器发送用于查询第一构件是否被锁定的第一锁定查询请求;接收来自服务器的第一响应,第一响应指示第一构件是否被锁定;以及如果第一响应指示第一构件未被锁定,则向服务器发送用于锁定第一构件的锁定请求,锁定请求包括第一唯一标识符;并且服务器被配置为:接收第一锁定查询请求;响应于第一锁定查询请求,基于全局服务锁来构建第一响应;向第一终端设备发送第一响应;接收锁定请求;以及响应于锁定请求,根据第一唯一标识符来更新全局服务锁,
以用于响应来自多个终端中的第二终端设备的查询,使得在第二终端设备处,与第一构件相关的编辑操作被禁用。
6.在本公开的第三方面中,提供了一种服务装置,使用在根据本公开的第二方面所述的系统中,实现服务器的功能。
7.在本公开的第四方面中,提供了一种终端装置,使用在根据本公开的第二方面所述的系统中,实现第一终端设备或第二终端设备的功能。
8.在本公开的第五方面中,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本公开的第一方面所述的方法。
9.在本公开的第六方面中,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令被处理器执行时,实现根据本公开的第一方面所述的方法。
10.本公开能够实现对bim数据的高效协同。
11.提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
12.通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
13.图1示出了根据本公开的实施例的示例性系统的示意图;
14.图2示出了根据本公开的实施例的用于bim数据协同的交互过程;
15.图3示出了根据本公开的实施例的在第一终端设备处生成锁定请求的过程;
16.图4示出了根据本公开的实施例的第二终端设备与服务器之间的交互过程;
17.图5示出了根据本公开的实施例的第一终端设备与服务器之间的交互过程;
18.图6示出了根据本公开的实施例的在第一终端设备处,用于自动编辑第二数据的过程的流程图;
19.图7示出了根据本公开的实施例的在第一终端设备处,用于上传数据变更的过程的流程图。
20.图8示出了根据本公开的实施例的用于bim数据协同的系统800的框图;以及
21.图9示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
22.下面将参考附图中示出的若干示例实施例来描述本公开的原理。
23.在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“一组示例实施例”。术语“另一实施例”表示“一组另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
24.如上面所讨论的,为了确保数据的一致性、并且避免由于多终端所可能导致的数
据冲突,常规方案仅支持bim数据在同一时刻仅由单用户编辑,因此效率不高。
25.在一些方案中,可以例如由服务器可以将bim数据分割为多个子文件分配给多个终端设备,每个用户仅能够对其所分配到的子文件进行编辑,以避免潜在的数据冲突。在编辑完成后,每个用户将编辑完成的子文件上传到服务器,以合并成完整的模型文件。由于每个用户仅被分配给bim数据的一部分,故每个用户能够编辑的构件数目有限。上述方案均无法按照构件级别对bim数据进行协同。这些方案的协同效率均不高、并且缺乏灵活性。同时,由于在上传时需要以模型文件的量级进行数据传输,需要消耗较高的带宽和存储空间。
26.为了至少部分地解决上述缺点中的一些缺点,本公开的实施例提供了一种构件级的bim数据协同方案,其特别适于协同场景下的多个终端设备。在该方案中,服务器处维护有bim数据,并且每个终端设备处维护有该bim数据的本地副本。当第一用户在例如第一终端设备处将要对本地副本中与第一构件相关联的第一数据进行操作时,第一终端设备可以基于与服务器的交互,确定该第一构件是否被其他用户锁定,并且在该构件未被锁定的情况下,向服务器发送消息以锁定该第一构件用于编辑操作。
27.以此方式,第一用户可以对第一构件的第一数据进行编辑操作,并且通过锁定以免其他用户(例如,第二用户)修改;第二用户可以访问与第一构件相关联的数据(例如,其本地副本所维护的与第一数据相对应的第三数据),但无法对其进行编辑操作,因此能够以高效地方式对bim数据(和/或其本地副本)进行协同操作,同时避免潜在的数据冲突。
28.图1示出了根据本公开实施例的示例性系统100的示意图,在该示例性系统100中,根据本公开实施例的方法和/或装置和/或系统可以被实施。
29.系统100包括服务器110、以及能够与服务器110通信连接的第一终端设备105和第二终端设备115。将理解的是,所示出的服务器110、以及终端设备的数目仅是为了便于说明,服务器能够服务于更多的终端设备,并且服务器的数目也可能多于一个。
30.服务器110处维护有bim数据1106。在一些实施例中,bim数据1106可以包括属性数据,以及基于属性数据而生成的几何数据。其中属性数据包括,但不限于:(多个)构件的尺寸数据、颜色数据、顶点坐标数据、类型、截面信息以及构件之间的关系数据。几何数据可以用于在终端设备处显示构件的图形表示。由于服务器并不一定需要显示构件的图形表示,在一些实施例中,bim数据1106可以仅包括属性数据。
31.第一终端设备105和第二终端设备115可以在一时间段内,与服务器110通信连接以进行协同设计。在一个示例中,第一终端设备105可以在第一时刻131与第三时刻133之间,连接到服务器以进行协同设计;第二终端设备115可以在第二时刻132与第四时刻134之间,连接到服务器110以进行协同设计。在该示例中,第一时刻131至第四时刻134按照时间的先后顺序而排列,其可以根据实际需要而不同,例如,第二时刻132也可以早于第一时刻131。因此,在该示例中,在第二时刻132至第三时刻133之间,第一终端设备和第二终端设备115将同时连接到服务器110,以允许两个用户同时针对同一bim数据进行协同设计。可以理解的是,本公开的实施例支持任意个用户在任意个终端设备处,同时针对同一bim数据进行协同设计。
32.在一些实施例中,第一终端设备105可以例如由建筑专业的人员使用,而第二终端设备115可以例如由机电专业的人员使用。因此,机电专业的人员可以在第二终端设备115处,获取已经由建筑专业人员编辑好的包括构件数据的bim数据,并对该bim数据进行进一
步的编辑,包括但不限于暖通设计、给排水设计以及电气设计。在另一些实施例中,第一终端设备105可以例如由机电专业中的暖通专业人员来使用,而第二终端设备115可以例如由机电专业中的电气专业人员来使用,以互相参照来分别进行风管/水管开洞、以及电气构件预埋。在又一实施例中,第一终端设备105可以例如由结构专业的第一用户使用,而第二终端设备115可以例如由结构专业的第二用户使用,第一用户可以例如对预制板进行编辑,而第二用户可以例如对预置梁、柱进行编辑。上述实施例仅为本公开的一些示例应用场景,本公开在此方面不受限制。
33.第一终端设备105和第二终端设备115可以从服务器110分别获取该bim数据的副本1056、以及副本1156以存储在本地。该获取过程可以按照以下各种方式来实现。
34.下面将以第一终端设备105为例进行说明,可以理解的是,在本文中,第一终端设备105和第二终端设备115被配置为具有相同的功能性。换言之,在第一终端设备105处所执行的动作也可以在第二终端设备115处执行,并且反之亦然。
35.在一些实施例中,在第一次与服务器110连接时(例如,由第一用户通过第一终端设备上的接口登录到服务器上所运行的bim协作平台),第一终端设备105可以向服务器110发送数据获取请求;响应于数据获取请求,服务器110可以向第一终端设备105发送bim数据1106以用于存储为对应的bim数据副本1056。在另一些实施例中,在第一次与服务器110连接时,服务器可以响应于检测到第一终端设备的接入(例如,由第一用户通过第一终端设备上的接口登录到服务器上所运行的bim协作平台)而主动向第一终端设备105发送bim数据1106以用于存储为对应的bim数据副本1056。
36.第一终端设备105和第二终端设备115均可以安装有计算机辅助设计软件(cad),例如,装配式建筑设计用软件,在一些实施例中,该软件可以是pkpm

pc。在bim数据1106仅包括属性数据的一些实施例中,第一终端设备105可以获取bim数据1106作为属性数据的副本,并基于软件所提供的建模模型来生成几何数据的副本,以获取包括属性数据的副本以及几何数据的副本的bim数据副本1056。
37.第一用户可以在第一终端设备处,通过上述软件所提供的接口执行对构件图的绘制工作。第一终端设备105和第二终端设备115均被配置为基于与用户的交互,对其本地的bim数据副本1056的一部分(例如,与其所编辑的构件相关联的数据)进行修改。
38.第一终端设备105和第二终端设备115均被配置为响应于用户用于上传数据的数据上传操作、或者根据预定时间间隔、或者响应于用户退出软件,而将数据上传到服务器,例如,使bim数据1056与bim数据副本1056相一致,在一些实施例中使bim数据1056与bim数据副本1056中的属性数据部分相一致。
39.在一些实施例中,响应于用户用于同步数据的数据同步操作,或每隔预定时间间隔、或在后续再次与服务器110连接时,第一终端设备105可以从服务器110获取更新的bim数据1106。在一些实施例中,第一终端设备105可以从服务器110仅获取bim数据1106与其本地的bim数据副本1056所不同的部分(例如,由第二用户在第二终端设备115处所编辑的部分)。在bim数据1106仅包括属性数据的一些实施例中,在第一终端设备105可以从服务器110仅获取bim数据1106与其本地的bim数据副本1056中的属性数据部分所不同的部分(例如,由第二用户在第二终端设备115处所编辑的部分)。
40.可以理解的是,除了用户在各自终端处所编辑的数据的一部分之外,bim数据副本
1056、1156与bim数据1106可以实质上相同。在bim数据1106仅包括属性数据的一些实施例中,除了用户在各自终端处所编辑的数据的一部分之外,bim数据副本1056、1156中的属性数据与bim数据1106可以实质上相同。
41.可以理解的是,第一终端设备105和第二终端设备115的示例包括但不限于计算机、平板电脑、智能手机。与用户的交互包括但不限于包括如下项的用户输入:键盘输入、鼠标输入、触控输入、语音输入、手势输入、眼动追踪输入、数位画图板输入等。本公开对此并不限制。
42.下文将结合图1来详细描述根据本公开实施例的方法和/或系统。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。应当理解,所描述的方法可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
43.图2示出了根据本公开的实施例的用于bim数据协同的交互过程200。图2涉及如图1所示的第一终端设备105、服务器110以及可选地,第二终端设备115。可以理解的是,虽然以第一终端设备105为例进行说明,但实质上该交互过程也可以在第二终端设备115、服务器110以及可选地,第一终端设备115之间进行。
44.如图2所示,当第一用户意图在第一终端设备105处对第一构件进行编辑时,协同场景下的多个终端设备中的第一终端设备105可以从服务器110获取(202)bim数据的第一副本,其中该第一副本包括第一构件的第一数据。可以理解的是,获取(202)动作可以采取如上文所描述的由第一终端设备105向服务器110发请求的方式、或由服务器110向第一终端设备105主动推送的方式,在此不再赘述。
45.为了区分不同的构件,第一构件可以具有第一唯一标识符。第一终端设备105可以接收(204)第一用户将要对第一数据执行的编辑操作。编辑操作包括但不限于:修改第一构件的参数、修改第一构件与其他构件之间的关联关系、删除第一构件的第一数据。由于本公开的方案允许多用户同时进行编辑,为了避免出现数据冲突,针对同一构件,通常仅允许一个用户进行编辑,在一些实施例中,在同一时刻仅允许一个用户进行编辑。因此,响应于编辑操作,第一终端设备105可以向服务器110发送(206)用于查询第一构件是否被锁定的第一锁定查询请求,以用于查询服务器110处的全局服务锁。全局服务锁可以包括bim数据1106中所包括的所有构件的锁定信息。第一锁定查询请求可以例如包括第一构件的第一唯一标识符,以用于检索全局服务锁。
46.在一些实施例中,在第一终端设备105处存在针对多个构件的多个活动的编辑窗口的情况下,第一终端设备105还可以进一步查询其本地的构件锁,仅在本地的构件锁也指示该构件未被锁定(例如,该构件未在其他活动的编辑窗口中打开、或与其相关联的构件未在其他活动的编辑窗口中打开)的情况下,第一终端设备105可以执行后续动作。
47.响应于第一锁定查询请求,服务器110可以基于全局服务锁来构建(208)指示第一构件是否被锁定的第一响应。然后,服务器110可以向第一终端设备105发送(210)第一响应。在接收到第一响应之后,第一终端设备105可以对第一响应进行分析。如果第一响应指示第一构件未被锁定(212),则表明第一终端设备105处所接收的第一用户将要对第一数据执行的编辑操作能够被允许,第一终端设备105可以生成用于锁定第一构件的锁定请求,并向服务器110发送(214)用于锁定第一构件的锁定请求,该锁定请求包括第一构件的第一唯
一标识符。
48.响应于接收到锁定请求,服务器110可以根据第一唯一标识符来更新(216)全局服务锁。基于更新的全局服务锁,服务器110能够例如通过与第二终端设备115的交互(218),来响应来自多个终端中的第二终端设备115的查询,使得在第二终端设备115处,与第一构件相关的编辑操作被禁用(220)。
49.基于上述交互过程,在协同场景下,对于相同构件,多个终端设备中的仅一个终端设备的编辑操作被允许,而其他终端设备虽然获取该数据的副本,但不能对其进行编辑。以此方式,能够支持多用户的高效协同,同时避免由于多终端处的不同用户的操作所导致的可能的数据冲突。
50.图3示出了根据本公开的实施例的在第一终端设备处生成锁定请求的过程300。过程300可以是交互过程200中生成用于锁定第一构件的锁定请求的具体实施例。
51.在302,第一终端设备105可以确定与第一数据相关联的第二构件的第二数据,第二构件与第一构件之间具有第一关系、并且具有第二唯一标识符,第一关系指示对第一数据的编辑将导致第二数据的改变。
52.具体地,不同构件之间可能存在关联关系,例如,针对同一层建筑中的多个预制柱构件,其参数是相似的,并且如果第一预制柱构件的数据(例如,横截面参数)改变,则第二预制柱构件的相应数据(例如,横截面参数)也应相应改变。因此,这样的多个构件可以是相关联的(例如,具有第一关系),并且可以在第一用户在第一终端设备105处锁定第一构件(例如,第一预制柱构件)时,同时锁定第二构件(例如,第二预制柱构件)。
53.在304,第一终端设备105可以生成锁定请求,锁定请求包括第一唯一标识符与第二唯一标识符、并且用于锁定第一数据与第二数据。
54.由于每个构件均具有唯一标识符,因此锁定请求中可以包括所有相关联的、待锁定构件的唯一标识符,以触发服务器110一次锁定多个构件。
55.以此方式,在协同场景下,对于相关联的多个构件,多个终端设备中的仅一个终端设备的编辑操作被允许,而其他终端设备虽然获取这些数据的副本,但不能对其进行编辑,由此可以进一步避免可能存在的数据冲突。
56.图4示出了根据本公开的实施例的第二终端设备与服务器之间的交互过程300。图4涉及如图1所示的第二终端设备115以及服务器110。交互过程300可以用于启用或禁用与第一构件相关的编辑操作,其可以是图2中的动作216与218的具体实施例。
57.具体地,第二终端设备115可以从服务器110获取(402)bim数据的第二副本,第二副本包括第一构件的第三数据,第三数据与第一数据相对应。第二终端设备115可以接收(404)第二用户将要对第三数据执行的编辑操作。然后,第二终端设备115可以向服务器110发送(406)用于查询第一构件是否被锁定的第二锁定查询请求。动作(402、404、406)动作与参考图2所描述的动作(202、204、206)类似,在此不再赘述。
58.响应于第二锁定查询请求,服务器110可以基于全局服务锁(例如,在交互过程200中更新过的全局服务锁)来构建(408)指示第一构件是否被锁定的第二响应。然后,服务器110可以向第二终端设备115发送(410)第二响应。在接收到第二响应之后,第二终端设备115可以对第二响应进行分析,并且根据第二响应,来启用或禁用(412)将要对第三数据执行的编辑操作。
59.具体地,如果第二终端设备115确定第二响应指示第一构件被锁定,则第二终端设备115将禁用对第三数据的编辑操作。在此情况下,第二终端设备115将进一步确定第二用户是否在第二终端处对与第一构件相关联的其他构件进行了编辑操作,如果是,则撤销这些编辑操作,以确保数据的一致性。例如,第二终端设备115可以确定与第三数据相关联的关联数据集,该关联数据集与第三数据之间具有上文描述过的第一关系。然后,第二终端设备115可以确定第二用户是否已执行对关联数据集的编辑操作。如果确定第二用户已执行对关联数据集的编辑操作,则撤销第二用户已执行的对关联数据集的编辑操作。
60.在一些实施例中,在第二终端设备115确定第二响应指示第一构件被锁定的情况下,第二终端设备115可以生成提示信息,以提示第二用户执行上述数据回退操作。
61.以此方式,在协同场景下,对于已经被第一用户锁定的构件,第二用户将不能编辑该构件的数据,并且对该构件、以及相关联的其他构件已经进行过的编辑操作将被撤回,并且不能够上传到服务器,由此可以进一步避免可能存在的数据冲突。
62.图5示出了根据本公开的实施例的第一终端设备与服务器之间的交互过程500,该交互过程500用于生成构件的唯一标识符。该交互过程可以在交互过程200的动作204之前进行。下面将以在第一终端设备处创建第一构件为例来进行说明,可以理解的是,类似的交互过程可以用于在第二终端设备处创建第二构件。
63.具体地,第一终端设备105可以接收(502)第一用户的创建操作,该创建操作用于在第一副本中创建与第一构件相对应的第一数据。第一终端设备105向服务器110发送(504)标识符生成请求。响应于标识符生成请求,服务器110可以针对第一终端设备105生成(506)包括第一标识符的第三响应,并且向第一终端设备105发送(508)第三响应。例如,第一标识符可以唯一地标识创建该构件的终端设备(例如,第一终端设备105)。
64.在一些实施例中,针对第一终端设备105,服务器110可以生成第一标识符,并将该第一标识符存储在服务器110,以用于在后续接收到标识符生成请求时,利用该第一标识符来构建并发送第三响应。
65.第一终端设备105可以接收(510)来自服务器110的第三响应,并针对第一构件生成第二标识符。然后,基于第一标识符以及第二标识符,第一终端设备105可以生成(512)由第一标识符和第二标识符组成的第一唯一标识符。第一唯一标识符可以唯一地标识该第一构件。在一些实施例中,第一终端设备105还可以将第一唯一标识符发送给服务器110以用于存储,以通知服务器110第一构件已被成功创建。
66.在一些实施例中,第一终端设备105在从服务器110接收到第一标识符之后,可以将其存储在本地存储中,以在需要创建新的其他构件时使用。在这种情况下,则动作(502至510)可以被省略。
67.在一些实施例中,也可以先由第一终端设备105生成第二标识符,然后发送给服务器110,服务器110可以生成第一标识符,并将第一标识符发送回第一终端。在一些实施例中,动作(512)也可以在服务器110处执行,然后可以由服务器110将第一唯一标识符发送回第一终端设备105。
68.在一些实施例中,第一唯一标识符可以是64位的整形唯一标识符,其中第一标识符与第二标识符所占的位数,可以根据多个终端设备的数目以及项目所涉及的构件的数目来选定,例如,各占32位。在一些其他实施例中,第一唯一标识符也可以是其他位数的整形
唯一标识符。
69.以此方式,能够在多终端的协同场景下,高效地生成构件的唯一标识符,从而保证构件数据的唯一性,以便于后续的例如编辑操作、同步操作、上传操作、锁定操作等用户操作。
70.图6示出了根据本公开的实施例的在第一终端设备处,用于自动编辑第二数据的过程600的流程图。
71.在602,第一终端设备105可以确定第一副本中与第一数据相关联的第二构件的第二数据,第二构件与第一构件之间具有第一关系,并且第一关系指示对第一数据的编辑将导致第二数据的改变。第一关系
72.具体地,不同构件之间可能存在关联关系,例如,针对同一层建筑中的多个预制柱构件,其参数是相似的,并且如果第一预制柱构件的数据中的参数(例如,横截面)改变,则第二预制柱构件的数据中的相应参数(例如,横截面)也应相应改变。因此,这样的多个构件可以是相关联的(例如,具有第一关系)。
73.在604,第一终端设备105可以自动地对第二数据执行对应的编辑操作。
74.例如,如果第一预制柱构件的数据中的参数(例如,横截面)被修改,则二预制柱构件的数据中的相应参数(例如,横截面)也应相应修改。
75.以此方式,对于存在关联关系的构件,数据之间关联性能够得以确保,以简化用户操作、以及可能的遗忘所导致数据错误。
76.图7示出了根据本公开的实施例的在第一终端设备处,用于上传数据变更的过程700的流程图。
77.在702,第一终端设备可以记录编辑操作。
78.在一些实施例中,第一终端设备105可以将编辑操作与该编辑操作所针对的对象、以及执行该编辑操作的时间戳相关联地记录。
79.在704,第一终端设备105可以确定bim数据的第一副本中与编辑操作相对应的数据变更集。
80.在一些实施例中,第一终端设备105可以在其本地存储处,创建一个数据变更集文件,以存储上述编辑操作、与该编辑操作所针对的对象、以及执行该编辑操作的时间戳。第一终端设备105可以基于该数据变更集文件来确定数据变更集。例如,如果在第一时刻处已经将所执行过的编辑操作上传到服务器110,并且期望将在晚于第一时刻的第二时刻处执行数据上传,则可以基于以下方法来确定数据变更集。首先,第一终端设备105可以(例如,根据数据变更集文件)确定在第一时刻处所记录的编辑操作、以及在第二时刻处所记录的编辑操作。然后,第一终端设备105可以确定在第一时刻处所记录的编辑操作与在第二时刻处所记录的编辑操作之间的差异,并且基于该差异来确定数据变更集。
81.在706,第一终端设备105可以将数据变更集以及第一唯一标识符传输到服务器110。服务器110可以基于该第一唯一标识符,确定bim数据中国的相应部分,以利用所接收的数据变更集对该相应部分进行更新。
82.在一些实施例中,在每次接收到终端设备(例如,第一终端设备105)所上传的数据变更集对bim数据进行更新之后,服务器110可以更新bim数据的版本号,并标识该版本号所对应的数据变更集。由此,其他终端设备(例如,第二终端设备115)可以基于版本号,来获取
相应的数据变更集,以对其本地的数据副本进行更新。
83.以此方式,由于在数据上传和同步过程中,在终端设备与服务器110之间仅需要传输数据变更集,故协同系统所占用的带宽以及消耗的流量能够减小,并且服务器处所需的存储设备的容量也能够减小。
84.在一些实施例中,为了进一步减少数据上传和同步所占用的带宽以及消耗的流量,可以设计bim数据的第一副本为包括属性数据的副本、以及几何数据的副本,而数据变更集可以从属性数据的副本中确定。由于几何数据通常占用空间较大,且是基于属性数据进行建模而生成的,因此在数据上传和同步过程中,可以省略对几何数据的变更的上传和同步。
85.在一些实施例中,属性数据的副本包括以下至少一项:构件的尺寸数据、颜色数据、顶点坐标数据、类型、截面信息以及构件之间的关系数据。
86.在一些实施例中,几何数据的副本是由第一终端设备105通过基于属性数据的副本来进行建模而生成的。第一终端设备105可以基于几何数据的副本,而在第一终端设备105处显示构件的图形表示。
87.图8示出了根据本公开的实施例的用于bim数据协同的系统800的框图。
88.该基于构件级的建筑信息模型数据协同系统800包括在协同场景下的服务器810、以及与服务器通信连接的多个终端设备,例如,第一终端设备和第二终端设备。可以理解的是,服务器810、第一终端设备805和第二终端设备815可以分别与图1中的服务器110、第一终端设备105和第二终端设备115相对应。
89.服务器810处维护有bim数据8106。在一些实施例中,bim数据8106可以仅包括属性数据8108。属性数据8108可以包括诸如构件a(有时也被称为第一构件)的数据8108

1、与构件a相关联的构件b(有时也被称为第二构件)的数据8108

2、以及与构件a和构件b不相关联的构件c的数据8108

3。可以理解的是,bim数据8106还可以包括更多构件的更多数据。在一些其他实施例中,bim数据8106可以还包括几何数据(未示出)。
90.在一些实施例中,例如第一数据8108

1还可以与资源数据(未示出)相关联。资源数据可以源自构件库,用户可以调用该构件库中的资源数据,并以此为基础来编辑第一数据。
91.服务器还可以包括全局服务锁8102、以及第一标识符生成模块8104。全局服务锁可以包括bim数据8106中所包括的所有构件的锁定信息。锁定信息包括但不限于构件是否被锁定、以及锁定构件的终端设备和/或用户。第一标识符生成模块可以被配置为响应于与(多个)终端设备的交互,而生成第一标识符、和/或唯一标识符。
92.多个终端设备中的每个终端设备处均维护有bim数据的对应副本。例如,在第一终端设备805处的bim数据的第一副本8056、以及在第二终端设备815处的bim数据的第二副本8156。第一副本8056可以包括属性数据的副本8058,其包括构件a的第一数据8058

1、与构件a相关联的构件b的第二数据8058

2、以及与构件a和构件b不相关联的构件c的数据8058

3。类似地,第二副本8056可以包括上述构件的对应数据8158

1、8158

2和8158

3作为属性数据的副本8158。
93.多个终端设备中的每个终端设备可以基于属性数据的副本,(例如通过建模)生成几何数据的副本(例如,几何数据副本8059和几何数据副本8159),并且基于几何数据的部
分,在每个终端设备处显示对应(多个)构件的图形表示。每个终端设备也可以从几何数据的副本中,提取属性数据的副本。可以理解的是,除了各自在其处所编辑的数据外,副本8058、8059与副本8158、8159可以实质相同。
94.多个终端设备中的第一终端设备805可以例如包括构件锁定模块8052、构件关联模块8053、第二标识符生成模块8054、以及数据同步模块8055。构件锁定模块8052被配置为基于用户与第一终端设备805的交互、和/或第一终端设备805与服务器810的交互,锁定对某个(些)构件的编辑操作。构件关联模块8053被配置为基于构件之间的关联关系、和/或来自用户的指定,将两个或更多个构件之间的关系确定为第一关系。标识符生成模块8054被配置为基于与用户的交互、和/或第一终端设备805与服务器810的交互,生成针对构件的第一标识符、和/或唯一标识符。数据同步模块被配置为基于与用户的交互、和/或第一终端设备805与服务器810的交互,向服务器发送bim数据副本8056(例如,变更数据集,在一些实施例中,变更属性数据集),以及从服务器接收bim数据8106(例如,变更数据集,在一些实施例中,变更属性数据集)来更新bim数据副本8106。
95.类似地,第二终端设备也可以包括配置有相似功能性的构件锁定模块8152、构件关联模块8153、标识符生成模块8154、以及数据同步模块8155。
96.根据本公开的一方面的第一终端设备(和/或第二终端设备)可以被配置为:从服务器获取bim数据的第一副本,第一副本包括第一构件的第一数据;接收第一用户将要对第一数据执行的编辑操作,第一构件具有第一唯一标识符;响应于编辑操作,由第一终端设备向服务器发送用于查询第一构件是否被锁定的第一锁定查询请求;接收来自服务器的第一响应,第一响应指示第一构件是否被锁定;以及如果第一响应指示第一构件未被锁定,则向服务器发送用于锁定第一构件的锁定请求,锁定请求包括第一唯一标识符。
97.根据本公开的一方面的服务器可以被配置为:接收第一锁定查询请求;响应于第一锁定查询请求,基于全局服务锁来构建第一响应;向第一终端设备发送第一响应;接收锁定请求;以及响应于锁定请求,根据第一唯一标识符来更新全局服务锁,以用于响应来自多个终端中的第二终端设备的查询,使得在第二终端设备处,与第一构件相关的编辑操作被禁用。
98.在一些实施例中,第一终端设备可以进一步被配置为:确定与第一数据相关联的第二构件的第二数据,并且第二构件与第一构件之间具有第一关系、并且具有第二唯一标识符,第一关系指示对第一数据的编辑将导致第二数据的改变;以及生成锁定请求,锁定请求包括第一唯一标识符与第二唯一标识符、并且用于锁定第一数据与第二数据。
99.在一些实施例中,第二终端设备(和/或第一终端设备)可以被配置为:从服务器获取bim数据的第二副本,第二副本包括第一构件的第三数据,第三数据与第一数据相对应;接收第二用户将要对第三数据执行的编辑操作;以及向服务器发送用于查询第一构件是否被锁定的第二锁定查询请求;接收来自服务器的第二响应,第二响应指示第一构件是否被锁定;以及根据第二响应,启用或禁用将要对第三数据执行的编辑操作;并且服务器可以进一步被配置为:接收第二锁定查询请求;响应于第二锁定查询请求,基于全局服务锁来构建第二响应;以及向第二终端设备发送第二响应。
100.在一些实施例中,如果第二响应指示第一构件被锁定,则第二终端设备被进一步配置为:禁用对第三数据的编辑操作;确定与第三数据相关联的关联数据集,关联数据集与
第三数据之间具有第一关系;以及确定第二用户是否已执行对关联数据集的编辑操作;如果确定第二用户已执行对关联数据集的编辑操作,则撤销第二用户已执行的对关联数据集的编辑操作。
101.在一些实施例中,第一终端设备可以进一步被配置为:接收第一用户的创建操作,创建操作用于在第一副本中创建与第一构件相对应的第一数据;向服务器发送标识符生成请求;接收来自服务器的、包括第一标识符的第三响应,并针对第一构件生成第二标识符;以及生成由第一标识符和第二标识符组成的第一唯一标识符;并且服务器可以进一步被配置为:接收标识符生成请求;响应于标识符生成请求,服务器针对第一终端设备生成第三响应;以及向第一终端设备发送第三响应。
102.在一些实施例中,第一终端设备可以进一步被配置为:确定第一副本中与第一数据相关联的第二构件的第二数据,第二构件与第一构件之间具有第一关系,并且第一关系指示对第一数据的编辑将导致第二数据的改变;以及自动地对第二数据执行对应的编辑操作。
103.在一些实施例中,第一终端设备可以进一步被配置为:记录编辑操作;确定bim数据的第一副本中与编辑操作相对应的数据变更集;以及将数据变更集以及第一唯一标识符传输到服务器。
104.在一些实施例中,第一终端设备可以进一步被配置为:确定在第一时刻处所记录的编辑操作、以及在第二时刻处所记录的编辑操作,第二时刻晚于第一时刻;确定在第一时刻处所记录的编辑操作与在第二时刻处所记录的编辑操作之间的差异;以及基于差异,确定数据变更集。
105.在一些实施例中,bim数据的第一副本可以包括属性数据的副本、以及几何数据的副本,并且第一终端设备可以进一步被配置为:从属性数据的副本中,确定数据变更集。
106.在一些实施例中,属性数据的副本可以包括以下至少一项:构件的尺寸数据、颜色数据、顶点坐标数据、类型、截面信息以及构件之间的关系数据。
107.在一些实施例中,几何数据的副本可以是由第一终端设备通过基于属性数据的副本进行建模而生成的,第一终端设备可以进一步被配置为:基于几何数据的副本,显示构件的图形表示。
108.根据本公开的另一方面,提供了一种服务装置,其可以使用在根据参考图8所描述的实施例的系统中,实现如上所描述的服务器的功能。
109.根据本公开的又一方面,提供了一种终端装置,其可以使用在根据参考图8所描述的实施例的系统中,实现如上所描述的第一终端设备或第二终端设备的功能。
110.图9示出了可以用来实现本公开的实施例的示例电子设备900的示意性框图。例如,电子设备900可被用于实现图1中所示的第一终端设备105、服务器110以及第二终端设备115中的任一项。如图所示,设备900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序指令,来执行各种适当的动作和处理。在ram 903中,还可存储设备900操作所需的各种程序和第一数据。cpu 901、rom 902以及ram 903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
111.设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;
输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/第一数据。
112.处理单元901执行上文所描述的各个方法和处理,例如过程200至700中的任一个。例如,在一些实施例中,过程200至700中的任一个可以被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到ram 903并由cpu 901执行时,可以执行上文描述的过程200至800中的任何过程中的一个或多个步骤。备选地,在其他实施例中,cpu 901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200至700中的任一个。
113.本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
114.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、任意的非暂时性存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd

rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
115.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
116.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置第一数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方
面。
117.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
118.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程第一数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程第一数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程第一数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
119.也可以把计算机可读程序指令加载到计算机、其它可编程第一数据处理装置、或其它设备上,使得在计算机、其它可编程第一数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程第一数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
120.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
121.以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1