Skip to content

Latest commit

 

History

History
56 lines (40 loc) · 1.82 KB

entity_links.rst

File metadata and controls

56 lines (40 loc) · 1.82 KB

Using entity links

A link can be used to represent a dependency or another relation between two entities in ftrack.

There are two types of entities that can be linked:

  • Versions can be linked to other asset versions, where the link entity type is AssetVersionLink.
  • Objects like Task, Shot or Folder, where the link entity type is TypedContextLink.

Both AssetVersion and TypedContext objects have the same relations incoming_links and outgoing_links. To list the incoming links to a Shot we can use the relationship incoming_links:

for link in shot['incoming_links']:
    print(link['from'], link['to'])

In the above example link['to'] is the shot and link['from'] could be an asset build or something else that is linked to the shot. There is an equivalent outgoing_links that can be used to access outgoing links on an object.

To create a new link between objects or asset versions create a new TypedContextLink or AssetVersionLink entity with the from and to properties set. In this example we will link two asset versions:

session.create('AssetVersionLink', {
    'from': from_asset_version,
    'to': to_asset_version
})
session.commit()

Using asset version link shortcut

Links on asset version can also be created by the use of the uses_versions and used_in_versions relations:

rig_version['uses_versions'].append(model_version)
session.commit()

This has the same result as creating the AssetVersionLink entity as in the previous section.

Which versions are using the model can be listed with:

for version in model_version['used_in_versions']:
    print('{0} is using {1}'.format(version, model_version))