Jump to content

A small step for FT coders, a giant leap for the Users


Recommended Posts

Using the API it is possible to 'nest/reparent' items using the 'parent_id' property.

Eg Creating empty AssetBuilds named Characters, Props and Sets and categorize AssetBuilds according to these AssetBuildGroups.

       assetBuildGrp   = project.createAssetBuild('Characters')

assetBuildGrpId = assetBuildGrp.getId()

assetBuild = project.getAssetBuilds()[7] # a character


All calculus and states nicely bubble up through the tree. Great!

But it seems that it's not a' real' feature of FTrack yet. The Project overview on the left throws a 'server error' when you try to expand nested assetbuilds.
Is it safe to Use this nesting/reparenting or should we wait for you guys to implement it properly?

A small step for our dear FTrack Coders, a giant leap for the Users !!

An 'open projectstructure' will be a critical feature in our consideration to purchase FTrack.

Link to comment
Share on other sites



it is not safe yet but I can assure you we are moving towards a more open structure. It is very open behind the scenes but at the same time we are trying to have a solution that works well for most studios out of the box. But I guess a group entity might be nice to have out of the box anyways until it is fully open.


The asset group entity has more features enabled than what a group would need.



Let me know what your thoughts are here and we will make sure things work out for you.



Link to comment
Share on other sites

Being able to reparent to create custom projectstructures is (would be) great!


There's a problem with reparenting sequences though...

project = ftrack.getProject(projectName)ep = project.getEpisodes()[0]                                  #valid Episodeshotlist = ep.getSequences()[1]                              #empty Sq used to Group sequencesshotlistId = shotlist.getId()sq = project.createSequence('Sq020')                   # Must createSequence() at projectLevel because of episode.createSequence() bugsq.setPriority(ftrack.Priority('None'))                       # Must set priority manualy because it's 'Urgent' by defaultsq.set(key = 'parent_id', value = shotlistId)# Error: # Traceback (most recent call last):#   File "<maya console>", line 1, in <module>#   File "C:\Temp\Ftrack\Ftrack_Plugins_winx64_b17\ftrackplugins\libdir\ftrack\ftrackAPI\FTrackCore.egg\FTrackCore\api\ftobject.py", line 112, in set#     response = self.xmlServer.action('set',data)#   File "C:\Temp\Ftrack\Ftrack_Plugins_winx64_b17\ftrackplugins\libdir\ftrack\ftrackAPI\FTrackCore.egg\FTrackCore\api\xmlserver.py", line 225, in action#     response = function(data)#   File "C:\Temp\Ftrack\Ftrack_Plugins_winx64_b17\ftrackplugins\libdir\ftrack\ftrackAPI\FTrackCore.egg\FTrackCore\api\xmlrpc27\xmlrpclib.py", line 1224, in __call__#     return self.__send(self.__name, args)#   File "C:\Temp\Ftrack\Ftrack_Plugins_winx64_b17\ftrackplugins\libdir\ftrack\ftrackAPI\FTrackCore.egg\FTrackCore\api\xmlrpc27\xmlrpclib.py", line 1578, in __request#     verbose=self.__verbose#   File "C:\Temp\Ftrack\Ftrack_Plugins_winx64_b17\ftrackplugins\libdir\ftrack\ftrackAPI\FTrackCore.egg\FTrackCore\api\xmlrpc27\xmlrpclib.py", line 1264, in request#     return self.single_request(host, handler, request_body, verbose)#   File "C:\Temp\Ftrack\Ftrack_Plugins_winx64_b17\ftrackplugins\libdir\ftrack\ftrackAPI\FTrackCore.egg\FTrackCore\api\xmlrpc27\xmlrpclib.py", line 1312, in single_request#     response.msg,# ProtocolError: <ProtocolError for ################//client/: 500 Internal Server Error> # 

This problem is probably due to the createSequence() implementation being incomplete... ?



oops ... hadn't read your post before posting this one

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...



Any spoilers on how this will work/look like.

Now I use Assetbuilds as a container/category to group/nest Assetbuilds and Sequences as a container/category to group/nest Shots Is it comparable to the method we use now for grouping tasks etc. Then I overwrite the parent attributes of the tasks. From there on complex querying can be done by hand


Will there be Category/Group/... entities?

Functions for querying that are powerful and easy to use?

  • setParent  ()
  • getParents ( [ofType], [filter], [recursive] )
    pseudo code example: getParents (type=ALL, filter=HighPriority , recursive=true )
  • getChildren ( [ofType], [filter], [recursive] )
    pseudo code example: getChildren (type=AnimTasks, filter=InProgress, recursive=false )
  • or simply getRelatives (...)
  • etc
Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...