2.8+ linked objects BIG problem

Hi all :slight_smile:

I think the ‘basics & interface’ is the good forum as this need is kinda really basic ( though many basic things are not in blender )…

in 2.79, when you linked an obj in you scene, you had the opportunity to reload this object. This might sound like a stoopid useless feature as all used to reload the whole scene and voilà.
This was a simple feature allowing to avoid delete, re-link and re-apply all changes ( when possible ) on an linked object. When you only have one, okay it’s kinda useless but when you got hundreds or even tens of linked object this feature is week saving one.

In 2.8+ ( at least in 2.9.1 ) it has disappeared from ouliner !
I then have to delete 87 objects, relink them from lib, unlink objects & meshes so that i can apply a material !

i have to say: W T F ???

And moreover this feature it appears there’s no plan to set this up in 2.8+ nor replace it with a new method !

The linked obj system was a pain IMHO but it was operative and kinda usable/usefull.
Now it’s privated of an important feature that throws the user 15 years earlier !
Just lemme ask a simple question: what is the interrest of the linked object system ? as user gets more control with as much pain with the append system !

now that my venom is thrown in the desert i wonder wether a real kind blender user has written an addon for handling properly linked objects ?

anyone please ???

Happy blending !

Set the Outliner to “Blender File” there it is. Just like in 2.7x:

The right click select proposal is about moving Reload item from Blend File display mode to Scene display mode.
There is absolutely no claim that 2.8 changed something.
It is just a user feature request published by a user like thousands of others.
It is not a development task on developer.blender.org, with a proposed patch accepted by reviewing process.

You are reloading the external library item.
If 87 objects are links depending of same blend file, when you reload just blend file line ; all 87 objects are reloaded.
And now, selection in outliner was improved.
So, even if you need to reload links to an hundred of blend files, that became relatively easy.

That may explain why such feature request only garnered 7 votes in 22 months of existence.

New work was not about changing links, it was about changing proxy system to library overrides system.
To manage Library Overrides, lines were added to right click menu of outliner.

This is one of the object i need to reload.
It comes from a lib and was linked in this .blend.

I had to unlink the object so that i could also unlink the mesh for changing the material.
I was certain that i could reload an unlinked object in 2.79 but i’m wrong.

I can only reload objects that are still linked to library. And you’re right, it works in 2.9.1 just like it did work in 2.79 :frowning:

This really don’t help me as i now have to delete all objects, and reload all and unlink all for applying a new material…
and no the lib is not one simple file. All 87 objects come from different .blend files.

Library overrides ?
I don’t know what this is.
Would it be able to allow me change linked objects materials and also getting the actual mesh from library file ?

Happy blending !

The goal of a link is to be able to update the linked objects by editing original file.

If you want to make local changes, you have to make data local.
You are not forced to delete everything.
That is breaking the link for data.

What library overrides are changing, is that you can change data locally but links are preserved.
With you choose to delete overrides , linked data is restored.

Currently, library overrides are working with Object data and some Mesh data, but not with material data, yet.

So, you have to add library overrides on objects through right click menu.
Then, you have to make mesh datablocks local.
Then, you can change materials.

But you don’t have to unlink or delete.

Hi again :slight_smile:

i dig a bit into all those append/link/overrides…
Am far from the end as i think i’ll have to practice a lot to have my neuron embrace the whole idea.

What i caught is this and seems quite simple ( i love simple things :stuck_out_tongue: )

  • Append adds an new fully editable object coming from file A.blend in the scene for file B.blend. Its changes affect nothing except in the file B.blend
  • Link adds a reference of an object from A.blend in B.blend. Nothing is editable in B.blend and all changes made in the object in A.blend appear in B.blend.

Linked object can be edited in the B.blend file by unlinking them.
Eg if you wanna change the object material in B.blend, you have to unlink its mesh and for unlinking its mesh you have to unlink the object itself.
Though it sound interresting it’s absolutely useless as it’s exacly the same as appending the object from file A.blend to B.blend : the object and meshes become local to B.blend and no change made in the object in A.blend will appear in B.blend.
This is exactly what i did and this is my exact problem:
As objects are now all local, and as they cannot be relinked to their origin, i have to delete them and relink them.

Now comes overrides…

I didn’t hear of this before today and it seems really interresting to me:
It looks like i can change material of and object from file A.blend linked in B.blend while keeping its mesh changes done in A.blend 8-D
For this i have to make in the outliner a link override of the object and of its mesh…

overriding material as you said is useless because when changing it and reloading the file, the objects material from file A.blend is taken.

Am not much helped as i got changes in B.blend made in A.blend but cannot change ( except temporarily untill reload ) materials.
Maybe this is beeing developped ? do you have an idea @zeauro ?

am i right on all i wrote or is there something i didn’t catch yet ?

At las but not least i’d have a question about material:
Why not allowing material changes on linked objects ? as, as far as my 3D knowledge goes, mesh & material are totally different things and you should be able to draw any mesh with any material just like it can be done in UDK or U3D.
And btw, what is the interrest of sticking a mesh with all it’s other data as a mesh is only a pack of verts/faces_lists/normals… ?

Thanks in advance and happy blending ! :slight_smile:

What you don’t seem to understand well is the importance to distinguish datablock from property.

There is a datablock defining object properties.
Then, a datablock defining object data properties according to its type.
Then, a datablock defining material properties than can be linked to first or second datablock.

When you link object, every datablock is linked from A into B.
You can’t change anything. You can’t move object.

You have to make object local or create a proxy to make changes to first datablock : Object’s datablock.
(I am writing making object’s local because the word unlink is relative to datablocks hierarchy. Collection > Object > Mesh > Material. When you unlink an object in outliner, you are removing it from scene collection. You are not breaking the link to file A.)
Now, first datablock is a data of B. You are able to change object’s location, rotation, scale.
But the others are still data from A. You can’t change properties of other datablocks : mesh properties, material properties.

That being said link between object’s datablock and mesh’s datablock is an object’s datablock’s property.
So, if object’s datablock is local, you are now able to substitute another mesh datablock to original one.
That is not really helpful.
But if in file A, material was linked to Object instead of Object Data by default.
You can substitute another material datablock to original one without modifying the mesh.

So, you can do that without using overrides.
But that means that you had to anticipate that before creating you final scene file.

So, a solution is to make an override on object’s datablock to be able to change mesh datablock.
You end up with a solution where hierarchy is as is :
Object’s datablock linked to A + override.
Mesh datablock from B
Material from B or C or whatever you want ( you can link any datablock type. you are not forced to link a complete object if you are just interested by linking its material.)

So, now, if you need to change mesh in A and want to update final scene.
You can delete override, redo it, remake the mesh local and relink material.

But for sure, if you think that you will do a ton of updates : the best solution is to review all your libraries files, and re-editing them to make materials linked to Object instead of linked to Object Data.

1 Like

wow ! i guess you can remove ‘seem to’ from your sentence !
Indeed i didn’t understand what you explained and honestly i never caught the difference between object and data in the material tab.
Now it’s much more obvious !

And yes i think i will have to change all my files materials to object instead of data.
I don’t case spending time with things that will ease my workflow later. What i hate is wasting time by redoing several times the same thing.

I will link this topic and your explainations to my own main post so that i can retrieve it easily as it is real caviar to me ! And for this i owe you a big thank !!!

Finally i have to say that i found no really clear info on all that you speak of on the web: linked objects and their relations, their unlinking the object/data difference, etc…
Do you know some good sites or videos that explain this more obviously than blender docs ?

Thanks again @zeauro and happy blending !

That’s because they are incredibly poorly named, as per Blender tradition.

While “Mesh” is adequate, “Object” is trash terminology and impedes understanding. A better designation for “Object” would be “Transform”, as that is its main function. That may cause trouble further down the line for more advanced uses, but at the basic level that’s what it is: A Transform for the Mesh.