Manage metadata
Manage asset metadata in Unity Asset Manager using the Python SDK, including how to create, update, and delete metadata fields.
Read time 3 minutesLast updated 8 days ago
Before you begin
To access any metadata from an asset, dataset or file, make sure the app has all the right accesses. Read more about managing Identity.How do I...?
Create a metadata field definition
To create a metadata field, follow these steps:- Create a object and fill in the necessary information.
CreateField
- Call with the organization id and your
create_field_definition
object. The possible forCreateField
are:FieldDefinitionType
BOOLEAN
SELECTION
NUMBER
TEXT
TIMESTAMP
URL
USER
create_field = CreateFieldDefinition( key = "my_new_field", display_name = "My Field", type = unity_cloud.assets.FieldDefinitionType.SELECT, accepted_values = ["value1", "value2", "value3"], multiselection = False ) unity_cloud.assets.create_field_definition(org_id = "0123456", create_field = create_field)
Update a metadata field definition
To update a metadata field, follow these steps:- Create an object along with the information to update.
UpdateField
- Call with the organization id and your
update_field_definition
.UpdateFieldobject
update_field = UpdateFieldDefinition( key = "my_new_field", display_name = "My Field with a new name", accepted_values = ["value1", "value2", "value3", "value4"] ) unity_cloud.assets.update_field_definition(org_id = "0123456", update_field = create_field)
Add accepted values to a SELECT metadata field
To add accepted values to a metadata field of typeSELECT
add_accepted_values_to_field_definition
update_field_definition
unity_cloud.assets.add_accepted_values_to_field_definition(org_id = "0123456", field_key = "my_new_field", accepted_values = ["value5", "value6"])
Remove accepted values from a SELECT metadata field
To remove accepted values to a metadata field of typeSELECT
remove_accepted_values_from_field_definition
update_field_definition
unity_cloud.assets.remove_accepted_values_from_field_definition(org_id = "0123456", field_key = "my_new_field", accepted_values = ["value5", "value6"])
Delete a metadata field definition
To delete a metadata field, call delete_field_definition with its organization id and field key.unity_cloud.assets.delete_field_definition(org_id = "0123456", field_key = "my_new_field")
List all field definitions
To retrieve all metadata field from an organization, calllist_field_definitions
- (Optional) Add the parameter name_sorting_order to sort the results alphabetically either in ascending or descending.
- (Optional) Add the parameter to limit the amount of results returned. Leave it unchanged or set it to 0 to return everything.
limit_to
- (Optional) Add the parameter to specify the number of collection to skip in the results. Use in combination with limit_to to page through results.
skip
fields = unity_cloud.assets.list_field_definitions( org_id = "0123456", include_deleted = False, name_sorting_order = SortingOrder.ASCENDING, limit_to = 10, skip = 0)
Get a field definition
To retrieve a metadata field from an organization, callget_field_definition
field = unity_cloud.assets.get_field_definition(org_id = "0123456", field_key = "my_new_field")
Manage metadata
When managingMetadata
SELECT
- If set to , the
TRUE
is an array of strings.accepted_values
- If set to , the
FALSE
is a string.accepted_values
- Use the following code sample to create an entity:
metadata = dict() metadata["Language"] = "C#" asset_creation = AssetCreation( name = "your-asset-name", description = "your-asset-description", type = unity_cloud.assets.asset_type.MODEL_3D, metadata = metadata )
- Use the following code sample to update an entity:
metadata = dict() metadata["Language"] = "C#" asset_update = AssetUpdate( name = "your-asset-name", metadata = metadata )
- Use the following code sample to fetch an entity's metadata:
asset_metadata = unity_cloud.assets.get_asset_metadata( org_id = "012345", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789", keys = []) asset_prog_language = asset_metadata["Language"] dataset_metadata = unity_cloud.datasets.get_dataset_metadata( org_id = "012345", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789", dataset_id = "0123456789", keys = []) file_Metadata = unity_cloud.files.get_file_metadata( org_id = "012345", project_id = "1234abcd-ab12-cd34-ef56-123456abcdef", asset_id = "0123456789", dataset_id = "0123456789", cloud_file_path = PurePosixPath("path/to/file.ext"), keys = [])