---
title: HasHierarchy
framework: realitykit
role: symbol
role_heading: Protocol
path: realitykit/hashierarchy
---

# HasHierarchy

An interface that provides access to a parent entity and child entities.

## Declaration

```swift
@MainActor @preconcurrency protocol HasHierarchy : Entity
```

## Mentioned in

Loading entities from a file

## Overview

Overview All entities automatically adopt this protocol because the Entity base class does. This adoption gives all entities a collection of methods for managing the hierarchy.

## Topics

### Managing the parent

- [parent](realitykit/hashierarchy/parent.md)
- [setParent(_:preservingWorldTransform:)](realitykit/hashierarchy/setparent(_:preservingworldtransform:).md)
- [removeFromParent(preservingWorldTransform:)](realitykit/hashierarchy/removefromparent(preservingworldtransform:).md)

### Managing children

- [children](realitykit/hashierarchy/children.md)
- [addChild(_:preservingWorldTransform:)](realitykit/hashierarchy/addchild(_:preservingworldtransform:).md)
- [removeChild(_:preservingWorldTransform:)](realitykit/hashierarchy/removechild(_:preservingworldtransform:).md)

## Relationships

### Inherits From

- [Entity](realitykit/entity.md)

### Conforming Types

- [AnchorEntity](realitykit/anchorentity.md)
- [BodyTrackedEntity](realitykit/bodytrackedentity.md)
- [DirectionalLight](realitykit/directionallight.md)
- [Entity](realitykit/entity.md)
- [ModelEntity](realitykit/modelentity.md)
- [PerspectiveCamera](realitykit/perspectivecamera.md)
- [PointLight](realitykit/pointlight.md)
- [SpotLight](realitykit/spotlight.md)
- [TriggerVolume](realitykit/triggervolume.md)
- [ViewAttachmentEntity](realitykit/viewattachmententity.md)

## See Also

### Relating entities

- [parameters](realitykit/entity/parameters.md)
- [Entity.ChildCollection](realitykit/entity/childcollection.md)
