A common user feedback theme for software is “make it easier”, yet most software claims to be “easy to use”. For large applications, achieving “easy” never is easy as it can be a balancing act requiring trial and error, and going through many iterations with users of various roles. Software that supports many roles simultaneously compounds the balancing act.
A guideline we’ve tried to follow is to make the most common tasks more obvious by dedicating more prominent placement of buttons and/or more screen real estate for such tasks. That also means making less common tasks less obvious by burying them deeper, yet providing a logical path to discover them.
Another guideline we’ve tried to follow is to make user content front and center by maximizing screen real estate and available CPU/GPU power. As as a result, we’ve tried to keep top-level commands as minimal as possible and use lightweight Windows Forms UI widgets (e.g. instead of WPF taking GPU cycles away from 3D rendering).
The “Property Grid” is a common UI widget found in a lot of design software. An advantage is direct access to lots of settings in minimal space, supporting user-customized settings, and informing the power user about the underlying data structure. It is also low-cost from the software developer perspective where a single control can support potentially thousands of settings. A disadvantage however, is that all settings are given the same real estate, many settings are rarely used (taking up real estate at the expense of user content), and there’s no indication as to which settings are more important or are related to other settings.
With the latest version, we’ve ditched the property grid and replaced it with a dialog box containing unified property pages.
The “General” page is supported by all objects and relationships, and is similar to the Windows File property page.
The “Details” page is supported by all customizable objects, and contains a property grid but is limited to custom properties and quantities.
The “Links” page is supported by all objects, providing navigation to all relationships, where the object dialog can be launched recursively.
The “Representation” page is supported by product occurrences and types, allowing fine-tuning of geometry and styles.
The “Placement” page is supported by product occurrences, allowing precise control of position and orientation.
Many additional property pages have been added, some consolidating former dialog boxes, including materials, actors, calendars, associations, classifications, and constraints.
There are more to come for tasks, resources, and libraries.
However, for more technical users who want to access obscure settings or have visibility into the underlying data, the “View Raw Data” checkbox goes a step further.
The “Attributes” page displays the property grid, allowing viewing and editing of all attributes.
The “Graph” page displays a hierarchical graph of attributes and links to relationships.
Along with the new property pages, we’ve also consolidated the ribbon such that there’s a single ribbon tab applicable to the selected object, reducing the amount of tab switching.
Along the way, several new features have been introduced, such as shortcuts to email or call a user, dropdowns to select product models, and commands to align objects relative to others.
What do you think? Feedback is always welcome.