CN117290379A - 一种自然语言转SQL和Revit数据交互的系统 - Google Patents
一种自然语言转SQL和Revit数据交互的系统 Download PDFInfo
- Publication number
- CN117290379A CN117290379A CN202311591854.7A CN202311591854A CN117290379A CN 117290379 A CN117290379 A CN 117290379A CN 202311591854 A CN202311591854 A CN 202311591854A CN 117290379 A CN117290379 A CN 117290379A
- Authority
- CN
- China
- Prior art keywords
- revit
- sql
- natural language
- model
- data
- 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.)
- Granted
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 25
- 238000006243 chemical reaction Methods 0.000 claims abstract description 13
- 238000010276 construction Methods 0.000 claims abstract description 12
- 238000000034 method Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 21
- 238000012986 modification Methods 0.000 claims description 13
- 230000004048 modification Effects 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 claims description 11
- 238000001914 filtration Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 6
- 239000000463 material Substances 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 18
- 239000002023 wood Substances 0.000 description 14
- 238000013461 design Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 4
- 229910000831 Steel Inorganic materials 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 239000010959 steel Substances 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000009418 renovation Methods 0.000 description 2
- 235000009984 Pterocarpus indicus Nutrition 0.000 description 1
- 241000533793 Tipuana tipu Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种自然语言转SQL与Revit数据交互的系统,用于将自然语言转换为SQL并实现SQL和Revit之间的数据交互,该系统包括:创建与更新关联数据库模块、转换自然语言与执行SQL模块、动态更新Revit模型模块。通过本发明提供的技术方案,用户能使用自然语言经过系统转换与Revit模型之间进行数据交互,大幅度简化Revit模型的查询、修改、删除等工作流程,无需再使用专用工具或仅由专门技术人员完成,而是直接由普通用户采用自然语言通过人机交互系统界面实现与Revit模型的数据交互,降低了Revit模型的应用成本,增加了Revit/BIM模型从施工到运维阶段的应用场景。
Description
技术领域
本发明涉及Revit数据交互技术领域,具体涉及一种自然语言转SQL和Revit数据交互的系统。
背景技术
BIM(Building Information Modeling,建筑信息模型)模型,是由工程专业人员在建模工具中进行对象化模型创建,并建立好分类和属性,例如门、窗、墙体、设备等。在建筑工程等领域中,最常使用的建模工具软件是Revit。Revit模型建好后,成果是一个模型文件。模型中的数据是封闭的,无法直接打开查看,如需检索和更新,则需要使用建模工具打开模型文件进行操作,或通过对应软件的API进行数据读出和写入。
在Revit模型的应用中,大量出现对模型对象的检索和操作需求,例如,根据某一类型设备,基于某一楼层和具体位置的管路查找并进行操作,包括更新属性、删除对象等。Revit作为一款专业软件,现在的查找和操作,无论是使用Revit软件操作或是利用API操作,均需要专业人员进行。这一方面带来了高昂的人力成本和时间成本,另一方面,对于大型工程项目,模型体量庞大,全局检索将极为缓慢甚至无法完成。如通过API进行检索和操作,仍然需要对于Revit的族、属性、模型组织等有比较全面的基础知识,普通用户无法直接完成检索和编辑工作。在业主的运维阶段应用中,由于BIM 项目已经完成交付完成,后续缺乏专业人员跟进,导致Revit模型不能动态更新的问题,显得尤为突出。
为了绕开Revit模型的限制,在某些场景下,用户会将原始模型和管理任务分离,从原始模型中提取一部分信息,建立一个对象的清单,同时将部分对象的几何形体导出。后续的所有管理任务均基于这部分提取的对象/几何信息进行,和原始模型不再发生关联,请参考图1,基于该工作流程的模型对象应用主要存在以下几个问题:
(1)使用界面不友好:对模型对象进行较复杂的检索和属性修改,仍然需要专门人员操作。一线工作人员无法通过简单的、类似口语化的指令,完成模型的检索或者其它操作;
(2)无法对模型进行修改:如图1所示,现有工作流程从模型中提取数据,之后就与原模型无关。实际建筑的变化无法及时返回模型,导致模型和实际场景割裂。后期在项目翻新中,例如局部重新装修等,需要重新修改建立,带来了不必要的工作和成本;
(3)只能做简单属性修改:在实际应用中,建筑的Revit模型需要及时更新,例如删除设备,更换空调供应商等。在传统的流程中,用户只能对相关属性做一定更新,不支持对象的删除等操作。
综上所述,现有的工作流程,任何模型层面的更新和修改,只有在专业人员和专业工具的支持下才能完成。在实际应用中,由普通用户进行小规模的修改频繁发生,从而给模型拥有者带来了不必要的管理负担。
发明内容
为了解决对现有Revit模型工作流程不适用于非专业人员和在非专业工具上进行应用的缺陷,本申请提出将自然语言转化为SQL语句后和Revit进行数据交互的解决方案。
本发明解决其技术问题采用的技术方案如下:
本发明提供一种自然语言转SQL与Revit数据交互的系统,用于将自然语言转换为SQL并实现SQL和Revit之间的数据交互,该系统包括:创建与更新关联数据库模块:用于将Revit模型的数据信息导出从而创建关联数据库、以及将Revit模型的更新数据动态更新到关联数据库;转换自然语言与执行SQL模块:用于提取自然语言转化为与关联数据库相对应的查询和操作SQL指令、并对关联数据库执行SQL指令;转化的过程包括:将自然语言解析为关键词,将关键词与Revit模型的数据字典进行匹配获得标准关键词,将标准关键词自动生成SQL语句,取SQL语句中的数据对象查找和定位到关联数据库中的对象ID、将每一SQL语句按照定位到的对象ID分解为可执行的SQL指令;动态更新Revit模型模块:用于将对关联数据库执行SQL指令产生的新信息导入到Revit模型进行动态更新,实现普通用户通过自然语言与Revit模型进行数据交互。
优选地,将Revit模型的数据信息导出从而创建关联数据库具体包括:运用Revit模型的数据信息导出功能,通过ODBC数据格式将Revit模型的数据信息导入到标准数据库文件中构建关联数据库,实现对Revit模型的数据信息统一存储和管理;标准数据库文件为Access数据库、SQL Server数据库或Excel中的一种;Revit模型的数据信息为Revit模型的全部构件信息或选择部分构件信息;每一所述构件信息包括该构件的几何信息、空间位置信息和材质信息。
优选地,将Revit模型的更新数据动态更新到关联数据库具体包括:在Revit模型中为构件信息添加共享参数,在Revit模型中启动Revit DB Link插件即可将Revit模型的更新数据动态更新到关联数据库。
优选地,将自然语言解析为关键词具体包括:将自然语言拆分为句子,在每个句子中过滤掉停用词,并只保留词性为动词、名词和形容词的单词提取为关键词;将关键词与Revit模型的数据字典进行匹配获得标准关键词具体包括:将关键词与数据字典进行匹配,取数据字典中匹配到的对象为标准关键词。
优选地,数据字典用于建立自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系;Revit模型标准关键词由Revit模型自动生成;自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系的建构过程包括:从文献或/和用户端收集与Revit模型用户相关的自然语言,借助文本分词技术和词频分析技术进行自然语言分词词频统计;通过定义过滤词表和添加自定义词表,得到过滤后的有效关键信息词表,完成对自然语言关键词的提取与整理;采用语义网络构建,提取有效关键信息词表生成语义网络图表,得到关键信息项之间的相关关系。
优选地,自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系的建构过程还包括:将涉及范围值的自然语言修正分解为标准关键词及其范围值的组合信息。
优选地,将标准关键词自动生成SQL语句的具体过程包括:采用能实现标准关键词和SQL语句之间互相转换的工具将标准关键词生成一个模拟的SQL语句;取SQL语句中的数据对象查找和定位到关联数据库中的对象ID、将每一SQL语句按照定位到的对象ID分解为可执行的SQL指令的具体过程为:每个对象属性在所述关联数据库中匹配一或多个对象ID,为每个对象ID生成一条可执行的SQL指令。
优选地,对关联数据库执行操作具体包括:运行可执行的SQL指令,实现对关联数据库进行数据信息的查询、修改、或对象删除。
优选地,将对关联数据库执行SQL指令产生的新信息导入到Revit模块进行动态更新的过程具体包括:手工启动或编写代码自动启动Revit DB Link插件将所述关联数据库的更新信息同步更新到Revit模型。
优选地,对关联数据库执行操作还包括:运行可执行的SQL指令,实现对关联数据库进行对象添加;在对关联数据库进行对象添加后,需要利用Dynamo在Revit模型中内置节点后再启动Revit DB Link插件将关联数据库中添加的对象更新到Revit模型。
本发明的有益效果为:
本发明由普通用户使用自然语言经过系统转换成与Revit模型的规则相符的可执行SQL指令,再通过执行SQL指令对Revit模型关联的数据库进行数据查询和操作、并实施关联数据库与Revit模型之间数据交互,能够大幅度简化Revit模型的查询、修改、删除与添加对象的工作流程,无需再使用专用工具或仅由专门技术人员完成,而是直接由普通用户采用自然语言通过人机交互界面实现与Revit模型的数据交互,降低了Revit模型应用的成本,增加了Revit/BIM模型从施工到运维阶段的应用场景。
附图说明
图1是现有技术从Revit模型中提取一部分数据进行任务管理的工作流程图。
图2是本发明实施例提供的自然语言转SQL和Revit数据交互的系统流程图。
具体实施方式
下面结合附图以及具体实施方式,对本发明做进一步描述:
请参考图2,本发明提供一种自然语言转SQL与Revit数据交互的系统,用于将自然语言转换为SQL并实现SQL和Revit之间的数据交互,该系统包括:创建与更新关联数据库模块:用于将Revit模型的数据信息导出从而创建关联数据库、以及将Revit模型的更新数据动态更新到关联数据库;转换自然语言与执行SQL模块:用于提取自然语言转化为与关联数据库相对应的查询和操作SQL指令、并对关联数据库执行SQL指令;转化的过程包括:将自然语言解析为关键词,将关键词与Revit模型的数据字典进行匹配获得标准关键词,将标准关键词自动生成SQL语句,取SQL语句中的数据对象查找和定位到关联数据库中的对象ID、将每一SQL语句按照定位到的对象ID分解为可执行的SQL指令;动态更新Revit模型模块:用于将对关联数据库执行SQL指令产生的新信息导入到Revit模型进行动态更新。
具体地,Revit软件作为BIM技术的主要建模软件得到了很多建筑设计师的青睐。但是新的问题也在应用它的过程中随之产生,如要求超高的电脑配置、打开大体量Revit模型时系统变卡顿、无法满足非设计人员对模型细节的查看等。针对这些问题的出现对其进行轻量化的思想便应运而生。轻量化的思想是将Revit二次开发技术与WebGL技术相结合,开发出Revit轻量化模型显示平台。这种思路的主要工作如下:(1)模型轻量化处理和数据结构转换。利用RevitSDK提供的IExporterIFC接口函数开发插件将Revit模型导出为IFC模型文件,在深入研究其中所包含的建筑要素和模型轻量化方法的基础上确立了轻量化显示数据和轻量化方法,据此建立轻量化模型和JSON格式文件的数据结构,并利用模型数据导出接口函数对Revit软件进行二次开发,实现模型数据的导出和Revit模型数据结构到JSON数据结构的转换。(2)实现Revit模型的几何转换和轻量化显示。通过对WebGL渲染框架的研究,选择Three.js作为Revit模型的渲染框架。并应用其提供的ObjectLoder函数将模型转换为三角面片实现Revit模型的几何转换,结合WebGL技术和Three.js渲染框架将Revit模型渲染在浏览器端实现轻量化显示。这种思路存在两个应用问题,一是仍然需要专业人员进行应用,二是数据从Revit模型导出之后,数据和Revit模型发生了分离,不能再进行数据交互。另外一种应用思路则是图1所示的工作流程,存在的问题是任何模型层面的更新和修改,只有在专业人员和专业工具的支持下才能完成。在实际应用中,由普通用户进行小规模的修改频繁发生,从而给模型拥有者带来了不必要的管理负担。由此,本发明采用普通用户输入自然语言通过系统转化实现与Revit模型进行交互的思路。
进一步地,将Revit模型的数据信息导出从而创建关联数据库具体包括:运用Revit模型的数据信息导出功能,通过ODBC数据格式将Revit模型的数据信息导入到标准数据库文件中构建关联数据库,实现对Revit模型的数据信息统一存储和管理;标准数据库文件为Access数据库、SQL Server数据库或Excel中的一种;Revit模型的数据信息为Revit模型的全部构件信息或选择部分构件信息;每一构件信息包括该构件的几何信息、空间位置信息和材质信息。
具体地,Revit模型与运维数据库的交互与更新主要包含两个过程:一是以ODBC数据格式将Revit模型的数据信息导出到关联数据库中,从而创建初始关联数据库;二是使用Revit DB Link插件将关联数据库应用过程中产生的新数据导入到Revit模型中,完成联联数据库到Revit模型的信息更新过程,最终实现系统中信息的动态更新。上述的Revit模型与关联数据库信息的双向更新与交互中以ODBC数据源和Revit DB Link为主要的技术支撑:ODBC(pen Dty Connectivi ata O,开放式数据库互联)是一种标准的API接口,为实现异构数据库之间的互联互通提供了新的解决方案,具有标准化和开放性等优点。目前主流的数据库如SQL Server、Access和Oracle等都提供了ODBC驱动程序。Revit软件也提供了导出ODBC数据格式功能,可用于支持BIM软件与数据库之间的交互。Revit DB Link是一个用于维持Revit项目与Access、Excel和SQL Server数据库之间的连接关系的插件,存储在数据库中的信息修改之后,Revit DB Link可以将信息从数据库导入到Revit模型以更新相对应的信息。
进一步地,将Revit模型的更新数据动态更新到关联数据库具体包括:在Revit模型中为构件信息添加共享参数,在Revit模型中启动Revit DB Link插件即可将Revit模型的更新数据动态更新到关联数据库。
具体地,关联数据库是以表视图的形式显示Revit项目信息,可以在导入数据库之前对该表视图进行编辑,也可以通过创建Revit共享参数的方式,在模型构件的属性列表中添加新字段。之后在对关联数据库进行整合和更新时对这些新字段所做的任何更改都会在导入Revit软件中自动更新。
Revit DB Link是一个传递信息到数据库中的插件,利用它可以使得 Revit 中的建筑信息和数据库软件建立双向更新的。Revit DB Link把 Revit 中建立的三维模型信息导出到数据库中进行存储,这些信息在数据库中以表视图形式进行显示。在数据库端对信息进行修改编辑后还可以再将信息从数据库传递回 BIM 模型中。
进一步地,将自然语言解析为关键词具体包括:将自然语言拆分为句子,在每个句子中过滤掉停用词,并只保留词性为动词、名词和形容词的单词提取为关键词;将关键词与Revit模型的数据字典进行匹配获得标准关键词具体包括:将关键词与所述数据字典进行匹配,取数据字典中匹配到的对象为标准关键词。
具体地,对自然语言进行解析,现有技术支持汉语的人工智能算法库,可以直接调用。以SQL Translator工具为例 ,这是一个支持汉语表达,并直接将其转化为SQL命令的开源软件。用户可以从网上下载并直接部署到自己的计算机上。输入汉语指令,该算法将输出一条对应的SQL命令,其中名词、动词、形容词等会全部解析成规范的形式。
以下为自然语言解析为关键词的实施例:输入“找出木头桌子”,输出关键词“桌子”、“木头”。上述解析的结果,不一定能直接用于对Revit模型进行检索和操作,需要通过一次转译和相应的处理。这里的基本思路是,对Revit模型建立数据字典,将自然语言解析的关键词与数据字典进行匹配,从而将自然语言解析的关键词转化为符合Revit规则的标准关键词。
进一步地,数据字典用于建立自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系;Revit模型标准关键词由Revit模型自动生成;自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系的建构过程包括:从文献或/和用户端收集与Revit模型用户相关的自然语言,借助文本分词技术和词频分析技术进行自然语言分词词频统计;通过定义过滤词表和添加自定义词表,得到过滤后的有效关键信息词表,完成对自然语言关键词的提取与整理;采用语义网络构建,提取有效关键信息词表生成语义网络图表,得到关键信息项之间的相关关系。自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系的建构过程还包括:将涉及范围值的自然语言修正分解为标准关键词及其范围值的组合信息。
具体地,数据字典是一个存放有数据库所用的有关信息,在数据库设计的初期将数据库中的各类数据的描述集合在一起,用于在开发,维护或者其他需要的时候使用。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。数据字典为用户提供了一系列的标准。数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完盖。这是数据库设计中数据库的主要作用。开发和维护人员在遇到不了解的条目的时候,可以通过数据字典得到相应条目的解释,比如数据的类型,可能预先定义的值,及相关的文字性描述。这些解释可以减少数据之间的不兼容现象。在开发的程序(系统)中的数据字典。可以帮助开发人员理解各个数据项目的类型、数值和它们与现实世界中的对象的关系。而在已经投入使用的系统中的数据字典,更多的是用于规范化用户的数据输入。本申请中的数据字典,即用于规范化用户的数据输入,当在输入框中输入的自然语言言转化为关键词后,通过数据字典匹配到了Revit模型中的规范数据,从而得出精确的、有用的输入数据,并得到所需要的结果反馈。
以下为自然语言转换的关键词匹配Revitc模型数据字典的应用实施例。首先,针对Revit模型中的对象分类/属性,由于Revit模型是建筑专用的BIM模型,因此具有固定的保留字和名词,包括分类系统。例如,门、窗、电气、管线等均有一致性的标准化定义,每一种对象的属性均有明确的定义,例如“材质”,“体积”等。我们通过建立数据字典,即可以方便的将自然语言和实际的Revit模型表达关联起来。另外,由于Revit模型除自带的族和属性外,还支持用户自定义族和对象,因此对于非标准化分类的情况,需要进行模糊检索处理。其次,针对Revit模与时共进对象的具体型号,一般完全由用户定义。例如“250V电缆”,或者“600x600结构柱”等,这部分需要作为检索内容的一部分,支持用户的关键词对应检索。再次,在自然语言中,往往会包括空间、楼层的定义。例如“2层楼”或“302房间”等,这部分需要正确的对应到楼层和房间定义。最后,用户可能会定义更为详细的筛选要求,例如“长在5米以下的”等,这部分通过SQL Translator的语句,可以将关键词修正为“长度”后执行。以上是对如何转译SQL语句的一个简单说明,在后续提供了几个实施例,用于具体阐述如何解决SQL语句对模型的有效查询。
进一步地,将标准关键词自动生成SQL语句的具体过程包括:采用能实现标准关键词和SQL语句之间互相转换的工具将标准关键词生成一个模拟的SQL语句;取SQL语句中的标准关键词查找和定位到关联数据库中的对象ID、将每一SQL语句按照定位到的对象ID分解为可执行的SQL指令的具体过程为:每个对象属性在所述关联数据库中匹配一或多个对象ID,为每个对象ID生成一条可执行的SQL指令。
具体地,下面是一些自然语言和其对应的SQL语句,以及转译后的可执行SQL命令的具体实施例,其中“转化为标准关键词及生成为SQL语言”列中汉字部分为标准关键字,“处理后可执行的SQL指令”列中汉字部分为标准关键词定位的对象ID,这样,通过可执行的SQL指令,我们能够定位到具体的指令对象,即得到对应的对象ID。
进一步地,对关联数据库执行操作具体包括:运行可执行的SQL指令,实现对关联数据库进行数据信息的查询、修改、或对象删除。将对关联数据库执行SQL指令产生的新信息导入到Revit模块进行动态更新的过程具体包括:手工启动或编写代码自动启动RevitDB Link插件将所述关联数据库的更新信息同步更新到Revit模型。对关联数据库执行操作还包括:运行可执行的SQL指令,实现对关联数据库进行对象添加;在对关联数据库进行对象添加后,需要利用Dynamo在Revit模型中内置节点后再启动Revit DB Link插件将关联数据库中添加的对象更新到Revit模型。
具体地,基于以上的方法,能够从整体上解决目前模型应用中,快速的让一般非专业用户对模型进行检索和修改,拓宽模型的具体应用场景。避免了大量简单的修改需要专业人员和专业工具介入的现状,从实质上改变三维模型在实际业务中的应用方式。数据库表的属性被更新,后一步就是把数据库的信息重新导回到Revit中,这可以通过Revit DBLink手动操作,也可以通过代码自动完成。以上的方式,可以用于其它数据信息的修改,特别是删除对象。在模型中添加对象,涉及到定位和朝向等,无法通过Revit DB Link实现,但仍可以结合Dynamo等工具,快速将对象添加到对应的位置。
以下根据实际应用的场景需求,给出三个实施例,说明如何实现自然语言转换为可执行的SQL指令。
实施例一:找到所有的木头桌子。
步骤一,翻译自然语言,得到谓语,宾语,并从宾语中分解出形容词和名词。本实施例说明了一个最简单的自然语言例子。采用SQL Translator可以得到一个模拟的查询语句:
桌子 WHERE MATERIAL=“木头”
步骤二,将得到的关键词根据Revit模型进行转译,得到可用的SQL命令本实施例中,一共只有两个关键词,“木头”和“桌子”。因此首先需要分析名词“桌子”,通过数据字典将其与Revit模型中的类别(Category),族(Family),和型号(Type)名称进行匹配。可以发现类别“家具”、“家具系统”与桌子相关;在这两大类对象中继续查找相关的族,发现族“方桌”、“办公桌”、“家庭木桌”与桌子相关,因此系统首先筛选出“方桌”、“办公桌”、“家庭木桌”三个族。
按照Revit模型的类型-族-型号,三层分解,下一步是通过形容词“木头”进行匹配,确定对象的范围。形容词在Revit中会以多种形式出现:
在本实施例中,在第一项族名称中,成功匹配了“家庭木桌”,在对象标准属性和自定义属性匹配中,没有发现符合“木头”的对象。因此,可以知道,“木头桌子”的筛选结果是从数据库的“家具”table,找到所有族名称为“家庭木桌”的对象。
根据Revit模型的数据库规则,对象ID必须通过“类型ID”而不是族名称来查找,因此最终的SQL语句分解为两句指令,第一句是从“家具类型”table中,通过族名称“家庭木桌”,获取所有“类型ID”。一个类型ID,对应的是一种型号的家庭木桌,例如红木桌子,餐桌等。得到所有“类型ID”后,最终从“家具”table中查找所有的对象ID。这样通过以下两个SQL指令,我们可以获取到所有需要的木桌ID:
A = SELECT 类型ID FROM 家具类型 WHERE 族名称=“长方形木桌”
B = 家具 WHERE 类型ID in A
为了便于理解,下将该Revit模型的家具类型、家具两个数据表的样例展示示如下,
家具类型:
ID | 型号 | 制造商 | Omniclass编号 | 部件代码 | 族名称 | 类型名称 |
426912 | Machester Base | Nbimer互联网+建筑设计的平台 | 23.40.20.00 | E2020200 | 长方形木桌 | 30〃ⅹ60〃 |
426914 | Machester Base | Nbimer互联网+建筑设计的平台 | 23.40.20.00 | E2020200 | 长方形木桌 | 48〃ⅹ144〃 |
对家具类型表查询后,得到两个ID:426912和429614,然后根据此类型ID,查询家具表即可得到所有的“木头桌子”对象。
家具:
ID | 类型ID | 创建的阶段 | 标高 |
428032 | 426912 | 0 | 355 |
428071 | 426912 | 0 | 355 |
428167 | 426912 | 0 | 212918 |
428221 | 426914 | 0 | 212918 |
428248 | 426914 | 0 | 212918 |
428396 | 426914 | 0 | 355 |
实施例二,找到2楼的冷水用三通,钢塑材料,直径不超过25密。
步骤一,翻译自然语言,得到谓语,宾语,并从宾语中分解出形容词和名词。
本实施例是一个更为接近实际应用的查找指令,用户通过空间和多重属性限制,去查找需要的模型对象。
SQLTranslator可以简单的找到以下关键词:
名词(宾语),三通
动词(谓语),找到
限制条件:2楼,冷水,钢塑材料,25密
这些信息不能直接用于检索Revit模型产生的数据库,需要通过进一步转译,才能对应到Revit的数据库信息中。
步骤二,将得到的关键词根据Revit模型的数据字典进行转译,得到可用的SQL命令。
本指令关心的对象是三通,通过数据字典可以知道这是一种管件。即主要查询的对象是数据库中的管件表。
限制条件又可以分成两大类,“2楼”是空间要求,对应的Revit属性是“标高”,其余的属性,可以参照实施例一的方法顺序寻找,下面分别说明。
1)2楼在Revit中的常用标高表示是2F,因此可以在标高表中直接查询“2F”,得到相关的标高ID。在本实施例中,我们查询到以下六个标高定义,均包含2F关键词。
ID | 类型ID | 设计选项 | 名称 | 结构 | 建筑楼层 | 上方楼层 | 立面 |
7619907 | 2358245 | 2F(S) | 1 | 0 | 6.0 | ||
7619922 | 2358245 | 2F(A) | 0 | 1 | 6.0 | ||
7620020 | 2358245 | W-2F(A) | 0 | 1 | 5.4 | ||
7620025 | 2358245 | W-2F(S) | 1 | 0 | 5.4 | ||
7620055 | 2358245 | W-2F(A) | 0 | 1 | 3.8 | ||
7620067 | 2358245 | W-2F(S) | 1 | 0 | 3.8 |
2)冷水、钢塑材料。这两个属性需要从管件的类型、族、型号、属性等多个维度进行检索。在本例中,类型已经确定为管件,因此我们在族Family、型号Type,以及关联属性中逐一查找,得到以下结果:族名称中,发现了包括“钢塑复合管”文字的族;型号中,没有发现相关信息;管件属性中,发现“系统分类”属性含有“家用冷水”;因此最后应当提取的对象为:族名称含有“钢塑”关键词,系统分类中含有“家用冷水”关键词。
3)直径不超过25密。和之前的属性不同,这是一个数值查询要求,即三通的管径必须小于25mm。这可以利用管件表中,最大尺寸这一属性进行比较得到。
综合以上的所有分析结果,得到实际的查询描述是:在管件表中查找所有对象,其类型对应的族,必须含有“三通”和“钢塑”两个关键词,其属性必须满足:a) 系统分类为“家用冷水”;b) 最大尺寸小于0.025;c) 标高ID在2楼对应的6个ID中。
最终翻译成可执行的SQL指令为:
A = SELECT类型ID FROM 管件类型 WHERE LOCATE(“三通”, 族名称) ANDLOCATE(“钢塑”, 族名称)
B = SELECT ID FROM 标高 WHERE LOCATE(“2F”, 名称)
C = 管件 WHERE 类型ID in A AND 标高ID in B AND 系统分类=“家用冷水” AND 最大尺寸<=0.025
检索结果样例如下,注意三通管径最大为0.025,最后一列是标高ID,7619922对应的标高表的值是2F(A)。
ID | 类型ID | 创建的阶段 | 系统缩写 | 总体大小 | 系统类型 | 系统分类 | 系统名称 | 最大尺寸 | 最小尺寸 | 尺寸 | 体积 | 标高 |
8257021 | 7551877 | 110001 | MWSS | 25 mmØ-20 mmØ-20 mmØ | 7555873 | 家用冷水 | MWSS2 | .025 | .02 | 25 mmØ-20 mmØ-20 mmØ | 6.42392047770923E-05 | 7619922 |
8257029 | 7551877 | 110001 | MWSS | 20 mmØ-15 mmØ-15 mmØ | 7555873 | 家用冷水 | MWSS2 | .02 | .015 | 20 mmØ-15 mmØ-15 mmØ | 4.68536667058367E-05 | 7619922 |
8257043 | 7551877 | 110001 | MWSS | 20 mmØ-20 mmØ-15 mmØ | 7555873 | 家用冷水 | MWSS2 | .02 | .015 | 20 mmØ-20 mmØ-15 mmØ | 5.37397894876407E-05 | 7619922 |
8257047 | 7551877 | 110001 | MWSS | 20 mmØ-15 mmØ-15 mmØ | 7555873 | 家用冷水 | MWSS2 | .02 | .015 | 20 mmØ-15 mmØ-15 mmØ | 4.06701832881215E-05 | 7619922 |
8257157 | 7551877 | 110001 | MWSS | 25 mmØ-20 mmØ-15 mmØ | 7555873 | 家用冷水 | MWSS2 | .025 | .015 | 25 mmØ-20 mmØ-15 mmØ | 5.0395669942068E-05 | 7619922 |
…… | …… | …… | …… | …… | …… | …… | …… | …… | …… | …… | …… | …… |
实施例三:把地下室1层的两台空调品牌换成海尔.
步骤一,翻译自然语言,得到谓语,宾语,并从宾语中分解出形容词和名词。
该指令是一个常见的维护场景,用户可能希望更换两台旧空调,在原先的工作模式下,需要打开模型,手动更新品牌参数,再上传到平台转换。采用本发明的技术,可以通过类似自然语言的指令快速完成。
名词(宾语):品牌;
动词(谓语):把……换成;
限制条件:地下室1层,两台,空调;
这些信息不能直接用于对Revit数据库进行操作,需要转译成符合Revit要求的指令。
步骤二,将得到的关键词根据Revit模型进行转译,得到可用的SQL命令
地下室1层的处理方式与实施例二类似,通过在标高表中检索B1关键词,找到所有对应的标高ID。
ID | 类型ID | 设计选项 | 名称 | 结构 | 建筑楼层 | 上方楼层 | 立面 |
7620019 | 2358245 | W-B1(S) | 1 | 0 | -3.7 | ||
7620023 | 2358245 | W-B1(A) | 0 | 1 | -3.7 |
分别在类型category,族名称family,型号type和属性中查找限制条件:空调,在族名称找到了对应关键词,且空调属于Revit的机械设备表;两台,在以上所有查找范围中未发现,需要提请用户进一步确认。
综合以上的转译结果,得到可执行的SQL指令:
A =类型ID FROM 机械设备类型 WHERE LOCATE(“空调”, 族名称)
B = SELECT ID FROM 标高 WHERE LOCATE(“B1”, 名称)
C = 机械设备 WHERE 类型ID in A AND 标高ID in B
经过查询后,得到地下室1层的空调,共有6台:
ID | 类型ID | 创建的阶段 | 拆除的阶段 | 设计选项 | 机械设备集 | 重要路径 | 计算的压降 | 计算的流量 | 部件名称 | 系统分类 | 系统名称 |
780013 | 4538863 | 110001 | 电力,循环供水,循环回水 | ||||||||
7800446 | 4538863 | 110001 | 电力,循环供水,循环回水 | ||||||||
7800508 | 4538863 | 110001 | 电力,循环供水,循环回水 | ||||||||
7800546 | 4538863 | 110001 | 电力,循环供水,循环回水 | ||||||||
7800647 | 4538863 | 110001 | 电力,循环供水,循环回水 | ||||||||
7803113 | 4538863 | 110001 | 电力,循环供水,循环回水 |
此时,可以进一步要求用户缩小范围,指出具体哪两台空调需要更换,或者通过图形的交互式方式,由用户在图中框选确认,然后针对选中的两台空调进行具体的数据库操作。
步骤三,针对查找的对象进行操作,例如修改属性等
该指令要求修改对象的品牌属性。在Revit模型中,品牌是属于机械设备类型表中的“制造商”信息。对应的SQL语句:
UPDATE 机械设备类型 SET 制造商=“海尔” WHERE 类型ID in D
这里D是由用户指定的两台空调的类型ID集合。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。
需要说明的是:以上所述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”“本次”、“当次”、“上次”和“该” 也旨在包括多数形式,除非上下文清楚地表示其他含义。
Claims (10)
1.一种自然语言转SQL与Revit数据交互的系统,用于将自然语言转换为SQL并实现SQL和Revit之间的数据交互,其特征在于,该系统包括:
创建与更新关联数据库模块:用于将Revit模型的数据信息导出从而创建关联数据库、以及将Revit模型的更新数据动态更新到关联数据库;
转换自然语言与执行SQL模块:用于提取自然语言转化为与关联数据库相对应的查询和操作SQL指令、并对关联数据库执行SQL指令;
所述转化的过程包括:将自然语言解析为关键词,将关键词与Revit模型的数据字典进行匹配获得标准关键词,将标准关键词自动生成SQL语句,取SQL语句中的标准关键词查找和定位到关联数据库中的对象ID、将每一SQL语句按照定位到的对象ID分解为可执行的SQL指令;
动态更新Revit模型模块:用于将对关联数据库执行SQL指令产生的新信息导入到Revit模型进行动态更新。
2.根据权利要求1所述自然语言转SQL与Revit数据交互的系统,其特征在于,所述将Revit模型的数据信息导出从而创建关联数据库具体包括:
运用Revit模型的数据信息导出功能,通过ODBC数据格式将Revit模型的数据信息导入到标准数据库文件中构建关联数据库,实现对Revit模型的数据信息统一存储和管理;
所述标准数据库文件为Access数据库、SQL Server数据库或Excel中的一种;
所述Revit模型的数据信息为Revit模型的全部构件信息或选择部分构件信息;
每一所述构件信息包括该构件的几何信息、空间位置信息和材质信息。
3.根据权利要求2所述自然语言转SQL与Revit数据交互的系统,其特征在于,所述将Revit模型的更新数据动态更新到关联数据库具体包括:在Revit模型中为所述构件信息添加共享参数,在Revit模型中启动Revit DB Link插件即可将Revit模型的更新数据动态更新到关联数据库。
4.根据权利要求1所述自然语言转SQL与Revit数据交互的系统,其特征在于,所述将自然语言解析为关键词具体包括:将自然语言拆分为句子,在每个句子中过滤掉停用词,并只保留词性为动词、名词和形容词的单词提取为关键词;
所述将关键词与Revit模型的数据字典进行匹配获得标准关键词具体包括:将关键词与所述数据字典进行匹配,取数据字典中匹配到的对象为标准关键词。
5.根据权利要求1或4所述自然语言转SQL与Revit数据交互的系统,其特征在于,
所述数据字典用于建立自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系;
所述Revit模型标准关键词由Revit模型自动生成;
所述自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系的建构过程包括:
从文献或/和用户端收集与Revit模型用户相关的自然语言,借助文本分词技术和词频分析技术进行自然语言分词词频统计;
通过定义过滤词表和添加自定义词表,得到过滤后的有效关键信息词表,完成对自然语言关键词的提取与整理;
采用语义网络构建,提取有效关键信息词表生成语义网络图表,得到关键信息项之间的相关关系。
6.根据权利要求5所述自然语言转SQL与Revit数据交互的系统,其特征在于,所述自然语言解析得到的关键词和Revit模型标准关键词之间的对应关系的建构过程还包括:将涉及范围值的自然语言修正分解为标准关键词及其范围值的组合信息。
7.根据权利要求1所述自然语言转SQL与Revit数据交互的系统,其特征在于,所述将标准关键词自动生成SQL语句的具体过程包括:采用能实现标准关键词和SQL语句之间互相转换的工具将标准关键词生成一个模拟的SQL语句;
所述取SQL语句中的标准关键词查找和定位到关联数据库中的对象ID、将每一SQL语句按照定位到的对象ID分解为可执行的SQL指令的具体过程为:每个标准关键词在所述关联数据库中匹配一或多个对象ID,为每个对象ID生成一条可执行的SQL指令。
8.根据权利要求1所述自然语言转SQL与Revit数据交互的系统,其特征在于,所述对关联数据库执行操作具体包括:运行可执行的SQL指令,实现对关联数据库进行数据信息的查询、修改、或对象删除。
9.根据权利要求1所述自然语言转SQL与Revit数据交互的系统,其特征在于,所述将对关联数据库执行SQL指令产生的新信息导入到Revit模块进行动态更新的过程具体包括:手工启动或编写代码自动启动Revit DB Link插件将所述关联数据库的更新信息同步更新到Revit模型。
10.根据权利要求8所述自然语言转SQL与Revit数据交互的系统,其特征在于,所述对关联数据库执行操作还包括:运行可执行的SQL指令,实现对关联数据库进行对象添加;在对关联数据库进行对象添加后,需要利用Dynamo在Revit模型中内置节点后再启动RevitDB Link插件将关联数据库中添加的对象更新到Revit模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311591854.7A CN117290379B (zh) | 2023-11-27 | 2023-11-27 | 一种自然语言转SQL和Revit数据交互的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311591854.7A CN117290379B (zh) | 2023-11-27 | 2023-11-27 | 一种自然语言转SQL和Revit数据交互的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117290379A true CN117290379A (zh) | 2023-12-26 |
CN117290379B CN117290379B (zh) | 2024-03-15 |
Family
ID=89248466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311591854.7A Active CN117290379B (zh) | 2023-11-27 | 2023-11-27 | 一种自然语言转SQL和Revit数据交互的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117290379B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090033656A1 (en) * | 2007-07-30 | 2009-02-05 | Larkins Darren | Database driven relational object modeling and design system, method and software |
CN110134724A (zh) * | 2019-05-15 | 2019-08-16 | 清华大学 | 一种建筑信息模型的数据智能提取与显示系统及方法 |
WO2021114479A1 (zh) * | 2019-12-11 | 2021-06-17 | 清华大学 | 一种声控建筑信息模型三维显示系统和方法 |
CN115269638A (zh) * | 2022-07-25 | 2022-11-01 | 中国核工业华兴建设有限公司 | 一种动态数据集自动关联bim模型中构件的方法 |
CN116861507A (zh) * | 2023-06-30 | 2023-10-10 | 浙江数智交院科技股份有限公司 | 建筑信息的建模方法、装置及电子设备 |
CN116977558A (zh) * | 2023-07-28 | 2023-10-31 | 中国长江三峡集团有限公司 | 一种三维模型更新方法、装置、计算机设备及存储介质 |
-
2023
- 2023-11-27 CN CN202311591854.7A patent/CN117290379B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090033656A1 (en) * | 2007-07-30 | 2009-02-05 | Larkins Darren | Database driven relational object modeling and design system, method and software |
CN110134724A (zh) * | 2019-05-15 | 2019-08-16 | 清华大学 | 一种建筑信息模型的数据智能提取与显示系统及方法 |
WO2021114479A1 (zh) * | 2019-12-11 | 2021-06-17 | 清华大学 | 一种声控建筑信息模型三维显示系统和方法 |
CN115269638A (zh) * | 2022-07-25 | 2022-11-01 | 中国核工业华兴建设有限公司 | 一种动态数据集自动关联bim模型中构件的方法 |
CN116861507A (zh) * | 2023-06-30 | 2023-10-10 | 浙江数智交院科技股份有限公司 | 建筑信息的建模方法、装置及电子设备 |
CN116977558A (zh) * | 2023-07-28 | 2023-10-31 | 中国长江三峡集团有限公司 | 一种三维模型更新方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
吴俊飞;刘清亮;付平;: "化工设备三维仿真建模及其可视化管理", 设备管理与维修, no. 08, 6 August 2006 (2006-08-06), pages 5 - 7 * |
韩莎莎;吴鑫淼;郄志红;冉彦立;: "基于BIM技术的大型渡槽管理信息系统研究", 水电能源科学, no. 06, 25 June 2018 (2018-06-25), pages 102 - 105 * |
Also Published As
Publication number | Publication date |
---|---|
CN117290379B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jiang et al. | Multi-ontology fusion and rule development to facilitate automated code compliance checking using BIM and rule-based reasoning | |
CN109492266B (zh) | 标准件模型数据的优化设计方法、装置及设备 | |
US9043346B2 (en) | Method of providing data included in building information modeling data file, recording medium therefor, system using the method, and method of providing data using building information modeling server | |
Bohm et al. | Product design support: exploring a design repository system | |
JP2020520485A (ja) | 視覚的分析との相互作用のため語用論の原理を適用するシステムおよび方法 | |
Xue et al. | Knowledge base and database representation for intelligent concurrent design | |
US8533140B2 (en) | Method and system for design check knowledge construction | |
US20130124194A1 (en) | Systems and methods for manipulating data using natural language commands | |
US10818082B2 (en) | Method and system for parametrically creating an optimal three dimensional building structure | |
Shin et al. | BIMASR: framework for voice-based BIM information retrieval | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN115202626A (zh) | 一种支持多技术栈组件的低代码前端开发方法 | |
Jiang et al. | Automatic building information model query generation | |
CN116991923A (zh) | 一种基于浏览器的拖拽式数据模型可视化建模系统及方法 | |
Zhekova et al. | QUESTION PATTERNS FOR NATURAL LANGUAGE TRANSLATION IN SQL QUERIES. | |
JPH07319918A (ja) | 文書検索対象指示装置 | |
Liu | Component-driven pocedural modeling for ancient Chinese architecture of the Qing Dynasty | |
CN117290379B (zh) | 一种自然语言转SQL和Revit数据交互的系统 | |
CN112394926A (zh) | 一种基于自然语言模型的码床系统 | |
CN115577526B (zh) | 一种面向行人交通建模的定制建筑信息模型构建方法 | |
Carvalho et al. | Conclave: Ontology-driven measurement of semantic relatedness between source code elements and problem domain concepts | |
CN115937881A (zh) | 一种知识图谱构建标准表格内容自动识别方法 | |
JPH1091494A (ja) | データベース操作プログラムの変換方法および変換装置 | |
Maissa et al. | Regulation checking in a virtual building | |
KR100704285B1 (ko) | 자원 디스크립션 프레임워크를 사용하여 제품 데이터온톨로지를 구성하는 장치 및 방법 |
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 |