---
title: MDLObjectContainer
framework: modelio
role: symbol
role_heading: Class
path: modelio/mdlobjectcontainer
---

# MDLObjectContainer

A default implementation for handling object hierarchy relationships in a 3D asset.

## Declaration

```swift
class MDLObjectContainer
```

## Overview

Overview Model I/O uses the MDLObjectContainerComponent protocol to create object hierarchy relationships for meshes, lights, cameras, and containers loaded from a MDLAsset instance. To create your own containers—for example, to reference in-memory representations, offline databases, or custom asset file formats—create MDLObjectContainer subclasses and add them to a MDLObject instance using its setComponent(_:for:) method. All methods of this class are defined by the MDLObjectContainerComponent protocol. For discussion of these methods, see MDLObjectContainerComponent.

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [MDLComponent](modelio/mdlcomponent.md)
- [MDLObjectContainerComponent](modelio/mdlobjectcontainercomponent.md)
- [NSFastEnumeration](foundation/nsfastenumeration.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Extensible Asset Format Support

- [MDLComponent](modelio/mdlcomponent.md)
- [MDLObjectContainerComponent](modelio/mdlobjectcontainercomponent.md)
- [MDLTransformComponent](modelio/mdltransformcomponent.md)
