14
$\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$
2
  • 2
    $\begingroup$ have you tried duplicating an object with Alt+D? $\endgroup$ Dec 31, 2018 at 10:10
  • 3
    $\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, 2018 at 12:35

1 Answer 1

30
$\begingroup$

You have 2 solutions:

  • Linked Duplications: altD allows you to create a linked duplication, meaning if you modify one of the instances it will change all the others as they share the exact same mesh data (while a simple shiftD creates a non-linked duplication). To unlink a copy, select the object and Object > Relations > Make Single User > Object & Data, or go into the Object Data panel and click on the Make Single User button:

enter image description here

  • Collection Instances (former Group Instances): Place your cursor on the center of the grid with shiftC (the position of the object to the center of the scene will determinate the collection center). Create your object(s). Create a collection with your object(s) with M (before 2.8, CtrlG). Now with a shiftA > Collection Instance you can create an instance of the collection you've created (before 2.8, shiftA > Group Instance). 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 instances "real" press CtrlA > Make Instances Real (before 2.8, press shiftctrlA). It is still linked though, if you want to unlink it, go in the header menu > Object > Relations > Make Single User > Object & Data (before 2.8, 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) and move them or place the cursor where you want the empty to be, go in the Properties panel > Object > Collections, click on the down arrow and choose Set Offset From Cursor (before 2.8, Properties panel > Object > Groups).

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 like meshes and lights, modifiers or constraints will affect every object, etc).

$\endgroup$
2
  • 2
    $\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, 2018 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, 2018 at 12:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .