5-如何使用DataGroup函数


DataGroup的读取和修改,由提供。

主要函数

Bentley::Building::Elements::BuildingEditElemHandle

这个类,是在MicroStation SDK中的类EditElemHandle的基础上,增加了对元素附加DataGroup的支持。我们可以和普通的EditElemHandle一样来使用。

CCatalogSchemaItemT

这个类,代表一个具体的数据类型,例如砖墙。而CatalogType代表的是一个类别,比如墙这个类别。

InsertDataGroupCatalogInstance

这个函数的功能是插入新的DataGroup数据实例。例如我们想要插入一种墙的类型,例如外墙。

使用流程

下面的代码演示了如何使用这个类来读取修改元素的DataGroup.

ElementId id = mdlTFFormRecipe_getUniqueId (pRecipe);

EditElementHandle elm(id, ACTIVEMODEL);
Bentley::Building::Elements::BuildingEditElemHandle beeh (elm.GetElementRef (), ACTIVEMODEL);

CCatalogSchemaItemT*    pSchemaItem = NULL;
beeh.GetCatalogCollection ().InsertDataGroupCatalogInstance (L"Wall", L"Brick");
beeh.GetCatalogCollection ().UpdateInstanceDataDefaults (L"Wall");
if (NULL != (pSchemaItem = beeh.GetCatalogCollection ().FindDataGroupSchemaItem (L"ObjectIdentity/@Description")))
    pSchemaItem->SetValue (L"Bentley Wall Test");

beeh.Rewrite();

注意事项

在调用接口函数修改DataGroup属性值的时候,需要传入正确的属性名,在下面这个对话框中,找到:Display Name,这个就是我们需要的名字。