Hi @sirian_ye,

The replacement `ONX_Model_Object`

, found in earlier version of openNURBS is `ON_ModelComponent`

. And yes, using a `ONX_ModelComponentIterator`

iterator is the correct way for getting components.

If you need a model geometry component’s attributes, use `ON_ModelGeometryComponent::Attributes`

.

For example:

```
ONX_ModelComponentIterator it(model, ON_ModelComponent::Type::ModelGeometry);
const ON_ModelComponent* model_component = nullptr;
for (model_component = it.FirstComponent(); nullptr != model_component; model_component = it.NextComponent())
{
const ON_ModelGeometryComponent* model_geometry = ON_ModelGeometryComponent::Cast(model_component);
if (nullptr != model_geometry)
{
const ON_Geometry* geometry = model_geometry->Geometry(nullptr);
const ON_3dmObjectAttributes* attributes = model_geometry->Attributes(nullptr);
if (nullptr != geometry && nullptr != attributes)
{
// TODO...
}
}
}
```

– Dale