CN116933976B - 一种基于bim的房地产项目管理方法 - Google Patents
一种基于bim的房地产项目管理方法 Download PDFInfo
- Publication number
- CN116933976B CN116933976B CN202311174329.5A CN202311174329A CN116933976B CN 116933976 B CN116933976 B CN 116933976B CN 202311174329 A CN202311174329 A CN 202311174329A CN 116933976 B CN116933976 B CN 116933976B
- Authority
- CN
- China
- Prior art keywords
- data
- graph database
- bim
- bim model
- objects
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 29
- 238000013507 mapping Methods 0.000 claims abstract description 51
- 230000008859 change Effects 0.000 claims abstract description 17
- 238000012544 monitoring process Methods 0.000 claims abstract description 15
- 238000004422 calculation algorithm Methods 0.000 claims description 48
- 241000254032 Acrididae Species 0.000 claims description 27
- 230000000694 effects Effects 0.000 claims description 27
- 238000000034 method Methods 0.000 claims description 26
- 238000012795 verification Methods 0.000 claims description 18
- 230000006835 compression Effects 0.000 claims description 17
- 238000007906 compression Methods 0.000 claims description 17
- 238000013524 data verification Methods 0.000 claims description 16
- 238000004458 analytical method Methods 0.000 claims description 8
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 24
- 230000000875 corresponding effect Effects 0.000 description 35
- 230000006870 function Effects 0.000 description 19
- 230000004044 response Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 230000002457 bidirectional effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000000739 chaotic effect Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 235000019580 granularity Nutrition 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/08—Construction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/16—Real estate
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Databases & Information Systems (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- General Engineering & Computer Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Software Systems (AREA)
- Game Theory and Decision Science (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于BIM的房地产项目管理方法,涉及BIM建模技术领域,包括:使用参数化建模插件对BIM模型的对象进行参数化定义,将对象定义为可接收变量的形式;在图数据库中,存储项目指标的数据表;并建立表示BIM模型层级关系的节点和关系;将BIM模型中参数化定义的对象与项目指标的编码进行关联,生成映射关系;监测项目指标的数据表的变化,并根据变化更新对象;监听更新事件,并将更新的数据映射到图数据库中对应的节点和关系上;利用层级关系描述对象之间的层级结构;并通过定义对象和查询语句,在图数据库中对对象的层级关系进行检索和遍历。针对现有的BIM模型在处理房地产项目的多源异构数据效率低的问题,提高了BIM模型的数据处理效率。
Description
技术领域
本发明涉及BIM建模技术领域,特别涉及一种基于BIM的房地产项目管理方法。
背景技术
随着建筑信息模型(BIM)技术的发展,BIM已成为建筑行业内用于协同设计、施工和运维的重要技术手段。BIM通过构建项目的数字化建筑信息模型,集成了项目的空间、性能及过程数据,实现了多方位的视图展示和信息管理。然而,BIM模型中的信息往往同实际工程项目中的其他业务系统存在隔阂,难以实现深度融合。如何实现BIM模型与其他业务系统的深度融合,提高信息流通效率,成为建筑行业目前的技术难题。
在相关技术中,比如中国专利文献CN115186348A中提供了一种用于建筑工程的BIM与项目数据结构化的管理方法,包括以下步骤:S1、根据国家及地方建筑设计标准,制定BIM建模标准,同时制定标准化项目数据文件;S2、采集当前建筑工程的信息数据与项目数据,并对采集到的信息数据与项目数据进行统计分析;S3、根据采集到的建筑工程数据,按照设计标准进行BIM系统建模;S4、根据建筑工程的实时状态进行项目数据动态采集,并对建模好的BIM进行实时数据补充。但是该方案缺乏自动化机制,限制了模型整体的数据处理速度和效率。
发明内容
1.要解决的技术问题
针对现有技术中存在的BIM在处理房地产项目管理中多源异构项目数据效率低的问题,本发明提供了一种基于BIM的房地产项目管理方法,通过构建图数据库实现BIM模型与项目指标的数据动态双向绑定,整体提升了BIM模型对多源异构项目数据的处理效率。
2.技术方案
本发明的目的通过以下技术方案实现。
本说明书实施例提供一种基于BIM的房地产项目管理方法,包括:使用参数化建模插件对BIM模型的对象进行参数化定义,将对象定义为可接收变量的形式;在图数据库中,存储项目指标的数据表,数据表包含项目指标的编码和数值;并在图数据库中建立表示BIM模型层级关系的节点和关系;将BIM模型中参数化定义的对象与项目指标的编码进行关联,生成映射关系;监测项目指标的数据表的变化,获取项目指标的编码的最新数值,并根据最新数值更新对应BIM模型中的对象;当BIM模型或项目指标发生更新时,监听更新事件,并将更新的数据映射到图数据库中对应的节点和关系上;在图数据库中,利用层级关系描述BIM模型的对象之间的层级结构;并通过定义对象和查询语句,在图数据库中对BIM模型的对象的层级关系进行检索和遍历;其中,图数据库为Neo4j。
进一步地,使用参数化建模插件对BIM模型的对象进行参数化定义,将对象定义为可接收变量的形式的步骤包括:获取多源异构项目数据,并进行结构化处理,得到结构化的数据集;加载BIM模型文件,使用参数化建模插件获取BIM模型的对象和属性;利用对象哈希算法生成对象的唯一键,建立对象与唯一键的第一映射关系;预设第一对象模板,利用解析获取的对象,进行格式化,生成格式化后的第二对象模板;通过唯一键,建立数据集和第二对象模板的第二映射关系;通过参数化建模插件,加载第一映射关系和第二映射关系,生成数据集的变量和对象的绑定关系;配置绑定关系,当数据集更新时,通过唯一键更新对象;当对象更新时,通过唯一键更新数据集;其中,多源异构项目数据包含成本数据、进度数据和质量数据;参数化建模插件为Dynamo或Grasshopper。
进一步地,利用对象哈希算法生成对象的唯一键,建立对象与唯一键的第一映射关系的步骤包括:获取参数化后的BIM模型的对象的数据,并对数据进行预处理;对预处理后的数据,利用哈希算法的雪崩效应,计算得到数据的哈希值;将计算得到的哈希值作为对象的唯一键。
进一步地,对预处理后的数据,利用哈希算法的雪崩效应,计算得到数据的哈希值的步骤包括:获取预处理后的BIM对象的数据;设置MD5哈希算法的初始值参数为0xFFFFFFFF;将获取的BIM对象的数据按ASCII码转换为比特数据序列;将比特数据序列进行分组,配置为每512位为一组,输入MD5哈希算法进行迭代压缩运算;在MD5哈希算法迭代压缩运算的N轮循环中,引入比特位运算和移位运算的逻辑变换,产生混沌和雪崩效应;输出N轮迭代压缩运算后形成的128位哈希值;将输出的128位哈希值作为BIM的对象的唯一键;其中,N为大于等于64的正整数。
进一步地,在图数据库中,存储项目指标的数据表,数据表包含项目指标的编码和数值;并在图数据库中建立表示BIM模型层级关系的节点和关系的步骤包括:将包含项目指标的编码和数值的数据表导入图数据库,作为数据节点;获取BIM模型的对象及对象间的层级关系;将对象及对象间的层级关系,作为对象节点和关系边导入图数据库;在图数据库内,基于对象节点和数据节点的唯一ID,建立两者的关联关系;当目标指标的数据变化时,通过关联关系更新对象的属性;当对象的属性变化时,反向更新目标指标的数据。
进一步地,在图数据库内,基于对象节点和数据节点的唯一ID,建立两者的关联关系的步骤包括:在向图数据库导入BIM模型的对象时,为每个对象生成唯一ID,作为对象节点的ID;在向图数据库导入项目指标的数据时,为每个数据生成唯一ID,作为数据节点的ID;在图数据库中创建关联表,包括对象节点的ID字段和数据节点的ID字段;根据BIM模型的对象和项目指标的数据的对应关系,向关联表中写入记录,将两者的ID进行关联。
进一步地,当目标指标的数据变化时,通过关联关系更新对象的属性;当对象的属性变化时,反向更新目标指标的数据的步骤包括:在图数据库中设置数据校验约束,数据检验约束包含数据类型约束、数值范围约束、唯一性约束和依赖关系约束;当向图数据库发送更新对象或更新数据的消息时,先调用图数据库的校验函数,传入更新语句和数据校验约束;图数据库根据数据校验约束验证更新语句,如果验证通过,则执行更新操作;如果验证不通过,返回错误消息;接收图数据库返回的消息,如果是错误消息,则中止更新;否则,确认更新完成。
进一步地,数据校验约束包括:数据类型约束,用于检查更新后的数据类型是否为预先指定的类型,如果否,则校验不通过;数据值范围约束,用于检查更新后的数据值是否在预先定义的最小值和最大值范围内,如果不在范围内,则校验不通过;唯一性约束,用于检查更新后的数据值是否唯一,如果更新后的数据值与数据库中已存在的数据值重复,则校验不通过;依赖关系约束,用于检查被更新的数据是否被数据库中的其他数据依赖,如果被依赖,则校验不通过。
进一步地,当BIM模型或项目指标发生更新时,监听更新事件,并将更新的数据映射到图数据库中对应的节点和关系上,以保持数据的一致性的技术步骤包括:设置程序组件作为图数据库的观察者,订阅图数据库的更新事件;构建观察者列表,用于维护所有订阅了更新事件的观察者程序组件;当BIM模型或项目指标发生更新时,图数据库通知在观察者列表中订阅了更新事件的程序组件;订阅了更新事件的程序组件接收通知后,根据预设的对应关系更新关联数据。
进一步地,在图数据库中,利用层级关系描述BIM模型的对象之间的层级结构;并通过定义对象和查询语句,在图数据库中对BIM模型的对象的层级关系进行检索和遍历的步骤包括:获取BIM模型的树图数据结构,树图节点表示BIM的对象,树图边表示对象间的上下级关系;在图数据库中,定义树图遍历查询,按上下级关系遍历BIM模型的对象,进行层级检索;定义树图切片查询,指定父节点和层级深度,检索父节点下指定层级深度的子对象;将BIM模型的对象的更新操作封装为事务函数,以进行遍历查询。
3.有益效果
相比于现有技术,本发明的优点在于:
(1)唯一ID标识可避免大量对象间的直接对应关联,降低了组合复杂度,从而提高了多源数据绑定的速度。通过使用唯一ID标识,可以将对象之间的直接对应关联转变为对唯一ID的引用,避免了复杂的对象关系维护。这种简化的关联机制减少了处理数据绑定时的复杂性,提高了绑定速度;
(2)图数据库的观察者模式实现了事件驱动的实时响应,基于内存计算提高了更新同步的效率。观察者模式允许图数据库实时监测和响应数据的变化事件。当发生更新时,相关的观察者会接收到通知并采取相应的操作,实现了实时地响应。此外,基于内存计算的优化使得更新同步更加高效,减少了磁盘读写操作,提升了数据处理的速度;
(3)图数据库利用内部图结构索引可直接在内存中进行复杂的关系遍历,避免了大量连接查询,减少了数据处理的负载。图数据库以图的形式存储数据,并使用内部图结构索引来管理数据。这种索引结构使得在内存中进行复杂的关系遍历变得高效,不需要进行传统数据库中的大量连接查询操作。通过直接在内存中操作,减少了数据访问的延迟,降低了数据处理的负载;
综上,本申请实现了唯一ID标识、事件驱动的实时响应和基于内存计算的高效更新同步,同时利用图数据库的内部图结构索引进行高效的关系遍历,提高了BIM模型在处理房地产项目管理中多源异构项目数据效率。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的一种基于BIM的房地产项目管理方法的示例性流程图;
图2是根据本说明书一些实施例所示的将对象定义为可接收变量的示例性流程图;
图3是根据本说明书一些实施例所示的建立对象和目标指标的双向绑定的示例性流程图;
图4是根据本说明书一些实施例所示的监听更新事件的示例性流程图;
图5是根据本说明书一些实施例所示的遍历检索的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见的,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其他类似情景。除非从语言环境中显而易见或另作说明,图中相同标号代表相同结构或操作。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
下面结合附图对本说明书实施例提供的方法和系统进行详细说明。
图1是根据本说明书一些实施例所示的一种基于BIM的房地产项目管理方法的示例性流程图,如图1所示,一种基于BIM的房地产项目管理方法包括如下技术步骤:
S100使用参数化建模插件对BIM模型的对象进行参数化定义,将对象定义为可接收变量的形式。这样做可以使对象具有灵活性和可配置性,方便后续与项目指标进行关联。在本实施例中,参数化建模插件为Dynamo或Grasshopper,使用参数化建模插件Dynamo或Grasshopper对BIM模型中的建筑元素进行参数化定义,生成可变参数,为模型对象与数据绑定做准备。
S200在图数据库中存储项目指标的数据表,数据表包含项目指标的编码和数值,并在图数据库中建立表示BIM模型层级关系的节点和关系。图数据库提供高效的数据存储和查询能力,并且可以通过节点和关系建立BIM模型的层级结构。在本实施例中,图数据库优选为Neo4j图数据库,在Neo4j图数据库中导入项目进度、成本等指标数据表,表含有指标编码和数值,同时建立BIM模型的层级关系图。
S300将BIM模型中参数化定义的对象与项目指标的编码进行关联,生成映射关系。这样可以建立BIM模型对象与项目指标之间的关联,方便后续根据指标数据更新BIM模型。通过映射器组件,将BIM对象的参数与指标编码关联,形成唯一的双向绑定关系。
S400监测项目指标的数据表的变化,获取项目指标编码的最新数值,并根据最新数值更新对应BIM模型中的对象。当项目指标的数值发生变化时,该步骤会自动获取最新数值,并将它反映到对应的BIM模型对象中。
S500当BIM模型或项目指标发生更新时,监听更新事件,并将更新的数据映射到图数据库中对应的节点和关系上,以保持数据的一致性。通过监听模型和指标的更新事件,可以实现数据的实时同步和一致性。当BIM对象或指标数据更新时,触发图数据库的更新事件,通过关联关系同步更新对应数据,保证一致性。
S600在图数据库中,利用层级关系描述BIM模型的对象之间的层级结构,并通过定义对象和查询语句,在图数据库中对BIM模型的对象的层级关系进行检索和遍历。这样可以实现方便快速的层级关系查询和遍历,加快数据访问速度。
综上所述,在S100中Dynamo或Grasshopper的参数化建模为BIM对象添加可配置属性,为与数据关联奠定基础。S200在Neo4j中存储项目指标数据表,并建立BIM的层级关系图,提供存储和关系管理的能力。S300中Dynamo或Grasshopper与Neo4j相结合,通过映射器关联BIM对象与指标编码,实现双向绑定。S400基于Neo4j的监听与查询机制,获取最新指标数据实时更新对应BIM对象。S500中Neo4j的事件触发可驱动Dynamo或Grasshopper中组件的响应,保证更新同步。S600利用Neo4j的树状图结构,实现高效的BIM层级关系管理。Dynamo或Grasshopper进行参数化建模,Neo4j提供存储与关系管理,两者相互配合,的参数化、树图、事件触发等机制协同达成了BIM与多源数据的动态绑定。相比直接集成到BIM软件,该解决方案降低了开发成本,提高了灵活性。相比传统数据库,Neo4j提升了查询效率。该方案整体提升了BIM对异构数据的处理能力与项目管理效率。
图2是根据本说明书一些实施例所示的将对象定义为可接收变量的示例性流程图,如图2所示,S100使用参数化建模插件对BIM模型的对象进行参数化定义,将对象定义为可接收变量的形式的技术步骤包括:
S110获取多源异构项目数据,并进行结构化处理,得到结构化的数据集。这一步骤包括从各个数据源(如成本数据、进度数据和质量数据)中获取数据,并对数据进行处理和整理,以便后续使用。
在本实施例中,从企业资源计划(ERP)系统导出项目进度计划数据,格式为Excel表格;从工程量计算软件导出项目预算和成本数据,格式为CSV文件;从质量管理平台导出项目质量检查数据,格式为JSON文件;将上述三个数据源导入Spark中,转换为DataFrame格式;对DataFrame进行清洗、去重、格式化等操作,处理为规范化的数据集;将处理后的数据集注册为临时表,并载入Neo4j图数据库中;在Neo4j中,将进度计划数据关联至“Activity”节点,成本数据关联至“Cost”节点;通过Neo4j的关联查询,BIM模型可以高效获取多源异构数据,实现模型绑定;相比直接导入,该流程提高了数据处理和关联的效率。
S120加载BIM模型文件,并使用参数化建模插件获取BIM模型的对象和属性。在这一步骤中,BIM模型文件被加载到参数化建模插件中,然后可以通过插件提供的功能获取BIM模型中的对象和它们的属性信息。
在本实施例中,使用Dynamo或Grasshopper的参数化建模插件,加载Revit产生的房屋BIM模型文件;通过Dynamo或Grasshopper的Revit节点,连接Revit,获取BIM模型中的墙、门、窗等Family Instance对象;遍历这些对象,调用GetParameterValueByName节点,获取每个对象的属性参数;如获取墙体对象的宽度参数“Width”,门对象的高度参数“Height”;将这些参数映射为Dynamo或Grasshopper中的变量,进行格式化处理;并注册每个对象到Dynamo或Grasshopper的Dictionary中,以方便后续查找;最后,输出对象表,其中包含每个对象的唯一ID和主要参数权重;相比手动输入,该实现自动化获取对象参数,提高了BIM数据处理的效率。
S130利用对象哈希算法生成对象的唯一键,并建立对象与唯一键的第一映射关系。通过使用对象哈希算法,可以将每个对象映射为一个唯一的键,以确保对象之间的唯一性,并通过建立映射关系将对象与其唯一键关联起来;
在本实施例中,在Dynamo或Grasshopper中加载Revit导出的BIM模型,获取所有墙、门、窗等对象;定义SHA256哈希函数,输入为对象的名称、类型、坐标等属性;遍历对象,调用SHA256函数,计算每个对象的数据哈希值;将哈希值作为该对象的唯一键,格式为64位十六进制字符串;在Dynamo或Grasshopper中创建字典对象,键为计算所得的哈希值,值为对应BIM对象;这样就建立起了从BIM对象到其唯一键的映射关系。后续可以通过该映射快速获取对象的唯一键。
S140预设第一对象模板,并利用解析获取的对象进行格式化,生成格式化后的第二对象模板。在这一步骤中,事先设定好第一对象模板的结构,并根据从BIM模型中获取的对象进行解析和格式化,生成与模板结构匹配的第二对象模板。
在本实施例中,预设第一对象模板,包含字段:ID、类型、名称、宽度、高度;加载Revit导出的BIM模型,解析获取墙、门、窗等对象;对每个对象,提取其名称、类型等属性,映射到模板字段;对宽度和高度参数,转换单位为米,转换为数字类型;使用模板结构创建第二对象,填充提取的格式化属性值;将第二对象注册到Dynamo或Grasshopper的Dictionary中,键为对象的ID;后续可以通过ID快速获取该格式化对象;相比原始对象,格式化对象结构清晰,属性规范,可直接用于数据库存储;提高了BIM数据处理和存储的效率。
S150通过唯一键,建立数据集和第二对象模板的第二映射关系。利用前面生成的对象唯一键,建立数据集和第二对象模板之间的映射关系,以达到数据集的可变参数与对象之间的绑定效果;
在本实施例中,已经生成了带唯一键的格式化模板对象,存储在Dynamo或Grasshopper的Dictionary中;从CSV文件中导入了项目进度、成本等数据集,存储在Dynamo或Grasshopper的Dictionary中;分别定义一个Python字典对象,键为模板对象的唯一键,值为对应的数据集;遍历对象字典,获取每个对象的唯一键;为每个唯一键,查找匹配的数据集,存储到上述映射字典中;这样就建立起了从对象到匹配数据集的二级映射关系;后续可以通过对象的唯一键,快速查找对应的参数数据集;当数据集更新时,也可以通过该映射快速找到需更新的对象;相比直接拼接对象与数据,该映射可实现动态绑定。
S160通过参数化建模插件,加载第一映射关系和第二映射关系,生成数据集的变量和对象的绑定关系。在这一步骤中,利用参数化建模插件加载前述的第一映射关系和第二映射关系,从而实现数据集的变量与对象的绑定,使得数据集中的变量能够接收对象的实际值;
在本实施例中,在Dynamo或Grasshopper中加载数据集字典和对象映射字典这两个映射关系;遍历数据集字典,获取每个数据集内的变量名称;利用Dynamo或Grasshopper的Code Block节点,生成数据集变量的引用;再遍历对象映射字典,获取每个对象的唯一键;根据唯一键找到对应数据集变量的引用;使用Dynamo或Grasshopper的节点SetParameter By Name,将对象参数与数据集变量引用绑定;这样当数据集的值变化时,对象的参数也会随之更新;当对象参数值变化时,反向更新数据集变量;最终实现了通过Dynamo或Grasshopper的参数化插件,使BIM对象与数据集动态绑定。
S170配置绑定关系,当数据集更新时,通过唯一键更新对象;当对象更新时,通过唯一键更新数据集。在这一步骤中,设置绑定关系的配置,当数据集发生更新时,通过唯一键定位到相应的对象,并将更新后的值通过唯一键更新到对象中。同样地,当对象发生更新时,也可以通过唯一键定位到对应的数据集,将更新后的值通过唯一键更新到数据集中;其中,多源异构项目数据包含成本数据、进度数据和质量数据;参数化建模插件为Dynamo或Grasshopper。
在本实施例中,在Dynamo或Grasshopper中已经建立了对象与数据集的双向绑定关系;编写Python脚本代码,监听数据集的更改事件;一旦监测到数据集变更, lookup对象与数据集的映射关系;根据对象的唯一键,获取参数引用,更新为新值;同时,编写代码监听对象参数变更事件;一旦监测到对象变更, lookup映射关系,获取数据集引用;根据数据集的唯一键,更新其中的变量为新值;这样,建立了当数据集变化,自动更新对象参数的绑定;反向也建立了对象变化,自动更新数据集的绑定;实现了双向动态绑定关系的配置。
因此,将对象定义为可接收变量的方式实现了BIM模型的灵活性和可配置性。参数化建模插件(如Dynamo或Grasshopper)提供了对BIM对象和属性的获取和操作能力,通过对象的唯一键和数据集的变量与对象的绑定关系,实现了对象与数据集之间的关联。从而提升了BIM模型对多源异构项目数据的处理效率,使得BIM模型能够更好地与项目数据进行集成和交互。
其中,利用对象哈希算法生成对象的唯一键,以建立对象与唯一键的第一映射关系,从而提高BIM模型对多源异构项目数据的处理效率,步骤包括:
获取参数化后的BIM模型对象的数据,并进行预处理:首先,使用参数化建模插件(如Dynamo或Grasshopper)获取经过参数化处理的BIM模型对象的数据。这些数据可能包括对象的属性、几何信息等。然后,对获取的数据进行预处理,这可以包括数据的清洗、转换或标准化等步骤,以确保数据的一致性和合理性;
对预处理后的数据使用哈希算法计算哈希值:哈希算法是一种将任意长度的数据映射到固定长度的哈希值的算法。在此处,将预处理后的数据作为输入,使用哈希算法的雪崩效应,计算得到数据的哈希值。哈希算法的雪崩效应指的是,即使输入数据发生微小的变化,输出的哈希值也将发生巨大的变化,从而保证了数据的唯一性;
将计算得到的哈希值作为对象的唯一键:将所获取的哈希值视为对象的唯一键,并将其与相应的对象建立第一映射关系。这样,每个对象都将具有一个唯一的键值,可以用于标识和索引该对象。通过将对象与其唯一键关联起来,可以快速地定位对象,并实现对对象进行快速检索和更新的能力。
通过利用对象哈希算法生成对象的唯一键,并建立对象与唯一键的第一映射关系,可以实现对BIM模型中的对象进行高效的处理和管理。该方法提供了一种快速而可靠的方式来识别和操作BIM模型中的对象,从而提高对多源异构项目数据的处理效率。
具体地,对预处理后的数据,利用哈希算法的雪崩效应,计算得到数据的哈希值的步骤包括:
获取预处理后的BIM对象的数据;使用参数化建模插件获取经过参数化处理的BIM模型对象的数据,包括对象的属性、几何信息等。
设置MD5哈希算法的初始值参数为0xFFFFFFFF;MD5算法中需要设置一个初始链接变量(Initial Value),这个初始值会对最终的哈希值产生影响。0xFFFFFFFF可以看作是一个全1的32比特二进制数,在比特位运算中具有特殊性质;全1的数据在位运算中可以产生更好的混淆效果,增加哈希值的随机性;MD5标准规定的初始链接变量的值就是0xFFFFFFFF,使用标准值可以保证兼容性;不使用随机数是为了保持哈希结果的稳定可重复性,使同一数据每次哈希的值一致;在每次迭代运算前将链接变量复制到数据中,可使微小变化扩散,产生雪崩效应;综上所述,设置为0xFFFFFFFF主要考虑了混淆性、标准兼容性、结果稳定性等技术因素,对产生理想的哈希值是非常必要的。
将获取的BIM对象的数据按ASCII码转换为比特数据序列;ASCII码是计算机中最常用的编码方式,可以方便获取BIM对象的数据的字符/数字表达;将ASCII码转换为比特流,可以打破数据的语义,增加混淆度,产生更好的雪崩效应;ASCII码按位转换为比特流后,数据块大小一致,有利于后续的分组压缩;比特流数据没有语义,能够充分混淆原始输入,增加哈希算法的随机性;利用ASCII相同字符转换的规律性,可以轻微改变一个字符,引起大范围位变化,进一步增强雪崩效应;ASCII码转换为比特流是一个非常成熟的标准过程,简单高效,有利于工程实现;利用ASCII转换,可以处理所有字符和数字类型,扩展性强;综上,利用成熟简单的ASCII转换来增加混淆度,并产生理想的雪崩效应
将比特数据序列进行分组,配置为每512位为一组,输入MD5哈希算法进行迭代压缩运算;512位正好是MD5算法的输入块大小,可以整数块输入,避免填充操作,简化实现;512位可以充分打乱原始数据的位结构,产生良好的混淆效果;迭代压缩可以让小变化扩散,产生理想的雪崩效果;MD5经过长时间考验,迭代结构成熟,碰撞难度高,是哈希的首选算法;64轮迭代使得每比特均匀参与混淆,输出随机性好;128位输出空间大,碰撞概率极低,安全性高;MD5标准化流程简单高效,非常适合硬件或软件实现;
在MD5哈希算法迭代压缩运算的N轮循环中,引入比特位运算和移位运算的逻辑变换,产生混沌和雪崩效应;其中,N为大于等于64的正整数。设置哈希算法的迭代压缩轮数N为可配置的形式,在软件初始化时读取配置来确定具体轮数。默认值可以设置为64轮,也可以设置为128轮或256轮;在本实施例中,设置N大于等于64:N大于等于64可以保证足够的混淆性,产生理想的混沌和雪崩效应。MD5标准是64轮;大于64轮可以降低低位差引发雪崩的概率,增加碰撞难度,提高安全强度;但考虑到计算性能,过多轮数也会影响效率。所以设置一个较优区间,默认64,扩展到128或256;使迭代轮数可配置,还可以根据不同安全要求,自定义设置迭代轮数,实现可定制化。
在MD5中引入比特位运算和移位运算的逻辑变换,产生混沌和雪崩效应,在本实施例中,在初始化链接变量的高、低四个字中,交换二者的位置;在压缩函数的运算结果输出前,对四个工作变量做异或和位反操作;在每轮迭代前,循环移位每字的位序;在迭代过程中,交换相邻两字的高、低位组;在压缩函数中,增加随机逻辑与非门操作。其中,交换高低字的位置可以打破原始位序关系,增加混沌性;异或和位反操作可以扰乱状态,使微小变化扩散;循环移位改变数据的位组合,生成更多混沌;交换位组可以使微小变化在各字之间传播,产生更佳的雪崩效应;增加随机逻辑运算将引入更多不确定性,增强算法抗差分分析的能力。
输出N轮迭代压缩运算后形成的128位哈希值;128位长度可以产生足够大的哈希空间,使得不同数据的哈希碰撞概率极小;迭代压缩运算次数N的设置,保证了充分的混淆和扩散效果;MD5算法通过64位分组和128位链接变量设计,每轮都对所有比特参与运算,混淆效果更佳;128位输出使得哈希结果无法通过简单的反向算法进行解析,安全性高;输出长度固定为128位,便于后续的索引和存储,也方便数据的比较;128位的长度符合通用哈希算法的长度选择,可与其他系统兼容;长度不太长,计算性能可接受,适合软硬件实现;综上,128位哈希输出空间大、混淆效果好、安全性高、兼容性强,在成本可接受的前提下,达到了很好的技术效果。
将输出的128位哈希值作为BIM的对象的唯一键;128位哈希值空间足够大,可确保不同BIM对象得到高概率的唯一ID;哈希算法可产生随机分布均匀的结果,避免数据聚集对数据库造成热点;利用哈希算法的不可逆性,保证了唯一键的隐私安全性;基于哈希值的唯一键降低了存储成本,无需额外字段;唯一键的生成由算法控制,无需人工协调,更可靠;与对象数据解耦,即使对象数据变更,唯一键保持不变,有益于关系维护;唯一键稳定不变,有利于数据的历史追踪和版本管理;唯一键容易扩展到包括更多业务属性,增强可扩展性;综上,利用哈希算法生成唯一键,可以高效、安全、稳定地标识BIM对象。
在本实施例中,准备Revit导出的BIM模型对象数据,包括墙、梁、柱等元素的类型、尺寸等属性信息;编写程序,导入对象数据,为每个对象提取关键属性,如类型、长度、宽度等;对提取后的属性数据进行规范化处理,如小数位缩放;设定MD5哈希算法的初始值IV=0xFFFFFFFF;将处理后的属性数据转换为ASCII字符串,再转为比特流;将比特流分组,每512位为一组;将比特组依次输入MD5压缩函数,设置迭代轮数N=128;MD5压缩函数中引入逻辑与或、异或、移位等运算,产生混沌效应;输出128轮迭代后得到的128位哈希值,作为对象的唯一键;将对象数据与对应唯一键绑定。
图3是根据本说明书一些实施例所示的建立对象和目标指标的双向绑定的示例性流程图,如图3所示,S200在图数据库中,存储项目指标的数据表,数据表包含项目指标的编码和数值;并在图数据库中建立表示BIM模型层级关系的节点和关系的技术步骤包括:
S210将包含项目指标的编码和数值的数据表导入图数据库,作为数据节点。数据节点包含了项目指标的唯一标识和相应的数值。将项目指标表示为节点,可以明确标识每个指标数据,避免混淆;为每个节点赋予唯一ID,有利于快速定位指标数据;存储指标的数值,可以实时获取最新状态,用于计算和更新;将指标数据映射为图数据库节点,便于通过关联关系绑定BIM模型;存储为节点而不是直接属性,更直观也便于扩展指标的类型;可以方便地对指标节点添加时间信息等元数据,用于数据追踪;与其他节点关联后,可以快速高效地进行图算法分析;采用图数据库,可避免关系数据库的表连接操作;综上,该设计充分利用图数据库的特性,使项目指标信息可直接有效地服务于BIM动态绑定与管理。
在本实施例中,从Excel导出项目计划进度数据,包含任务编码、开始时间、结束时间等属性;使用Neo4j的Cypher语言,创建Label为“Progress”的节点;读入Excel数据,为每行数据创建一个Progress节点;将任务编码作为节点的name属性,开始和结束时间作为progStartTime和progEndTime属性;再从ERP系统导出成本数据,包含成本编码、成本金额等;在Neo4j中创建Label为“Cost”的节点;导入成本数据,为每行创建一个Cost节点,存储编码和金额;为进度和成本节点都生成UUID作为唯一ID;最终,项目指标以节点形式存储在Neo4j中,可为BIM模型提供动态数据源。
S220获取BIM模型的对象及对象间的层级关系。对象节点表示具体的BIM模型元素,而关系边表示对象之间的层级关系。直观地表示BIM模型的组成元素及其层级结构;对象用节点表示,便于添加属性,也方便与数据节点关联;关系边表示层级,比属性表示更直观,也便于进行图算法分析;通过节点和边的表示,可以利用图数据库内存邻接链表快速遍历层级关系;修改层级关系只需要操作边的链接,简单高效;增加新对象时,直接增加节点和关联边,无需修改其他对象;利用图数据库的查询语言可以方便检索指定层级的对象;采用图结构,可以避免关系数据库的递归查询;与数据节点关联后,可以通过层级直接获取对象的参数;综上,该表示充分利用图数据库的特性,使BIM的层级信息直接可服务于模型的管理和应用。
在本实施例中,使用Revit API读取BIM模型中的构件和系统,如墙、门、管道等实例对象;分析这些对象的包含关系,建立父子层级结构。比如墙包含门,管道包含阀门;在Neo4j中,创建Label为“Component”的节点,代表BIM模型中的实例对象;创建“CONTAINS”的关系,连接父子对象;遍历模型对象,创建节点和关联边导入Neo4j;最终形成以建筑物为根的实例对象层级关系图;当对象的层级关系变更时,修改或新增边关系;通过Cypher可以方便地查询指定层级的对象;与指标数据节点关联后,可以直接获取对象动态参数。
S230将对象节点和关系边导入图数据库。对象节点代表BIM模型中的元素,关系边代表元素之间的层级关系。将BIM的复杂层级结构直接映射为图数据库内部的图结构,直观表达模型语义;利用图数据库的内存邻接链表机制,可以快速遍历和查询层级关系;通过直接操作节点和边,可以轻松修改BIM模型的层级,无需通过属性来表达层级;增删BIM模型中的对象,只需要增加/删除对应节点,不影响其他节点;与数据节点集成后,可以通过层级关系直接获取对象的动态参数;借助图数据库的功能,可以方便实现层级结构的分割、合并等操作;利用图数据库查询语言,可以实现针对层级结构的复杂条件查询;相比关系数据库,避免了大量的自连接操作,效率更高;使复杂的层级管理可以直接利用图计算与分析算法;综上,该导入直观而又高效,充分发挥了图数据库在层级结构管理中的优势。
在本实施例中,准备BIM模型文件,使用Revit提取模型中的墙、门、窗等元素信息,以及它们之间的包含关系,例如墙包含门和窗;使用Neo4j图数据库,分别创建节点标签Wall、Door、Window表示墙、门、窗;解析Revit导出的数据,为每个元素创建节点,属性包含元素的ID和参数;根据包含关系,创建关系边“包含”,连接父元素节点和子元素节点;导入指标数据表,创建指标节点,属性包含指标编码和取值;建立墙节点和指标节点之间的“匹配”关系;当指标取值变化时,“匹配”关系将自动更新墙节点属性;当墙属性变化时,反向更新对应指标;利用Neo4j的内存链表机制,可以直接在图上快速遍历和查询层级关系;通过增加节点和关系边,可以直接修改BIM的层级结构。
S240在图数据库内,基于对象节点和数据节点的唯一ID,建立两者的关联关系。这种关联关系将BIM模型元素与项目指标数据相关联。唯一ID可以明确标识对象和数据,避免不确定的关联;可直接通过ID匹配对象和数据,无需遍历对比属性的值;更新对象或数据时,直接通过ID定位,无需重复扫描所有节点;可以快速统计一个对象或数据的全部关联信息;指标数据变更时,通过ID可直接推送变更消息到关联对象;对象参数变更也可以通过ID快速反向更新指标数据;新增对象或指标时,只需要新增节点及关联边,无需修改原有节点;利用图计算算法可以方便在关联网络中找到相关性;避免了关系数据库的多表连接查询,效率更高;综上,该关联方式可显著提升BIM与多源数据管理的效率。
在本实施例中,在Neo4j图数据库中分别导入处理好的BIM对象数据和项目指标数据表,节点包含唯一ID属性;对BIM对象节点,提取需要与指标关联的属性,例如楼层区域、墙体类型等;对指标节点,进行必要的转换处理,提取与对象相关的指标编码和取值;分析两者语义关系,建立匹配规则,例如指标“单位建筑费”与对象“楼层面积”相关;在图数据库内,创建名为“关联”的关系,连接对象节点的ID和指标节点的ID;当指标取值变化时,通过“关联”关系推送变更消息,更新对应对象属性;当对象属性变化时,反向通过ID找到相关指标,更新指标取值;新增加指标或对象时,仅需新增节点和关联边,不影响原有图结构;借助图算法可以快速找到对象的所有关联指标。
S250当目标指标的数据变化时,通过关联关系更新对象的属性。当项目指标的数值发生变化时,可以直接通过关联关系找到相应的BIM模型元素,并更新其属性。实现了指标数据与BIM模型的实时双向同步;避免了大量对象的遍历查询,只需要通过ID定位一个对象;可以快速定位变更的范围,仅更新关联对象,降低开销;基于内存操作,更新响应速度快;可以根据模型对象的参数化方式,智能更新对象属性;可通过图数据库的事务支持,保证更新的一致性;更新实现自动化,无需人工干预,降低了维护成本;指标变化可以触发级联更新,自动更新依赖对象;与图数据库的触发器机制配合,可以构建复杂的更新逻辑;综上,该更新方式可有效实时同步指标数据与BIM,自动化程度高,效率显著提升。
在本实施例中,在Neo4j图数据库中,已经建立了BIM对象节点、指标节点及其“关联”关系;当指标“单位建筑费”取值从3500元/平方米变更为3800元/平方米;通过指标节点的ID,找到关系“关联”;通过“关联”关系,定位到与该指标关联的对象“楼层一”;根据对象“楼层一”的参数化定义,其面积属性与“单位建筑费”相关;通过面积乘以新单价,计算出“楼层一”的新建筑费用;开启Neo4j的事务,更新“楼层一”节点的建筑费用属性;提交事务,完成更新;依此类推更新所有关联对象,并通过触发器扩展更多逻辑。
因此,通过关联关系,可以快速获取BIM模型元素与项目指标数据之间的关联信息,实现快速地查询和关联操作。双向关联关系使得数据的更新可以在项目指标和BIM模型之间进行同步,确保数据的一致性和准确性。通过建立关联关系,可以自动关联相关的数据节点和对象节点,减少人工操作的复杂性。基于图数据库的建立BIM模型与项目指标的双向关联关系的方法。通过该方法,可以提升BIM模型对多源异构项目数据的处理效率,实现快速查询、动态更新和自动化的数据关联。这将为复杂项目的数据管理和分析提供重要支持,提高工作效率和数据准确性。
其中,在向图数据库导入BIM模型的对象时,为每个对象生成唯一ID,作为对象节点的ID;在向图数据库导入BIM模型对象时,为每个对象生成唯一ID,作为对象节点的ID。这确保了每个对象在图数据库中具有唯一的标识符。在向图数据库导入项目指标数据时,为每个数据生成唯一ID,作为数据节点的ID。这样可以确保每个数据在图数据库中具有唯一的标识符。在图数据库中创建关联表,包括对象节点的ID字段和数据节点的ID字段。这个关联表用于存储对象节点和数据节点之间的关联关系。根据BIM模型的对象和项目指标数据的对应关系,将对象节点的ID和数据节点的ID写入关联表,建立它们之间的关联关系。这样可以在图数据库中快速检索和关联相关的数据。
在本实施例中,使用128位MD5哈希算法为BIM对象生成唯一ID,避免ID冲突的概率极低;为项目指标数据也用相同方式生成128位MD5 ID,保证全局唯一性;在Neo4j图数据库中创建存放两个ID的关联表;根据Revit模型与Excel数据表的映射关系,写入对象ID与数据ID的关联;当Excel表更新时,通过ID快速找到对应的BIM对象并更新;当对象参数变更时,也可以通过ID快速找到对应数据并更新;采用内存计算与索引机制,提高查询与更新速度;避免了重复的节点扫描与属性比较操作;动态管理对象数量可扩展到上百万级,不受限于传统数据库。
其中,通过设置数据类型约束、数值范围约束、唯一性约束和依赖关系约束,并在更新操作时进行校验,可以确保数据的准确性和一致性。在图数据库中设置数据校验约束,包括数据类型约束、数值范围约束、唯一性约束和依赖关系约束。这些约束用于规范和限制数据的合法性和一致性。当向图数据库发送更新对象或更新数据的消息时,先调用图数据库的校验函数,传入更新语句和数据校验约束。校验函数会对更新语句进行验证,确保满足数据校验约束。图数据库根据数据校验约束验证更新语句。如果验证通过,则执行更新操作,将更新反映到数据库中。如果验证不通过,图数据库会返回错误消息,提示校验失败。接收图数据库返回的消息,如果是错误消息,则中止更新操作,并返回错误信息。如果没有错误消息,则确认更新操作完成,并继续后续的数据处理流程。
在本实施例中,在Neo4j图数据库中设置数据约束,限定节点属性的数据类型、值范围等;定义预检查函数,以Cypher查询语言实现数据校验;当Dynamo或Grasshopper插件更新BIM对象时,先调用校验函数进行验证;如类型不匹配,返回类型错误;如值超出范围,返回值越界错误;插件接收错误信息后,中止更新,避免写入脏数据;校验通过则允许更新,确保数据正确性;唯一性约束可避免重复数据的写入;依赖关系约束可防止破坏依赖,导致级联计算错误;参数化建模时,也需要进行严格的数据校验;相比无校验,可大幅提高数据一致性和模型的可靠性。
因此,通过数据校验约束,可以确保更新的数据满足预定义的规范,提高数据的准确性和一致性。验函数可以识别并排除不符合约束的错误数据,有效减少数据处理中出现的错误。通过在更新操作前进行校验,可以避免无效地更新操作,提高更新的效率和性能。通过设置数据校验约束并在更新操作时进行校验,保证了数据的准确性和一致性,排除了错误数据,并提高了更新操作的效率和性能。
具体地,数据校验约束包括:
数据类型约束用于校验更新后的数据类型是否为预先指定的类型。例如,如果某个属性应为整数类型,但更新操作提供的数据类型为字符串,则校验不通过。数据值范围约束用于检查更新后的数据值是否在预先定义的最小值和最大值范围内。例如,如果某个属性的取值范围为1到100,但更新操作提供的数值为150,则校验不通过。唯一性约束用于检查更新后的数据值是否唯一。例如,如果要更新的属性具有唯一性约束,但更新操作提供的数据值与数据库中已存在的数据值重复,则校验不通过。依赖关系约束用于检查被更新的数据是否被数据库中的其他数据依赖。例如,如果更新操作会导致其他数据的依赖关系失效或产生冲突,则校验不通过。
更具体地,步骤1,在图数据库中定义合适的数据类型约束,确保每个属性的数据类型与预先指定的类型相匹配;步骤2,确定每个属性的数据值范围,并在图数据库中设置相应的数据值范围约束;步骤3,对于需要满足唯一性的属性,在图数据库中设置唯一性约束;步骤4,确定数据之间的依赖关系,并在图数据库中设置相应的依赖关系约束;步骤5,向图数据库发送更新对象或更新数据的消息;步骤6,调用图数据库的校验函数,传入更新语句和数据校验约束,进行校验;步骤7,图数据库根据数据校验约束验证更新语句。如果验证通过,则执行更新操作;步骤8,接收图数据库返回的消息。如果是错误消息,则终止更新操作,并返回错误信息;步骤9,如果没有错误消息,则确认更新操作完成,并继续后续的数据处理流程。
在本实施例中:在Revit导出的BIM模型数据中,门实例的宽度属性设置为整数类型;在Neo4j图数据库中为门实例节点设置宽度属性必须为整数的约束;当Dynamo或Grasshopper尝试将宽度更新为浮点值1.5时,与数据类型不匹配,校验失败;避免了非整数宽度被写入,导致模型数据不一致的问题;房间面积属性设置值为0至500平方米的范围约束;如果更新面积为600,超出范围,则校验失败并拒绝更新;确保面积属性值在合理范围内,提高了模型准确性;为确保唯一性,门实例ID设置为唯一约束;重复ID在更新时会校验失败,避免同ID门实例的冲突;数据校验可显著提升BIM模型的正确性、一致性与唯一性。
图4是根据本说明书一些实施例所示的监听更新事件的示例性流程图,如图4所示,S500当BIM模型或项目指标发生更新时,监听更新事件,并将更新的数据映射到图数据库中对应的节点和关系上,以保持数据的一致性的技术步骤包括:
S510在图数据库中设置程序组件作为观察者,并订阅图数据库的更新事件。这样,观察者就能接收到更新事件的通知。在本实施例中,在Neo4j图数据库中,使用Python程序组件充当观察者;订阅房间面积和门宽度等节点的更新事件;当Revit通过Dynamo或Grasshopper更新房间面积时,图数据库触发更新事件;Python组件接收到通知,即可启动更新响应流程;避免了人工或定时任务查询的低效passive方式;响应速度快,可实现秒级触发和处理;多个组件可以订阅不同事件,实现解耦合复用;组件可以包含复杂业务逻辑,扩展灵活;支持事件驱动架构,与微服务等新架构协同;显著提升了BIM和多源数据同步的实时性。
S520构建观察者列表,用于维护所有订阅了图数据库更新事件的观察者程序组件。观察者列表用于管理和调度多个观察者。在本实施例中,在Neo4j图数据库中构建观察者列表,采用数组结构维护;订阅门实例更新事件的Python组件A加入观察者列表;订阅房间面积更新事件的Python组件B也加入观察者列表;门实例更新时,数据库只需要通知列表中的A组件;房间更新时,通知列表中的B组件;实现了事件和观察者的灵活多对多绑定;新的观察者加入非常方便,无需修改数据库代码;不同组件可以订阅不同范围的事件,解耦关注;降低了数据库维护观察者的复杂度;提高了事件通知的精准性和扩展性。
S530当BIM模型或项目指标发生更新时,图数据库会通知观察者列表中订阅了更新事件的程序组件。这样,观察者就能够及时获取到更新的数据。在本实施例中,在Neo4j数据库中,Python组件A订阅了门实例的数据更新事件;当Revit通过Dynamo或Grasshopper更新门的宽度时,将导致门实例数据变更;Neo4j检测到更新事件,即将通知发送给订阅了该事件的A组件;A组件获取通知后,即可启动预定的响应流程;相比人工检查,可以实现毫秒级的事件响应时间;不同组件可订阅不同范围的事件,实现解耦;新组件订阅非常方便,降低维护复杂度;自动事件驱动可大幅减少人工操作成本;数据实时性明显提升,有利于建模协同作业;与微服务框架高度契合,实现敏捷可扩展的系统。
S540订阅了更新事件的程序组件接收到通知后,根据预设的对应关系将更新的数据映射到图数据库中的相应节点和关系上。这样就可以保持数据的一致性,并实现高效地数据更新。在本实施例中,Python组件A订阅了门实例宽度的更新事件;收到宽度更新事件通知后,组件A启动响应;根据预设的宽度参数与门实例节点的对应关系;组件A构造Cypher语句,更新门实例节点的宽度属性;避免了人工指定更新对象,降低了出错概率;响应速度快,可实现秒级数据同步;不同组件可订阅不同数据,负责各自的更新;组件内部可封装复杂业务逻辑,根据需要更新相关数据;自动事件驱动与参数化映射,大幅降低维护成本;数据变更可以实时反映到图数据库,保证一致性。
因此,通过监听更新事件,程序组件能够及时获取到更新的数据,从而快速更新图数据库中的相关节点和关系,保持数据的实时性。通过将更新的数据映射到预设的对应节点和关系上,可以保持数据的一致性,避免数据间的冲突或不一致。通过使用观察者模式和预设的对应关系,可以高效地更新图数据库中的数据,减少处理时间和资源消耗。
图5是根据本说明书一些实施例所示的遍历检索的示例性流程图,如图5所示,S600在图数据库中,利用层级关系描述BIM模型的对象之间的层级结构;并通过定义对象和查询语句,在图数据库中对BIM模型的对象的层级关系进行检索和遍历的技术步骤包括:
S610首先,获取BIM模型的树图数据结构,其中树图节点表示BIM的对象,树图边表示对象间的上下级关系。该树图结构可以从BIM模型中提取或转换得到。在本实施例中,使用Revit API读取模型中的墙、门、窗等家具对象;对象间的包含关系可以表示为父子树图节点;如墙包含门,则建立墙节点到门节点的树图边;最终形成以建筑物为根节点的实例树图;相比扁平属性,树结构更直观表达对象语义;树结构便于在Neo4j中建模,也利于图算法分析;映射为树图,可以充分利用图数据库的特性;层级关系查询、碎片化等可快速实现;修改关系只需要操作边的连接,非常简单高效;树结构是BIM语义化的有效途径之一。
S620在图数据库中定义树图遍历查询,通过上下级关系遍历BIM模型的对象,进行层级检索。遍历查询可以通过递归、迭代或其他合适的算法实现。在本实施例中,在Neo4j中已经建立了BIM模型的层级树图;定义Cypher递归查询,给定父节点,检索子节点;如给定建筑物节点,可以递归遍历所有房间、家具等INSTANCE;递归过程避免了大量嵌套循环的代码;相比SQL自连接,表达更简洁,运行速度更快;可以灵活指定遍历的深度、范围和规则;支持按层级切片条件查询,返回指定部分树;可与其他谓词条件配合,实现丰富的语义化查询;修改树结构只需要操作边,不影响查询定义;树图遍历可有效实时解析BIM的丰富语义。
S630定义树图切片查询,指定父节点和层级深度,以检索给定父节点下指定层级深度的子对象。这样可以灵活地控制查询的范围和层级。在本实施例中,已构建出建筑物为根节点的BIM层级树图;定义切片查询:给定楼层A为父节点,深度为3;查询将返回楼层A下3层深度的房间、门窗等实例对象;相比整棵树查询,狭窄交点范围,避免不必要访问;提高了查询优化器生成执行计划的效率;可以指定不同深度,获取不同粒度的对象集合;配合其他条件,可以实现非常丰富的语义化查询;如深度为1,可以快速获取一个房间的直接子对象;修改树结构不影响切片查询,降低了维护成本;提高了对大规模BIM数据的分区查询性能。
S640将BIM模型的对象更新操作封装为事务函数。这样可以在进行遍历查询之前,先执行对象的更新操作,确保查询过程中所涉及的数据是最新的。在本实施例中,在Neo4j中已建立BIM对象的树状层级结构;使用Dynamo或Grasshopper更新了门实例节点的属性;在Python中定义Cypher遍历查询前,先执行事务;事务包含Dynamo或Grasshopper更新的所有Cypher语句;事务成功提交后,即执行后续的遍历查询;相比无事务,可以确保查询视图一致性;避免遍历查询时,出现不一致的intermediate状态;事务原子化执行,全部成功或全部失败;可以灵活指定事务范围,控制一致性粒度;在分布式场景下,可提供强大的一致性保证。
因此,通过定义遍历和切片查询,可以灵活地检索BIM模型对象之间的层级关系,满足不同查询需求。通过封装更新操作为事务函数,确保在遍历查询之前更新数据,避免数据间的冲突或不一致。通过使用图数据库提供的遍历和切片功能,可以高效地查询和遍历大规模的BIM模型对象,减少查询时间和资源消耗。
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性地设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (6)
1.一种基于BIM的房地产项目管理方法,包括:
使用参数化建模插件对BIM模型的对象进行参数化定义,将对象定义为可接收变量的形式;
在图数据库中,存储项目指标的数据表,数据表包含项目指标的编码和数值;并在图数据库中建立表示BIM模型层级关系的节点和关系;
将BIM模型中参数化定义的对象与项目指标的编码进行关联,生成映射关系;
监测项目指标的数据表的变化,获取项目指标的编码的最新数值,并根据最新数值更新对应BIM模型中的对象;
当BIM模型或项目指标发生更新时,监听更新事件,并将更新的数据映射到图数据库中对应的节点和关系上;
在图数据库中,利用层级关系描述BIM模型的对象之间的层级结构;并通过定义对象和查询语句,在图数据库中对BIM模型的对象的层级关系进行检索和遍历;
图数据库为Neo4j;
其中,使用参数化建模插件对BIM模型的对象进行参数化定义,将对象定义为可接收变量的形式的步骤包括:
获取多源异构项目数据,并进行结构化处理,得到结构化的数据集;
加载BIM模型文件,使用参数化建模插件获取BIM模型的对象和属性;
利用对象哈希算法生成对象的唯一键,建立对象与唯一键的第一映射关系;
预设第一对象模板,利用解析获取的对象,进行格式化,生成格式化后的第二对象模板;
通过唯一键,建立数据集和第二对象模板的第二映射关系;
通过参数化建模插件,加载第一映射关系和第二映射关系,生成数据集的变量和对象的绑定关系;
配置绑定关系,当数据集更新时,通过唯一键更新对象;当对象更新时,通过唯一键更新数据集;
其中,多源异构项目数据包含成本数据、进度数据和质量数据;参数化建模插件为Dynamo或Grasshopper;
其中,在图数据库中,存储项目指标的数据表,数据表包含项目指标的编码和数值;并在图数据库中建立表示BIM模型层级关系的节点和关系的步骤包括:
将包含项目指标的编码和数值的数据表导入图数据库,作为数据节点;
获取BIM模型的对象及对象间的层级关系;
将对象及对象间的层级关系,作为对象节点和关系边导入图数据库;
在图数据库内,基于对象节点和数据节点的唯一ID,建立两者的关联关系;
当目标指标的数据变化时,通过关联关系更新对象的属性;当对象的属性变化时,反向更新目标指标的数据;
其中,在图数据库内,基于对象节点和数据节点的唯一ID,建立两者的关联关系的步骤包括:
在向图数据库导入BIM模型的对象时,为每个对象生成唯一ID,作为对象节点的ID;
在向图数据库导入项目指标的数据时,为每个数据生成唯一ID,作为数据节点的ID;
在图数据库中创建关联表,包括对象节点的ID字段和数据节点的ID字段;
根据BIM模型的对象和项目指标的数据的对应关系,向关联表中写入记录,将两者的ID进行关联;
其中,当目标指标的数据变化时,通过关联关系更新对象的属性;当对象的属性变化时,反向更新目标指标的数据的步骤包括:
在图数据库中设置数据校验约束,数据检验约束包含数据类型约束、数值范围约束、唯一性约束和依赖关系约束;
当向图数据库发送更新对象或更新数据的消息时,先调用图数据库的校验函数,传入更新语句和数据校验约束;
图数据库根据数据校验约束验证更新语句,如果验证通过,则执行更新操作;如果验证不通过,返回错误消息;
接收图数据库返回的消息,如果是错误消息,则中止更新;否则,确认更新完成。
2.根据权利要求1所述的基于BIM的房地产项目管理方法,其特征在于:
利用对象哈希算法生成对象的唯一键,建立对象与唯一键的第一映射关系的步骤包括:
获取参数化后的BIM模型的对象的数据,并对数据进行预处理;
对预处理后的数据,利用哈希算法的雪崩效应,计算得到数据的哈希值;
将计算得到的哈希值作为对象的唯一键。
3.根据权利要求2所述的基于BIM的房地产项目管理方法,其特征在于:
对预处理后的数据,利用哈希算法的雪崩效应,计算得到数据的哈希值的步骤包括:
获取预处理后的BIM对象的数据;
设置MD5哈希算法的初始值参数为0xFFFFFFFF;
将获取的BIM对象的数据按ASCII码转换为比特数据序列;
将比特数据序列进行分组,配置为每512位为一组,输入MD5哈希算法进行迭代压缩运算;
在MD5哈希算法迭代压缩运算的N轮循环中,引入比特位运算和移位运算的逻辑变换,产生混沌和雪崩效应;
输出N轮迭代压缩运算后形成的128位哈希值;
将输出的128位哈希值作为BIM的对象的唯一键;
其中,N为大于等于64的正整数。
4.根据权利要求1所述的基于BIM的房地产项目管理方法,其特征在于:
数据校验约束包括:
数据类型约束,用于检查更新后的数据类型是否为预先指定的类型,如果否,则校验不通过;
数据值范围约束,用于检查更新后的数据值是否在预先定义的最小值和最大值范围内,如果不在范围内,则校验不通过;
唯一性约束,用于检查更新后的数据值是否唯一,如果更新后的数据值与数据库中已存在的数据值重复,则校验不通过;
依赖关系约束,用于检查被更新的数据是否被数据库中的其他数据依赖,如果被依赖,则校验不通过。
5.根据权利要求1所述的基于BIM的房地产项目管理方法,其特征在于:
当BIM模型或项目指标发生更新时,监听更新事件,并将更新的数据映射到图数据库中对应的节点和关系上,以保持数据的一致性的技术步骤包括:
设置程序组件作为图数据库的观察者,订阅图数据库的更新事件;
构建观察者列表,用于维护所有订阅了更新事件的观察者程序组件;
当BIM模型或项目指标发生更新时,图数据库通知在观察者列表中订阅了更新事件的程序组件;
订阅了更新事件的程序组件接收通知后,根据预设的对应关系更新关联数据。
6.根据权利要求1所述的基于BIM的房地产项目管理方法,其特征在于:
在图数据库中,利用层级关系描述BIM模型的对象之间的层级结构;并通过定义对象和查询语句,在图数据库中对BIM模型的对象的层级关系进行检索和遍历的步骤包括:
获取BIM模型的树图数据结构,树图节点表示BIM的对象,树图边表示对象间的上下级关系;
在图数据库中,定义树图遍历查询,按上下级关系遍历BIM模型的对象,进行层级检索;
定义树图切片查询,指定父节点和层级深度,检索父节点下指定层级深度的子对象;
将BIM模型的对象的更新操作封装为事务函数,以进行遍历查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311174329.5A CN116933976B (zh) | 2023-09-13 | 2023-09-13 | 一种基于bim的房地产项目管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311174329.5A CN116933976B (zh) | 2023-09-13 | 2023-09-13 | 一种基于bim的房地产项目管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116933976A CN116933976A (zh) | 2023-10-24 |
CN116933976B true CN116933976B (zh) | 2023-12-12 |
Family
ID=88377394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311174329.5A Active CN116933976B (zh) | 2023-09-13 | 2023-09-13 | 一种基于bim的房地产项目管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116933976B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453752B (zh) * | 2023-12-25 | 2024-03-19 | 神州医疗科技股份有限公司 | 基于检索配置表数据模型的医院临床数据检索方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635441A (zh) * | 2018-12-13 | 2019-04-16 | 青岛理工大学 | 一种基于bim的建筑群震害模拟可视化系统及方法 |
CN111666619A (zh) * | 2020-05-27 | 2020-09-15 | 国网江苏省电力有限公司南通供电分公司 | 基于bim技术的变电站工程实施现场数字化管理系统 |
CN113051650A (zh) * | 2021-04-01 | 2021-06-29 | 中铁成都科学技术研究院有限公司 | 一种建筑信息模型构件数据实时采集方法和装置 |
CN113449360A (zh) * | 2021-06-10 | 2021-09-28 | 上海建工四建集团有限公司 | 基于建筑信息模型的施工策划方法 |
CN114037097A (zh) * | 2021-10-29 | 2022-02-11 | 中国工程物理研究院激光聚变研究中心 | 一种基于bim模型的设备运维管理方法 |
CN114155341A (zh) * | 2021-11-02 | 2022-03-08 | 湖北中烟工业有限责任公司 | 基于Unity平台大规模数字车间三维模型跨平台一致性方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282356A1 (en) * | 2013-03-15 | 2014-09-18 | SimuQuest, Inc. | System Integration Techniques |
US20210200171A1 (en) * | 2019-12-31 | 2021-07-01 | Johnson Controls Technology Company | Systems and methods for presenting multiple bim files in a single interface |
US20220292543A1 (en) * | 2021-03-09 | 2022-09-15 | Alexandra Valentina Henderson | Pop-up retial franchising and complex econmic system |
-
2023
- 2023-09-13 CN CN202311174329.5A patent/CN116933976B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635441A (zh) * | 2018-12-13 | 2019-04-16 | 青岛理工大学 | 一种基于bim的建筑群震害模拟可视化系统及方法 |
CN111666619A (zh) * | 2020-05-27 | 2020-09-15 | 国网江苏省电力有限公司南通供电分公司 | 基于bim技术的变电站工程实施现场数字化管理系统 |
CN113051650A (zh) * | 2021-04-01 | 2021-06-29 | 中铁成都科学技术研究院有限公司 | 一种建筑信息模型构件数据实时采集方法和装置 |
CN113449360A (zh) * | 2021-06-10 | 2021-09-28 | 上海建工四建集团有限公司 | 基于建筑信息模型的施工策划方法 |
CN114037097A (zh) * | 2021-10-29 | 2022-02-11 | 中国工程物理研究院激光聚变研究中心 | 一种基于bim模型的设备运维管理方法 |
CN114155341A (zh) * | 2021-11-02 | 2022-03-08 | 湖北中烟工业有限责任公司 | 基于Unity平台大规模数字车间三维模型跨平台一致性方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116933976A (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110300963B (zh) | 大规模数据储存库中的数据管理系统 | |
CN105122243B (zh) | 用于半结构化数据的可扩展分析平台 | |
US10970292B1 (en) | Graph based resolution of matching items in data sources | |
EP3259668B1 (en) | System and method for generating an effective test data set for testing big data applications | |
US9576011B2 (en) | Indexing hierarchical data | |
Wiese | Advanced data management: for SQL, NoSQL, cloud and distributed databases | |
US20060047638A1 (en) | Cartesian product detection | |
WO2018051096A1 (en) | System for importing data into a data repository | |
US8255368B2 (en) | Apparatus and method for positioning user-created data in OLAP data sources | |
US10296505B2 (en) | Framework for joining datasets | |
CN116933976B (zh) | 一种基于bim的房地产项目管理方法 | |
Afrati et al. | GYM: A multiround distributed join algorithm | |
US10726006B2 (en) | Query optimization using propagated data distinctness | |
CN115329504A (zh) | 一种基于复杂产品结构的bom构建方法 | |
CN115757453A (zh) | 一种带有层级关系数据定期增量同步方法及系统 | |
Gao et al. | Matching heterogeneous event data | |
US10055450B1 (en) | Efficient management of temporal knowledge | |
US10235100B2 (en) | Optimizing column based database table compression | |
EP3293644A1 (en) | Loading data for iterative evaluation through simd registers | |
CN111831696A (zh) | 基于图理论的资产信息存储方法和系统 | |
CN116257636A (zh) | 枚举数据字典统一管理方法、装置、电子设备及存储介质 | |
Ganguly et al. | Evaluations of conceptual models for semi-structured database system | |
WO2021248319A1 (en) | Database management system and method for graph view selection for relational-graph database | |
US20210124798A1 (en) | Merging delta object notation documents | |
Jaiswal et al. | Uninterpreted schema matching with embedded value mapping under opaque column names and data values |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |