I am new to Blender. I'm attempting to learn how to use it to render architectural models created in Sketchup or Rhino.

One of the difficulties I'm having is figuring out an efficient way to assign materials. The file I'm currently working on, for example, has a railing that has about 300 different meshes--one for each vertical rail element. In Sketchup, these items were grouped and put on their own layer, but upon import to Blender this information no longer remains.

So, I'm left wondering: is there a way to assign a material to each of these elements without individually selecting each one?

  • 1
    $\begingroup$ Is the mesh datablock duplicated as well as the object datablock, or are they linked? $\endgroup$ – wchargin Sep 9 '13 at 1:25
  • $\begingroup$ If the meshes have similarities, you could try selecting them with Shift+G and then making them a group. $\endgroup$ – gandalf3 Sep 9 '13 at 2:32
  • 2
    $\begingroup$ the part of the question that asks about preserving layers from Sketchup or Rhino should be a separate question, its unreated to material assignment. $\endgroup$ – ideasman42 Sep 9 '13 at 3:38
  • $\begingroup$ @ideasman42 To the extent that knowing this would help me solve the above question I'd say it isn't really unrelated $\endgroup$ – jkjenner Sep 9 '13 at 16:58
  • 1
    $\begingroup$ @jkjenner the issue maintaining layers comes down to formats between applications, and what formats both applications support that also support layers. But since your question isn't going into any details regarding formats, what you already tried, what formats both applications support etc - its hard to answer that part of your question, this is why I suggest to ask another. $\endgroup$ – ideasman42 Sep 9 '13 at 20:53

Regarding material assignment:

  • Set a single object to the material you want to assign.
  • Select all objects to assign materials too.
  • Shift RMB on an object with the material (if its not still active).
  • Menu Object -> Make Links -> Materials.

This will apply the active objects materials to all other selected objects.

  • $\begingroup$ The step I'm trying to avoid is the second one ("Select all objects to assign materials to"). In Rhino, for example, you can either just assign a material to a layer (with all objects on that layer then taking on the material), or use a layer to select all of the objects on that layer and then directly assign them all a material simultaneously. I'm wondering if there is an analogous function in Blender. $\endgroup$ – jkjenner Sep 9 '13 at 17:04
  • $\begingroup$ @jkjenner best ask another question. What you talk of are 2 different things, you may want to select all objects from one layer then do some totally different operation on them, but it wouldn't matter what. Blender doesn't have a way to assign materials to a layer possibly because objects can be in multiple layers at once. It sounds like rhino layers and blender layers are used fairly differently. Note that you could have a Python addon to do this if its important and writing such an addon is fairly simple. $\endgroup$ – ideasman42 Sep 9 '13 at 20:51

At some point, you're going to have to perform the action "select all objects to..." whatever. It's going to happen.

You wouldn't even be able to set which layer those objects are visible in without selecting them first so to make life a bit easier, why not select all the parts of the railing and group them with Ctrl+g or join them together into one mesh (which isn't the end of the world as you'll see in a moment) with Ctrl+j.

If you need to select them all quickly, either use Ctrl+left click to lasso, b for box select or c to "paint" a selection with the circle select tool.

If you join all those parts together, then set the material to what you want it to be for all of them, you can perform a separate on "loose parts" by hitting p and selecting "loose parts". This means that each individual part will separate out into a new object, as it was before you joined them (provided the original meshes weren't broken into pieces before you started).

If you still don't fancy joining the mesh together (and personally, I would, especially as it's so easy to break them apart again) then once grouped (so you can reselect them easily to do this again if needs be by selecting one of the objects then hitting Shift+g and selecting "group"), do as ideasman42 said and link their materials together.

Dealing with lots of objects (or lots of verts/edges/faces for that matter) can be tricky at times, but there are tools to make it easier, joining, grouping, select similar etc.

Hope this helps.


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.