---
title: CapturedRoom.ModelProvider
framework: roomplan
role: symbol
role_heading: Structure
path: roomplan/capturedroom/modelprovider
---

# CapturedRoom.ModelProvider

A structure that assigns detailed 3D models to captured objects for an export.

## Declaration

```swift
struct ModelProvider
```

## Overview

Overview This structure provides a way for your app to assign detailed shape to specific areas within a captured room. RoomPlan approximates the size and shape of objects it observes in a scan by using bounding boxes. In iOS 17 and later, the framework categorizes those objects that it recognizes by tagging them with specific attributes (Captured Object Attributes). ModelProvider enables your app to export the categorized objects with unique 3D models. For example, you can assign a specific 3D model to a combination of attributes, such as all .stool objects with a .star base.

## Topics

### Creating a model provider

- [init()](roomplan/capturedroom/modelprovider/init().md)

### Managing models

- [modelFileURLs](roomplan/capturedroom/modelprovider/modelfileurls.md)
- [modelFileURL(for:)](roomplan/capturedroom/modelprovider/modelfileurl(for:)-9irqx.md)
- [modelFileURL(for:)](roomplan/capturedroom/modelprovider/modelfileurl(for:)-96rvb.md)
- [modelFileURL(for:)](roomplan/capturedroom/modelprovider/modelfileurl(for:)-58ykp.md)
- [setModelFileURL(_:for:)](roomplan/capturedroom/modelprovider/setmodelfileurl(_:for:)-8xio.md)
- [setModelFileURL(_:for:)](roomplan/capturedroom/modelprovider/setmodelfileurl(_:for:)-4law9.md)

### Handling errors

- [CapturedRoom.ModelProvider.Error](roomplan/capturedroom/modelprovider/error.md)

## See Also

### Generating a USDZ file

- [export(to:exportOptions:)](roomplan/capturedroom/export(to:exportoptions:).md)
- [export(to:metadataURL:modelProvider:exportOptions:)](roomplan/capturedroom/export(to:metadataurl:modelprovider:exportoptions:).md)
- [CapturedRoom.USDExportOptions](roomplan/capturedroom/usdexportoptions.md)
