基本工程项目设计系统的多组件设计约束的验证的制作方法

文档序号:16807671发布日期:2019-02-10 13:13阅读:170来源:国知局
基本工程项目设计系统的多组件设计约束的验证的制作方法

本pct申请要求保护2016年5月26日提交的美国非临时申请no.15/163,825的优先权。如果本申请的要素或本说明书、权利要求书或附图的一部分未以其它方式包含在本申请中,而是完全包含在上述优先权申请中,则该要素或部分通过引用而全部并入本文中。

本发明总体上涉及用于使用一个或更多个计算机辅助设计系统来验证机器或制造的设计的数据处理系统,并且更具体地说,本发明涉及指示设计变更以满足机器或制造的约束的失败。



背景技术:

开发、建设、以及管理大规模基本工程项目(capitalproject)(诸如,发电厂(例如,燃煤发电设施)、大型船舶(例如,军用航运、游轮、或货船)、以及海上石油平台)需要协调在数量级方面大于较小常见项目(例如,建筑和销售十间房子)的规模上的处理和数据。因此,大规模基本工程项目通常需要大体上更加综合的生产和管理解决方案。

响应于这种需求,本领域技术人员已经开发了综合的3d设计程序(例如,由阿拉巴马州亨茨维尔的intergraph公司分销的enterprise),其专门针对这种大型基本工程项目的严格要求而配置。尤其是,这种类型的设计程序(还被称为“厂级程序(plantprogram)”)可以被实现为广泛的应用套件,该应用套件管理大规模基本工程项目的大部分或全部阶段,从初始概念到设计、施工、移交、维护、管理、以及退役。

对于每个设计项目,数据模型存储有关该项目的各种组件的信息,并且具体为当在设计中创建或修改组件时捕获的各种项目组件的固有特性。这种固有特性的模式是软件开发人员提前知道的。例如,该系统将不准许两个组件占用相同的物理体积(physicalvolume),并且某种类型的预编程组件(例如,管道(pipe))可以在该软件中被表示为具有可以由终端用户定制的某些物理属性(例如,最大流体流速)。

用户通常必需确保基本工程项目的各种组件满足设计约束,其中有两种类型:对单个组件的约束和与两个或更多个组件相关的约束。在本领域中已知对cad软件进行编程以将设计约束应用于单个组件,并且以图形方式向设计人员指示何时不满足这种约束。这样的编程是可能的,因为对单个组件的约束依赖于这些组件的事先知道的固有特性。

然而,验证多组件设计约束要困难得多。例如,设计人员可能要求(例如,依据安全规定)阀门必须可从通道到达,使得在紧急情况下可以由中等身材的人员快速且安全地操作。该要求对阀门与通道之间的距离进行了约束。这种关系就其性质而言,不是阀门或通道所固有的物理特性,并且该要求可能因法律管辖权而异(并且因此经受随时更改)。因此,它们无法合理地编程到cad软件中。典型的加工厂可能具有数千甚至数百万这样的约束,它们必须被手动地验证。

使问题复杂化的是,一些项目(诸如,发电厂)因它们的复杂性而可能由数百或数千个人、或者数十个或数百个团队在设计的不同方面一起工作来设计,并且这些团队中的每个团队可能对组件具有冲突的要求。例如,化学加工厂可能具有反应系统团队、机械系统团队、电气系统团队、保安和安全团队等。如果特定组件落入多个团队的工作范围,那么可能出现约束同步问题。因此,如果一个团队根据其设计约束放置一组件,那么第二团队可能根据自己的设计约束重新定位该组件,由此,从第一团队的角度来看这个组件是有缺陷的(这可以合理地假设该问题已经得到解决,并且可能会对以后学习其他方面感到不安)。由于对组件的这种持续不断修改,因而每次修改所需的重新检查量非常昂贵。因此,这种检查通常在建模的某些阶段进行。



技术实现要素:

本发明的各种实施方式允许验证多组件设计约束而大体上不影响3d设计程序的性能。在例示性实施方式中,基于规则的系统确认对大规模项目中组件的更改符合涉及该组件的规定设计要求。每个设计要求类似于规则。对于每条规则,存在两种情况;第一种情况是被评估的组件在该规则的观点中是被检查组件,并因此该规则需要找到其所需的功能相关参照组件,以符合该规则的规定设计要求。第二种情况是被评估的组件在该规则的观点中是功能相关参照组件,并因此该规则需要找到其所服务的被检查组件。

本发明的第一实施方式是,提供一种用于验证具有多个组件的基本工程项目的设计的系统。所述系统包括数据通信端口,该数据通信端口被配置成使用应用编程接口从设计所述基本工程项目的一个或更多个3d设计系统接收所述多个组件中的被检查组件的设计变更数据。所述系统还包括存储部,该存储部存储与一个或更多个规则有关的元数据,其中,所述一个或更多个规则中的每个定义了所述被检查组件与所述基本工程项目的至少一个其它功能相关参照组件之间的设计约束。所述系统还包括计算处理器。所述计算处理器被配置成确定与所述被检查组件有关的一个或更多个规则。所述计算处理器还被配置成将所述一个或更多个规则中的每个应用于(a)所述被检查组件的设计变更数据,和(b)所述规则的至少一个其它功能相关参照组件的、从所述一个或更多个3d设计系统获得的设计数据,其中,所述应用的步骤生成所述被检查组件是否满足所应用的规则的设计约束的判定。最后,所述计算处理器被配置成在数据库中存储指示每个这种判定的数据。

预期了第一实施方式的变型例。在一个变型例中,所述计算处理器还被配置成响应于从所述一个或更多个3d设计系统中的一个3d设计系统接收到针对指示所述被检查组件不满足的设计约束的数据的请求,而指导所述数据通信端口向该3d设计系统发送该数据。在另一变型例中,所述计算处理器还被配置成通过分析所接收的设计数据的部分与所述至少一个其它功能相关参照组件的设计数据的部分来应用规则。在又一变型例中,所述计算处理器还被配置成通过动态地确定如下的至少一个其它功能相关参照组件来应用规则:关于该至少一个其它功能相关参照组件,所述规则的元数据定义了与所述被检查组件的功能关系。

在又一变型例中,所述计算处理器还被配置成在所述数据库中存储与所述至少一个功能相关参照组件有关并且被用于应用所述规则的数据,这种数据在此被称为“重要数据(dataofsignificance)”。在该变型例中,应用规则的步骤可以包括访问先前与所述规则相关联地存储在所述数据库中的重要数据,并且如果所述重要数据从先前存储之时起未被更改,则省略所述规则的进一步处理。

在进一步的变型例中,所述计算处理器还被配置成按规则间隔识别设计数据已经被从所述设计中删除的被检查组件,并且从所述数据库去除与所识别的被检查组件相关联的一个或更多个不满足的设计约束。在另一变型例中,所述计算处理器还被配置成按规则间隔识别设计数据已经被从所述设计中删除的功能相关参照组件。在该变型例中,所述计算处理器被配置成,(a)针对每个这种功能相关参照组件,识别所述一个或更多个规则中的哪个规则提供与该参照组件功能相关的被检查组件;(b)重新应用每个所识别的规则,以生成所述被检查组件是否仍然满足所识别的规则的设计约束的判定;以及(c)在所述数据库中存储指示每个这种判定的数据。

本发明的第二实施方式是验证具有多个组件的基本工程项目的设计的由计算机实施的方法。所述方法包括以下步骤:使用应用编程接口从设计所述基本工程项目的一个或更多个3d设计系统接收所述多个组件中的被检查组件的设计变更数据。所述方法还包括以下步骤:从存储部获得与一个或更多个规则有关的元数据,其中,所述一个或更多个规则中的每个定义了所述被检查组件与所述基本工程项目的至少一个其它功能相关参照组件之间的设计约束。所述方法接下来包括以下步骤:由计算处理器将所述一个或更多个规则中的每个应用于(a)所述被检查组件的设计变更数据,和(b)所述规则的至少一个其它功能相关参照组件的、从所述一个或更多个3d设计系统获得的设计数据,其中,所述应用的步骤生成所述被检查组件是否满足所应用的规则的设计约束的判定。所述方法最后包括以下步骤:在数据库中存储指示每个这种判定的数据。

预期了第二实施方式的变型例。因此,一个变型例包括:响应于从所述一个或更多个3d设计系统中的一个3d设计系统接收到对指示所述被检查组件不满足的设计约束的数据的请求,而向该3d设计系统发送该数据。在另一变型例中,应用规则的步骤包括以下步骤:分析所接收的设计数据的部分与所述至少一个其它功能相关参照组件的设计数据的部分。在又一变型例中,应用规则的步骤包括以下步骤:动态地确定如下的至少一个其它功能相关参照组件:关于该至少一个其它功能相关参照组件,所述规则的元数据定义了与所述被检查组件的功能关系。

另一变型例包括:在数据库中存储重要数据。在该变型例中,应用规则的步骤可以包括访问先前与所述规则相关联地存储在所述数据库中的重要数据,并且如果所述重要数据从先前存储之时起未被更改,则省略所述规则的进一步处理。

另一变型例包括:按规则间隔识别设计数据已经被从所述设计中删除的被检查组件,并且从所述数据库去除与所识别的被检查组件相关联的一个或更多个不满足的设计约束。附加变型例包括:按规则间隔识别设计数据已经被从所述设计中删除的功能相关参照组件。该变型例还包括:(a)针对每个这种功能相关参照组件,识别所述一个或更多个规则中的哪个规则提供与该参照组件功能相关的被检查组件;(b)重新应用每个所识别的规则,以生成所述被检查组件是否仍然满足所识别的规则的设计约束的判定;以及(c)在所述数据库中存储指示每个这种判定的数据。

应用规则的步骤可以包括评估组件之间的功能关系:该功能关系是空间的或时间的,或者与所述基本工程项目的安全或有效或高效可操作性有关,或者与由所述基本工程项目执行的处理或者所述基本工程项目的任何组件的属性有关,该属性是机械的、电的、磁的、热的、听觉的、发光的、化学的、生物的、或放射性的,或者评估这些功能关系的任何组合。

本发明的第三实施方式是存储有程序代码的非暂时性计算机可读存储介质,该程序代码在由计算处理器执行时,执行上述由计算机实施的方法或任何其变型例。

本领域普通技术人员应当认识到,虽然在另选例中呈现了所述系统、方法以及计算机可读介质的上述实施方式和有关它们的变型例,但这些实施方式和变型例中描述的特征是可互操作的,并且本发明的其它实施方式可以包括它们的任何组合。

附图说明

根据参照下面紧接着概述的附图所讨论的以下“具体实施方式”,本领域技术人员应当更全面地理解本发明各种实施方式的优点。

图1示意性地示出了包含本发明的系统实施方式的环境。

图2示意性地示出了图1的系统实施方式的相关物理组件。

图3示意性地示出了图1的系统实施方式的相关逻辑组件及其功能关系。

图4是例示根据现有技术的验证具有多个组件的基本工程项目的设计的由计算机实施的方法的流程图。

图5是例示根据本发明的实施方式的、验证具有多个组件的基本工程项目的设计的改进的由计算机实施的方法的流程图。

具体实施方式

在例示性实施方式中,基于规则的系统确认对大规模项目的一个组件的更改符合涉及该组件的规定设计要求。每个设计要求都类似于规则。对于每条规则,存在两种情况;第一种情况是被评估的组件在该规则的观点中是被检查组件,并因此该规则需要找到其所需的功能相关参照组件,以符合该规则的规定设计要求。第二种情况是被评估的组件在该规则的观点中是功能相关参照组件,并因此该规则需要找到其所服务的被检查组件。

为此,该系统从一个或更多个3d设计系统接收(例如,利用应用编程接口(api)或3d设计程序的数据访问层)指示大规模项目的一个组件的更改的设计变更数据。作为响应,该系统获得对一个或更多个规则进行编码的元数据,每个规则定义了所更改的组件与该项目的至少一个其它功能相关参照组件之间的设计约束。使用通过元数据编码的规则,该系统判定所更改的组件与其它组件之间的关系是否符合设计规则。然后,该系统应用设计规则以判定所更改组件是否满足所述规则的指定设计约束。最后,该系统将指示该判定的数据存储在诸如数据库的存储装置中,并将该判定发送给一个或更多个所述3d设计系统。然后,用户或逻辑可以对该判定采取行动以确保符合该项目的设计约束。下面对细节进行讨论。

图1示意性地示出了包含本发明的系统实施方式的环境10。环境10优选地被配置成设计大规模基本工程项目。因此,环境10包括设计该项目的一个或更多个3d设计系统11、12、13。这种设计可能是协作的。例如,关于具有单个设计数据集的给定基本工程项目(例如,化学加工厂),结构工程师可以使用3d设计系统11来访问该数据集,化学工艺工程师可以使用3d设计系统12来访问该数据集,并且电气工程师可以使用3d设计系统13来访问该数据集。可以使用本领域已知的硬件来实现3d设计系统11、12、13,只要它们是根据本文描述的功能和处理配置的。

环境10还包括本发明的系统实施方式,通常在图1中示出为系统14。系统14可以使用本领域中已知的硬件来实现,该硬件根据本文描述的功能和处理来配置。这种实现的相关功能组件如下所述(图2所示),并在下面更详细地描述。尽管示出为单个装置,但系统14可以被实现为多个分离装置内的分布式系统,或者在一些实实施方式,被实现为可由诸如因特网的网络访问的云服务。

根据例示性实施方式,系统14提供与针对由3d设计系统11、12、13操纵的数据集的多组件设计约束检查相关的多个功能。具体来说,除其它外,系统14可以具有以下功能:

1)指定用于检查多组件设计约束的规则,并且在不满足约束时用信号通知;

2)检测、存储、维护、以及监视针对修改的监视器组件,所述修改出于多组件规则的目的而改变被认为“相关”的那些组件;

3)确保约束检查处理未修改组件数据;

4)识别被删除的功能相关参照组件,并重新检查与其相关的被检查组件;

5)识别在评估设计约束时使用的“重要数据”。例如,如果特定约束检查都可从通道到达阀门,那么通道的范围和位置是重要数据,但其它数据(像通道的厚度、其制造材料及其设计人员所提供的名称)是对该规则不重要的数据的示例-对这种数据的修改不需要调用该约束的重新检查;以及

6)准许设计人员指定与设计约束的某些偏差是可接受的。例如,如果约束是阀门离通道必须不超过1.5米,那么特定阀门违反几厘米可以被手动标记为可准许的例外。

3d设计系统11、12、13经由应用编程接口(api)15与系统14通信。api15可以是硬件或软件的任何组合,其包括数据访问层,这使得系统能够作为一个整体操作,并且可以利用本领域已知的任何通信设施(诸如,数据总线、局域网(lan)、广域网(wan)、虚拟专用网(vpn)、互联网、或这些的任意组合)。

根据所例示的实施方式,3d设计系统11、12和13访问与设计中的项目的一部分有关的3d模型数据(例如,一个组件或一组组件,诸如电气系统或阀门),下文中被称作“设计数据”。这种数据包括与项目的该部分的每个部件的物理和空间方面有关的数据;例如,部件的大小、位置以及取向。可以使用本领域已知的任何技术来提供这种访问。例如,设计数据可以被存储在任何3d设计系统11、12、13的本地数据库中,或者被存储在网络附接存储部(nas)中,并且3d设计系统11、12、13可以使用api15访问它。另选地,该设计数据可以被存储在存储区域网络(san)中。

另外,根据所例示的实施方式,系统14可以分离地保持设计数据的一部分,连同与一个或更多个规则有关且对一个或更多个规则进行编码的元数据;这些数据在下文中被称作“规则元数据”。下面结合图2更详细地描述规则元数据。

虽然图1示出了具有特别适合于实现本发明的系统实施方式的特定硬件配置的环境10,但它不应被视为限制。具体来说,系统14不必在物理上与3d设计系统11、12、13中的一个或全部不同,或者系统14不必使用api15与3d设计系统11、12、13进行通信。例如,系统14可以作为多任务操作系统中的服务而操作,该多任务操作系统使用单个计算装置同时执行3d设计程序,对于该单个计算装置来说,api15是该服务与程序之间的软件接口。计算机系统设计领域的普通技术人员可以设想落入如所附权利要求书阐述的本发明范围内的硬件和软件的其它排布结构。

图2示意性地示出了图1的系统14实施方式的相关物理组件。如前所述,服务器14经由所提到的api15与3d设计系统(未示出)进行通信。系统14包括:具有数据通信端口22的壳体21、计算处理器23以及存储部接口24。系统14还包括存储部25,该存储部25包含一个或更多个规则的元数据26、27、28。下面,对这些组件进行更详细地描述。

壳体21可以是本领域已知的计算机服务器壳体。壳体21包括数据通信端口22,所述数据通信端口22被配置成经由api15从一个或更多个3d设计系统接收组件的设计变更数据。“设计变更数据”是指示设计中基本工程项目的组件的设计数据的更改的数据。数据通信端口22可以是本领域中已知的用于将系统14以通信方式连接至api15的任何端口,并且例如可以是以太网端口。

壳体21还包括计算处理器23,其可以是本领域已知的传统中央处理单元(cpu)。计算处理器23经由存储部接口24从存储部25获得用于配置与组件有关的一个或更多个规则的元数据。然后,所述计算处理器23逐个地将每个规则应用于该组件的设计变更数据。该应用针对每个这样的被检查组件生成该被检查组件是否满足所应用的规则的设计约束的判定。然后,计算处理器23在数据库中存储指示每个这种判定的数据。计算处理器23对设计数据采取的特定操作将结合图3和5更详细地描述。计算处理器23可以随后控制数据通信端口22,以将指示每个这种判定的数据(并且具体为指示被检查组件不满足的设计约束的数据)经由api15数据发送回3d设计系统11、12、13中的一个。该发送可以对接收到设计变更数据进行响应,或者其可以对接收到关于该特定被检查组件或组件的集合的未满足设计约束的列表的单独请求进行响应。

壳体21包括存储部接口24,其用于将计算处理器23以通信方式连接至存储部25。存储部接口24可以是连接这些组件所需的硬件、固件或软件的任何组合。存储部25可以包括本领域中已知的任何常规数据库。例如,存储部25可以包括由加利福尼亚州雷德伍德市的oracle公司生产的oracle关系数据库管理系统(rdbms)。或者,该存储部可以包括由d.richardhipp开发的公共领域sqliterdbms。另选地或者另外,存储部25可以包括本领域中已知的任何常规文件系统。因此,存储部接口24可以包括数据库驱动程序,该数据库驱动程序特定于存储部25中存在的数据库所使用的数据格式或数据通信标准,或者特定于存储器25中存在的文件系统的文件系统驱动程序。

与本发明的实施方式相关,存储部25包括与一个或更多个规则有关的所提到的元数据26、27、28。每个规则定义了设计中第一组件与基本工程项目的至少一个其它功能相关参照组件之间的设计约束。因此,根据本发明所例示的实施方式,每个这样的规则与多组件设计约束有关。

应当理解,图2中所示系统实施方式的物理组件仅仅是示例性的,并且计算机系统设计领域的普通技术人员在本发明的范围内可以设想物理组件的其它排布结构或者可能被包括的其它物理组件。

图3示意性地示出了图1的系统实施方式的相关逻辑组件及其功能关系。主要逻辑组件是规则引擎31,其例如可以使用计算处理器23来执行。规则引擎31的目的是检测其数据已被创建、更改或从设计中删除的设计组件,并且执行与这些组件有关的规则,以判定该更改是否在设计人员确定的约束内。

可以以两种不同方式调用规则引擎31。首先,当系统14从3d设计系统11、12、13中的一个接收到设计变更数据32时,可以调用规则引擎31。例如,设计人员可以将阀门沿x方向移动0.5米,并且设计人员的系统向服务器传送与所更改的阀门设计有关的数据32。在一些实施方式中,变更由设计系统汇总在变更日志、事务日志、日报或其它此类列表中,并且规则引擎31通过下载变更日志并作为批处理执行规则来操作。在这些实施方式中,规则引擎31可以在手动命令时或定期安排上执行该批处理。在其它实施方式中,设计系统在将更改提交给设计时主动将设计变更数据32传送至规则引擎31。在一个这样的实施方式中,规则引擎31将设计变更数据32保存至其自己的变更日志中,以供如上所述的后续批处理。在另选实施方式中,规则引擎31立即处理这样的设计变更数据32。因为多个设计人员可以同时处理一个设计,所以在另选实施方式中,可能发生数据相干性(datacoherence)的问题,但可以使用本领域已知的方法来解决。为了具体性起见,以下描述假设使用批处理模式调用规则引擎31;本领域普通技术人员应当理解楚如何在其它上述配置中的一个中实现规则引擎31。

其次,可以在执行检查被删除功能相关参照组件的处理33时调用规则引擎31。一旦解释了图3的每个其它逻辑组件的目的,下面就对处理33的操作进行描述。在调用处理中识别的组件(无论是创建、变更、还是删除)在下文中都被称为“调用组件(invokingcomponent)”,并且可以是被检查组件或功能相关参照组件。本发明的各种实施方式有利地准许规则不仅仅在调用组件上操作(如本领域中已知的),而且准许将它们连接至功能相关参照组件。

一旦已经调用了规则引擎31,它必须针对更改日志中的每个更改确定哪些规则应用于在设计变更数据32中引用的调用组件。为此,规则引擎31访问与一个或更多个规则有关的元数据34。根据本发明的一个实施方式,这些元数据作为规则匹配元数据34a提供,其例如可以利用可扩展标记语言(xml)进行编码,或者被存储在电子表格或其它这样的机制中。

为了描述规则匹配元数据34a如何对规则到调用组件的分配进行编码,必须描述几个概括。第一种概括是认识到组件可以被分组成类型。例如,存在许多不同的可以被放在管道上的仪器:阀门、流量计、温度计等。因此,本发明的实施方式可以将所有这样的仪器描述为具有“pipeinstruments”类型。利用这种概括,规则匹配元数据34a可以被设计成,每当设计变更数据32指定具有“pipeinstruments”类型的任何调用组件时,指导规则引擎31评估特定规则。

第二种概括是认识到类型本身可以被设置成层次结构。因此,人们可以定义“系统”、“结构”、“管道”等的顶级类型。然后可以将“管道”类型划分为各种子类型;例如,上述“pipeinstruments”可以是一个子类型,而另一子类型可以是“pipespecialties”等等。这种概括准许规则设计人员将规则逻辑地组织到对应层次结构中。

第三种概括是认识到对象类型可能具有多个设计约束要进行评估,这意味着其可能具有多个规则。因此,将不同的规则应用于每个对象类型确保了该类型的每个对象都符合许多不同的设计要求。

考虑到这些概括,一个实施方式的规则引擎31确定用于使用如下的两个处理关于调用组件评估的规则。首先,针对每个调用组件,规则引擎31例如通过查阅数据库查寻表确定该组件所属的特定类型。其次,规则引擎31搜索规则匹配元数据34a以确定与该特定类型相关联的规则的数量。虽然规则的数量通常是正数,但如果没有必须由特定类型的组件满足的特定设计约束,则规则的数量可以为零。因此,该规则被确定为应用于该调用组件。

为了便于设计具有多组件关系设计约束的基本工程项目,设计人员可以定义各种规则以确保满足那些约束。使用规则对象代码35来实现规则。如本文所使用的“对象代码”指的是软件“对象”或“类”(如在面向对象编程领域中使用的那些术语),其向计算处理器提供用于评估规则的指令。根据本发明各种实施方式,规则描述了调用组件与一个或更多个相关组件之间的一个或更多个关系。这些组件之间的关系在本质上可以完全通用;举例来说,所述关系可以是空间的或时间的,或者与所述基本工程项目的安全或有效或高效可操作性有关,或者与由所述基本工程项目执行的处理或者所述基本工程项目的任何组件的属性有关,该属性是机械的、电的、磁的、热的、听觉的、发光的、化学的、生物的或放射性的特性有关,或为这些功能关系的任何组合。

应当理解,可以对规则进行参数化以提供重新使用和灵活性。例如,可以设计某个规则来将被调用组件与功能相关参照组件之间的距离与可接受值进行比较;这样的规则具有普遍效用。通过考虑被调用组件的类型、功能相关参照组件的类型以及该可接受值作为规则参数,针对该规则的规则对象代码35可以适用于任何数量的情况。因此,该规则可以适于确保阀门(调用部件)总是处于通道(参照组件)的人可到达距离(可接受值)内。例如,该人可到达距离本身可能基于位置而改变;人类的平均身高因国家而异。通过将规则参数化元数据34b与规则对象代码35分开,因此,可以有利地改变规则的评估,而无需对规则进行重新编码。

可以通过对规则参数化元数据34b中的调用组件的类型、功能相关参照组件的类型以及可接受值进行编码来实现规则的参数化。该编码可以是xml,或者任何其它合适的编码格式。应当理解,参数的上述描述是最小限度的;可以指定更一般的参数,并且参数化功能是完全通用的。实际上,因为规则可以使用恰当编程语言的全部能力来实现,所以可以通过多组件规则检查的设计约束的类型不受限制,并且可以是任意复杂的,使用任何数量的参数。只要提供恰当的规则参数化元数据34b,就能保持系统的灵活性。因此,例如,当规则匹配元数据34a可以指示要关于一种类型的调用组件评估特定规则时,该规则参数化元数据34b可以指示其仅应用于某些子类型。

该调用组件从规则的角度来看,可以是被检查组件或功能相关参照组件。对于该调用组件是被检查组件的情况来说,该规则评估和识别期望用于满足设计约束的一个或更多个功能相关参照组件。在该调用组件是功能相关参照组件的情况下,该规则从规则的角度评估设计变更数据是否属于“重要数据”。如果是,则该规则保存新的重要数据并识别受此设计变更影响的被检查组件,并最终逐个重新评估所识别的被检查组件。然而,如果不是,则该规则可以立即停止进一步处理。因此,在所例示的实施方式中,为此目的存在重要数据定义元数据34c。

然而,假设设计变更数据32表示重要数据被更改的调用组件。在规则引擎31已经确定哪些规则应用于给定调用组件之后,规则引擎31必须为每个这样的规则配置规则对象代码35。规则对象代码35读取相应的规则参数化元数据34b以创建规则对象实例36。

关于规则评估,存在两种可能的结果:设计变更数据32满足该规则所规定的所有条件,或者它们不满足。更确切地说,每个规则可以检测一个或更多个设计缺陷,并且该规则的评估确定检测到这些缺陷中的多少个。如果缺陷数为零,那么设计变更符合设计参数;而如果缺陷数量为正,那么该变更不符合设计参数,并出现错误情况。

例如,规则可能需要被检查组件在功能上与参照组件相关。一种可能的结果是设计系统根本不包含任何功能相关参照组件。当在被检查组件的功能相关参照组件之前创建被检查组件时,或者当删除该功能相关参照组件时,可能会出现该缺陷。另一种可能的结果是设计系统包含一个或更多个潜在相关参照组件,但它们都不满足由该规则定义的设计约束。该缺陷是可能会被不同地报告的分离错误情况。第三种可能的结果是设计系统包含一个或更多个潜在相关参照组件,并且多个这样的组件满足该设计约束。该规则可以处理它找到的所有潜在相关参照组件,并决定使用其中最好的一个。如果该规则找到它所需的一个相关参照组件,则这是成功情况。

为了提供针对报告错误情况的额外灵活性,可以提供本地化元数据34d。本地化元数据34d可以针对每个规则指定用于向基本工程项目设计人员提供约束是满足还是不满足的文本(采用本地语言)。因此,考虑人类必须可从通道到达的阀门的情况。该规则可能检测到的一种可能的错误情况是没有通道可以到达。另一种可能的错误情况是阀门与关联通道之间的距离因阀门或通道的重新定位(或删除)而被更改,因此阀门太靠近或太远而无法到达。本地化元数据34d针对每个可能的返回值指示要显示给设计工程师的文本。

一旦已经创建了规则对象实例36,规则引擎31知指导其将规则应用于被检查组件及其功能相关参照组件。这种应用的输出是被检查组件是否满足该规则的设计约束的判定。然后,可以将指示针对每个这样的规则的这些判定37a的数据缓存或永久地存储在规则结果存储库37中,以供稍后由一个或更多个3d设计系统或由其它计算机系统访问。可以被存储在规则结果存储库37中的特定数据37a例如包括:通过规则检查的命名类型的设计约束或缺陷、缺陷的文字描述、被检查组件的指示、在达到结果时使用的功能相关参照组件的列表的指示、以及结果本身。这些结果可以稍后被发送给设计人员进行审查。为了提供额外优化,规则对象实例36可以被缓存在存储器中,使得重复的规则调用不需要重复的数据库访问。

另外,规则结果存储库37可以存储可以某种方式被设计人员接受的设计约束违反的指示37b。例如,许多工程项目准许关于设计组件之间的功能关系的设计容限。因此,就设计人员已审查到约束违反而言,设计人员可以在规则结果存储库37中将数据37b指定为在设计容限(其本身在存储库中被足够详细地指定)内可接受的特定违反。如果做出这样的指定,那么系统不会进一步指示发生了违反。在约束重新检查期间也是如此:就重新检查约束导致类似的违反而言,指定已经完成的事实(如其在规则结果存储库37中的存在所示)操作以防止系统再次向设计人员标记该约束。

例如,可能需要在通道上方1.5米范围内存在某个阀门以提供可达性,但设计要求将阀门放置在最近通道上方1.502米处。在初步指示已经违反了约束时,设计人员可以将该违反指定为处于容限内。水平移动该阀门同时使其仍然精确地处于通道上方1.502米处(不同部位)的随后变更不会导致系统标记违反同一约束。

另外,为了实现与重要数据定义元数据34c有关的优化,规则结果存储库37还可以包括与特定规则判定37a相关联地存储的重要数据37c。这样的数据与由元数据34c结合给定规则定义的至少一个功能相关参照组件有关,并且由规则对象实例36用于得到规则判定37a。该优化可以由每个规则对象实例36执行。因此,规则对象实例36可以在执行重要计算或对3d设计系统的重要访问之前,首先访问先前与通过该实例实现的规则相关联地存储在数据库中的重要数据37c。然后,如果该重要数据自先前被存储之时起没有被更改,则该实例可以省略进一步处理。可以依次通过跟踪在第一实例中已触发规则调用的组件来判定重要数据是否已经改变。因此,如果由规则使用的功能相关参照组件在用于调用规则的更改日志中未出现,那么显然其数据根本未被更改。然而,如果该功能相关参照组件已经出现,则对设计系统的简单查询可以判定其重要数据是否已经被更改。通过这种优化,可以有利地避免进一步的计算密集型处理。

考虑到这些特征,现在提供对检查被删除组件的处理33的描述。该处理33偶尔运行,无论是定时、定期、按可配置时间还是以特别(adhoc)方式。处理33识别从规则结果存储库37获取的、被检查组件和与未满足的设计约束相关联的功能相关参照组件的列表。当运行时,匹配该列表中的每个对象以查看该组件是否仍存在于设计中。如果列表中的组件不再存在于设计中,那么处理33将其添加至被删除对象的列表中。

在完成删除对象列表时,其一次评估一个组件。被删除组件可以是被检查组件,在该情况下,将关联设计约束从数据库中去除。然而,如果被删除组件是针对某些被检查组件的功能相关参照组件,那么该规则使用最后保存的参照对象数据来抵达受该被删除参照对象影响的被检查对象的列表,并且重新评估那些被检查组件的依赖于被删除参照对象的存在的任何设计约束。

现在,提供处理33的操作的示例。阀门可以被约束在距通道1.5米的范围内。如果该阀门和通道都存在于设计中并满足该约束条件,那么不存在问题。然而,如果通道被重新定位(或完全从设计中删除),那么其可能不再可用作该阀门的功能相关参照组件;因此,必须重新评估定义该阀门与通道之间的约束的规则。如果没有发现可以充当该阀门的功能相关参照组件的通道,那么即使该被检查组件(即,阀门)自己的设计数据没有被更改,其也将变得有缺陷。在没有处理33的操作的情况下,基本工程项目的设计者可能已经无法识别这个缺陷(尤其是因为在该阀门满足约束条件时,该阀门可能先前已在同一规则下被评估,如规则结果存储库37中的条目所指示的)。

参照图4和5,可以进一步理解本发明的各种实施方式的优点的例示。图4是例示根据现有技术的验证具有多个组件的基本工程项目的设计的由计算机实施的方法的流程图。在第一处理41中,现有技术方法从一个或更多个3d设计系统接收多个组件的设计变更数据。在第二处理42中,验证设计人员针对每个组件手动地判定该组件是否满足与其它组件有关的各种设计约束。如背景部分所述,鉴于典型大规模基本工程项目中的组件的绝对数量和设计约束数量,这种人工验证可能是一项艰巨的任务,并且验证通常充当在可以证明设计里程碑实现之前的最终审查过程。

图5是例示根据本发明的实施方式的、验证具有多个组件的基本工程项目的设计的改进的由计算机实施的方法的流程图。与图4所示的现有技术方法相比,图5所示方法可以在任何时间执行,并且不需要充当证明已经实现设计里程碑的障碍。然而,如果需要这样的证明,那么所示处理满足该要求。该方法可以例如由在计算处理器23上执行的、与存储在存储部25中的元数据34通信的规则引擎31来执行。

该方法以第一处理51开始,其中,设计约束系统从一个或更多个3d设计系统接收组件的设计变更数据。如上所示,该调用组件本身可以是被检查组件,或者其可以是与一个或多个被检查组件功能相关的功能相关参照组件。

该方法继续第二处理52,其中,设计约束系统从数据库获得与一个或更多个规则有关的元数据,其中,所述一个或更多个规则中的每个定义了被检查组件与如上所述通过该规则的处理识别的至少一个其它功能相关参照组件之间的设计约束。

然后,计算处理器执行处理53,将所述一个或更多个规则中的每个均应用于(a)被检查组件的设计变更数据,和(b)所述至少一个其它功能相关参照组件的、从3d设计系统获得的设计数据。规则的这种应用生成被检查组件是否单独满足每个规则的设计约束的判定。

在处理54中,该方法在数据库中存储指示每个这种判定的数据。在以后时间,该方法可以包括处理55,其需要向3d设计系统发送指示被检查组件不满足的设计约束的数据。这种发送响应于在处理51中接收到设计变更数据而可以是自动的,或者其可以响应于接收到稍后的请求(例如,在里程碑证明处理期间)。在后一情况下,在发送处理55之前可能会接收到进一步的设计变更数据,在该情况下,该方法在处理56中判定是否有即将来自设计人员的更多更改。如果没有,则该方法结束,而如果设计人员对该设计进行了额外更改,则该方法返回至接收这些更改的处理51。

尽管上述讨论公开了本发明的各种示例性实施方式,但应当明白,在不脱离本发明的真实范围的情况下,本领域技术人员可以进行将实现本发明的一些优点的各种修改。

应当注意到,该逻辑流程图在此被用于展示本发明的各个方面,并且不应被解释为将本发明限制成任何特定的逻辑流程或逻辑实现。所描述的逻辑可以被划分成不同的逻辑块(例如,程序、模块、功能、或子例程),而不改变整体结果或以其它方式脱离本发明的真实范围。通常,逻辑元素可以被添加、修改、省略、以不同顺序执行,或者使用不同的逻辑构造(例如,逻辑门、循环基元、条件逻辑、以及其它逻辑构造)来实现,而不改变整体结果或以其它方式脱离本发明的真实范围。

本发明的各种实施方式可以按许多不同形式来具体实施,包括但决不限于:用于与处理器(例如,微处理器、微控制器、数字信号处理器、或通用计算机)一起使用的计算机程序逻辑、用于与可编程逻辑器件(例如,现场可编程门阵列(fpga)或其它pld)一起使用的可编程逻辑、离散组件、集成电路(例如,专用集成电路(asic))、或者包括其任何组合的任何其它装置。

实现本文先前所述功能中的全部或部分的计算机程序逻辑可以按各种形式来具体实施,包括但决不限于:源代码形式、计算机可执行形式、以及各种中间形式(例如,由汇编器、编译器、链接器或定位器生成的形式)。源代码可以包括采用用于与各种操作系统或操作环境一起使用的各种编程语言(例如,对象代码、汇编语言或诸如fortran、c、c++、java或html的高级语言)中的任一种实现的一系列计算机程序指令。该源代码可以定义并使用各种数据结构和通信消息。该源代码可以采用计算机可执行形式(例如,经由解释器),或者该源代码可以(例如,经由翻译器、汇编器或编译器)被转换成计算机可执行形式。

该计算机程序可以采用任何形式(例如,源代码形式、计算机可执行形式、或中间形式)永久性地或者暂时性地固定在有形存储介质中,有形存储介质诸如半导体存储装置(例如,ram、rom、prom、eeprom、或闪速可编程ram)、磁存储装置(例如,磁盘或固定盘)、光学存储装置(例如,cd-rom)、pc卡(例如,pcmia卡)、或其它存储装置。计算机程序可以以任何形式固定在可使用各种通信技术中的任一种传送至计算机的信号中,所述各种通信技术包括但决不限于:模拟技术、数字技术、光学技术、无线技术(例如,bluetooth)、联网技术、以及网际互连技术。该计算机程序可以按任何形式分布为具有附随打印或电子文档(例如,收缩包装软件)的可去除存储介质,利用计算机系统被预先加载(例如,被预先加载在系统rom或固定盘上),或者通过通信系统(例如,因特网或万维网)从服务器或电子公告板分布。

实现本文先前所述功能的全部或部分的硬件逻辑(包括用于与可编程逻辑装置一起使用的可编程逻辑)可以使用传统手工方法来设计,或者可以使用各种工具(诸如,计算机辅助设计(cad)、硬件描述语言(例如,vhdl或ahdl)、或pld编程语言(例如,palasm、abel,或cupl))电子地设计、捕捉、仿真或文档化。

可编程逻辑可以被永久性地或者暂时性地固定在以下有形存储介质中:诸如,半导体存储装置(例如,ram、rom、prom、eeprom、或闪速可编程ram)、磁存储装置(例如,磁盘或固定盘)、光学存储装置(例如,cd-rom)、或其它存储装置。该可编程逻辑可以被固定在可使用各种通信技术中的任一种传送至计算机的信号中,所述各种通信技术包括但决不限于:模拟技术、数字技术、光学技术、无线技术(例如,bluetooth)、联网技术、以及网际互连技术。可编程逻辑可以被分布为具有附随打印或电子文档(例如,收缩包装软件)的可去除存储介质,利用计算机系统被预先加载(例如,被预先加载在系统rom或固定盘上),或者通过通信系统(例如,因特网或万维网)从服务器或电子公告板分布。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1