符工好,无意间看到几年前你发表的帖子void displayWString (WString wStr)
{
char msgStr[10240];
wStr.ToChar(msgStr, 10240);
mdlDialog_dmsgsPrint (msgStr);
}
void listECXAttrs (ElementID elID)
{
XmlInstanceStatus iStatus;
bool bStatus;
WString pMember;
ElementRef elRef = dgnCache_findElemByID(mdlModelRef_getCache(ACTIVEMODEL),elID);
if (NULL == elRef)
{
mdlDialog_dmsgsPrint ("Can not find element by your elemId");
return;
}
XmlInstanceSchemaManager schemaManager = XmlInstanceSchemaManager();
//Reads all schemas from Dgn and stores them in the schema cache
schemaManager.ReadSchemas (bStatus);
XmlInstanceApi xmlInstanceApi = XmlInstanceApi::CreateApi(iStatus, schemaManager);
StringListHandle slHandle = xmlInstanceApi.ReadInstances(iStatus, elRef);
int slCnt = slHandle.GetCount();
for (int i=0; i<slCnt; i++)
{
pMember = slHandle.GetString(i);
WString pSchemaName = XmlInstanceApi::GetSchemaNameFromXmlInstance (iStatus,pMember);
WString instanceId = XmlInstanceApi::GetInstanceIdFromXmlInstance (iStatus, pMember);
displayWString (pSchemaName + WString("---") + instanceId);
displayWString (pMember);
}
}
我刚刚测试了一下,在MdlMain函数中加入了以下代码:
ElementID elID=629062;
listECXAttrs(629062);
但是没有测试成功?不知道错误的原因在哪?麻烦请教下。dgn文件稍后上传