<!--
{
  "availability" : [
    "iOS: 9.0.0 -",
    "iPadOS: 9.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.11.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ModelIO",
  "identifier" : "/documentation/ModelIO/MDLObject/children",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Model I/O"
    ],
    "preciseIdentifier" : "c:objc(cs)MDLObject(py)children"
  },
  "title" : "children"
}
-->

# children

A component that manages this object’s collection of children.

```
var children: any MDLObjectContainerComponent { get set }
```

## Discussion

Many asset formats describe a hierarchy of transforms that model the spatial relationships between meshes, lights, and cameras in the asset. In such formats, hierarchic transforms are [`MDLObject`](/documentation/ModelIO/MDLObject) instances whose [`children`](/documentation/ModelIO/MDLObject/children) property references the objects affected by the transform, and those objects can be other [`MDLObject`](/documentation/ModelIO/MDLObject) instances with children of their own.

This property’s value is a component object—either a [`MDLObjectContainer`](/documentation/ModelIO/MDLObjectContainer) instance, or a custom class that adopts the [`MDLObjectContainerComponent`](/documentation/ModelIO/MDLObjectContainerComponent) protocol. By default, an object has no container component (that is, this property’s value is `nil`). To add a container component, either write to this property an instance of a container component class or call the [`addChild(_:)`](/documentation/ModelIO/MDLObject/addChild(_:)) method to create a default [`MDLObjectContainer`](/documentation/ModelIO/MDLObjectContainer) instance and add a child object to that container.

> Note:
> Reading or writing this property is equivalent to calling the ``doc://com.apple.modelio/documentation/ModelIO/MDLObject/componentConforming(to:)`` or ``doc://com.apple.modelio/documentation/ModelIO/MDLObject/setComponent(_:for:)`` method with the ``doc://com.apple.modelio/documentation/ModelIO/MDLObjectContainerComponent`` protocol.

Container components support fast enumeration and subscripting, so you can treat an object’s children property similarly to an array.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)