[MSCE C++ 创建层和删除层中所有元素的问题]

我创建了一个层,然后在该层上做一些操作,另外又做了一个功能,用于清除该层上所有元素。结果清除的时候总是把别的层的元素也删除了,有时候会崩溃,麻烦老师帮我找找原因。

创建层的代码:

auto ret = mdlLevel_isValidByName(ACTIVEMODEL, 0, L"MyLevel");
if (!ret)
{
    mdlLevel_create(nullptr, ACTIVEMODEL, L"MyLevel", LEVEL_NULL_CODE);
    mdlLevelTable_rewrite(ACTIVEMODEL);
}
mdlLevel_setActiveByName(0, L"MyLevel");

删除层上所有元素的代码:

DgnPlatform::LevelId lid = 0;
if (SUCCESS != mdlLevel_getIdFromName(&lid, ACTIVEMODEL, 0, L"MyLevel"))
{
	return;
}
auto sc = ScanCriteria::Create();
sc->AddSingleLevelTest(lid);
sc->SetModelRef(ACTIVEMODEL);
sc->SetElemRefCallback([](ElementRefP el, CallbackArgP, ScanCriteriaP)->int
{
	auto model = el->GetDgnModelP();
	if (mdlModelRef_isActiveModel(model))
	{
		EditElementHandle eeh(el);
		if (eeh.IsPersistent())
		{
			eeh.DeleteFromModel();
		}
	}
	return 0;
}, nullptr);
sc->Scan();
ScanCriteria::Delete(sc);