UsdAttributeSet
In USD, the attributes are essentially the defining properties of the prim. As a simple example, one of the properties of cube prim is “size”, which could appear as follows:
#usda 1.0 
                                                    
def Cube "myCube"
{ 
         float size = 2.0
        
}
An attribute has a data type (the type is “double” in the example above), name, and value. The value may be numeric, a string, or an array. Unlike metadata, the value of an attribute may be time-sampled, in that the attribute may have several values, each of which is active at a given timecode or frame.
Attributes are one of the two defining properties of a prim, together with relationships.
Note: For more details see Attribute in OpenUSD’s USD Glossary.
Setting and Blocking Attributes
When assigning an attribute to a prim, you can choose between one of three actions:
- 
                                                            
Create/Override - Add a new attribute or override the value of an existing one.
 - 
                                                            
Block - Disable the attribute, effectively blocking its effect on the prim.
 - 
                                                            
Force Default - Force the attribute back to its default value.
 
As Block and Force Default don’t require a value, you need only supply the attributeName.
Create/Override requires all the attribute settings including attributeName, attributeType, and value. You also need to set isCustom to indicate if the attribute is pre-defined or a new, custom attribute.
For time-sampled values, set multisample to Yes. For example, say you’re animating a cube to grow in size, the attribute in USD code, could look like this:
def Cube “GrowingCube"
                                                    
{
	 		float size.timeSamples = {
 		0: 1.0,
 	 	2: 2.0,
 	 		3: 4.0,	
			
 }
	}
		
Tip: You can drag and drop an attribute from the Attributes Tab into the UsdAttributeSet node's Parameters to have it adopt the attributeName, attributeType, and value.
Inputs
| 
                                                                     Connection Type  | 
                                                                
                                                                     Connection Name  | 
                                                                
                                                                     Function  | 
                                                            
| input | in | The incoming scene graph data that the node will operate on or modify. | 
Controls
| 
                                                                     Control (UI)  | 
                                                                
                                                                     Default Value  | 
                                                                
                                                                     Function  | 
                                                            
| primPaths | N/A | The paths to the Prims that you want to assign this attribute to. | 
| action | 
                                                                     Choose how you want to apply the attribute update. 
  | 
                                                            |
| attributeName | N/A | Assign a name to the attribute. | 
| attributeType | Double | Choose from one of the available data types for the attribute. | 
| multisample | Yes | 
                                                                     Select Yes if the data is time-sampled. Select No if the value should not vary over time.  | 
                                                            
| isCustom | No | Select Yes if this is a custom attribute. | 
| value | N/A | Assign a value to the attribute. |