概述
PDMS的对象有很多属性,如name/purp/desc/pos等等。传统的PML语言,可以通过object快速的获取或修改对象。而在.NET中,同样支持类似的操作。
DbElement
在前面曾提到过,每个PDMS元素都是一个DbElement。通过DbElement类的方法,就可以直接为元素赋属性,获取属性等操作。
Get
字符串型属性
// 获取指定属性的值
public abstract DbAttribute GetString(DbAttribute attributeName);
DbElement test = DbElement.GetElement("/HEDP");
string str = test.GetString(DbAttributeInstance.NAME);
// 获取所有属性值
public abstract DbAttribute[] GetAttributes();
对象型属性
DbElement
还有许多方法,比如GetPosition()
可以直接获取元素的Position属性,而且返回值并不是string
,而直接是Position
对象。
DbElement attaItem = DbElement.GetElement(attaName);
DbQualifier dbQualifier = new DbQualifier();
dbQualifier.wrtQualifier = DbElement.GetElement("/*");
Position attaPositon = attaItem.GetPosition(DbAttributeInstance.POS, dbQualifier);
自定义属性
除了上述的原生属性,我们还经常需要获取一些UDA属性。
// 这里需要使用DbAttribute对象
string number = item.GetAsString(DbAttribute.GetDbAttribute(":My_Number"));
Set
赋值可以直接给元素属性,也可以通过参考某个元素的方式赋属性。
直接赋值
public abstract void SetAttribute(DbAttribute attributeName, string val);
mEqui = mZone.Create(0, DbElementTypeInstance.EQUIPMENT);
mEqui.SetAttribute(DbAttributeInstance.NAME, "/ExampleEqui");
参考赋值
public abstract void SetAttribute(DbAttribute attributeName, DbElement val);
DbElementTypeInstance
DbAttributeInstance
是一个枚举类,该类几乎覆盖了PDMS所有原生的属性。
DbElementType
DbElementType
是一个用于管理元素类型的类。
// 获取某个元素的类型
DbElement test = DbElement.GetElement("/HEDP");
test.GetActualType();
另外该类还有大量的其他方法和属性,用于操作元素类型。
DbAttribute
DbAttribute
主要用于管理元素的属性。
// 自定义属性
DbAttribute dbAttr = DbAttribute.GetDbAttribute(":Navisexport");
另外该类还有大量的其他方法和属性,用于操作元素属性。