I am thinking of creating a number of 3D objects/models which will have a particular object/model in all of them, for example a building which I will use in many other projects with different additions to it and so if I need to make a modification to the building (which is in many other projects) it will automatically flow through to all the other projects which will have that building in them (hope I have explained enough) rather than have to edit all the projects for a change to the building. Is that possible and if so what is the procedure? I know that blender files can be appended and .fbx etc imported but not sure if it is possible what I have in mind.
2 Answers
If you go to File > Link (directly above Append), then you can also choose a file where the object to be linked is contained, find the Object directory and select the object, then click the Link button.
Now what might seem strange, different from Append where you get a full, independent copy of the object, the linked object cannot be moved, rotated or scaled. It stays where and as it is in the original file.
So, in order to place and rotate this object in the new scene where you want it, you have to press Shift+D to make a duplicate. This you can move, rotate, scale as you need it. But you cannot edit the mesh, change the materials etc., this has to be done in the original file.
Usually you use Alt+D for Duplicate Linked, if you want to keep duplicates linked to the original object, but that's only necessary if they are all in the same file. If you make duplicates of linked external objects, you can use the "normal" duplicate function.
Since the directly linked objects cannot be moved and not even be toggled invisible, it's best to have them in a separate collection that you can Hide in Viewport (the "eye" symbol) or Exclude from Visible Layer (the checkbox).
To achieve that you either put them in a new collection in the scene where you use them after importing them, or by disabling Active Collection in the Link dialogue options which creates a new collection for them. Or you can put the original objects in their own collection in the original file and import the collection rather than single objects. But to use those objects separately, you have to disable Instance Collection in the Link dialogue options.
EDIT: thanks to @moonboots, there is a function I wasn't aware of. Instead of hiding the linked object and duplicating it to have a moveable copy, you can simply select the linked object and choose Object > Relations > Make Proxy. This way you can move the linked object in the new scene without having to duplicate it.
-
1$\begingroup$ Maybe you should precise that if you want to manipulate the linked object: Object > Relations > Make Proxy. You can also put it into a Collection then create a Collection Instance that can be maipulated. To modify it: Object > Relations > Make Local > Object & Data, but in that case it's not linked to the original anymore of course. I'm not sure about the shift D you're talking about? $\endgroup$ Jun 24, 2021 at 8:12
-
$\begingroup$ Fairly complex but I understand what to do. Yes the word I couldn't think of in my initial question was LINK and if I had thought of the word I may have worked it out for myself. Thanks again $\endgroup$ Jun 24, 2021 at 8:33
-
$\begingroup$ @moonboots Oh, that Make Proxy is a good idea, I didn't know that since I'm not often using linked objects. Make Local is definitely not desired, because then he loses exactly that functionality he wants to preserve and could simply append an object. Shift+D, the normal Duplicate function, is actually making a linked duplicate if the duplicated object is externally linked. So it's like make proxy but keep the original linked file where it is. For completeness I'll add your proxy suggestion in the answer. $\endgroup$ Jun 24, 2021 at 8:37
-
1$\begingroup$ Yes, but Make Local is good to know if he ever wants to be able to change the object, it may happen. Shift D doesn't work for me, weird... $\endgroup$ Jun 24, 2021 at 8:39
-
$\begingroup$ Yes, you're right about Make Local of course. Shift+D makes a duplicate and duplicates the link to the original file as well, that's why it was my workaround before knowing there was this proxy function. It's like a shortcut for Make Proxy and keeps the original. $\endgroup$ Jun 24, 2021 at 8:55
You can use Collection Instances for this.
They can be linked into other projects, but edited only in the original file.
- Create your building and put it into a collection named "Building"
- Drag the file onto another project > Link > Collection > Building
- Done
-
$\begingroup$ Oops, I was a second too slow. You should tell him what to do if he wants multiple objects to be moved separately in the new scene... $\endgroup$ Jun 24, 2021 at 7:41
-
$\begingroup$ Maybe you should precise that if you want to manipulate the linked object: Object > Relations > Make Proxy? $\endgroup$ Jun 24, 2021 at 8:24
-