Extension: omni.kit.property.adapter.usd-1.0.5 |
Documentation Generated: Nov 13, 2025 |
Overview#
The omni.kit.property.adapter.usd extension provides a unified interface for Property Widget to read and write attributes to USD stages. This extension enables Property Widget to work seamlessly with USD data by wrapping USD objects in adapter classes that provide a standardized interface for property access and modification. It acts as a bridge between the Property Widget system and USD data structures, allowing property tools to interact with USD attributes, prims, and stages without needing to handle USD-specific API details directly.
Key Components#
UsdStageAdapter#
The UsdStageAdapter serves as the primary interface for USD stage interaction within the Property Widget system. It wraps a USD stage and provides standardized methods for accessing prims and attributes while managing priority settings for read and write operations.
The adapter supports configurable read and write priorities through extension settings, with default values of 200 for read priority and 100 for write priority. These priorities determine the order in which different adapters are used when multiple stage adapters are available.
UsdPrimAdapter#
The UsdPrimAdapter wraps USD prims to provide a unified interface for prim access. It delegates attribute access to the underlying USD prim while maintaining compatibility with the Property Widget’s expected API patterns. This allows property tools to work with USD prims using familiar interface methods regardless of the underlying USD implementation details.
UsdAttributeAdapter#
The UsdAttributeAdapter wraps USD properties and provides standardized property access methods. It includes specialized functionality for determining property types and accessing the parent prim through the adapted interface. The adapter ensures that USD properties can be accessed and modified through the Property Widget’s standard attribute interface.
TfNoticeWrapper#
The TfNoticeWrapper provides change tracking capabilities by monitoring USD stage object changes through the Tf Notice system. It automatically registers listeners for Usd.Notice.ObjectsChanged notifications and invokes callback functions when changes occur on monitored USD stages. The wrapper handles proper cleanup of notice listeners to prevent resource leaks.
Functionality#
The extension automatically registers the UsdStageAdapter with the property adapter registry during startup, making USD stages available to Property Widget systems. This registration enables Property Widget to discover and interact with USD data through the standardized adapter interface.
The adapter system supports bidirectional data conversion, allowing property values to be read from USD attributes and written back to USD stages. Time-based property queries are supported through USD time code conversion functionality that respects the stage’s configured time codes per second setting.
Change tracking functionality monitors specific attributes and prim paths, enabling Property Widget to respond to USD stage modifications in real-time. The system provides callback mechanisms that notify property tools when relevant USD objects change, ensuring property displays remain synchronized with stage data.
Configuration#
The extension supports priority configuration through settings that control adapter precedence:
[settings]
exts."omni.kit.property.adapter.usd".priority_read = 200
exts."omni.kit.property.adapter.usd".priority_write = 100
These settings determine the order in which the USD adapter is used relative to other property adapters when multiple adapters are available for the same data types.