<!--
{
  "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/USDStage/Object/MetadataCollection",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "USDKit"
    ],
    "preciseIdentifier" : "s:6USDKit8USDStageV6ObjectV18MetadataCollectionP"
  },
  "title" : "USDStage.Object.MetadataCollection"
}
-->

# USDStage.Object.MetadataCollection

A scene graph object that possesses metadata.

```
protocol MetadataCollection
```

## Overview

Prims, attributes, and relationships may have associated metadata.
Metadata on an object is accessed by its name, which is a [`USDToken`](/documentation/USDKit/USDToken).

> Important: Don’t declare new conformances to MetadataCollection. Only
> the types provided by the USDStageKit framework are valid conforming
> types.

## Topics

### Instance Properties

[`var allAuthoredMetadata: Dictionary<USDToken, USDValue>`](/documentation/USDKit/USDStage/Object/MetadataCollection/allAuthoredMetadata)

Every authored metadata value on this object.

[`var allMetadata: Dictionary<USDToken, USDValue>`](/documentation/USDKit/USDStage/Object/MetadataCollection/allMetadata)

Every metadata value on this object, including fallbacks.

[`var assetInfo: Dictionary<String, USDValue>`](/documentation/USDKit/USDStage/Object/MetadataCollection/assetInfo)

A dictionary of asset information authored on this object.

[`var customData: Dictionary<String, USDValue>`](/documentation/USDKit/USDStage/Object/MetadataCollection/customData)

A dictionary of custom data authored on this object.

[`var displayName: String`](/documentation/USDKit/USDStage/Object/MetadataCollection/displayName)

A non-unique display name authored on this object.

[`var documentation: String`](/documentation/USDKit/USDStage/Object/MetadataCollection/documentation)

A human-readable description authored on this object.

[`var hasAssetInfo: Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAssetInfo)

A Boolean value that indicates whether this object has asset information.

[`var hasAuthoredAssetInfo: Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredAssetInfo)

A Boolean value that indicates whether this object has authored asset
information.

[`var hasAuthoredCustomData: Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredCustomData)

A Boolean value that indicates whether this object has authored custom
data.

[`var hasAuthoredDisplayName: Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredDisplayName)

A Boolean value that indicates whether this object has an authored
display name.

[`var hasAuthoredDocumentation: Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredDocumentation)

A Boolean value that indicates whether this object has authored
documentation.

[`var hasAuthoredHidden: Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredHidden)

A Boolean value that indicates whether this object has an authored
`isHidden` opinion.

[`var hasCustomData: Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasCustomData)

A Boolean value that indicates whether this object has custom data.

[`var isHidden: Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/isHidden)

A Boolean value that indicates whether this object is hidden from
browsing UI.

### Instance Methods

[`func assetInfoByKey(USDToken) -> USDValue?`](/documentation/USDKit/USDStage/Object/MetadataCollection/assetInfoByKey(_:))

Returns the asset information value at the given key path.

[`func clearAssetInfo()`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearAssetInfo())

Removes all authored asset information on this object.

[`func clearAssetInfoByKey(USDToken)`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearAssetInfoByKey(_:))

Removes the authored asset information value at the given key path.

[`func clearCustomData()`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearCustomData())

Removes all authored custom data on this object.

[`func clearCustomDataByKey(USDToken)`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearCustomDataByKey(_:))

Removes the authored custom data value at the given key path.

[`func clearDisplayName()`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearDisplayName())

Removes the authored display name on this object.

[`func clearDocumentation()`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearDocumentation())

Removes the authored documentation on this object.

[`func clearHidden()`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearHidden())

Removes the authored `isHidden` opinion on this object.

[`func clearMetadata(USDToken) throws`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearMetadata(_:))

Removes the authored metadata value for the given key.

[`func clearMetadata(USDToken, keyPath: USDToken) throws`](/documentation/USDKit/USDStage/Object/MetadataCollection/clearMetadata(_:keyPath:))

Removes the authored value at `keyPath` within the dictionary-valued
metadata for the given key.

[`func customDataByKey(USDToken) -> USDValue?`](/documentation/USDKit/USDStage/Object/MetadataCollection/customDataByKey(_:))

Returns the custom data value at the given key path.

[`func hasAssetInfoByKey(USDToken) -> Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAssetInfoByKey(_:))

Returns a Boolean value that indicates whether asset information exists
at the given key path.

[`func hasAuthoredAssetInfoByKey(USDToken) -> Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredAssetInfoByKey(_:))

Returns a Boolean value that indicates whether authored asset
information exists at the given key path.

[`func hasAuthoredCustomDataByKey(USDToken) -> Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredCustomDataByKey(_:))

Returns a Boolean value that indicates whether authored custom data
exists at the given key path.

[`func hasAuthoredMetadata(USDToken) -> Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredMetadata(_:))

Returns a Boolean value that indicates whether metadata for the given
key has an authored value.

[`func hasAuthoredMetadata(USDToken, keyPath: USDToken) -> Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasAuthoredMetadata(_:keyPath:))

Returns a Boolean value that indicates whether the dictionary-valued
metadata for the given key has an authored value at `keyPath`.

[`func hasCustomDataByKey(USDToken) -> Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasCustomDataByKey(_:))

Returns a Boolean value that indicates whether custom data exists at the
given key path.

[`func hasMetadata(USDToken) -> Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasMetadata(_:))

Returns a Boolean value that indicates whether metadata for the given
key has a value, including its fallback.

[`func hasMetadata(USDToken, keyPath: USDToken) -> Bool`](/documentation/USDKit/USDStage/Object/MetadataCollection/hasMetadata(_:keyPath:))

Returns a Boolean value that indicates whether the dictionary-valued
metadata for the given key has a value at `keyPath`.

[`func metadata(USDToken) -> UInt?`](/documentation/USDKit/USDStage/Object/MetadataCollection/metadata(_:)-136hk)

[`func metadata<T>(USDToken) -> T?`](/documentation/USDKit/USDStage/Object/MetadataCollection/metadata(_:)-574ho)

Returns the metadata value for the given key.

[`func metadata(USDToken) -> Int?`](/documentation/USDKit/USDStage/Object/MetadataCollection/metadata(_:)-8jz5b)

[`func metadata(USDToken, keyPath: USDToken) -> UInt?`](/documentation/USDKit/USDStage/Object/MetadataCollection/metadata(_:keyPath:)-5pid3)

[`func metadata<T>(USDToken, keyPath: USDToken) -> T?`](/documentation/USDKit/USDStage/Object/MetadataCollection/metadata(_:keyPath:)-62uj1)

Returns the value at `keyPath` within the dictionary-valued metadata for
the given key.

[`func metadata(USDToken, keyPath: USDToken) -> Int?`](/documentation/USDKit/USDStage/Object/MetadataCollection/metadata(_:keyPath:)-8isq8)

[`func setAssetInfoByKey(USDToken, value: USDValue)`](/documentation/USDKit/USDStage/Object/MetadataCollection/setAssetInfoByKey(_:value:))

Sets the asset information value at the given key path.

[`func setCustomDataByKey(USDToken, value: USDValue)`](/documentation/USDKit/USDStage/Object/MetadataCollection/setCustomDataByKey(_:value:))

Modifies the custom data value at the given key path.

[`func setMetadata(USDToken, keyPath: USDToken, value: UInt) throws`](/documentation/USDKit/USDStage/Object/MetadataCollection/setMetadata(_:keyPath:value:)-1ri3i)

[`func setMetadata<T>(USDToken, keyPath: USDToken, value: T) throws`](/documentation/USDKit/USDStage/Object/MetadataCollection/setMetadata(_:keyPath:value:)-62b48)

Sets the value at `keyPath` within the dictionary-valued metadata for
the given key.

[`func setMetadata(USDToken, keyPath: USDToken, value: Int) throws`](/documentation/USDKit/USDStage/Object/MetadataCollection/setMetadata(_:keyPath:value:)-8isk6)

[`func setMetadata(USDToken, value: Int) throws`](/documentation/USDKit/USDStage/Object/MetadataCollection/setMetadata(_:value:)-22f8j)

[`func setMetadata(USDToken, value: UInt) throws`](/documentation/USDKit/USDStage/Object/MetadataCollection/setMetadata(_:value:)-8hsn7)

[`func setMetadata<T>(USDToken, value: T) throws`](/documentation/USDKit/USDStage/Object/MetadataCollection/setMetadata(_:value:)-r1j8)

Sets the metadata value for the given key.

## Relationships

### Conforming Types

[`Attribute`](/documentation/USDKit/USDPrim/Attribute)

[`Property`](/documentation/USDKit/USDPrim/Property)

[`Relationship`](/documentation/USDKit/USDPrim/Relationship)

[`Object`](/documentation/USDKit/USDStage/Object)

[`USDPrim`](/documentation/USDKit/USDPrim)

---

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)