root-prim-xformable#

Code

HI.003

Validator

Compatibility

openusd

Tags

Summary#

The root prim of a placeable asset shall be an Xformable prim (i.e., a prim that inherits UsdGeomXformable, such as Xform).

Description#

Assets should have a transformable root prim to allow the entire asset to be easily transformed when instanced into a larger scene. This enables consistent transformation operations on the asset as a whole unit.

Why is it required?#

  • Allows the entire asset to be transformed as a single unit

  • Enables easy positioning and orientation when referencing into scenes

  • Provides consistent behavior for asset manipulation tools

  • Facilitates automated scene composition and layout workflows

Examples#

#usda 1.0
(
    defaultPrim = "MyAsset"
)

# Valid: Root prim is Xformable
def Xform "MyAsset" (
)
{   
    def Scope "Geometry" {
        # Asset geometry
    }
}

# Invalid: Root prim is not Xformable
def Scope "MyAsset"
{
    def Mesh "Geometry" {
        # Asset geometry
    }
}

# Invalid: Using Mesh directly as root
def Mesh "MyAsset"
{
    # Asset geometry directly in root mesh
}

How to comply#

  • Use Xform or other UsdGeomXformable-derived prims as the root prim

  • Use UsdGeomXformCommonAPI to the root prim for consistent transformation handling

  • Organize all asset content under the transformable root prim

For more information#