<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ARKit",
  "identifier" : "/documentation/ARKit/ARPlaneExtent",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "ARKit"
    ],
    "preciseIdentifier" : "c:objc(cs)ARPlaneExtent"
  },
  "title" : "ARPlaneExtent"
}
-->

# ARPlaneExtent

The size and y-axis rotation of a detected plane.

```
class ARPlaneExtent
```

## Overview

A plane anchor ([`ARPlaneAnchor`](/documentation/ARKit/ARPlaneAnchor)) describes its size and orientation on the y-axis using the [`planeExtent`](/documentation/ARKit/ARPlaneAnchor/planeExtent) property of this type.

At runtime, ARKit continually updates the anchor’s width and height as the framework refines its knowledge of the plane’s shape in the environment.

Similarly, as the session runs, the framework may update the plane’s y-rotation to better fit its rectangular area in the environment. In iOS 15 and earlier, the framework rotates the plane anchor according to that angle. In iOS 16, the framework doesn’t rotate the anchor automatically and its transform matrix remains unchanged. Instead, the framework exposes the angle [`rotationOnYAxis`](/documentation/ARKit/ARPlaneExtent/rotationOnYAxis) that you apply to any plane extent geometry in your app.

> Important:
> Apps that run on iOS 16 with a deployment target less than iOS 16 preserve the prior y-axis rotation behavior.

### Size and Rotate an Entity to a Plane’s Extent

The following code defines a RealityKit entity sized to the plane extent’s width and height. The helper function also applies the extent’s suggested y-axis rotation by setting its transform `yaw` value to [`rotationOnYAxis`](/documentation/ARKit/ARPlaneExtent/rotationOnYAxis).

```swift
func createPlane(for planeAnchor: ARPlaneAnchor, material: Material) -> ModelEntity {

    // Get the plane's extent.
    let extent = planeAnchor.planeExtent

    // Create a model entity sized to the plane's extent.
    let planeEntity = ModelEntity(mesh: .generatePlane (width: extent.width, depth: extent.height),
        materials: [material])

    // Orient the entity according to the extent's y-axis rotation.
    planeEntity.transform = Transform(pitch: 0, yaw: extent.rotationOnYAxis, roll: 0)

    // Center the entity on the plane.
    planeEntity.transform.translation = planeAnchor.center

    return planeEntity
}
```

## Topics

### Inspecting Plane Size

[`width`](/documentation/ARKit/ARPlaneExtent/width)

The estimated width of the plane.

[`height`](/documentation/ARKit/ARPlaneExtent/height)

The estimated height of the plane.

### Inspecting Plane Y-Rotation

[`rotationOnYAxis`](/documentation/ARKit/ARPlaneExtent/rotationOnYAxis)

A radian value that indicates a plane’s y-axis orientation.



---

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)