|Working with Blocks|
|Blocks provide an easy way to produce and manage repeated objects in a file.|
Blocks are a group of linework that can be easily copied and edited throughout a drawing. This can be helpful when drawing furniture, structural details or basic graphics such as doors or windows. These can be imported from another drawing as a block or created as a block within the drawing.
Advantages of using blocks
- You can change any number of copies of an object if they are block instances by making changes to the geometry that defines the block.
- Objects can be updated from external files.
- Repeated instances of a single definition do not increase the file size much since there is only one actual definition for the block held in the file. All instances reference the data for the one original definition. Rhino does some bookkeeping and display tricks to display these at the other locations and orientations.
Creating a Block
To create a block, first select some geometry that you would like to insert into a drawing and use the Block command. Next, select an insertion point and a title. Then use the Insert command and select the block you would like to insert into your drawing.
At any point, you can explode an existing block back into its original linework and redefine the block. Simply select the same block title when using the Block command, and all blocks should update accordingly.
How Blocks Work
When you make a block in Rhino from geometry in the current file (Block command), Rhino replaces the geometry you selected with a block instance. It saves the block definition (the geometry you selected to define the block) in the file. You can insert as many instances of this definition as needed with the Insert command. Existing block definitions available for inserting are on a drop down list in the Insert dialog.
If you insert another 3dm file as a block instance, a similar thing happens- the block definition is sucked into the current file and saved with it. What you see on screen is an instance of geometry. The difference of course is that the definition refers back to the external file and can be updated as well as any instances that are placed if the external file is changed. This is done via BlockManager.
(In both cases, there need not be any actual instances placed in the file for the block definition to exist in the file.This is why you sometimes have trouble deleting layers- if a block definition uses the layer you cannot delete it. This can happen when all instances of a block have been deleted. Use Purge to get rid of unused block definitions.) To update all block instances of a particular block in the file, you need to redefine the block definition. You can do this by Exploding a block instance, making changes and redefining the block to the same name. You will see a warning dialog to confirm the change to the definition. Or, you can change by simply redefining the block with another set of objects altogether.
- Examples to Try
Make a box and use the Block command to define a block. Call it Box1. Put the insertion point at one corner of the box. When this is done, the box is no longer a box- it looks like a box but if you select it and look at Properties>Details you will see that it is a block instance.
Explode the Block. Check Properties again. The box is a box again and has nothing to do with the block called Box1. Delete the box. Now, use Insert. In the drop down list of the Insert dialog locate Box 1. This is the block definition that you created when you made the block. Insert it as a block instance and then copy the instance several times.
Redefine the block: Select one of the instances of Box1, Explode it to return in to being a normal box. Fillet the edges of the box. Now start the Block command- select the filleted box and choose an insertion point. Select Box1 as the name for the new block. All of the instances of Box1 are now filleted boxes. They may move if you picked an insertion point on the new definition that is different from the original.
Make a sphere. Start Block and choose an insertion point. Call the block Box1. The filleted boxes are now all spheres.
External block references
Block definitions that are from external files can be updated by editing and saving the external file then updating the definition in BlockManager. The definition looks at the absolute path, by the way, so you cannot move external files used in block definitions and have the update work, but the current definition does not care if the original source file moved- the current definition is in the current file.
- Examples to Try
Make a box, save the file. Open a new file, and call Insert. Use the File button in the dialog to navigate to the box file. Insert it as a block instance.
Make several copies of the block - scale, rotate, move these to taste.
In another instance of Rhino, open the box file and fillet the edges. Make a sphere. Save the file.
Now, go back to the file with the inserted blocks and call the command BlockManager. You will see a reference to the inserted box file. Select it in the list and click Update.
The instances in the file should now all be filleted boxes with a sphere.
Note that in all cases, the layers that the block definition uses are maintained in the instances- turning off any layer that some part of a block instance uses will turn off that part of the block in the Rhino window. Turning off the layer on which the instance was inserted will turn off the entire block regardless of the state of the other layers used by the block.