如何选取构成实体的几何图形(而非整个实体本身)并高亮显示它们?

  1. FAQ
  2. »
  3. Vectorization and Visualization in Visualize


要高亮实体内部的几何图形,需要填充 OdTvSubItemPath 项。请看一个最简单的示例:假设您有一个实体,其 ID 为 OdTvEntityId entId0,您想高亮显示其内部的几何图形 OdTvGeometryId geomId0(该几何图形必须是实体 entId0 的一部分)。此时,OdTvSubItemPath 应如下构建:

OdTvEntityIdsArray entityIdsArr;
entityIdsArr.append(entId0);
OdTvGeometryDataIdsArray geoDataIds;
geoDataIds.append(geomId0);
OdTvSubGeometryId subGeoDataId;
OdTvSubItemPath subItemPath(entityIdsArr, geoDataIds, subGeoDataId);

但还有一点需要注意:
要对几何图形或子几何图形(例如壳体的面)执行选择/高亮操作,必须为具体实体或整个模型设置相应的可选性(selectability)级别。默认的可选性级别仅支持实体级选择和高亮。以下是为整个模型设置几何图形可选性的示例:level assumes the selection and highlighting only for entities. Here is a sample how to set selectability for the whole model:

OdTvModelPtr pModel = modelId.openObject(OdTv::kForWrite);
OdTvSelectabilityDef selectability;
selectability.setGeometries(true);
pModel->setSelectability(selectability);