Shotgun 中的数据按实体进行组织(有些类似于数据库中的表)。实体具有字段,也称为属性(类似于数据库表中的列)。
每个实体都有以下属性:
- ID
- “代码”(Code)或“名称”(Name)
- 类型(Type)
有一些其他属性。由于所有其他属性都是可配置的,因此 API 提供了简单的工具来动态查询它们。
API 非常简单:CRUD (http://en.wikipedia.org/wiki/Create,_read,_update_and_delete) 和大量列表清单。
API 提供了工具来帮助您了解数据结构。也可以在“管理”(Admin)菜单中转到“字段”(Fields)页面以查看您的站点上配置的所有字段的列表。请注意,字段具有 API 使用的“字段代码”(Field Code)和 UI 中使用的“字段名称”(Field Name)。它们通常非常类似,但不一定是可预测的。可检查“字段”(Fields)页面查看两者。
由于文件可以上传或进行本地链接,Shotgun 提供了一些特定的方法用于处理缩略图和文件。
您可以使用特殊的“实体”类型字段将实体链接在一起。通过 UI,我们可以看到镜头序列 SATL 链接了七个镜头(下面的第一个图)和六个资产(下面的第二个图)。
从 Python 控制台(或通过 Shotgun API),我们可以查询与 SATL 镜头序列关联的镜头和资产:
>>> filters=[['code','is','SATL']]
>>> fields=['assets','shots']
>>> seq = sg.find('Sequence',filters,fields)
>>> from pprint import pprint
>>> pprint(seq)
[{'assets': [{'id': 1402, 'name': 'Blaster Pistol', 'type': 'Asset'},
{'id': 1406, 'name': 'Hatch', 'type': 'Asset'},
{'id': 1404, 'name': 'Satellite', 'type': 'Asset'},
{'id': 1405, 'name': 'Ship', 'type': 'Asset'},
{'id': 1401, 'name': 'Sven', 'type': 'Asset'},
{'id': 1403, 'name': 'Trilobot', 'type': 'Asset'}],
'id': 40,
'shots': [{'id': 1162, 'name': 'HSM_SATL_0010', 'type': 'Shot'},
{'id': 1163, 'name': 'HSM_SATL_0015', 'type': 'Shot'},
{'id': 1164, 'name': 'HSM_SATL_0020', 'type': 'Shot'},
{'id': 1165, 'name': 'HSM_SATL_0030', 'type': 'Shot'},
{'id': 1166, 'name': 'HSM_SATL_0040', 'type': 'Shot'},
{'id': 1168, 'name': 'HSM_SATL_0050', 'type': 'Shot'},
{'id': 1167, 'name': 'HSM_SATL_0060', 'type': 'Shot'}],
'type': 'Sequence'}]
在后台,标准 Shotgun 数据结构看起来与此类似(您的数据结构可能会有所不同):
将光标悬停在下图中的蓝色框上可获得数据结构中每个元素更加具体的说明。