Consider a situation where you need to model hundreds of chairs for a cinema theatre. The chairs all look the same, only their position and orientation vary.
Instances allow you to manage this kind of situations efficiently. An instanced object duplicates its source object. When the source object is modified, all instances referring to it will change accordingly. Instances can be transformed or deformed using any available modify function including single point editing. Instances can be instanced, instances of instances can be instanced, etc.
1. Model a chair of a movie theatre.
2. Make sure that the chair is selected. Then select the pull-down menu Edit/Instance.
You can modify an instance object using all common tools, such as delete, duplicate, move, rotate and scale:
3. Select the instance of the chair and activate the Move tool.
4. Move the instance to the right side of the original chair.
We can use the macro system to achieve more instances quickly:
5. Select Macros/Record from the pull-down menu.
6. Select the instance object. Select Edit/Duplicate. Then move the duplicated instance to the right.
7. Select Macros/Record again from the pull-down menu to switch macro recording off. Go to the Macros tab of the select window. Enter a suitable value to the Repetitions field and click Apply.
Let's improve the chairs. Because of instancing, only one chair needs improvements:
8. Add a neck support to the sub hierarchy of the original chair.
9. Select all sub objects of the original chair and rotate them.
All instances change to reflect these modifications.
Instances can be freely animated.
Levels with many sub objects can be instanced.
Instances spare RAM memory used for storing object geometry and wire frame representations. Instances also consume less disk space than 'real' geometric objects when saved to a file.
When the Render as Instance option is unset, the photorealistic render engine converts the instance to an actual geometry (for speed reasons). In this case, instances do not decrease rendering time memory usage. If Render as Instance is active, raytrace rendering becomes very memory efficient but usually a bit slower.
Instance property gadget has a control which specifies how transforming the source object or its parent levels affects the instance. By default, the Ignore Matrix option is set, meaning that you can move, rotate and scale the source object independently of its instances. To modify both the source object and the instances, you have to make the modification to the sub hierachy of the source object (sub objects or geometry points in edit state). If the option is cleared, the instance system takes into account the modifications performed to parent levels. If you modify the parent level of an object, instances referring to that object become modified as well. In many cases this is the expected behavior. However, there is one side effect: if an instance and its source object are moved into a new hierarchy level, the transformation history defined by the parent levels may change. Therefore, the evaluation of modifications performed to the instance may also change. The following example clarifies this: Create a level, and put an object into it. Create an instance of the object to the same hierarchy level and move it 0.1 m to the right. Rotate the level 45 degrees. Both objects rotate as expected. The instance still contains the information 'source moved 0.1 m to the right', but moving happens now in the rotated parent space. Now create a new level and drag & drop both the instance and the source to it. The instance jumps to a new position, because the new parent level is not rotated.