<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: 16.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "RoomPlan",
  "identifier" : "/documentation/RoomPlan/RoomBuilder",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "RoomPlan"
    ],
    "preciseIdentifier" : "s:8RoomPlan0A7BuilderC"
  },
  "title" : "RoomBuilder"
}
-->

# RoomBuilder

An object that generates a 3D asset from room-capture data.

```
class RoomBuilder
```

## Overview

This class processes data from an earlier scan to generate a detailed [`CapturedRoom`](/documentation/RoomPlan/CapturedRoom) object.

Your app receives raw captured room data ([`CapturedRoomData`](/documentation/RoomPlan/CapturedRoomData)) through:

- The view delegate ([`RoomCaptureViewDelegate`](/documentation/RoomPlan/RoomCaptureViewDelegate)) callback [`captureView(shouldPresent:error:)`](/documentation/RoomPlan/RoomCaptureViewDelegate/captureView(shouldPresent:error:))
  for an app that provides room-scanning features through the framework-provided view ([`RoomCaptureView`](/documentation/RoomPlan/RoomCaptureView)).
- The scan session ([`RoomCaptureSession`](/documentation/RoomPlan/RoomCaptureSession)) callback [`captureSession(_:didEndWith:error:)`](/documentation/RoomPlan/RoomCaptureSessionDelegate/captureSession(_:didEndWith:error:))
  for an app that provides room-scanning features by displaying its own view.

Your app generates a detailed captured room object by calling [`capturedRoom(from:)`](/documentation/RoomPlan/RoomBuilder/capturedRoom(from:)) on the raw data. Your app can
then inspect or modify this data before exporting the scanned room to a USDZ file.

## Topics

### Creating a room builder

[`init(options: RoomBuilder.ConfigurationOptions)`](/documentation/RoomPlan/RoomBuilder/init(options:))

Creates a room builder using the specified options.

[`struct ConfigurationOptions`](/documentation/RoomPlan/RoomBuilder/ConfigurationOptions)

Options that configure a room builder.

### Processing a prior scan

[`func capturedRoom(from: CapturedRoomData) async throws -> CapturedRoom`](/documentation/RoomPlan/RoomBuilder/capturedRoom(from:))

Processes the specified raw scan results and returns a detailed representation of the room.

### Handling errors

[`enum BuildError`](/documentation/RoomPlan/RoomBuilder/BuildError)

Errors that can occur during captured room-data processing.



---

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)