用于CAD描述的转换的方法、电子设备和计算机可读介质与流程

文档序号:16637230发布日期:2019-01-16 07:08阅读:162来源:国知局
用于CAD描述的转换的方法、电子设备和计算机可读介质与流程

本公开一般地涉及计算机辅助设计(cad),并且更具体地涉及用于转换cad描述的技术。



背景技术:

许多计算机辅助设计(cad)应用使用特定存储格式存储物理结构(例如,建筑物、民用基础设施项目等)的cad描述。一个类型的存储格式(本文中称为“基于文件的存储格式”)涉及一个或多个文件(例如,根文件和一个或多个附加(attached)文件),所述一个或多个文件维持表示被组织成模型、与帮助限定图形视图的级别相关联的元素的一系列数据结构。

元素一般描述结构的单独单元。例如,在建筑物的简单cad描述中,元素可表示墙壁、门、窗户、家具等。模型一般将相关元素一起分组成更大的单元,有效地“拥有”一组元素。cad描述包括至少一个模型(例如,根模型),并且常常包括在根模型下使用附连(attachment)来组织以形成模型图的许多额外模型(例如,附加模型)。例如,在建筑物的简单cad描述中,根模型可表示总体建筑物,并且可经由附连来引用表示单独楼层的附加模型,每个附加模型拥有表示被布置在相应楼层上的墙壁、门、窗户、家具等的元素。级别一般描述应当显示(例如,“打开”)的所选元素,并且在一些情况下描述控制其视觉外观的符号表示(symbology)(例如,颜色、线粗细(weight)、线样式等)。例如,在建筑物的简单cad描述中,级别可包括表示窗户的所有元素,并且指示这样的元素应当用黑色的细虚线来显示。图形视图一般是用某个符号表示示出的所选元素的表示。例如,在建筑物的简单示例cad描述中,特定图形视图可示出表示墙壁和窗户的元素,其中墙壁用黑色的粗体实线表示,并且窗户用黑色的细虚线表示。图形视图可由自模型图中的根模型的附连路径来限定,其中符号表示和元素范围由模型图的元素、元素属于的级别以及由级别(“附加级别”)的覆写(override)该级别的显示状态和符号表示的附连特定副本来指示。参考图1中的示例可更好地理解这样的布置。

图1是用于cad描述的示例第一存储格式(例如,基于文件的存储格式)的一部分的数据结构图100。数据结构图100可与dgnv8格式一致,所述dgnv8与可从宾夕法尼亚州埃克斯顿的bentleysystems公司获得的cad应用兼容。然而,应当理解:类似的格式可用在可从其他供应商获得的其他cad应用中。数据结构图100表示使用各种数据结构体现的许多数据项。在数据结构图100中,文件数据结构110用作每个文件(例如,根文件或附加文件)的头部,并且包括指示用于文件的唯一人类可读名称的名称字段、引用在文件中包含的模型数据结构的模型字段,以及引用在文件中包含的级别数据结构的级别字段。每个模型数据结构120表示单独模型(例如,根模型或附加模型),并且包括指示用于模型的唯一标识符的模型id字段、指示用于模型的唯一人类可读名称的名称字段、引用拥有的文件的文件字段,以及引用由模型拥有的元素数据结构的元素字段。每个模型可位于用于限定其元素的布置的空间坐标系中。每个元素数据结构130表示由模型拥有的单独元素,并且包括指示用于文件内的该元素的唯一标识符的元素id字段、指示拥有的模型数据结构的模型id字段、指示与该元素相关联的级别的级别字段、包括描述由该元素表示的物理结构的单元的信息的数据字段,以及指示相关联的dhdr数据结构的dhdr字段。每个dhdr数据结构140指示描述应当如何渲染拥有的元素的范围和符号表示信息,包括颜色字段、粗细字段和样式字段。每个元素数据结构可引用针对它属于的级别的级别数据结构150。每个级别数据结构150表示元素可属于的级别,包括指示用于该级别的唯一标识符的级别id字段、指示用于该级别的唯一人类可读名称的名称字段、指示是否应当显示(例如,“打开”)该级别上的元素的显示字段,以及指示对该级别的单独元素的符号表示的覆写的符号表示字段,诸如颜色字段、粗细字段和样式字段。

使用附连数据结构限定模型图,其限定模型的所有权结构以及任何附加级别的存在。每个附连数据结构160包括引用包含附加模型的文件的文件名称字段、引用附加模型的模型名称字段、指示可被应用以使由附加模型使用的空间坐标系与拥有的模型的空间坐标系相关的任何空间变换的变换字段,以及引用可与附连一起使用的附加级别的附加级别字段。每个附加级别数据结构170限定对基础级别的覆写,并且包括标识该附加级别的级别id字段、指示是否应当显示该级别的显示字段,以及可覆写该级别的符号表示的符号表示字段,诸如颜色字段、粗细字段和样式字段。可由视图数据结构190在模型图中限定图形视图,所述视图数据结构190引用用作用于该视图的模型图的附连路径的根的特定模型数据结构120。

在一些情况下,可能有必要将使用图1中描绘的第一存储格式(例如,基于文件的存储格式)的cad描述转换成第二存储格式。除了其他目的之外,还可能需要这样的转换以使得能够实现在不同cad应用或者可利用不同存储格式的相同cad应用的不同版本之间的互操作性。然而,在设计这样的转换器时已经遇到了某些挑战。

第一个挑战涉及处理空间模糊。如上文所提及的,以基于文件的存储格式的模型可每个使用它们自己的空间坐标系(即,与其他模型可没有预定的空间关系,并且代之以可使用附连的变换来限定关系)。照此,cad描述可被认为是单独“片段”的集合。此外,以第一存储格式的模型可附连到任何其他模型。实际上,“片段”可以以传达不同含义的无数个不同的方式连接。给定这样的结构,可能难以从连接的“片段”导出单个衔接表示。

一个特定的困难源可能是其中在模型图内存在多个根模型和循环的场景。例如,第一根模型可用于表示物理空间中的设计,使用第一组变换使一组附加模型相关。第二根模型可用于表示具有某一组成的图形视图,并且使用(例如,出于呈现目的而选择的)第二组变换使那些同一组的附加模型相关。从而可存在多个根模型。此外,第一模型(例如,第一附加模型)可附连到第二模型(例如,第二附加模型),并且第二模型也可直接地或经由递归附连到第一模型。从而可存在循环。

另一个特定的困难源可能是如下场景:其中存在多条附连路径从单个根模型到同一附加模型,但使用不同的变换,从而导致存在元素的多个实例化。例如,根模型可沿着模型图的一条路径使用第一变换附连到附加模型,并且沿着模型图的另一条路径使用第二、不同的变换附连到同一附加模型,从而复制附加模型元素,但在不同的位置中。

第二个挑战涉及将与转换前cad描述中的每一文件的级别相关的人类可读名称和信息关系准确地保留到仅具有一组级别的转换后cad描述中。例如,虽然转换器可保留图形视图的视觉外观,但是与来自模型图的附加级别相关联的人类可读名称和信息关系可能丢失。注意转换后cad描述的用户可能未看到他们熟悉的人类可读名称和信息关系,并且因此解释或操纵设计可能有困难。

相应地,存在对用于将以第一存储格式(例如,基于文件的存储格式)维持的cad描述转换成第二存储格式的改进技术的需要,所述第二存储格式可解决由第一存储格式的模型图中的空间模糊引入的挑战,和/或可准确地保留其中第二存储格式不使用相同结构的人类可读名称和信息关系。



技术实现要素:

提供用于将以源储存库(repository)的第一存储格式(例如,基于文件的存储格式)维持的cad描述转换成输出储存库的第二存储格式(例如,基于关系数据库的存储格式)的技术。通过针对每个图形视图生成非循环模型图并且然后以第二存储格式(例如,基于关系数据库的存储格式)存储非循环模型图的模型,所述技术可根据空间模糊“片段”生成单个一致表示。可通过从初始模型图的指定根模型开始、遍历附连路径、将遇到的每个模型映射成使用单个项目(project)坐标系的非循环模型图的模型、以及根据需要来复制模型和打破循环,来构建非循环模型图。通过检查从附连引用的级别结构(即级别和附加级别)的附连特定副本并且以第二存储格式(例如,基于关系数据库的存储格式)从这些类别和子类别生成,所述技术可进一步产生保留与级别相关的人类可读名称和信息关系的转换后cad描述。即,针对与附连相关联的每个级别,生成对应于相应级别的类别和默认子类别,并且针对每个附加级别,生成由对应于该级别的类别引用的子类别。

在一个特定示例实施例中,通过限定单个项目坐标系和然后从源储存库访问以第一存储格式(例如,基于文件的存储格式)的初始模型图、以及根据初始模型图针对每个图形视图构建使用单个项目坐标系的非循环模型图,转换器根据空间模糊“片段”生成单个一致表示。构建非循环模型图包括从初始模型图中存在的一个或多个根模型中指定根模型,和然后从指定的根模型开始,在初始模型图中搜索附连路径,以及通过将沿着附连路径的每个空间变换应用于遇到的模型而将遇到的每个模型映射成使用单个项目坐标系的非循环模型图的模型。当由于初始模型图中的多条附连路径而多次遇到同一模型时,转换器针对每个唯一空间变换在非循环模型图中创建新模型。当由于沿着具有相同变换的附连路径的循环而多次遇到同一模型时,转换器停止沿着该附连路径搜索。转换器通过将非循环模型图的模型以第二存储格式(例如,基于关系数据库的存储格式)存储到其中它们此后可由cad应用利用的输出储存库来生成一致表示。

在另一个特定示例实施例中,转换器通过生成类别和子类别来保留人类可读名称和信息关系。在构造非循环模型图时,针对每个所引用的级别,转换器生成对应于相应级别的第二存储格式的类别和默认子类别,其中默认子类别维持由相应级别限定的显示状态和符号表示。针对每个所引用的附加级别,转换器生成由对应于该级别的类别引用的子类别。子类别维持如由相应附加级别限定的覆写默认子类别的显示状态和符号表示的显示状态和符号表示。

应当理解:除了在本发明内容中讨论的那些之外,可实现多种额外的特征和替代实施例。本发明内容仅意图作为对读者的简要介绍,并不指示或暗示本文中提及的示例涵盖本公开的所有方面,或者是本公开的必需或必要方面。

附图说明

以下描述参考示例实施例的附图,其中:

图1是用于cad描述的示例第一存储格式(例如,基于文件的存储格式)的一部分的数据结构图;

图2是示例电子设备的框图,在所述示例电子设备中可采用目前描述的技术中的至少一些;

图3是用于可在转换之后存储在输出储存库中的cad描述的示例第二存储格式(例如,基于关系数据库的存储格式)的一部分的模式;

图4是可由转换器执行以实现转换算法的示例步骤序列的流程图;

图5是在任何转换之前的包括多个根和循环的以第一存储格式(例如,基于文件的存储格式)的示例cad描述的简化图500;

图6是示出图5的示例cad描述向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图;以及

图7是示出包括多个实例化的以第一存储格式(例如,基于文件的存储格式)的示例cad描述的简化图;

图8是示出图7的示例cad描述向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图;

图9是简单示例cad描述的一系列示例图形视图;

图10是示出在转换之前第一存储格式(例如,基于文件的存储格式)可如何表示图9中所示的模型3的第三视图的简化图;

图11是示出图10中的模型3向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图;

图12是可由转换器执行以实现“显式(explicit)片段”转换的示例步骤序列的流程图;

图13是由图块(tile)组成的示例地图,所述图块通过由元素组成的模型来表示;

图14是示出包括表示来自图13的地图的单独图块的模型的以第一存储格式(例如,基于文件的存储格式)的示例cad描述的简化图;

图15是可连同图13-14的示例cad描述的转换一起供应给转换器的示例信息;

图16是示出保留了第一存储格式的每个模型的图13-14的示例cad描述向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图,其;以及

图17是示出将第一存储格式的模型压缩成单个模型的图13-14的示例cad描述向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图。

具体实施方式

图2是示例电子设备200的框图,在所述示例电子设备200中可采用目前描述的技术中的至少一些。电子设备可被设计用于固定操作(例如,可以是台式计算机),或者可以是被设计成易于由用户输运并从多种不同的位置利用的便携式电子设备(例如,笔记本计算机、平板计算机等)。电子设备200包括耦合到主机总线220的至少一个处理器210。诸如随机存取存储器(ram)之类的易失性存储器230经由存储器控制器225耦合到主机总线220,并且被配置成存储软件和数据的存储器中副本。除了其他软件之外,软件的存储器中副本可包括用于操作系统235、cad应用240、关系数据库系统242和cad描述转换器244的可执行指令。在需要时将这样的软件从维持在非易失性存储设备270(例如,硬盘、固态驱动器等)上的(未示出的)该软件的持久副本加载到易失性存储器230中。数据的存储器中副本可包括由cad应用240使用的cad描述的存储器中副本。

电子设备200的主机总线220通过总线控制器245耦合到输入/输出(i/o)总线250。包括显示屏260的视频显示子系统255耦合到i/o总线250。显示屏260可示出cad应用240和/或转换器244的用户界面,以及在电子设备200上执行的其他软件的用户界面。一个或多个输入设备265(例如,鼠标、键盘、触摸传感器等)也耦合到i/o总线250。除了其他用途之外,输入设备265还用于与cad应用240和/或转换器244交互。上文讨论的非易失性存储设备270和网络接口280进一步耦合到i/o总线250。

网络接口280可耦合到计算机网络285(例如,因特网)以允许使用许多公知的联网协议中的任何联网协议在电子设备200与其他电子设备之间的通信,从而使得能够实现各种分布式协作或远程计算配置。应当理解:根据这样的配置,被示出驻留在存储器230中或存储在非易失性存储设备270中的软件和数据中的一些或全部可远程地位于另一电子设备上,并且可经由计算机网络285来访问。

除了存储可执行软件的副本之外,非易失性存储设备270还持久地存储由cad应用240使用的cad描述的副本。可根据第一存储格式(例如,基于文件的存储格式)将某些cad描述存储在文件274中。可根据第二存储格式(例如,基于关系数据库的存储格式)将其他cad描述存储在关系数据库272的表中。第二存储格式(例如,基于关系数据库的存储格式)的文件可由关系数据库系统242直接加载到存储器230中并由cad应用240使用,而第一存储格式(例如,基于文件的存储格式)的文件274可能需要在由cad应用240直接可用之前由转换器244转换(但是可由本地地利用该存储格式的(未示出的)其他cad应用直接可用)。从转换器244的角度来看,第一存储格式(例如,基于文件的存储格式)的文件274可被认为是“源储存库”的部分,并且关系数据库272可被认为是“输出储存库”的部分。

在各种实现中,应用240、关系数据库系统242、转换器244、源储存库的文件274,以及输出储存库的关系数据库272可呈现各种形式。在一些特定实现中,cad应用240是可从宾夕法尼亚州埃克斯顿的bentleysystems公司获得的i-modelcompositionserver或projectwiseconversionserver,关系数据库系统242是sql数据库系统(例如,sqlite®数据库系统可用的开源),转换器244是cad应用240的嵌入过程,文件274可以是利用dgnv8存储格式的dgnv8文件,并且关系数据库272可以是利用dgndb格式的dgndb数据库,其与可从bentleysystems公司获得的cad应用兼容。然而,应当理解:这样的特定软件和格式仅是示例。

以第二存储格式(例如,诸如dgndb之类的基于关系数据库的存储格式),描述物理结构(例如,建筑物、民用基础设施项目等)的cad描述可由例如包括由列和行组成的许多表的数据库表示。各种表的行可表示被组织成模型并且与类别和子类别相关联的元素。在该背景下,元素可描述结构的单独单元,并存储该单元固有的信息。元素可具有存储贯穿元素的生命周期可以改变的信息的方面,例如,指示元素的放置和大小的元素几何形状方面。模型可将相关元素一起分组成更大的单元,其中元素是原子的。模型可使用单个公共空间坐标系(“项目坐标系”)来描述元素的物理定位,使得该表示在空间上一致(例如,就上文讨论的示例第一存储格式来说,与由使用不同的空间坐标系的不同的“片段”的集合形成相反)。类别可描述元素可属于的类型。类别可具有许多子类别,所述子类别描述属于该类别的元素的方面的属性。例如,元素几何形状方面可包含一个或多个子类别上的几何图元,所述一个或多个子类别中的每个限定要在显示该元素时使用的符号表示(例如,颜色、线粗细、线样式等)。图形视图可通过指定所显示(例如,“打开”)的模型和类别以及对所显示的类别的子类别的默认符号表示的覆写(例如,就上文讨论的示例第一存储格式来说,与使用附连和级别相反)来限定。

图3是用于可在转换之后存储在输出储存库中的cad描述的示例第二存储格式(例如,基于关系数据库的存储格式)的一部分的模式300。模式300可表示与可从bentleysystems公司获得的cad应用兼容的dgndb格式的一部分。然而,应当理解:可在其他存储格式中采用类似的结构。

在模式300中,模型表310的行表示模型。模型表列可包括指示用于模型的唯一本地标识符的模型id列,以及指示用于模型的唯一人类可读名称的代码列。元素表320可包括表示元素的行。元素表列可包括指示用于元素的唯一标识符的元素id列、指示用于元素的唯一人类可读名称的代码列、指示拥有的模型(例如,引用模型表310的行)的模型id列、指示与元素相关联的类别(例如,引用类别表340的一行,使得一个元素可属于一个类别)的类别id列,以及指示用于元素的几何形状方面(例如,引用元素几何形状表330的一行)的几何形状列。

元素几何形状表330的行可表示所引用元素的几何形状方面。元素几何形状表330的列可包括指示元素的位置和定向的放置列、指示元素的空间大小的大小列,以及保持尊敬一个或多个子类别的几何图元的几何形状流(stream)列。元素几何形状表行可引用子类别表350的一行或多行,使得一个或多个元素几何形状可引用一个或多个子类别。

类别表340的行可表示类别。类别表340的列可包括指示用于元素的唯一标识符的元素id列,以及指示类别的唯一人类可读名称的代码列。子类别表350的行可表示子类别。子类别表350的列可包括指示用于子类别的唯一标识符的子类别id列、指示子类别的唯一人类可读名称的代码列、指示拥有的类别(引用类别表340的一行,使得一个类别可拥有一个或多个子类别)的类别id列,以及限定在显示元素时使用的符号表示的外观列,诸如颜色列、粗细列、样式列等。

此外,视图表360的行可表示图形视图。视图表360的列可包括指示所显示的模型(例如,引用模型表320的一行或多行,使得一个或多个模型可由一个或多个视图引用)的被查看模型列、指示所显示的类别(例如,引用类别表340的一行或多行,使得一个或多个类别可被一个或多个视图引用)的被查看类别列,以及(例如,通过引用子类别覆写表370的指示应当如何显示适用的子类别中的几何形状的一行或多行)指示对子类别的默认显示状态的任何覆写的子类别覆写列。

如上文所讨论的,在一些情况下,可能有必要将根据源储存库的第一存储格式(例如,基于文件的存储格式)维持的cad描述转换成输出储存库的第二存储格式(例如,基于关系数据库的存储格式),除了其他目的之外还用来使得能够实现互操作性。转换器244可应用转换算法以根据第一存储格式的可包括“片段”的初始模型图生成单个一致表示。为了这么做,转换器244限定与第二存储格式的所有模型一起使用的单个坐标系(称为“项目坐标系”)。转换器244从源储存库访问初始模型图。针对每个图形视图,指定特定的根模型,并且从指定的根模型开始,转换器244搜索初始模型图中的附连路径并将遇到的每个模型映射成使用单个项目坐标系的非循环模型图的模型。可通过将沿着附连路径的每个空间变换应用于遇到的模型来执行映射。当由于初始模型图中的多条附连路径而多次遇到同一模型时,转换器244针对每个唯一空间变换在非循环模型图中创建新模型。当由于沿着具有相同变换的附连路径的循环而多次遇到同一模型时,转换器244停止沿着该附连路径搜索。根据输出储存库的第二存储格式(例如,基于关系数据库的存储格式)存储非循环模型图的模型。

同样地,由转换器244应用的转换算法可保留与第一存储格式(例如,基于文件的存储格式)的级别相关的人类可读名称和信息关系,尽管第二存储格式(例如,基于关系数据库的存储格式)本质上不利用模型特定的级别。为了这么做,转换器244检查从附连引用的级别结构(即级别和附加级别)的附连特定副本。针对每个所引用的级别,转换器生成对应于该相应级别的第二存储格式的类别和默认子类别,其中类别维持该相应级别的人类可读名称,并且默认子类别指示如由该相应级别限定的元素显示状态和符号表示。针对每个所引用的附加级别,转换器244生成由对应于该级别的类别引用的子类别,其中子类别指示第一存储格式的如由该相应附加级别限定的覆写默认子类别的显示状态和符号表示的元素显示状态和符号表示。

图4是可由转换器244执行以实现转换算法的示例步骤序列400的流程图。在步骤410处,转换器244在源储存库中发现包括第一存储格式(例如,基于文件的存储格式)的一组模型(例如,一个或多个根模型和一个或多个附加模型)的一组文件(例如,根文件和附加文件)。可根据由附连限定的初始模型图来组织该组模型,初始模型图可能包括多个根、循环和/或多个实例化。在步骤420处,转换器244限定单个项目坐标系。在步骤430处,使用其根模型是指定的根模型的单个指定视图,转换器244根据初始模型图构建使用项目坐标系的非循环模型图。转换器还可转换其他视图,作为该操作的一部分,但是仅转换在指定的根模型处具有它们的根的视图。

作为步骤430的部分,转换器244从指定的根模型开始搜索初始模型图中的附连路径,并通过将沿着附连路径的每个空间变换应用于遇到的模型而将遇到的每个模型映射成非循环模型图的模型,以确定单个项目坐标系中的位置。当由于初始模型图中的多条附连路径而多次遇到同一模型时,转换器244针对每个唯一空间变换在非循环模型图中创建新模型。当由于沿着附连路径的循环而多次遇到同一模型时,转换器244停止沿着该附连路径搜索。

在步骤440处,转换器244根据第二存储格式(例如,基于关系数据库的存储格式)转换非循环模型图的模型并将其存储在输出储存库中。在步骤430的一个特定实现中,针对每个模型,转换器244将模型数据结构120存储到模型表320中的模型行中。

在步骤450处,转换器244将从非循环模型图中的附连引用的级别转换成第二存储格式的类别和默认子类别,并将它们存储在输出储存库中。转换器244使用每个类别来维持来自相应级别的人类可读名称,并且使用每个默认子类别来维持由相应级别限定的元素显示状态和符号表示。通过这么做,转换器244经由转换过程而准确地保留级别的身份,从而允许仍然按级别对元素进行划分或分类。在步骤430的一个特定实现中,转换器244在类别表340中查找类别行。如果未找到现有类别行,则转换器创建相应级别的名称被存储到其中的新类别行,并且在子类别表350中创建子类别行,所述子类别行的子类别id列被设置成默认并且其例如在颜色列、粗细列、样式列等中存储该子类别行的来自相应级别的外观。相反,如果找到现有类别行,则将该级别简单地映射成该类别行及其对应的默认子类别行。

在步骤460处,转换器244将指定的图形视图转换成第二存储格式并将其存储在输出储存库中。作为步骤440的部分,针对通过与视图相关联的非循环模型图的路径的每个附加级别,转换器244生成由对应于该级别的类别引用的子类别,其中子类别维持如由附加级别限定的覆写默认子类别的元素显示状态和符号表示的元素显示状态和符号表示。以该方式,在独特的子类别中维持附连特定的覆写以供元素使用。在步骤440的一个特定实现中,为了转换视图,转换器244以视图的根模型开始并访问图中的每个附连数据结构160和用于该附连数据结构160的每个附加级别数据结构170。针对每个这样的附加级别数据结构170,它用相同名称的类别表340查找类别行。然后它将附加级别的显示状态和外观与用于该类别行的子类别表350中的默认子类别的对应属性比较。如果它们不相等,则转换器244在子类别表350中创建存储外观(诸如颜色、线粗细、线样式等)的新子类别行。如果它们相等,则使用其子类别id列被设置成默认的子类别表350中的子类别行。使用类似的过程以用于将源储存库的第一存储格式的其他视图转换成输出储存库的第二存储格式,其中该视图的根模型与指定视图的根模型相同。

在步骤470处,转换器244将从非循环模型图的模型引用的元素转换成第二存储格式的元素,并将它们存储在输出储存库中。作为步骤450的部分,转换器244遍历附连的元素,并创建与针对第一存储格式的元素的原始级别创建的类别相关联的第二存储格式的元素,并创建针对第一存储格式的元素的原始级别创建的子类别相关联的第二存储格式的元素几何形状。在步骤450的一个特定实现中,针对每个模型,针对每个元素数据结构130,转换器244将元素数据结构130转换成与基于元素的原始级别id创建的类别表340的类别行相关联的元素表320中的元素行,并基于元素的原始级别id在元素几何形状表330中创建与子类别id相关联的元素几何形状行。

通过考虑它们向若干简单的示例cad描述的应用,可更好地理解图4的步骤序列400的操作。第一示例图示了从包括多个根和循环的模型图的转换。图5是示出在任何转换之前的包括多个根和循环的以第一存储格式(例如,基于文件的存储格式)的示例cad描述的简化图500。示例cad描述的模型中的每个可驻留在分离的文件中。示例cad描述包括表示使用空间坐标系的物理描述的第一根模型(“模型1”)和使用它自己的空间坐标系的第二根模型(“模型4”)。额外的模型包括使用它们自己的空间坐标系限定的元素(包括“元素2”的“模型2”和包括“元素3”的“模型3”)。模型1使用第一空间变换(“变换1”)附连到模型2和模型3,所述第一空间变换使模型2和模型3的空间坐标系与模型1的空间坐标系相关。模型4使用第二空间变换(“变换2”)附连到模型2,所述第二空间变换使模型2的空间坐标系与模型4的空间坐标系相关。模型2附连到模型3,并且模型3使用身份变换附连到模型2(从而创建循环)。由于多个根和循环,在该示例中,存在三个有区别的解释元素2和元素3的位置的方式:当从模型1查看时,元素2和元素3可在第一位置中,当从模型4查看时,元素2和元素3可在第二位置中,并且当从模型2或模型3查看时,元素2和元素3可在第三位置中。

图6是示出图5的示例cad描述向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图600。在该示例中,已将模型1选为指定的根模型。转换器244已经通过遵循来自模型1的附连路径并将沿着附连路径的每个空间变换应用于每个遇到的模型、根据需要打破循环(即,这里是模型2与模型4之间的循环)而构建了非循环模型图。在转换后cad描述中,视图直接引用模型1、模型2和模型3。模型1、模型2和模型3都在同一项目坐标系中。变换1已被应用于模型2。模型2包括通过将变换1应用于其原始局部空间坐标系而被变换成在项目坐标系中的元素2。变换1也已被应用于模型3。模型3包括通过将变换1应用于其原始局部空间坐标系而被变换成在项目坐标系中的元素3。模型4不能从模型1得到并且未被转换。

第二示例图示了从包括多个实例化的模型图的转换。图7是示出包括多个实例化的以第一存储格式(例如,基于文件的存储格式)的示例cad描述的简化图700。示例cad描述包括用作根模型的第一模型(“模型1”)和包括元素(“元素2”)的第二模型(“模型2”)。模型1通过两个不同的附连——使用第一变换(“变换1”)的一个附连和使用第二、不同的变换(“变换2”)的一个附连——附连到模型2。因此,虽然仅存储单个元素2,但是当显示模型1时,将在不同位置中示出元素2的两个实例化。

图8是示出图7的示例cad描述向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图800。在该示例中,已将模型1选为指定的根模型。转换器244已经通过遵循来自模型1的附连路径并将沿着附连路径的每个空间变换应用于每个遇到的模型、针对用于达到模型的每个唯一空间变换在非循环模型图中复制模型(即,这里每个唯一变换用于读取模型2)而构建非循环模型图。复制模型2以创建“模型21”和“模型22”二者,所述“模型21”由应用于模型2的变换1产生,所述“模型22”由应用于模型2的变换2产生。模型1、模型21和模型22都被限定在同一项目坐标系内。模型21包括通过将变换1应用于其原始局部空间坐标系而被变换成在项目坐标系中的元素2。模型22包括通过将变换2应用于其原始局部空间坐标系而被变换成在项目坐标系中的元素1。在转换后cad描述中,视图引用模型1、模型21和模型22。应当理解:对模型的复制和对变换的应用是递归的,使得如果存在附连到模型2的额外模型,则这样的模型将每个被复制到项目坐标系中并直接附连到视图。

第三示例图示了在保留人类可读名称和信息关系时对图形视图的转换。图9是简单示例cad描述的一系列示例图形视图900。示例cad描述包括属于第一模型(“模型1”)的被表示为圆的元素(“元素13”),以及属于第二模型(“模型2”)的被表示为三角形的另一元素(“元素23”)。模型1由第一视图910显示,并且模型2由第二视图920显示。第三模型(“模型3”)是模型1和模型2的组合,其中元素23的符号表示被覆写,具体是线样式被从虚覆写成实。模型3由第三视图930显示。应当理解:实际的cad描述一般将包括大得多的数量的显示元素,所述显示元素可被组织成更大数量的模型,根据其可产生更大数量的图形视图。

图10是示出在转换之前第一存储格式(例如,基于文件的存储格式)可如何表示图9中示出的模型3的第三视图930的简化图1000。在转换之前,模型3附连到模型1和模型2。到模型2的附连限定改变默认符号表示的对级别“l”的覆写,以除了其他之外还使用实线样式。模型1包含元素13,并且模型2包含元素23。元素13和元素23二者都引用级别“l”,其限定除了其他之外还包括虚线样式的使用的默认符号表示。

图11是示出图10中的模型3向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图。视图显示模型1、模型2和模型3。模型1包含元素13,并且模型2包含元素23。元素13具有几何形状并且是类别“l”的部分。该几何形状与该类别的默认子类别相关。该子类别指示除了其他之外还包括虚线样式的使用的默认符号表示。同样地,元素23具有几何形状并且是类别“l”的部分。该几何形状与该类别的另一子类别相关。该子类别指示对默认符号表示的改变,所述改变除了其他之外还包括要使用实线样式的对默认符号表示的改变。

上文描述的转换算法可被适配成涵盖多种不同的特殊情况。一个示例特殊情况涉及根据以第一存储格式(例如,基于文件的存储格式)的许多显式列举的“片段”创建以第二存储格式(例如,基于关系数据库的存储格式)的单个一致表示,所述“片段”不一定通过模型附连(一般称为“显式片段”转换)附连到彼此。这样的情况可能出现,例如在将地图从第一存储格式转换成第二存储格式时。可以以第一存储格式将大地图维持为许多均匀成形(例如,正方形)的图块,所述图块中的每个被作为模型而存储在分离的文件中。在分离的文件的模型之中可能不存在存储的附连。为了执行转换,可向转换器244供应对指定的根模型的指示和源储存库中的文件的显式列表,以及要应用于那些文件的模型的对应的空间变换。转换器244将文件的列表的模型视为以指定的根模型为根的模型图,其通过对应的空间变换与指定的根模型相关。然后转换器244将该模型图转换成以第二存储格式的单个一致表示。以第二存储格式的表示可保留第一存储格式的每个模型,或者在转换之后可压缩模型图以包括较少数量的模型(例如,使得所有元素被包含在一个模型或一些其他较少数量的模型内)。

图12是可由转换器244执行以实现“显式片段”转换的示例步骤序列1200的流程图。在步骤1210处,转换器244接收供应的对指定的根模型的指示和源储存库中的文件的列表,以及要应用于那些文件的模型的对应空间变换。根模型可以是或者可以不是该列表的文件的模型中的一个。在步骤1220处,转换器244限定单个项目坐标系。该单个项目坐标系可以是由指定的根模型使用的坐标系或者一些其他坐标系。在步骤1230处,转换器244将文件的列表的模型视为以指定的根模型为根的模型图,其通过对应的空间变换与指定的根模型相关。在步骤1240处,转换器244将模型图的模型转换成第二存储格式(例如,基于关系数据库的存储格式)并将它们存储在输出储存库中。在步骤1250处,与上文讨论的图4的步骤450类似,转换器244将模型图中引用的级别转换成第二存储格式的类别和默认子类别,并将它们存储在输出储存库中。在“显式片段”转换中,通常不存在附加级别,并且照此可不执行与上文讨论的图4的步骤460类似的操作。在步骤1270处,与上文讨论的图4的步骤470类似,转换器244将模型图的模型中包括的元素转换成第二存储格式的元素,并将它们存储在输出储存库中。

通过考虑它们向简单的示例cad描述的应用,可更好地理解图12的操作。图13是由图块组成的示例地图,所述图块通过由元素组成的模型来表示。第一图块由包括第一元素(“元素1”)的第一模型(“模型1”)表示,第二图块由包括第二元素(“元素2”)的第二模型(“模型2”)表示,第三图块由包括第三元素(“元素3”)的第三模型(“模型3”)表示,并且第四图块由包括第四元素(“元素4”)的第四模型(“模型4”)表示。虽然在该简单示例中示出每个模型仅包括单个元素,但是应当理解:实际实现中的模型通常将包括大得多的数量的元素。

图14是示出包括表示来自图13的地图的单独图块的模型的以第一存储格式(例如,基于文件的存储格式)的示例cad描述的简化图1400。第一文件(“文件1”)包括模型1,第二文件(“文件2”)包括模型2,第三文件(“文件3”)包括模型3,并且第四文件(“文件4”)包括模型4。在模型1、模型2、模型3与模型4之间不存在附连。此外,每个模型可使用它自己的空间坐标系。虽然在该简单示例中未示出额外的模型附连到模型1、模型2、模型3和模型4,但是应当理解:可能存在包括额外的元素的附连到这些模型中的每个的额外的模型。

图15是可连同图13-14的示例cad描述的转换一起供应给转换器244的示例信息1500。该示例中的供应的信息包括模型1应当被视为指定的根模型的指示,以及包括没有对应空间变换的文件1、具有第一对应空间变换(“变换1”)的文件2、具有第二对应空间变换(“变换2”)的文件3和具有第三对应空间变换(“变换3”)的文件4的文件的列表。

图16是示出保留了第一存储格式的每个模型的图13-14的示例cad描述向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图1600。转换器244已经将来自文件的列表中的文件的模型视为以模型1为根的模型图,并且已经将每个对应空间变换应用于模型(及其元素)。在转换后cad描述中,视图直接引用模型1、模型2、模型3和模型4,其全部在同一项目坐标系内。变换1已被应用于模型2。模型2包括通过变换1的应用被变换的元素2。变换2已被应用于模型3。模型3包括通过变换2的应用被变换的元素3。最后,变换3已被应用于模型4。模型4包括通过变换3的应用被变换的元素4。

图17是示出将第一存储格式的模型压缩成单个模型的图13-14的示例cad描述向第二存储格式(例如,基于关系数据库的存储格式)的转换的结果的简化图1700。如在图16中,转换器244将每个对应空间变换应用于模型的元素。此外,转换器244已经因为不再需要而消除模型2-4,从而将所有元素的所有权转移到模型1。照此,在转换后cad描述中,视图直接引用模型1,所述模型1包括元素1、通过变换1的应用被变换的元素2、通过变换2的应用被变换的元素3和通过变换3的应用被变换的元素4。

结论性意见

以上公开详述了用于将以源储存库的第一存储格式维持的cad描述转换成输出储存库的第二存储格式的若干技术。应当理解:可对以上讨论的技术进行进一步的适配和修改。一般地,可以以软件、硬件或其各种组合来实现功能性。软件实现可包括被存储在非暂时性电子设备可读介质(例如,非暂时性计算机可读介质)中的电子设备可执行指令(例如,计算机可执行指令),所述非暂时性电子设备可读介质诸如是易失性存储器、持久存储设备或其他有形介质。硬件实现可包括逻辑电路、专用集成电路和/或其他类型的硬件组件。此外,组合的软件/硬件实现可包括被存储在非暂时性电子设备可读介质中的电子设备可执行指令和一个或多个硬件组件二者。最重要的是,应当理解:以上描述意在被采取仅作为示例。

所要求保护的是:

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