What’s Best, History or Direct Modeling?

It depends, but one method will be the right one for you.

Most professional CAD users are familiar with history-based modeling. It is taught in high schools and colleges and by most CAD resellers. History-based modeling is a method of building a CAD model in steps that are kept in a list. Some people call this ordered modeling. The method is commonly compared to a recipe or a computer program—a list of operations that are used to recreate the required geometry.

History-based modeling was developed in part to help with hardware limitations early in the development of computers and CAD. It was one hurdle to clear at the time, though not the only one. Computers in the 1980s struggled to process entire parts all at once, so segmenting the work into smaller features helped that process. Putting these features in the order in which they were created seemed a logical thing to do. This part of the backstory has largely faded because history-based modeling has overtaken other methods in popularity and despite their weaknesses, we have learned to work with them.

Direct-edit modeling is a different method. Here, the process and steps to create the shape don’t really matter. Sometimes sketches are used to initially create shapes; sometimes they are used to create primitive shapes or even imported data. The software doesn’t keep track of how you create features or the order in which you create them. The only thing that matters is the current geometry of the model, the number and types of faces, and, of course, the dimensions or sizes associated with the geometry.

What Is the Big Difference Between History and Direct?

The big distinguishing characteristic of direct-edit modeling is how changes are made. Changes are made by interacting with geometry directly. Instead of editing a sketch that indirectly represents the solid geometry or a dialog box that defines how you performed an extrude feature in history-based modeling, in direct edit, you select a face or set of faces and move or rotate them.

Also, modern computers can compute much more data than models in the past. This means that for the level of part complexity that most of us work with, we really don’t need to segment models into features to make them editable anymore. That’s just one less factor pushing us down the history-based direction.

The main question here is if one method is actually better than the other. Spoiler alert—despite the usage in the industry being so lopsided, the actual answer is a clearly unsatisfying “it depends.” But what it depends on and how it depends on it is the interesting part.

Most people using CAD today have not evaluated the methods; they just use history-based modeling because it is what was set in front of them in school or on the first day of work. Most people feel like they have some sort of investment in history. It’s a known quantity, provides a living and stability,  and change is scary anyway, right? Finding out that another method exists is as shocking as learning that there are two Santa Clauses.

Why Do We Need Another Method?

History-based methods have been around for a long time and are proven by the sheer number of products that have been developed using these tools. Direct edit should have been discredited long ago. So why are we still having this conversation?

Here are some reasons to reexamine this question:

  1. Developments in hardware have removed some of the obstacles to using direct edit more efficiently.
  2. Siemens Solid Edge and NX have added to the traditional direct-edit toolset in a way that makes working with many kinds of data far more efficient and less error prone.
  3. History-based methods have many shortcomings and limitations that are almost universally overlooked.
  4. It has been demonstrated that this is not an either/or proposition; both of these methods can be used simultaneously in the same models and each method turns out to have its own strengths.

Change for the sake of change is not reason enough,  but it is time to start acknowledging the shortcomings of the history-based system and the simplicity that could benefit a lot of people. History-based modeling is complex and not everyone needs that.

Direct Changes Work Like 2D Sketch

The easiest way to visualize how changes are made to 3D geometry in direct edit is to think about how you make changes to a 2D sketch. The sketch has lines and arcs with relationships and dimensions. If you want to make a change to the sketch, you do some combination of these operations:

  1. Drag a sketch element with the cursor
  2. Change a dimension
  3. Add a geometric relationship
  4. Add or delete geometry

You make changes to a direct-edit 3D model using the same operations. The interface may be slightly different, but the concept is the same.

Parametric Is the Same Thing as History Based, Right?

The belief exists that history-based design is by definition parametric and that direct edit is therefore nonparametric. This, however, is not true.

The term parametric simply means that a model is controlled by parameters. The parameters can be dimensions or geometric relationships such as parallel or perpendicular. Direct edit uses dimensions and geometric relationships; therefore, direct-edit tools can be parametric.

Further, most people believe that the decision to use direct- or history-based modeling is an either/or situation. Again, this conclusion is based on mistaken information. Solid Edge is built on both direct and history (ordered) modeling and you can use both methods within a single part. Some features can be directly driven and some can be history based. You can use parts of both types within an assembly.

Synchronous Means Working Together

Solid Edge and NX both include what is called synchronous technology. These are really just traditional direct-edit style tools with a lot of extra intelligence and functionality built into it. Synchronous technology is implemented slightly differently in NX than in Solid Edge. This article will largely reference Solid Edge.

The people at Solid Edge do not like to use the term direct edit because of the bad associations with that term. They feel that the term synchronous technology conveys the idea that it is much more than just pushing and pulling faces around the screen. And it is.

Let’s list some of the actual differences between direct and history:

  1. History drives features indirectly with sketches; synchronous technology allows you to only change the faces that need to be changed.
  2. History creates parent-child dependencies that are often broken during editing, while synchronous technology does not.
  3. Imported data cannot be edited in history-based software but can be edited in synchronous technology. STEP AP 242 allows PMI (product manufacturing information) dimensions to transfer with models. Synchronous technology can use these dimensions to edit the model directly.
  4. In history-based modeling “design intent” is something you have to build into the model before you know what changes you are going to need to make, but in synchronous technology, design intent is created at the time of the edit.
  5. In history, features are predetermined operations. In synchronous technology, features are essentially either a set of faces created at the same time or the faces selected at the time of the edit.
  6. In history-based modeling, edits cause all the features after the one being edited to be recalculated, but in synchronous technology only specific faces need to be refigured.
  7. Features in history-based modeling depend on the order in which they are created and to work around this a sometimes awkward reordering of features (and reinvention of design intent) is necessary. Synchronous technology does not create these dependencies. It works like editing items in a 2D sketch.
  8. Synchronous technology allows the use of history and synchronous tools as needed.

Because Solid Edge incorporates both of these modeling methods, we can look at them from a strictly functional (noncompetitive) point of view. We don’t have to proclaim a winner and a loser, but we can benefit from using the best of both methods.

It turns out that history-based modeling is actually better at some things and that direct edit is better at others. Let’s take a look.

Direct editing is much simpler and easier to teach. As you have seen with the 2D sketch analogy, creation and editing can be very intuitive.

Direct editing is best when limited to prismatic shapes; geometry that can be identified as planar, cylindrical, conical or toroidal—essentially any 3D shape you can create by extruding or revolving lines or arcs. (This is only the case in Solid Edge. NX has additional capabilities for editing complex shapes directly.)

History-based modeling is best for things like extruded text, which would be very difficult to change in direct editing.

History-based modeling is best for complex shapes (anything driven by splines, lofts, or other interpolated shapes).

History-based methods are the only way for things that really need parent-child relationships for some reason. This would include associative links to external parts to be included in Boolean features.

Several types of features can go either way, such as fillets, draft, shell/thin wall, holes and patterns. There are certain advantages to using either method in specific situations. Sometimes it’s easier to just tilt a face to add draft and sometimes you will want a feature you can roll back or add something before it. Fillets, draft and shell are often handled in this way to make changes, especially on plastic parts. Other times, you think you are getting an advantage through the automation of history-based design, but repairing broken relationships easily outstrips the amount of time you save.

There are some functions that just need to be direct-only functions. Moving, rotating or offsetting a face are examples. Imagine the mess you can create by adding this kind of edit as a history-based feature, especially considering that each new feature adds time to the recalculation of the tree.

In Solid Edge, when you combine synchronous and ordered data, the synchronous data is always listed first in the tree. The synchronous body becomes the first feature in the ordered list of features. You can make direct edits to the synchronous body or add history-based features.

Tutorial

(See the video of the tutorial here: https://dezignstuff.com/recordings/HvS.mp4.)To demonstrate some of what history-based users are missing out on, follow these steps in Solid Edge:

Draw your sketch as you normally would and extrude distance. Notice that all the sketch dimensions and the extrude distance will transfer to the solid. These are editable dimensions.

After the extrude step, the sketch still exists but is not used to drive the geometry any longer. Use the dimensions on the solid geometry to make changes.

Add round to corner as shown.

Sketch a hole that is concentric with the rounded edge and pull it through as a cut.

Change one value by clicking on it and then use the scroll wheel on your mouse. Depending on which arrow is highlighted on the dimension box, the part will change to the left or the right or symmetrically. You can change this as you work. This is real design intent on the fly. You don’t have this kind of flexibility on a sketch-/history-based system.

Notice also that the hole will move if the round moves. This is because the Design Intent box automatically selects any faces concentric with selected faces. This can be enabled or disabled on the fly. The items that will be changed are anything you select plus anything the Design Intent selects due to the active options in the box.

Escape from editing the dimension and click on the face of the round and then Ctrl-click on the adjacent face as shown.

Drag the ball at the center of the Steering Wheel up to the straight edge as shown.

Use the ring around the Steering Wheel to angle the faces a few degrees as shown. You can also key in a value to be precise. Notice that the hole has been angled as well; again, this is because the Concentric option is enabled. This is an edit you could make nearly as easily in a history-based system.

From here, press Esc and Ctrl-Z to undo and return back to the state without the angled faces.

Next, click inside the hole so that the Steering Wheel appears as shown. Click and drag on the disc inside the ring and use this to move the Steering Wheel in the plane.

This will move the hole and because the hole is concentric with the round, the round also moves along with the faces that are tangent to the round. Notice that the hole was added last but is being used to drive the position of the round and the faces of the original extrusion. This cannot be done in a history-based system either. If you disable the Concentric option in the Design Intent box, the hole will move independently.