Page MenuHome

Add Dimensions to Properties > Object > Transform
Needs RevisionPublic

Authored by William Reynish (billreynish) on Sat, Aug 24, 4:16 PM.

Details

Summary

Currently it's a weak point in Blender, that users cannot access the object dimensions more easily. Currently we hide this inside the 3D View Sidebar. For such a basic and useful concept as setting the dimensions, I would like this to be more apparent in the UI, and also discourage opening the Sidebar just for this one item.

To make the Transform panel more useful and consistent, this patch adds Dimensions to the Object Transform panel.

Rather than doing it the naive way of just adding more controls, this patch adds an enum, matching the rotation mode enum.

This is similar to how we allow users to both use Field of View and also millimetres to describe the camera focal length:

Transform set to Factor (Default)

Transform set to Dimensions:

Diff Detail

Repository
rB Blender

Event Timeline

Update: Keep showing the transform locks, also for Dimensions.

Also results in a bit less UI code.

I don't think it's a good idea to have an enum toggle between scale and dimensions. It should just mirror the layout in the sidebar. I do agree that the naive way of just adding more controls is never a good thing, but there's an exception in this case, which makes it not naive:

The thing is that it's often very important to know you have have scaled your object or not. Especially when working in a pipeline, forgetting to apply scale transform can often cause lots of issues. When you switch the enum from scale to dimensions, you can no longer tell if you object has been scaled, or has uniform/non uniform scale. You only see absolute dimensions, but you are not aware if those dimensions are before or after scale.

For example, you can duplicate the default cube, go into edit mode, scale the mesh contents in edit mode along X to 10%, exit to object mode and scale the object along X to 1000%. Now if you cycle selection between two cubes, in dimensions mode they will both report 2x2x2M, and you have no indication one is scaled 10x in one axis. Which may then leave some users wondering for example why are all the bevels and insets in edit mode being deformed so weirdly.

An example of practical workflow (that I personally use):
I like the convenience of being able to input dimensions of my objects directly. It's a great workflow, however I also want to be aware if any of my objects are scaled, especially non-uniformly. After setting dimensions, it's usually a good practice to immediately apply transforms when modeling to prevent deformations. One may forget though. Luckily, sidebar constantly shows both, so it can be immediately checked. With the proposed workflow though, I'd always have to travel my mouse to the enum button, switch it, check if the scale is right or not, switch it back so I can return to inputting dimensions, and then move my mouse back to work area. Having ability to glance and verify definitely beats the need to travel the mouse and interact with the UI just to check.

I don't think it's a good idea to have an enum toggle between scale and dimensions. It should just mirror the layout in the sidebar.

+1
This would overcomplicate things imo.

This is not for the sidebar - this is for object properties, which currently have no way to display the dimensions. You can continue to use the Sidebar, which is unchanged.

This is not for the sidebar - this is for object properties, which currently have no way to display the dimensions. You can continue to use the Sidebar, which is unchanged.

Sure, I just assumed it was supposed to be actually useful in the properties editor too. For example in cases where sidebar currently displays something else.

@William Reynish (billreynish) I agree with the others.

Currently it's a weak point in Blender, that users cannot access the object dimensions more easily. Currently we hide this inside the 3D View Sidebar. For such a basic and useful concept as setting the dimensions, I would like this to be more apparent in the UI, and also discourage opening the Sidebar just for this one item.

Then why hide it under an enum anyway?

You can continue to use the Sidebar, which is unchanged.

Then everyone will just continue to use the Dimensions in the Sidebar. What does the change really accomplish then?

Because, displaying both at once is more confusing, and takes up more space.

The transform panel contains three items: location, rotation and scale. This is an easy concept to understand. If we present two simultaneous types of scaling, it’s just more confusing and less compact.

In these kinds of discussions, you will always find some users advocating to see everything, all the time. If you were to follow that principle, you’d get a hot mess - UI taking more space, more confusion, more information overload.

What is gained by adding Dimensions to the Transform panel, is that you don’t need to open the Sidebar to access this, meaning users have less UI chrome and more space for content.

@William Reynish (billreynish) Fair enough. But here's a thought. Why not make the dimensions a dropdown? That way the user can choose weather to see just the scaling or both the dimensions and scaling.

Remove Dimensions from object types that don't support it

In these kinds of discussions, you will always find some users advocating to see everything, all the time. If you were to follow that principle, you’d get a hot mess - UI taking more space, more confusion, more information overload.
What is gained by adding Dimensions to the Transform panel, is that you don’t need to open the Sidebar to access this, meaning users have less UI chrome and more space for content.

Yes, many people would like their 3D software to be one giant spreadsheet impossible to learn for new users. So I agree UI needs to be clean. But not at all costs. Like any rule, it needs to be combined with common sense. UI clarity should not go too far at the expense of usability.

You will not gain the removal of the need to open sidebar by this change, because any user who prefers to use dimensions will still want to also see if there's any scaling happening, as long as that user is professional and responsible (which I hope most Blender users will be led to). If there's a switch between scale and dimensions, then anyone responsible will keep using sidebar because using property panel will require physical interaction with UI elements just to visually verify if there is or is not a scale applied, and then further physical UI interaction to return back to the dimensions mode to work with dimensions workflow.

There's really no gain here, but there is a loss. A loss of consistency, as we will now have two UI panels doing the same thing but both will have different layouts. I guess that's just the way of Blender.

you will always find some users advocating to see everything, all the time. If you were to follow that principle, you’d get a hot mess

Hiding things just for the sake of it doesn't make the mess go away, it's just added difficulty. Also it's not a mess when makes sense..

Efficiency comes first, always. Keep that in mind.

Having this per object seems strange, why not make it a scene tool-setting?

Otherwise you can't reliably do the following: open a file, select any object - and keyframe the scale.

The person who last edited it might have left it set to dimensions.

This seems more useful as a display setting then a per-object setting.

@Campbell Barton (campbellbarton) yes, could store it in the scene instead - will do.

Brecht Van Lommel (brecht) requested changes to this revision.Mon, Aug 26, 6:33 PM

I think we really should put this in a subpanel. Besides convenience, I don't think it should be possible to have scale keyframed without any visual indicating in the properties editor.

To me it seems like both scale and dimensions are useful to edit the object transform. It's not like you only need one or the other, especially not at scene level.

This revision now requires changes to proceed.Mon, Aug 26, 6:33 PM

Trying as @Brecht Van Lommel (brecht) suggests to make it a sub-panel:

Doesn't look quite as nice, but is more practical probably.

I am not really happy with the double 'Dimensions' text. I like the prev solution,
but maybe this is acceptable even if it doesn't look as nice.

Doesn't look quite as nice, but is more practical probably.
I am not really happy with the double 'Dimensions' text. I like the prev solution,
but maybe this is acceptable even if it doesn't look as nice.

The reason it looks odd is probably that it says dimensions twice on two neighboring rows. If the dropdown itself is named dimensions, then the contained rows should be just called XYZ. There's no possible scenario where you would be able to see the rows without the dropdown title, so it should be fine. One will always know what they belong to.

I think this is fine if we leave out the double Dimensions text.

I think this is fine if we leave out the double Dimensions text.

I think this could also be cleared up in one go

Remove double Dimensions text.

Looks like this now:

Overall not as elegant as original solution, but if we can avoid having to open the Sidebar, it's important to add this somehow.

Overall not as elegant as original solution, but if we can avoid having to open the Sidebar, it's important to add this somehow.

In a scaled parent setting the dimension values is not very meaningful anyway, I think it's a good compromise.

I think something like this could be more user friendly:

sidebar
+ fix the math.

This revision is now accepted and ready to land.Wed, Sep 4, 6:33 PM
This revision is now accepted and ready to land.Thu, Sep 5, 11:09 PM
Brecht Van Lommel (brecht) requested changes to this revision.Thu, Sep 5, 11:09 PM
This revision now requires changes to proceed.Thu, Sep 5, 11:09 PM