---
title: MDLObjectContainerComponent
framework: modelio
role: symbol
role_heading: Protocol
path: modelio/mdlobjectcontainercomponent
---

# MDLObjectContainerComponent

The general interface for classes that can act as containers in an object hierarchy.

## Declaration

```swift
protocol MDLObjectContainerComponent : NSFastEnumeration, MDLComponent
```

## Overview

Overview Model I/O uses this interface to represent content loaded from an asset file. Various asset file formats define collections of information to describe their contents, such as a hierarchy of transforms to model the spatial relationships between models, lights, and meshes contained in an asset. When Model I/O imports such asset formats, the contents of the asset are objects implementing this protocol. You can also adopt this protocol in your own classes to describe your own custom asset formats—for example, one that includes collections of scripts and their triggers associated with the objects in a scene.

## Topics

### Working with Child Objects

- [objects](modelio/mdlobjectcontainercomponent/objects.md)
- [add(_:)](modelio/mdlobjectcontainercomponent/add(_:).md)
- [remove(_:)](modelio/mdlobjectcontainercomponent/remove(_:).md)

### Instance Properties

- [count](modelio/mdlobjectcontainercomponent/count.md)

### Subscripts

- [subscript(_:)](modelio/mdlobjectcontainercomponent/subscript(_:).md)

## Relationships

### Inherits From

- [MDLComponent](modelio/mdlcomponent.md)
- [NSFastEnumeration](foundation/nsfastenumeration.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

### Conforming Types

- [MDLObjectContainer](modelio/mdlobjectcontainer.md)

## See Also

### Extensible Asset Format Support

- [MDLComponent](modelio/mdlcomponent.md)
- [MDLObjectContainer](modelio/mdlobjectcontainer.md)
- [MDLTransformComponent](modelio/mdltransformcomponent.md)
