How do I know when there is a newer version of an asset that is used in a shot

I’m trying to understand if there is a way to know if an asset that is used in a particular shot has been updated.

For example let’s say a you have a shot that is a maya scene with animations. A render of it has been published to shotgun. You can link the publishedFiles to the shot using the upstream field but that doesn’t make it easy to know if there is a newer version of any of those files.

I can see how I might get this info via scripting to get that list of upstream files and then check to see if there are newer versions.

I’m guessing when any of those files are published again or a new version is created they look to see what is in their downstream file field and change the status of the related tasks and/ or published files?

3 Likes

Support got to me and mentioned the Scene Breakdown app but I’m looking for something where you can get that kind of information while still inside shotgun and not need the toolkit running in a DCC.

It was also suggested that the person looking to get updates about assets used in a shot look at the list of upstream files and then subscribe to them but from prior experience I know this means getting a landslide of messages that become impossible to sift through.

Lastly it was suggested to use an event daemon in some capacity.

One thing I noticed was that the upstream files display their status. So I’m thinking about maybe adding a custom status like “newer version available” so if you are looking at the upstream files field on the shot you can see exactly which files have newer versions inside shotgun.

I’d still like to somehow flag a shot to indicate that some of it’s upstream files have new versions so that if you were looking at a list of shots you could quickly tell which ones may need to be updated at a glance. I’m thinking this might be easily accomplished with a custom field and just have the publisher look at the downstream field of the previous publish and set that custom flag on the shot.

3 Likes

Thanks for writing this up here, it’s a great question!
It sounds like we’ve already given you some tips and you have some ideas. If it was me I would probably go with the event daemon approach.

I’m not certain on the best logic here however.
I guess the event plugin could be triggered on PublishedFile creation, and then check if any of the previous versions with the same name and entity have a downstream published item.
If they do, then you could set the status on the downstream PublishedFile, (either on the provided status field or a custom one), to indicate the file has out of date references.

You could also set a status on the downstream PublishedFile's linked entity (ie Shot or Asset), to indicate the Shot or Asset was out of date. However that logic is a bit trickier as you might have multiple publishers on a Shot, and would you want the Shot status to change if anyone of those publishes was out of date?
Also, you would only want to change the entity’s status if it was the latest PublishedFile that was out of date.
For example, an Asset could get updated and trigger an out of date status on a Shot file, but perhaps the latest Shot File doesn’t use that asset anymore so you wouldn’t want to flip the entity status in that situation.

2 Likes

Yeah those are all good points. Basically I’m thinking if there are any newer versions of publishedFiles that a custom status field on the shot would get toggled. This is so that you could perhaps more quickly glanced at a page of shots and see which ones or out of date. Maybe even add logic and a way to lock specific shots from further toggles.

Another question that came out of this was is it possible to have an upstream/downstream field for tasks that updates itself the same way as upstream/downstream publishedFiles does. Another thing I like about I like about the upstream publishedFiles field is that it shows you the status of those files as well… I haven’t tried it but I’m hoping that if I added a multi entity field for tasks that it would also display their statuses. I was thinking if nothing else if you can see that some of those upstream tasks are still in progress that would serve the same purpose.

2 Likes

Yes, you’re correct, a multi entity field should show the status icon next to any task that is entered in the field!

1 Like

Yup just verified this with a custom field for Tasks with a custom Status.

Next question is it possible to format the display of multi-entry fields so that it stacks all the entry’s vertically so that you can see them without having to make the column extremely wide?

1 Like

You can make multi-entity fields expand the height of the cell in order to display all items using the “wrap” option in the “More” menu. It’s not strictly one-per-line though.

3 Likes