【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
  • 您好,赵工我们又仔细研究了一下您的这个问题。发现是我们的SDK C++头文件发布的时候的一个bug,少发布了一些数据。我给您在SDK UP5的基础上改进的头文件,如果您是UP5版本直接替换SDK 头文件的文件夹下名为“CIFGeometryModelSDK.h”的这个文件,如果不是UP5,请复制整个“struct XSCutPoint“的内容替换您的CIFGeometryModelSDK.h文件的相应位置。https://communities.bentley.com/cfs-file/__key/communityserver-discussions-components-files/343510/CIFGeometryModelSDK.h

Children