CN109783442A - 一种基于Redis和Mongodb的IFC模型存储方式 - Google Patents
一种基于Redis和Mongodb的IFC模型存储方式 Download PDFInfo
- Publication number
- CN109783442A CN109783442A CN201811589631.6A CN201811589631A CN109783442A CN 109783442 A CN109783442 A CN 109783442A CN 201811589631 A CN201811589631 A CN 201811589631A CN 109783442 A CN109783442 A CN 109783442A
- Authority
- CN
- China
- Prior art keywords
- data
- ifc
- model
- redis
- mongodb
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 238000009877 rendering Methods 0.000 claims description 13
- 238000000034 method Methods 0.000 claims description 12
- 239000000463 material Substances 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Redis和Mongodb的IFC模型存储方式,包括:步骤一,解析IFC模型数据,并进行轻量化处理;步骤二,将解析后IFC模型数据存储到MongoDB;步骤三,将当前使用频繁的IFC模型数据存储到Redis内存;步骤四,Web端通过Webworker线程根据IFC模型唯一ID从Redis中快速读取模型数据,Web端主线程通过WebGL渲染展模型数据。本发明就BIM行业中IFC数据的存储展示,设计了一种以MongoDB和Redis组合的方式存储展示IFC数据。
Description
技术领域
本发明属于建筑业信息技术领域,IFC模型存储展示方式,具体涉及一种基于Redis和Mongodb的IFC模型存储方式。
背景技术
随着国内BIM(建筑信息模型)技术的迅猛发展,高速增长的BIM 数据对存储系统的高可用性、负载均衡、横向扩容等功能以及如何快速展示存储的BIM数据提出了更高的要求。
MongoDB是一个基于分布式文件存储的数据库,Redis一个键- 值存储系统,属于开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(键-值)数据库,并提供多种语言的API(应用程序编程接口),IFC是一种文件格式。
发明内容:
为了克服上述背景技术的缺陷,本发明提供一种基于Redis和 Mongodb的IFC模型存储方式,存储展示IFC(国际通用的BIM标准),解决海量IFC模型数据的存储及Web展示问题。
为了解决上述技术问题本发明的所采用的技术方案为:
一种基于Redis和Mongodb的IFC模型存储方式,包括:步骤一,解析IFC模型数据,并进行轻量化处理;步骤二,将解析后IFC 模型数据存储到MongoDB;步骤三,将当前使用频繁的IFC模型数据存储到Redis内存;步骤四,Web端通过Webworker线程根据IFC 模型唯一身份标识号码ID从Redis中快速读取模型数据,Web端主线程通过3D绘图协议WebGL渲染展模型数据。
较佳地,步骤一解析IFC模型数据包括:服务端解析IFC模型文件,将模型数据分为属性数据、材质数据、几何数据三种,这三种数据独立存储,通过模型构件唯一ID关联。
较佳地,步骤一进行轻量化处理:针对模型几何数据,通过参数化几何图形描述和图元合并两种方式进行轻量化处理包括:参数化几何图形描述轻量化处理,图元合并轻量化处理。
较佳地,步骤二将解析后IFC模型数据存储到MongoDB包括:服务端解析完IFC数据后,对于单个的IFC文件,存储在单独的 MongoDB集合中,IFC文件中的属性数据、几何数据、材质数据存储于集合的文档中。
较佳地,步骤三将当前使用频繁的IFC模型数据存储到Redis内存包括:利用Redis高速读写、高并发能力的特点,在服务端启动时,将MongoDB中常用的IFC模型数据存储于Redis中,在内存中构建键-值格式IFC模型高速缓存,供WEB端调用。
较佳地,步骤四Web端通过Webworker线程根据IFC模型唯一 ID从Redis中快速读取模型数据,Web端主线程通过WebGL渲染展模型数据,包括WebWorker进行交互请求以及数据获取,浏览器主线程中进行BIM模型的渲染。
较佳地,Web端主线程通过WebGL渲染展模型数据的方法包括:发送多个请求获取数据,接收到所有数据后统一进行模型的渲染。
较佳地,Web端主线程通过WebGL渲染展模型数据的方法包括:每发送一个数据请求都调用渲染接口进行部分数据渲染。
本发明还的有益效果在于:能够利用计算机集群的性能,解决单机内存容量可能不足的问题。利用Redis高速读写、高并发能力的特点,在服务端启动时,将MongoDB中常用的IFC模型数据存储于 Redis中,在内存中构建键-值格式IFC模型高速缓存,供WEB端调用。本发明就BIM行业中IFC数据的存储展示,设计了一种以 MongoDB和Redis组合的方式存储展示IFC数据。
附图说明
图1为本发明实施例的方法流程图。
具体实施方式
下面结合附图和实施例对本发明做进一步的说明。
本实施例提供了一种以MongoDB和Redis组合的方式存储展示 IFC数据,解决海量IFC模型数据的存储及Web网页展示问题。
本发明专利由Web端、服务端、Redis内存数据库、MongoDB 文档数据库几大部分组成。
服务端负责解析IFC数据,并存储到Redis内存数据库和MongoDB文档数据库中,同时负责响应Web端的请求。
Web端从服务端读取IFC模型数据并渲染展示。
具体包括:
步骤一:解析IFC模型数据,并进行轻量化处理;
服务端解析IFC模型文件,将模型数据分为属性数据、材质数据、几何数据三种,这三种数据独立存储,通过模型构件唯一ID关联。
针对模型几何数据,通过参数化几何图形描述和图元合并两种方式进行轻量化处理:
1)参数化几何图形描述轻量化处理:
用多个参数来描述一个几何体,我们称之为参数化几何描述。
例如:一个立方体8个顶点,可以使用3个参数描述:
参数1、2:立方体底部矩形斜对角顶点坐标
参数3:立方体高度
这样,就能用较少的数据来描述保存图元,非常精简,参数化几何描述可以将单个图元做到最极致的轻量化。
2)图元合并轻量化处理:
在一个BIM模型中,会有很多重复的图元,只是位置不一样,这个时候我们可以做图元合并:只保留一个图元的几何数据,其它图元用该图元的位置坐标和图元几何数据的唯一ID表示。
通过这种方式我们可以有效减少图元数量,达到轻量化的目的。
步骤二:将解析后IFC模型数据存储到MongoDB;
IFC格式BIM模型是基于STEP标准(产品模型数据交互规范),是采用数据建模语言EXPRESS描述的实体关系模型,作为建筑行业的通用数据标准,IFC提供了跨多个领域的实体模型。IFC的可扩展性使得可通过预定义或扩展属性集描述增加模型的实体类型和属性信息。
IFC庞大、复杂的定义使得IFC数据的处理成为影响其实际应用的重要技术难题。现有IFC数据存储方式可以分为3类:关系数据库、对象数据库、非关系型(NoSQL)数据库。在数据量达到一定量级时,非关系数据库相较传统数据库在存取效率上将体现出较大的优势。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似轻量级的数据交换格式json的二进制形式的存储格式bson格式,因此可以存储比较复杂的数据类型。IFC的EXPRESS格式数据属于聚合类型数据,比较适合用JSON来表示,可以用MongoDB来存储。
服务端解析完IFC数据后,对于单个的IFC文件,存储在单独的MongoDB集合中,IFC文件中的属性数据、几何数据、材质数据,则存储于集合的文档中。
步骤三:将当前使用频繁的IFC模型数据存储到Redis内存;
Redis是一个开源的、分布式、可基于内存亦可持久化的键-值型存储系统。Redis最大特点在于使用内存进行数据的存取,极大提升了数据的读写速度,同时分布式的设计使得Redis能够利用计算机集群的性能,解决单机内存容量可能不足的问题。本专利利用Redis高速读写、高并发能力的特点,在服务端启动时,将MongoDB中常用的IFC模型数据存储于Redis中,在内存中构建键-值格式IFC模型高速缓存,供WEB端调用。
步骤四:Web端通过Webworker(运行在后台的JavaScript,可为javascript创造多线程环境)根据IFC模型唯一ID从Redis中快速读取模型数据,Web端主线程通过WebGL渲染展模型数据;
HTML5中提出了多线程WebWorker的概念,使得浏览器可以使用利用多线程去完成一些复杂的工作。本专利中,WebWorker负责一般的交互请求以及数据获取,浏览器主线程中只负责BIM模型的渲染工作。
目前BIM模型Web端渲染模型有两种方式:发送多个请求获取数据,拿到所有数据后统一进行模型的渲染;或者每发送一个数据请求都调用渲染接口进行部分数据渲染。
常规选择的是方法一,这种方法在数据下载时,页面呈现空白状态,用户可能会感觉页面卡死或者网络报错,当数据量比较大时,数据全部下载占用的时间比较长,用户体验很不好。
方法二是在下载数据的同时也进行模型渲染,配合WebWorker 多线程技术,可以使两个步骤同步执行,用户可以马上看见模型一块一块出现,而不用等待很长时间,这样速度快,用户体验也比较好。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (8)
1.一种基于Redis和Mongodb的IFC模型存储方式,其特征在于,包括:
步骤一,解析IFC模型数据,并进行轻量化处理;
步骤二,将解析后IFC模型数据存储到MongoDB;
步骤三,将当前使用频繁的IFC模型数据存储到Redis内存;
步骤四,Web端通过Webworker线程根据IFC模型唯一ID从Redis中快速读取模型数据,Web端主线程通过WebGL渲染展模型数据。
2.根据权利要求1所述的一种基于Redis和Mongodb的IFC模型存储方式,其特征在于,所述步骤一解析IFC模型数据包括:服务端解析IFC模型文件,将模型数据分为属性数据、材质数据、几何数据三种,这三种数据独立存储,通过模型构件唯一ID关联。
3.根据权利要求1所述的一种基于Redis和Mongodb的IFC模型存储方式,其特征在于,所述步骤一进行轻量化处理:针对模型几何数据,通过参数化几何图形描述和图元合并两种方式进行轻量化处理包括:参数化几何图形描述轻量化处理,图元合并轻量化处理。
4.根据权利要求1所述的一种基于Redis和Mongodb的IFC模型存储方式,其特征在于,所述步骤二将解析后IFC模型数据存储到MongoDB包括:服务端解析完IFC数据后,对于单个的IFC文件,存储在单独的MongoDB集合中,IFC文件中的属性数据、几何数据、材质数据存储于集合的文档中。
5.根据权利要求1所述的一种基于Redis和Mongodb的IFC模型存储方式,其特征在于,所述步骤三将当前使用频繁的IFC模型数据存储到Redis内存包括:利用Redis高速读写、高并发能力的特点,在服务端启动时,将MongoDB中常用的IFC模型数据存储于Redis中,在内存中构建键-值格式IFC模型高速缓存,供WEB端调用。
6.根据权利要求1所述的一种基于Redis和Mongodb的IFC模型存储方式,其特征在于,所述步骤四Web端通过Webworker线程根据IFC模型唯一ID从Redis中快速读取模型数据,Web端主线程通过WebGL渲染展模型数据,包括WebWorker进行交互请求以及数据获取,浏览器主线程中进行BIM模型的渲染。
7.根据权利要求6所述的一种基于Redis和Mongodb的IFC模型存储方式,其特征在于,所述Web端主线程通过WebGL渲染展模型数据的方法包括:发送多个请求获取数据,接收到所有数据后统一进行模型的渲染。
8.根据权利要求6所述的一种基于Redis和Mongodb的IFC模型存储方式,其特征在于,所述Web端主线程通过WebGL渲染展模型数据的方法包括:每发送一个数据请求都调用渲染接口进行部分数据渲染。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811589631.6A CN109783442A (zh) | 2018-12-25 | 2018-12-25 | 一种基于Redis和Mongodb的IFC模型存储方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811589631.6A CN109783442A (zh) | 2018-12-25 | 2018-12-25 | 一种基于Redis和Mongodb的IFC模型存储方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109783442A true CN109783442A (zh) | 2019-05-21 |
Family
ID=66498286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811589631.6A Pending CN109783442A (zh) | 2018-12-25 | 2018-12-25 | 一种基于Redis和Mongodb的IFC模型存储方式 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783442A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111080766A (zh) * | 2019-12-30 | 2020-04-28 | 中科星图股份有限公司 | 一种基于WebGL的GPU加速海量目标高效渲染方法 |
CN111125261A (zh) * | 2020-03-31 | 2020-05-08 | 四川新网银行股份有限公司 | 基于分布式缓存的数据传输方法 |
CN111161390A (zh) * | 2019-12-31 | 2020-05-15 | 北京恒华伟业科技股份有限公司 | 一种基于BIM模型和WebGL的渲染方法及装置 |
CN111797153A (zh) * | 2020-07-01 | 2020-10-20 | 广联达科技股份有限公司 | Bim模型预览方法、装置、计算机设备和可读存储介质 |
CN112257135A (zh) * | 2020-10-30 | 2021-01-22 | 久瓴(上海)智能科技有限公司 | 一种基于多线程的模型加载方法、装置、存储介质及终端 |
CN112270028A (zh) * | 2020-10-30 | 2021-01-26 | 久瓴(上海)智能科技有限公司 | 一种模型管理方法及终端 |
CN112417023A (zh) * | 2020-12-04 | 2021-02-26 | 北京构力科技有限公司 | 处理ifc文件的方法、装置、电子设备、存储介质和程序产品 |
CN113778958A (zh) * | 2021-11-09 | 2021-12-10 | 通号通信信息集团有限公司 | Bim数据管理的方法和装置、电子设备、计算机可读介质 |
CN116934964A (zh) * | 2023-07-07 | 2023-10-24 | 广州粤建三和软件股份有限公司 | 一种ifc格式数据的轻量化转换方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324475A (zh) * | 2013-05-28 | 2013-09-25 | 机械工业第六设计研究院有限公司 | 基于ifc标准的bim模型渲染优化系统及方法 |
CN108647330A (zh) * | 2018-05-11 | 2018-10-12 | 厦门海迈科技股份有限公司 | 一种基于bim模型文件的3d轻量化转换方法 |
-
2018
- 2018-12-25 CN CN201811589631.6A patent/CN109783442A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324475A (zh) * | 2013-05-28 | 2013-09-25 | 机械工业第六设计研究院有限公司 | 基于ifc标准的bim模型渲染优化系统及方法 |
CN108647330A (zh) * | 2018-05-11 | 2018-10-12 | 厦门海迈科技股份有限公司 | 一种基于bim模型文件的3d轻量化转换方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111080766A (zh) * | 2019-12-30 | 2020-04-28 | 中科星图股份有限公司 | 一种基于WebGL的GPU加速海量目标高效渲染方法 |
CN111080766B (zh) * | 2019-12-30 | 2023-09-01 | 中科星图股份有限公司 | 一种基于WebGL的GPU加速海量目标高效渲染方法 |
CN111161390A (zh) * | 2019-12-31 | 2020-05-15 | 北京恒华伟业科技股份有限公司 | 一种基于BIM模型和WebGL的渲染方法及装置 |
CN111125261A (zh) * | 2020-03-31 | 2020-05-08 | 四川新网银行股份有限公司 | 基于分布式缓存的数据传输方法 |
CN111125261B (zh) * | 2020-03-31 | 2020-09-29 | 四川新网银行股份有限公司 | 基于分布式缓存的数据传输方法 |
CN111797153A (zh) * | 2020-07-01 | 2020-10-20 | 广联达科技股份有限公司 | Bim模型预览方法、装置、计算机设备和可读存储介质 |
CN112257135A (zh) * | 2020-10-30 | 2021-01-22 | 久瓴(上海)智能科技有限公司 | 一种基于多线程的模型加载方法、装置、存储介质及终端 |
CN112270028A (zh) * | 2020-10-30 | 2021-01-26 | 久瓴(上海)智能科技有限公司 | 一种模型管理方法及终端 |
CN112257135B (zh) * | 2020-10-30 | 2023-09-05 | 久瓴(上海)智能科技有限公司 | 一种基于多线程的模型加载方法、装置、存储介质及终端 |
CN112417023A (zh) * | 2020-12-04 | 2021-02-26 | 北京构力科技有限公司 | 处理ifc文件的方法、装置、电子设备、存储介质和程序产品 |
CN113778958A (zh) * | 2021-11-09 | 2021-12-10 | 通号通信信息集团有限公司 | Bim数据管理的方法和装置、电子设备、计算机可读介质 |
CN116934964A (zh) * | 2023-07-07 | 2023-10-24 | 广州粤建三和软件股份有限公司 | 一种ifc格式数据的轻量化转换方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783442A (zh) | 一种基于Redis和Mongodb的IFC模型存储方式 | |
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
CN111045655B (zh) | 一种页面渲染的方法、装置、渲染服务器和存储介质 | |
US11113874B2 (en) | Displaying rich text on 3D models | |
CN108133044A (zh) | 基于属性分离的空间大数据三维可视化方法及平台 | |
US20100289804A1 (en) | System, mechanism, and apparatus for a customizable and extensible distributed rendering api | |
US9396564B2 (en) | Atlas generation based on client video configuration | |
CN106033471A (zh) | 一种处理表单的方法和装置 | |
CN110503709A (zh) | 一种实现数据中心加载呈现大规模Web3D模型的方法 | |
CN100388318C (zh) | 一种基于状态集的Shader三维图形绘制系统和绘制方法 | |
US12094057B2 (en) | Method for scheduling and displaying three-dimensional annotations | |
CN102135873A (zh) | 一种创建用户界面的方法和装置 | |
CN105335410A (zh) | 一种基于合成渲染加速的网页更新方法和装置 | |
US12008227B2 (en) | Performant configuration user interface | |
CN112417343B (zh) | 一种基于前端Angular框架缓存数据的方法 | |
US20240338880A1 (en) | Graphics rendering method, apparatus, and storage medium | |
CN102682463B (zh) | 基于Web Pseudo-3D的大规模数据可视化处理方法 | |
CN103678261A (zh) | 一种快速显示ttf字体的方法、装置及设备 | |
CN117707676A (zh) | 窗口渲染方法、装置、设备、存储介质及程序产品 | |
US8851364B2 (en) | Delivering report characterization information of a report | |
US20170097990A1 (en) | Text-sql relational database | |
CN107391175A (zh) | 控件数据配置方法及计算机可读存储介质 | |
CN113240786B (zh) | 一种视频点云渲染方法、装置、电子设备及存储介质 | |
CN107509103B (zh) | 一种用于智能电视epg数据的存储管理及页面布局的方法 | |
CN109783465A (zh) | 一种云计算框架下海量三维模型集成平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |