首页 > 技术 > MSC > > SimManger数据管理之数据结构

SimManger数据管理之数据结构

作者:MSC    来源:MSC    发布时间:2011-11-11    收藏】 【打印】  复制连接  【 】 我来说两句:(0逛逛论坛

在SimManager中,数据的存储方式是按照数据类型来保存的。每一个数据,都有一个类型(type)属性,在保存/创建数据的时候,都需要指定数据的类型。
SimManager针对仿真分析过程和仿真数据的特点,提供了针对仿真应用的数据结构,包括人员(User)、项目(Project)、产品(Item)、方案(DesignVariant)、模型(Model)、结果(Result)、关键结果(KeyResult)、文档(Document)等等。对SimManager系统本身提供的这些数据类型,我们称之为“Schema”。这些Schema的数据结构与数据库schema有关,schema属性的变更都需要变更相应数据库shema。下图是系统自带的部分schema的UML图。

仅仅依靠系统本身提供的数据类型,是远远不能满足实际使用要求的。SimManager可以通过类型继承的方式,得到新的数据类型。这些由继承得到的数据类型,我们称之为“ObjectType”。ObjectType可以从schema继承,得到ObjectType;也可以从其它ObjectType继承,获得新的ObjectType。ObjectType继承后,自动获得其父对象类型的所有属性。举例说明:对模型(Model)这一schema,我们创建其子类型:求解模型(InputDeck),求解模型是一种ObjectType。同时,对于求解模型,也可以创建子类型,如Nastran求解模型(NastranInputDeck)。求解模型(InputDeck)自动获得模型(Model)的全部属性,Nastran求解模型(NastranInputDeck)自动获得求解模型(InputDeck)的全部属性。

下图是数据类型的继承关系图。

  

我们获得了新的ObjectType,但是这些ObjectType的属性可能还是不能满足我们实际的需求,需要增加新的属性。SimManager提供两种方式,来支持对类型属性的扩展:扩展属性和动态属性。

扩展属性是一种固定的属性。举个例子,我们需要在Nastran求解模型中增加一个属性:所属的设计方案。那么,通过扩展属性就可以实现。扩展属性的添加非常简单,只需要通过实施人员在相应objectType的属性文件中添加配置来实现。

动态属性是一种动态添加的属性。用户在上传数据的时候,可以动态添加属性,而不需要任何提前的设置或配置。

扩展属性与动态属性的区别是:扩展属性是固定的属性,动态属性是随机的、不确定的属性。将动态属性提取出来,并固定下来,就变成了一种扩展属性。扩展属性需要通过配置来实现,动态属性不需要配置。

在属性的使用上,扩展属性和动态属性没有本质的区别,都可以用于属性显示、关键字查找、属性比对等。

需要特别指出的是,ObjectType属性的扩展与schema属性的扩展完全不同。Schema直接进行属性扩展,需要对数据库schema进行相应的扩展;而ObjectType的属性扩展,不需要对数据库进行任何变动,非常有利于后续的数据库移植和SimManager版本升级。

SimManager通过扩展属性和动态属性,基本可以满足所有对数据属性的要求,而且扩展方式非常简单,大大减少实施工作量。

下图是上传的一个Nastran求解模型,增加了扩展属性:分析任务。同时,在上传模型的时候,添加了三个动态属性:real_value、string_value_1、string_value_2。

  

 

   
分享到: 收藏