Workflow link make local and keep hierarchy

I’m trying to dig in and figure out a decent workflow for two of us on animation projects where we can bounce back and forth between files to make fixes to data, animation, materials, etc and easily update the final rendering file/files.

Right now I have something with a door, a button, another part that moves when the door rotates (I’ve created a driver for that bit and it works great).

I’m trying to figure out the caveats with the various ways of linking things. I Definitely want the data linked to the original data file. I’d really like to create collections, and have those update. But it doesn’t seem I can make those local, like I can objects.

From what i can tell, what I would like is to link the data of all my objects. But I also want to keep the hierarchy the same. It doesn’t seem like I can get that, but I’ve gotten close. You just can’t update it.

I liked the parent collection, but without instancing. It still has the link icon on it though. But I can’t figure out how to make the instance local without making everything in it local.
If I link all my objects, and make local, it works. The parents still are in tact. I still have my animation constraints, but now I have no “layers” (collections).

now, Why link, many would ask? Well, I’ll need to have probably 15 things in my scene, and all of them will be around 300MB each. That starts to create long save times. So I want to leave the data part of the model all in one “master” data file for each of those models. My linked files are less than 1MB. So I am free to save as many versions as I would like, and quite often. You start getting above 500/600MB and the slowdown to saving starts causing you to save less often, especially if you’re on a network.

1 Like

Hi @kalamazandy,

I totally understand your issue. Even I use a cloud subscription to which I sync my files in realtime and so filesize and bandwidth becomes a problem.

From what you are telling, I can understand that you want to keep all your data in your master blend file and link an entire collection, change a few things as necessary while still being able to update your master blend file, and have all those changes reflected back to the linked file. And do all this while retaining your collection hierarchy.

You can do this, but there are limitations on how far you can go.

  • You can link a collection as an instance as usual.
  • If you want to re-position or make changes to individual objects within the linked instance, you can make a library override using Make Library Override operator. This will let you override all the ‘Object’ properties (not Object Data) so that you can move things around, change draw type,etc. while leaving all the original mesh data, materials, particles intact. So when you change a particular object in you master blend file, it will update in the linked file as well, plus, the changes you made in the linked file will be intact with your hierarchy in place.
  • If you want to make changes to materials, you will have to individually go ahead and make a library override of the Object Data to which the material is linked and then override the required material and make necessary changes. You can make changes to particles in a similar fashion. Individually overriding a data block is done by shift-clicking on the chain icon in the properties window. Any changes you make to the geometry in the original file will still be reflected back with all your material (or particles, etc.) changes will be preserved in your working file.
  • If you want to change the geometry itself in the linked file, you have individually make the respective data-block local by clicking on the chain icon (without shift). But, this object will no longer update on changes made to master blend file. But still, I assume, if you haven’t overridden materials, those will be propagated from the master blend file.

The Library Overrides is currently under heavy development and so expect crashes now and then, but, improvements are being added every day lately.

I do architectural visualization and I always keep the original model of the building that architects provide in a master blend file. These files are usually heavy. Around 500-600 MB as you said and so maintaining them separately is absolutely necessary. This is where I do all my look development and so will contain all my materials, particle systems in case of highly repetitive elements like tiled facades, vegetation on the building, etc. and I usually link the entire model collection as an instance into my layout file and override individual objects as neccessary.

That’s promising. As soon as I do a library override of any one object, it seems like it gives me the entire tree, but shows the objects as linked.
It’s really too bad that the order is Object, Data, Material. I would prefer it be Object, Material, Data, so that I could use the same data, but apply different materials. I might want to do that within the same scene even. I can link data in my scene, but not material. Or I can link materials. But if I link an external file, I have to bring the material with if I want to reference the object data?
I can’t think of a reason why that would be.

When I was doing this in 3dsMax, I would use Xref, and changed the default to be no referencing of materials. So I was Only referencing the object data. The objects themselves were accessible, I just couldn’t change any options, but could use modifiers, materials, etc.

I forgot to mention. Regarding the override order of Object, Object Data and Materials, I believe this happens because of the way blender handles materials. By default all materials are linked to their respective Object Data. But you can manually change this per material to link to Object instead. This setting is available below the material stack for each object.

I assume if you change the material to link with Object instead of Object Data in your master file, you may get override order of Object, Materials then Object Data you were preferring to have. Although I haven’t tried this one. Let me know if this works.

And regarding Xrefs, I have no idea because I ve barely touched 3ds Max. But as you were telling you have the option to just link the Object Data without materials, blender could only do this per data-block and not for an entire collection hierarchy; atleast for now.

And if the above trick of being able to link materials to Object works so that we have the override order you prefer, then we can going ahead and override materials as we wish, which I feel is similar to your 3ds max workflow.

AWESOME. That worked.

I switched the material to Object. I get it, some materials require object data like UV map access, so data makes sense. In 3dsMax I was mostly using UV projections to map things how I needed. Everything else was procedural at the time. PBR wasn’t too popular 5 years ago.

Then I did a library override.
Now I have access to all the objects in their scene tree, and I can assign whatever material I want to them.

This way I can create materials in the base file, and even apply multiple materials to the same object. Then in the scene later I can decide which material is to actually be used. Often we have multiple finishes for one object. So different versions makes sense to have available. Or I can just override that material completely and add a completely new custom one.

I think this workflow will do just fine.

It does make me a little uneasy, like you said, this is under heavy development. But I mean, that’s blender. We have been updating blender several times, even in the middle of projects. But we have a backup of the previous one, so it’s no big deal.

1 Like

Great! Then that’s a good news for me as well.