本发明属于bim,具体涉及一种revit项目文件的加密方法、解密方法、装置及设备。
背景技术:
1、在建筑工程建设过程中,bim应用的价值逐渐得到了业主、设计、施工和监理等各参与方的一致认可。越来越多的建筑工程项目开始引入bim技术,对bim模型的要求也越来越严格。同时,业内开始对bim模型的数据安全问题非常关注,尤其是涉密的工程项目。
2、autodesk revit是业内应用最广泛的bim软件之一,有大量的工程项目使用,但其现有技术对于模型的数据安全保护非常不足。revit项目文件缺少对模型数据的保护,在流通过程中存在被篡改、盗用族信息和信息泄露的风险。
3、对此,revit项目文件一般通过导出为ifc、nwd和nwf等文件格式,再利用其他软件以供使用者进行浏览,从而实现对模型数据的保护。但这种方式会丢失大量信息,且不可恢复,难于推广应用。
技术实现思路
1、为了克服上述技术缺陷,本发明提供了一种revit项目文件的加密方法、解密方法、装置及设备,能够对revit项目文件内的构件进行加密处理,防止构件被修改和族被盗用,而且能够解密恢复文件。
2、为了解决上述问题,本发明按以下技术方案予以实现的:
3、一种revit项目文件的加密方法,包括如下步骤:
4、获取用户输入的加密设置规则;
5、复制当前revit项目文件,获得复制的revit项目文件的document和实体元素集;
6、根据加密设置规则和实体元素集,将实体元素转换为directshape模型;
7、将revit项目文件转换为文件流filestream,并保存在扩展存储内;
8、利用saveas保存document,获得加密后的revit项目文件。
9、进一步的,加密设置规则包括加密选项;
10、加密选项包括模型详细程度、加密方式、加密密码、保存目录和清理可载入族复选框;
11、模型详细程度包括精细、中等和精略;
12、加密方式包括不可恢复和模型可恢复。
13、进一步的,步骤复制当前revit项目文件,获得复制的revit项目文件的document和实体元素集中,包括如下步骤:
14、利用file.copy复制当前revit项目文件;
15、利用opendocumentfile打开复制的revit项目文件,获得复制文件的document;
16、根据复制文件的document,利用view3d.createisometric创建默认视图;
17、根据默认视图,利用filteredelementcollector过滤获得默认视图中的所有实体元素;
18、遍历所有实体元素,排除不符合的类型,组成实体元素集;不符合类型包括importinstance、revitlinkinstance、familysymbol、view和hub的一种或多种。
19、进一步的,步骤根据加密设置规则和实体元素集,将元素转换为directshape模型中,包括如下步骤:
20、根据加密设置规则,获得加密的模型详细程度;
21、根据模型详细程度,遍历实体元素集,获得各元素的数据集;数据集包括element、geometryobject集合;geometryobject集合包括mesh和solid类型;
22、根据各元素的数据集,利用directshape.createelement创建directshape模型;directshape模型的类型和几何形状与原模型完全相同,而且不能修改;
23、利用doc.delete删除各元素。
24、进一步的,步骤将revit项目文件转换为文件流filestream,并保存在扩展存储内中,包括如下步骤:
25、读取revit项目文件为文件流filestream;
26、根据文件流filestream,按字节分段转换为string类型,组成string数据组;
27、遍历string数据组,利用des算法进行加密,获得加密后的数据组;
28、将加密后的数据组保存在document的projectlocation数据中。
29、与现有技术相比,本发明具有以下有益效果:
30、本发明公开了一种revit项目文件的加密方法,通过获取用户输入的加密设置规则,将revit项目文件的实体元素转换为directshape模型,同时将原revit项目文件转换为文件流filestream,并将文件流filestream保存在扩展存储中,对revit项目文件进行加密处理,防止构件被修改和族被盗用,有效提高revit项目文件的数据安全性,保护bim模型成果。
31、本发明还公开了一种revit项目文件的解密方法,对上述任一项所述的加密方法进行解密,包括如下步骤:
32、获取用户输入的解密设置规则;
33、根据加密后的revit项目文件,利用getentity获得document的扩展数据;
34、根据扩展数据,利用des算法进行解密,获得string数据组;
35、将string数据组进行拼接,获得文件流filestream;
36、将文件流filestream保存为revit项目文件;revit项目文件与加密前的项目文件相同。
37、进一步的,解密设置规则包括解密选项,解密选项包括解密密码。
38、本发明还公开了一种revit项目文件的加密装置,包括;
39、获取模块,用于获取用户输入的加密设置规则;
40、复制模块,用于复制当前revit项目文件,获得复制的revit项目文件的document和实体元素集;
41、转换模块,用于根据设置规则和实体元素集,将元素转换为directshape模型;将revit项目文件转换为文件流filestream,并保存在扩展存储内;
42、加密模块,用于利用saveas保存document,获得加密后的revit项目文件;
43、本发明还公开了一种revit项目文件的解密装置,包括:
44、获取模块,用于获取用户输入的解密设置规则;
45、解密模块,用于根据加密后的revit项目文件,对revit项目文件进行解密。
46、本发明还公开了一种计算机设备,包括:
47、处理器;
48、用于存储所述处理器可执行指令的存储器;
49、其中,所述处理器被配置为执行所述指令,实现上述任一项所述的加密方法或上述任一项所述的解密方法,或实现上述任一项所述的加密方法和上述任一项所述的解密方法。
1.一种revit项目文件的加密方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的加密方法,其特征在于,加密设置规则包括加密选项;
3.根据权利要求1所述的加密方法,其特征在于,步骤复制当前revit项目文件,获得复制的revit项目文件的document和实体元素集中,包括如下步骤:
4.根据权利要求1所述的加密方法,其特征在于,步骤根据加密设置规则和实体元素集,将元素转换为directshape模型中,包括如下步骤:
5.根据权利要求1所述的加密方法,其特征在于,步骤将revit项目文件转换为文件流filestream,并保存在扩展存储内中,包括如下步骤:
6.一种revit项目文件的解密方法,对权利要求1-5中任一项所述的加密方法进行解密,其特征在于,包括如下步骤:
7.根据权利要求6所述的解密方法,其特征在于,解密设置规则包括解密选项,解密选项包括解密密码。
8.一种revit项目文件的加密装置,其特征在于,包括;
9.一种revit项目文件的解密装置,其特征在于,包括:
10.一种计算机设备,其特征在于,包括: