1
$\begingroup$

I am very confused by Collections. It's quite unorthodox for display layers to support linking/aliasing. In every other program I've ever seen, an object can only be in a single layer, just as a transform can only inherit from a single parent.

So OK, in Blender, objects can be members of more than one Collection. But what's really confusing to me is how an object can be "Moved" to a Collection vs. "Linked" to a Collection. Looking at the Outliner or Object Properties, I can't determine whether the Collection membership is explicit or whether it's an alias. If I right-click in the Outliner, I get an "Unlink" command regardless of whether the object has been "Moved" or merely "Linked".

How do I know which Collection the object is actually "in" and which Collection the object is merely "linked to"? Does it matter? What's the logic here? Is there actually any difference between "Move" and "Link", other than the fact that "Move" removes the object from its former Collection, but "Link" does not?

$\endgroup$

2 Answers 2

3
$\begingroup$

I can't answer your question with any degree of certainty but it strikes me as being similar to a file in Linux. A file, and perhaps a blender object, exists somewhere. It doesn't really matter where it is. We reference it by its name but its name is really only a thing pointing at the object. If you make a link it is simply another name pointing at the same thing so in effect, they are both the object. If you move an object you don't move the object but you move the name. If you link the object you create a new name. In linux deleting a file doesn't delete anything, it unlinks the name and when the number of links remaining for the file drops to zero it is considered deleted. I suspect this is similar to how linking works in blender. I don't know if this is helpful or not or even correct so please feel free to mark it down but I think it does illustrate that actually a link could be all you have.

$\endgroup$
1
  • $\begingroup$ That does make some sense... it aligns with Blender's garbage collection. If an entity has no "users" -- it's not referenced by anything else -- it gets deleted. At least that's how it applies to shaders. Which is why we need to click that bizarre "fake user" shield icon to preserve unassigned shaders. $\endgroup$ Apr 1, 2021 at 2:08
4
$\begingroup$

As you already discovered an object can be placed into any arbitrary number of collections, even on different scenes.

Moving or linking an object is really the same underlying action in relation to collection ownership. There is no "real" and "instanced" duplicate of an object that belongs to more than one collection, and the object truly is in multiple simultaneously with the same degree of importance.

So what is the different between "Linking" and "Moving" to a collection? If an object is moved to a collection it is removed from all others and placed in that one exclusively.

Say you have a car in your scene currently sitting in the Street collection, and you Move it to the Vehicles collection. Your car will now sit exclusively in the Vehicles collection.

Linking an object to a collections adds it to that collection without removing it from any others it curreclty sits in.

Using the same car example, if you have a car in your scene currently sitting in the Street collection, and you Link it to the Vehicles collection, your car will now sit both in the Vehicles collection and the Street. Both instances are real both are valid.

So why can you Unlink an object that has been moved to a collection? Likewise unlinking an object from a collection will remove it from that collection but not from others.

If the object is only in a single collection and you unlink it, it is removed from the current scene. If the same object is not used in any other scene it becomes Orphaned Data and can be purged out of the current file.

$\endgroup$
3
  • $\begingroup$ Thank you. You confirmed what I surmised: there is no difference between Move and Link. The only thing I noticed is that if I Unlink an entity from all Collections, it is actually deleted from the scene. It's not promoted to the root level. This may be a bug in Blender 2.92, because it's certainly super problematic. $\endgroup$ Apr 1, 2021 at 2:06
  • $\begingroup$ Then again, it might be normal for Blender. If a shader has no "users" then it's deleted. Maybe it's the same with objects and Collections. If an object is a member of zero Collections, it gets deleted. But that doesn't explain why the object doesn't just get promoted to the top level collection. If I delete a collection, all members get promoted. But if I remove an object from all Collections, it doesn't get promoted, it gets deleted. $\endgroup$ Apr 1, 2021 at 2:10
  • 1
    $\begingroup$ that is correct, my mistake, if an object belongs to one collection only and is unlinked it gets removed from the scene. I'll update the answer $\endgroup$ Apr 1, 2021 at 12:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.