【ORD C++】第二次调用Corridor的GetXSCutPoints()方法时,返回的bvector<XSCutPoint>为空

通过ORD的C++ API和.Net的API,调用corridor的GetXSCutPoints()方法。

在第一次执行代码时,方法GetXSCutPoints()返回的bvector<XSCutPoint>有值,但是再一次执行同样的代码时,返回的bvector<XSCutPoint>为空。

第一次执行后,卸载mdl,再重新加载mdl,执行代码,返回的bvector<XSCutPoint>仍然为空。

在第二次执行代码获取不到值得情况下,在ORD中选中corridor对象,随意更改其相关的属性值,如:更改所属的图层,再次执行代码,返回的bvector<XSCutPoint>又有值了,然而,随后再执行代码,又获取不到值

代码如下:

DgnModelP modelP = ISessionMgr::GetActiveDgnModelP();

csConnect = ConsensusConnection::Create(*dgnModel);
csModel = ConsensusModel::Create(*dgnModel);

GeometricModelPtr geomModel = csModel->GetActiveGeometricModel();

auto corridors = geomModel->GetCorridors();
if (corridors.IsValid()&&corridors->MoveNext())
	{
		corridors->Reset();
		while (corridors->MoveNext())
		{
			CorridorPtr corri = corridors->GetCurrent();
			bvector<XSCutPoint> points;
			corri->GetXSCutPoints(2, 40, 40, 2, points);
		}
	}

Parents Reply Children