Unwrap UV map proportionally to object size Is there any way to automatically unwrap UV map proportionally to object or "world" size?

For example:

I've made two cubes, one is two times bigger than other (scale is applied). Then I unwrapped texture with Smart UV project which will try to span all faces on whole texture space(0 to 1) so bricks on left cube will be bigger than bricks on right cube.


But what I want to achieve is this:

 

In broader context:

When I import model from Archicad (in form of OBJ) all objects have UV's in some scale (so all bricks have the same size on every imported object). And when I want to create custom object in scene I have to manually scale UV's to adjust bricks size for every new object (instead of scaling to one constant parameter).
UV-mapping defines a vertex on the model to a corresponding point on an image. When you have an image fit to a single face, then you make the model bigger the same vertex still maps to the same point on the image.

Using the same material for two objects with uv coordinates you get the size variation, unless you unwrap each object and adjust the uv's to match the texture size to it.



If we change that to object coordinates the image size remains constant between models, you may also want to set the projection from flat to box.



In Blender Internal you have the same settings under mapping -



In cycles you can add a mapping node after the texture coordinates to adjust the size and position of the texture, while BI has the scale and offset right next to the coordinate mapping setting.