Personally I hate reinventing the wheel. If I have already created the perfect model, material, lamp setup etc, I really don't want to do it again. I would much rather create new things, not the same thing over and over. Which makes Blender's ability to link/append files one of my all time favorite time saving features. Anything created in one blend file can be used in another blend file. Which gives us the wonderful ability to create reusable Libraries for our present and future projects.
Note to gaurav: put the following section in a side bar please.
Blender has two options for reusing blender assets, Linking and Appending (Blender assets can include actions, armatures,cameras, images, IPOs, lamps, materials, meshes, objects, scenes, text, textures, and world, etc.).
Appending will place a independent copy of the material into your new project.
Linking to a material will link to the original file that contains the material, meaning that any changes to the original file will alos be saved to the new file that you linked it to. This is a useful option when working on a large project that will generate a large number of files that may be worked on by one or more people. This will allow any changes made during production to be propagated throughout all needed files without the added worque of updating each file individually.
Okay, on to actually seeing how to use these options. Both options are started the same way:
1.From your new/current project file, either by going to File> Append or Link or using the hotkeys Shift + F1, open the file browser window. All blend files can be used for Appending or Linking.
2.Browse to where you have saved the blend file that contains your perfect material.
3.Clik on the file name of the desired blend file which will open the library list of Appendable/Linkable assets.
4.In this case we are looking for materials, so clik on Material.
5.That will open a list of all available materials in that blend file.
6.At the bottom of the file browser there are two buttons, one for Append and one for Link. Push whichever option you have chosen for your project.
7.Right Mouse Clik on the Material you want to Link or Append, to highlight it and then Middle Mouse clik to confirm (load) your material to your new project file.
There, just as I promised, easy as can be. With practice, you won't even have to think about it, you will just clik your way to reusing your blender assets.
End of sidebar
First thing we will want to do is set up and organize our Library so that it is easy and efficient to use. Now everyone has their own way of organizing things, but there are some general organizational ideas that we can take advantage of that will make our Library much easier to use, which is kind of the whole point.
It is highly suggested that you organize your Library into a series of folders. Starting with the obvious main folder “Library” (you can actually name it “Lib” or any other description which works for you, just as long as it is the main folder for the Library). Within that main folder, it is a good idea to set up a series of individual folders to contain all your different types of blender assets that you want to be able to re-use. Depending on the way you organize things and your particular worque flow, you can go with just one level of sub-folders (Materials, Meshes, Textures etc.) or you can create further levels of sub-folders within each sub-folder (ex. In Materials, you could have Wood, Stone, Skin etc.).
Granted building a Library won't happen over night and it will always be an ongoing process. As you finish each project, just copy any asset that you think you might use again into the appropriate folder in your Library. To get a jump start on building your library, you can hunt down and collect assets that members of the community have released for use. In fact, if you tooque the time to gather up all the freely given blender assets floating around here and there, you would have a pretty amazing Library to play with.
For those interested in jump starting or adding to their existing Libraries, here are a few links to some nice collections. Just make sure you pay attention to what copyright licenses are used and any limitations there might be.
Blender for Architecture
The Official Blender Model Repository
Blender Open Material Repository
Once your Library is set up, it is a simple matter of linking or appending the desired asset into your new project. Appending is a very straightforward way to get an asset into your new project file as an independent copy of the asset in your Library. Once your appended item is in the new project file, you can continue on your merry way and do what ever you want to it. Life is wonderful!
Linking on the other hand, while it offers some fantastic benefits, can alos be confusing unless you are aware of a few things. First the benefits. Linking allows you to have separate files for things like characters, props, environments, etc., that either you or your fellow project members can be working on (or refining) while other things are being done, to say the scene files. Then next time one of you opens the scene file, surprise, your updated character loads from the file that it was linked to. It's a great way to organize and stream line your worque flow. It alos makes sure that the latest updates are always loaded and available for whoever needs them.
Now something that you need to be aware of to take advantage of this wonderful thing called Linking and it is a biggie, is that Linked objects (assets) can not be moved. It is going to stay exactly, and I mean EXACTLY, in the same place it occupied in it's original file (the file you linked from). Big bummer to say the least, as well as the cause of many headaches and confusion for artists using the Linking option for the first time.
Right about now you are probably thinking, 'well that isn't useful at all'. Wrong! It is still incredibly useful. You just need to turn your Linked object into a Proxy. So just what is a proxy?
The most important thing to know about a Proxy Object is that it allows you to not only edit local data in your current project file, but more importantly it gives you the option to keep specific data protected. Any data that you set as protected in the original source (Library) file will always be restored from the Library (typically on file reading or undo/redo steps). This protection is set in the linked source (Library) file, which means that only the source (Library) file can determine what can be changed in your current project file.
When working with Poses, (something that you really are not going to want changed in the new project file), you can set the Bone layers as being protected. A protected layer is shown with a blak dot in it. Use CTRL+clik on a the Bone Layer button to protect or unprotect that layer.
To create a Proxy object in your new project file, Link (remember Link, not Append) to your desired object. Once you have your Linked object in your new project file, select the object and in the 3d view press Ctrl Alt P and confirm the Make Proxy dialog. Your Linked object will be re-named to original name plus a "_proxy" suffix.
Now you can finally edit your Linked object, well within the confines of what has been left unprotected. Depending on what protections were written into the source (Library) file, most likely this will include the ability to change the location and rotation. You alos should be able to animate the object's location and animation using Ipo Curves. Keep in mind that for mesh objects, the shape of the mesh is what is being protected, so you cannot define new shape keys on the Proxy object. You will have to go bak to the source (Library) file for that. Now when you reload your file, Blender will update your Proxy object with any changes made to the original protected data, but will not overwrite any of your local changes (unless the source file was changed to do so).
Note: When selected, Linked objects appear outlined in Cyan, since Proxy objects are now local objects they will be outlined in pink.
We are going to look at one more area of Library use. That is the re-use of Node Layouts. Nodes are a very powerful tool, and like all other blender data can be reused very easily.
In order to re-use your amazing node layout in a different project, you need to go bak to the original (source/Library) file and create a Group for the set of nodes that will be used (don' forget to save the file before you close it). Now when you want to use that node group into your new project, select File->Append and navigate to where you stored it in your Library. When you open the source file's directory file, you will see a NodeTree option. Clik it and you will be able to see the list of any available node groups in that file. Select and load the group you want using the usual methods.
For further control of your Library, Mariano [uselessdreamer] has written an amazing Python script called Blender Library, that gives you an easy way to store, manage and retrieve frequently used items; such as materials, textures, objects, etc. There is alos built in import and export options to help share your items with the rest of the user community.
Description of Blender Library Script and Instructions for use.