<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "USDKit",
  "identifier" : "/documentation/USDKit/USDPrim/Reference",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "USDKit"
    ],
    "preciseIdentifier" : "s:6USDKit7USDPrimV9ReferenceV"
  },
  "title" : "USDPrim.Reference"
}
-->

# USDPrim.Reference

A reference to an external layer or asset.

```
struct Reference
```

## Overview

References are composition arcs that bring content from another layer
into this prim. A reference specifies the asset path, an optional
target prim path within that asset, a time offset for remapping
animation, and arbitrary custom metadata.

## Topics

### Initializers

[`init(assetPath: String?, primPath: USDLayer.Path?, layerOffset: USDLayer.TimeOffset, customData: Dictionary<String, USDValue>)`](/documentation/USDKit/USDPrim/Reference/init(assetPath:primPath:layerOffset:customData:))

Creates a reference.

### Instance Properties

[`var assetPath: String?`](/documentation/USDKit/USDPrim/Reference/assetPath)

The asset path the reference targets, or `nil` for an internal reference.

[`var customData: Dictionary<String, USDValue>`](/documentation/USDKit/USDPrim/Reference/customData)

Custom metadata authored alongside the reference.

[`var isInternal: Bool`](/documentation/USDKit/USDPrim/Reference/isInternal)

Whether this is an internal reference (empty asset path).

[`var layerOffset: USDLayer.TimeOffset`](/documentation/USDKit/USDPrim/Reference/layerOffset)

Time-axis remap applied to the reference’s animation.

[`var primPath: USDLayer.Path?`](/documentation/USDKit/USDPrim/Reference/primPath)

The target prim path within the referenced asset, or `nil` to use
the asset’s default prim.

### Instance Methods

[`func setCustomData(String, to: USDValue)`](/documentation/USDKit/USDPrim/Reference/setCustomData(_:to:))

Sets `key` in `customData` to `value`.

## Relationships

### Conforms To

[`Copyable`](/documentation/Swift/Copyable)

[`Hashable`](/documentation/Swift/Hashable)

[`Equatable`](/documentation/Swift/Equatable)

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Escapable`](/documentation/Swift/Escapable)

---

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)