8.6 SPECIFICATION
So far the discussion has addressed only forms of manipulation that involve the relationship
of data objects with other data objects, such as attachments, or with their
surroundings, such as feelers. In a sense, these interactions were external to the data
objects themselves. A different form of manipulation involves changes within individual
data objects, such as changes to a data object's makeup, state, or attributes. These
internal forms of object manipulation are called specification.
Specification is an important aspect of many design applications, especially those
involving product selection. With the advent of computerized manufacturing, customers
have more choices and greater flexibility in specifying standard products.
Depending on how a manufacturer organizes product options and how the application
exposes those options to a customer, the user might select a different kind of product
from a catalog of available product models, or the user might specify individual
parameter values and option choices for the product.
Closely related to specification is the concept of configuration, where the designer
constrains the specification of an object to allowable values, perhaps through the use
of rules. Configuration for the purpose of specification and other forms of manipulation
is discussed in section 8. 7.
8.6.1 Dumb shapes
The simplest form of specification is to choose a different object of the same general
class. For example, the user may like the placement of a desk in an office layout but
not the type of the desk. Perhaps the desk should have the drawers on the left instead
of the right, or it should have a computer keyboard tray. The user chooses a different
desk and it is immediately instantiated in the scene replacing the old one. A new 3D
model changes the appearance of the desk and has new descriptive feedback changing
its identity, such as a model number callout. This is called dumb shape specification
because the individual data objects are static and immutable. With dumb shapes the
user can't change just a part of an object; instead, the whole object must be changed,
with the new data object replacing an existing one in the scene.
Although rather simple for the designer to implement and easy for the user to
comprehend, dumb shape specification has significant drawbacks. It does not lend
itself to direct in-scene manipulation, which is often more intuitive than indirect
methods; and the need to represent every combination of options with a separate
object can be impractical. For example, if a product has 10 options and each option
has five mutually exclusive choices, then the data catalog would have to contain 50 versions
of the same basic object. If, instead, the choices are inclusive, then permutations
must be considered and catalog size can become a serious problem.
8.6.2 Smart shapes
An alternative approach to dumb shape specification is to make the objects dynamically
adjustable. As the user specifies option choices and parameter values, the data
object reshapes itself accordingly. This is called smart shape specification because the
data objects are dynamic and changeable. Smart shapes lend themselves to direct
manipulation and avoid the combinatorial explosion problem of dumb shapes. Smart
shapes are most readily supported by 3D platforms that provide for "parametric modeling,"
where the model geometry can be constructed to directly parallel the product
specification parameters. You may be wondering what is the difference between a
smart shape and a constrained assembly of objects. As with a dumb shape, a smart
shape refers to a single data object, or logical entity, which may be modeled as an
assembly of individual components or objects, or as a single parameterized object
model. In other words, shape here refers to the entity whose parameters are being
specified, not necessarily to the manner in which it is constructed.
As with other forms of manipulation, smart shape specification can occur directly
or indirectly. Direct smart shape manipulation can offer a more intuitive feel than
indirect manipulation. For example, to move a desk's drawers from the right side of
the desk to the left side, the user might simply drag them to the desired position. Similarly,
if a larger desk is needed, the user might drag a corner to resize it. For direct
shape manipulation to work well, the objects must be intelligent enough to keep the
arrangement of their internal components consistent and valid. For example, when the
drawers are slid from one side to the other, they should snap into place on the right
or the left and not be allowed to remain in some intermediate position; and, while the
desk is being stretched, the drawers should be kept flush against the side of the desk
even though that side might be the one being adjusted.
Other forms of direct shape manipulation can be nongeometric in nature, dealing
with visual or even non-visual attributes of the object. For example, to change the
color or finish of a desk, the user might select a desk surface and choose a new finish
from a palette of finish swatches. The new finish would appear immediately on the
selected surface. Nonvisual options such as connecting braces and electrical cableways
might be selected automatically when the user connects two desks together or attaches
a lighting fixture, but this is getting into configuration, a separate subject. Figure 8. 17
shows an example of a 3D configurator in an e-commerce application.
Indirect forms of smart shape manipulation might be desirable in certain situations.
If the specification requires precision, such as the exact dimensions of a desk,
then a dialog box with entry fields or radio buttons might be preferable to direct in-scene
resizing. If the specification is somewhat complicated, then a more aggressive
technique such as a wizard might be useful. For industrial-strength applications, configuration
techniques might be used to handle guided selection, to constrain the avail-able
choices, and to validate the overall specification.
Figure 8. 17 In this 3D configurator, the user can select a surface, apply a valid finish, and see
the result on the 3D desk model. (Courtesy of TechniCon Corporation)
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|