0
$\begingroup$

In Blender, I'm laying out a scene. This involves having multiple, identical meshes within the scene.

I'm wondering if Blender has a concept of a "prefab" where I can have multiple instances of one object. That way, if I modify one such instance, all of the other meshes will be similarly updated.

Looking online, I haven't found anything with these terms and am wondering if I just don't have the right terminology.

$\endgroup$
  • 1
    $\begingroup$ have you tried duplicating an object with Alt+D? $\endgroup$ – Samir Rahamtalla Dec 31 '18 at 10:10
  • 2
    $\begingroup$ In addition to @moonboots' answer, which is probably the practical one you want, If you'd like to look a bit more deeply into the many ways mesh data can be shared in Blender, I found this answer helpful. You can add to that - arrays. $\endgroup$ – Robin Betts Dec 31 '18 at 12:35
3
$\begingroup$

You have 2 solutions:

  • Link Duplication: altD allows you to create a linked duplication, meaning if you modify one of the instances it will change all the others (while a simple shiftD creates a non-linked duplication). To unlink a copy, select the object and press U > Object & Data.

  • Group Instance: Place your cursor on the center of the grid with shiftC. Create your object(s). Create a group with your object(s) with ctrlG. Now with a shiftA > Group Instance you can create an instance of the group you've created. You can't change the instance, if you want to do it you need to edit the original object(s). If you want to make the instance "real" press shiftctrlA. It is still linked though, if you want to unlink it, press U. As you can see, the instance is followed by an empty. The empty is placed where the grid center is relatively to the original object(s). If you want to change the position of the empty, select the original object(s), place the cursor where you want the empty to be, go in the Properties panel > Object > Groups, click on the down arrow and choose Set Offset From Cursor.

As you can see, linked duplication is much easier to use, and it doesn't weigh more than group instance, so most of the time I guess you should choose this solution. But as said by BatFINGER below, group instance can be very useful sometimes (you can mix several types of objects, modifiers or constraints will affect every object...).

Does it answer your question?

$\endgroup$
  • $\begingroup$ I would lean somewhat the other way for extend-ability. A linked instance shares the same data. If you modifiy the data it will reflect in others, if you change an object property of original, not so. A group instance can contain arranged objects of any type. A subsurf modifier on the original will extend to all group instances, same for other object level modifiers / constraints. $\endgroup$ – batFINGER Dec 31 '18 at 12:43
  • $\begingroup$ yes you're right, but as long as the need is very basic I think linked duplication is the best solution, but I'm going to edit my answer $\endgroup$ – moonboots Dec 31 '18 at 12:46

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.