一种基于revit三维模型的比对方法
技术领域
1.本技术涉及建筑信息模型技术领域,尤其涉及一种基于revit三维模型的比对方法。
背景技术:2.bim(building information modeling)技术由autodesk公司在2002年率先提出,目前已经在全球范围内得到业界的广泛认可。bim技术以建筑物为对象,通过信息模型的建立,对其三维空间构造、内部结构以及管理属性等数据信息进行微观层次的表达。它可以辅助实现建筑信息的集成,贯穿建筑的设计、施工、运行直至建筑全寿命周期的终结。它将各种信息始终整合于一个三维模型信息数据库中,设计团队、施工单位、设施运营部门和业主等各方人员可以基于bim进行协同工作,有效提高工作效率,节省资源,降低成本,实现可持续发展。
3.建设项目在开发的过程中,往往会在各个阶段生成模型文件,在对比各个模型文件之间的差异时,绝大多数是通过revit软件打开文件,通过肉眼的观察去发现,其效率慢,易漏选。
技术实现要素:4.为解决对比各个阶段生成模型文件之间的差异时效率慢,易漏选的缺陷问题,本技术提供了一种基于revit三维模型的比对方法,对revit软件进行二次开发,通过对revit三维模型中信息数据进行深度提取,并将其保存为json文件,将三维模型的比对转化为数据文件的比对,将模型构件的比对转化为字符串比对,从原本需要人工进行的比对,转换为使用程序进行智能比对,从而提高比对效率、正确性。
5.为实现上述目的,本技术实施例提供了如下的技术方案:
6.第一方面,在本技术提供的一个实施例中,提供了一种基于revit三维模型的比对方法,该方法包括以下步骤:
7.步骤一、模型信息提取;对revit软件进行二次开发,通过所述revit软件对三维模型中信息数据进行深度提取,并输出数据文件;
8.步骤二、编程语言对所述数据文件进行解析,比对不同模型数据之间的差异,存储有差异模型构件id。
9.作为本发明的进一步方案,所述对revit软件进行二次开发,包括:
10.通过visual studio软件添加revit api相关引用,使用c#编译的信息提取插件或信息提取程序,以json文件格式输出。
11.作为本发明的进一步方案,所述revit api为revit软件提供的应用程序开发接口,所述revit api用于访问模型文件的图元数据,所述模型文件的图元数据包括项目信息、构件属性以及构件几何信息。
12.作为本发明的进一步方案,所述revit软件对三维模型中信息数据进行深度提取,
提取内容包括所述revit软件提取模型的几何信息,所述几何信息包括构件的id、构件放置点坐标信息、构件法向、构件体积、构件面积以及附属属性。
13.作为本发明的进一步方案,所述三维模型中信息数据进行深度提取,提取方法包括插件方式对信息的提取,所述插件方式为通过visual studio创建dll类库项目,并使用revit加载编译成功dll类库文件,所述插件方式进行深度提取的步骤如下:
14.步骤11)利用revitapi提供的导出类customexporter,自定义继承于iexportcontext接口类的导出类型,创建过滤器,筛选出需要导出的构件;
15.步骤12)将图元id、图元位置点坐标信息、图元体积、图元面积、图元面法向统一取5位有效数字;
16.步骤13)将步骤12)中的所述图元id、图元位置点坐标信息、图元体积、图元面积、图元面法按顺序生成字符串;
17.步骤14)将步骤13)中生成的字符串,采用md5算法进行加密,将加密后字符串作为图元属性key存储到内存中;
18.步骤15)将三维模型中的构件的图元信息以json文本格式输出。
19.作为本发明的进一步方案,所述步骤15)中,三维模型中的构件的图元信息,包括图元id、图元属性key以及附属属性。
20.作为本发明的进一步方案,所述步骤15)中,以json文本格式输出数据文件保存为json文件,所述json文件以xml文件或数据库进行存储。
21.作为本发明的进一步方案,所述三维模型中信息数据进行深度提取,提取方法包括可执行程序对信息的提取,所述可执行程序为通过visualstudio创建控制台项目,在项目中添加引用revitaapi的相关类库引用,编译生成的可执行程序,所述可执行程序进行深度提取的步骤与所述插件方式进行深度提取的步骤相同。
22.作为本发明的进一步方案,所述可执行程序中编译成功后形成exe可执行程序,启动程序,导出json数据。
23.作为本发明的进一步方案,所述编程语言对json数据文件进行解析,包括:
24.利用编程语言读取待比对的三维模型的json数据文件,并将json数据文件存储到内存中;
25.对所述json数据文件进行比对,对比相同的图元id中的key属性对应值,若有差异,则表示该图元被改变;
26.将有差异的构件id,存储到内存或数据库或文本文件中。
27.第三方面,在本技术提供的又一个实施例中,提供了一种基于revit三维模型的比对设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现基于revit三维模型的比对方法的步骤。
28.第四方面,在本技术提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述基于revit三维模型的比对方法的步骤。
29.本技术提供的技术方案,具有如下有益效果:
30.本技术提供的基于revit三维模型的比对方法,通过对revit软件进行二次开发,通过对revit三维模型中信息数据进行深度提取,提取构件信息,将构件信息生成字符串并
采用md5加密,将其保存为json文件,通过编程语言对json文本数据进行解析,比对不同模型数据之间的差异,将三维模型的比对转化为数据文件的比对,将模型构件的比对转化为字符串比对,从原本需要人工进行的比对,转换为使用程序进行智能比对,从而提高比对效率、正确性。
31.本技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
32.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例。在附图中:
33.图1为本技术一个实施例的一种基于revit三维模型的比对方法的流程框图。
34.图2为本技术一个实施例的一种基于revit三维模型的比对方法中插件方式进行深度提取的流程图。
35.图3为本技术一个实施例的一种基于revit三维模型的比对方法中插件方式深度提取过程示意图。
36.图4为本技术一个实施例的一种基于revit三维模型的比对方法中可执行程序深度提取过程示意图。
37.图5为本技术一个实施例的一种基于revit三维模型的比对方法中图元信息以json文本格式输出的示意图。
38.图6为本技术一个实施例的一种基于revit三维模型的比对方法中编程语言对json数据文件进行解析的流程图。
具体实施方式
39.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
40.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
41.应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
42.还应当进理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
43.由于建设项目在开发的过程中,往往会在各个阶段生成模型文件,在对比各个模型文件之间的差异时,绝大多数是通过revit软件打开文件,通过肉眼的观察去发现,其效率慢,易漏选。
44.为解决对比各个阶段生成模型文件之间的差异时效率慢,易漏选的缺陷问题,本技术提供了一种基于revit三维模型的比对方法。
45.具体地,下面结合附图,对本技术实施例作进一步阐述。
46.请参阅图1,图1是本技术实施例提供的一种基于revit三维模型的比对方法的流程框图,如图1所示,本技术提供了一种基于revit三维模型的比对方法,该数据交互方法包括步骤s10-步骤s20;
47.步骤s10,模型信息提取,对revit软件进行二次开发,通过所述revit软件对三维模型中信息数据进行深度提取,并输出数据文件。
48.步骤s20,编程语言对所述数据文件进行解析,比对不同模型数据之间的差异,存储有差异模型构件id。
49.本技术实施例的基于revit三维模型的比对方法,通过visual studio软件添加revit api相关引用编译建筑模型信息提取插件或可执行程序,将模型中的信息进行深度提取并输出为json文本数据格式;通过编程语言对json文本数据进行解析,比对不同模型数据之间的差异。
50.在本技术的一些实施例中,在步骤s10中,模型信息提取时,所述对revit软件进行二次开发,包括:
51.通过visual studio软件添加revit api相关引用,使用c#编译的信息提取插件或信息提取程序,以json文件格式输出。
52.在本技术的实施例中,所述revit api为revit软件提供的应用程序开发接口,所述revit api用于访问模型文件的图元数据,所述模型文件的图元数据包括项目信息、构件属性以及构件几何信息。
53.本技术实施例中,通过visualstudio2019软件添加revit api相关引用,使用c#编译的信息提取插件或信息提取程序,并以json文件格式输出。
54.revit api是autodesk公司为revit软件提供的应用程序开发接口,通过revit api可以访问模型文件的图元数据,包括项目信息、构件属性、构件几何信息。
55.本技术为实现模型的比对,模型信息提取主要分为提取内容、提取方法两个部分。其中,提取内容为:所述revit软件对三维模型中信息数据进行深度提取,提取内容包括所述revit软件提取模型的几何信息,所述几何信息包括构件的id、构件放置点坐标信息、构件法向、构件体积、构件面积以及附属属性。
56.所述提取方法通过对revit api的了解,可通过两种方式实现对信息的提取,即插件方式与可执行程序。
57.在本技术的一些实施例中,参见图3所示,所述三维模型中信息数据进行深度提取,提取方法包括插件方式对信息的提取,所述插件方式为通过visualstudio创建dll类库项目,并使用revit加载编译成功dll类库文件,参见图2所示,所述插件方式进行深度提取的方法,包括步骤s101-步骤s105;
58.步骤s101、利用revit api提供的导出类customexporter,自定义继承于iexportcontext接口类的导出类型,创建过滤器,筛选出需要导出的构件;
59.步骤s102、将图元id、图元位置点坐标信息、图元体积、图元面积、图元面法向统一取5位有效数字;
60.步骤s103、将步骤s102中的所述图元id、图元位置点坐标信息、图元体积、图元面积、图元面法按顺序生成字符串;
61.步骤s104、将步骤s103中生成的字符串,采用md5算法进行加密,将加密后字符串作为图元属性key存储到内存中;
62.步骤s105、将三维模型中的构件的图元信息,图元信息主要包括图元id、图元属性key以及其他附属属性,以json文本格式输出,输出数据文件保存为json文件,所述json文件以xml文件或数据库进行存储。
63.在本技术的实施例中,参见图5所示,图元信息的图元构件id、图元属性key以及其他附属属性以json文本格式输出。
64.在本技术的一些实施例中,参见图4所示,所述三维模型中信息数据进行深度提取,提取方法包括可执行程序对信息的提取,所述可执行程序为通过visualstudio创建控制台项目,在项目中添加引用revitaapi的相关类库引用,编译生成的可执行程序,所述可执行程序进行深度提取的步骤与所述插件方式进行深度提取的步骤相同。
65.在本技术的实施例中,所述可执行程序中编译成功后形成exe可执行程序,启动程序,导出json数据。
66.在本技术的实施例中,参见图6所示,所述编程语言对json数据文件进行解析,包括步骤s201-步骤s203:
67.步骤s201、利用编程语言读取待比对的三维模型的json数据文件,并将json数据文件存储到内存中;
68.步骤s202、对所述json数据文件进行比对,对比相同的图元id中的key属性对应值,若有差异,则表示该图元被改变;
69.步骤s203、将有差异的构件id,存储到内存或数据库或文本文件中。
70.本技术实施例的基于revit三维模型的比对方法,相对于传统比对方法而言,对revit软件进行二次开发,通过对revit三维模型中信息数据进行深度提取,并将其保存为json文件,将三维模型的比对转化为数据文件的比对,将模型构件的比对转化为字符串比对,从原本需要人工进行的比对,转换为使用程序进行智能比对,从而提高比对效率、正确性。
71.应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
72.在一个实施例中,在本技术的实施例中还提供了一种基于revit三维模型的比对设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的基于revit三维模型的比对方法,该处理器执行指令时实现上述各方法实施例中的步骤:
73.步骤一、模型信息提取;
74.步骤1.1、通过visualstudio2019软件添加revit api相关引用,使用c#编译的信息提取插件或信息提取程序;
75.步骤1.2、将图元id、图元位置点坐标信息、图元体积、图元面积、图元面法向按照一定顺序生成字符串;
76.步骤1.3、步骤1.2中所述图元id、图元位置点坐标信息、图元体积、图元面积、图元面法向统一取5位有效数字;
77.步骤1.4、将步骤1.2中生成的字符串,采用md5算法进行加密,将其值作为图元属性key存储到内存中;
78.步骤1.5、将三维模型中的构件的图元信息主要包括图元id,步骤1.3中的图元属性key、以及其他附属属性提取出,以json文本格式输出。
79.步骤二、编程语言对json数据文件进行解析;
80.步骤2.1、利用编程语言读取需要比对的模型json数据文件,并将数据存储到内存;
81.步骤2.2、对数据进行比对,相同图元id,如果key值有差异,表示该图元被改变;
82.步骤2.3、将有差异的构件id,存储到内存或数据库或文本文件中。
83.在上下文中所称“基于revit三维模型的比对设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由asic、fpga、dsp等硬件执行预定处理过程,或是由上述二者组合来实现。基于revit三维模型的比对设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
84.所述基于revit三维模型的比对设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、pda等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloud computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述基于revit三维模型的比对设备可单独运行来实现本技术,也可接入网络并通过与网络中的其他基于revit三维模型的比对设备的交互操作来实现本技术。其中,所述基于revit三维模型的比对设备所处的网络包括但不限于互联网、广域网、城域网、局域网、vpn网络等。
85.在本技术的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤:
86.步骤一、模型信息提取;
87.步骤1.1、通过visualstudio2019软件添加revit api相关引用,使用c#编译的信息提取插件或信息提取程序;
88.步骤1.2、将图元id、图元位置点坐标信息、图元体积、图元面积、图元面法向按照一定顺序生成字符串;
89.步骤1.3、步骤1.2中所述图元id、图元位置点坐标信息、图元体积、图元面积、图元面法向统一取5位有效数字;
90.步骤1.4、将步骤1.2中生成的字符串,采用md5算法进行加密,将其值作为图元属
性key存储到内存中;
91.步骤1.5、将三维模型中的构件的图元信息主要包括图元id,步骤1.3中的图元属性key、以及其他附属属性提取出,以json文本格式输出。
92.步骤二、编程语言对json数据文件进行解析;
93.步骤2.1、利用编程语言读取需要比对的模型json数据文件,并将数据存储到内存;
94.步骤2.2、对数据进行比对,相同图元id,如果key值有差异,表示该图元被改变;
95.步骤2.3、将有差异的构件id,存储到内存或数据库或文本文件中。
96.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
97.本技术提供的基于revit三维模型的比对方法,相对于传统比对方法而言,通过对revit软件进行二次开发,通过对revit三维模型中信息数据进行深度提取,提取构件信息,将构件信息生成字符串并采用md5加密,将其保存为json文件,通过编程语言对json文本数据进行解析,比对不同模型数据之间的差异,将三维模型的比对转化为数据文件的比对,将模型构件的比对转化为字符串比对,从原本需要人工进行的比对,转换为使用程序进行智能比对,从而提高比对效率、正确性。
98.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本技术的保护范围之内。
技术特征:1.一种基于revit三维模型的比对方法,其特征在于,该方法包括以下步骤:步骤一、模型信息提取;对revit软件进行二次开发,通过所述revit软件对三维模型中信息数据进行深度提取,并输出数据文件;步骤二、编程语言对所述数据文件进行解析,比对不同模型数据之间的差异,存储有差异模型构件id。2.如权利要求1所述的基于revit三维模型的比对方法,其特征在于,所述对revit软件进行二次开发,包括:通过visual studio软件添加revit api相关引用,使用c#编译的信息提取插件或信息提取程序,以json文件格式输出。3.如权利要求2所述的基于revit三维模型的比对方法,其特征在于,所述revit api为revit软件提供的应用程序开发接口,所述revit api用于访问模型文件的图元数据,所述模型文件的图元数据包括项目信息、构件属性以及构件几何信息。4.如权利要求3所述的基于revit三维模型的比对方法,其特征在于,所述revit软件对三维模型中信息数据进行深度提取,提取内容包括所述revit软件提取模型的几何信息,所述几何信息包括构件的id、构件放置点坐标信息、构件法向、构件体积、构件面积以及附属属性。5.如权利要求4所述的基于revit三维模型的比对方法,其特征在于,所述三维模型中信息数据进行深度提取,提取方法包括插件方式对信息的提取,所述插件方式为通过visualstudio创建dll类库项目,并使用revit加载编译成功dll类库文件,所述插件方式进行深度提取的步骤如下:步骤11)利用revit api提供的导出类customexporter,自定义继承于iexportcontext接口类的导出类型,创建过滤器,筛选出需要导出的构件;步骤12)将图元id、图元位置点坐标信息、图元体积、图元面积、图元面法向统一取5位有效数字;步骤13)将步骤12)中的所述图元id、图元位置点坐标信息、图元体积、图元面积、图元面法按顺序生成字符串;步骤14)将步骤13)中生成的字符串,采用md5算法进行加密,将加密后字符串作为图元属性key存储到内存中;步骤15)将三维模型中的构件的图元信息以json文本格式输出。6.如权利要求5所述的基于revit三维模型的比对方法,其特征在于,所述步骤15)中,三维模型中的构件的图元信息,包括图元id、图元属性key以及附属属性。7.如权利要求5所述的基于revit三维模型的比对方法,其特征在于,所述步骤15)中,以json文本格式输出数据文件保存为json文件,所述json文件以xml文件或数据库进行存储。8.如权利要求5所述的基于revit三维模型的比对方法,其特征在于,所述三维模型中信息数据进行深度提取,提取方法包括可执行程序对信息的提取,所述可执行程序为通过visualstudio创建控制台项目,在项目中添加引用revitaapi的相关类库引用,编译生成的可执行程序,所述可执行程序进行深度提取的步骤与所述插件方式进行深度提取的步骤相同。
9.如权利要求8所述的基于revit三维模型的比对方法,其特征在于,所述可执行程序中编译成功后形成exe可执行程序,启动程序,导出json数据。10.如权利要求5所述的基于revit三维模型的比对方法,其特征在于,所述编程语言对json数据文件进行解析,包括:利用编程语言读取待比对的三维模型的json数据文件,并将json数据文件存储到内存中;对所述json数据文件进行比对,对比相同的图元id中的key属性对应值,若有差异,则表示该图元被改变;将有差异的构件id,存储到内存或数据库或文本文件中。
技术总结本申请涉及建筑信息模型技术领域,具体涉及一种基于Rev it三维模型的比对方法。该方法包括模型信息提取和编程语言对所述数据文件进行解析,比对不同模型数据之间的差异,存储有差异模型构件I D。本申请通过对Revit软件进行二次开发,通过对Revit三维模型中信息数据进行深度提取,提取构件信息,将构件信息生成字符串并采用MD5加密,将其保存为Json文件,通过编程语言对json文本数据进行解析,比对不同模型数据之间的差异,将三维模型的比对转化为数据文件的比对,将模型构件的比对转化为字符串比对,从原本需要人工进行的比对,转换为使用程序进行智能比对,从而提高比对效率、正确性。性。性。
技术研发人员:罗小平 柳堤 周梦 刘云兵
受保护的技术使用者:厦门市建筑科学研究院有限公司
技术研发日:2022.04.25
技术公布日:2022/7/5