Design Intent Without History

I’ve got a post in the works on comparing the sketch functions between SE and SW, but I’m waiting on some clarification for a couple of points. So I thought in the mean time I’d write something about design intent, since someone asked for that in the comments recently. This should have made my voting list, but somehow I left it out.

“Design Intent” is a phrase in search of a definition. It’s possible to consider design intent separate from CAD, in which case I think it means “the driving elements of the design”. But here I’m not talking about “design”, I’m talking about CAD modeling. Design happens in your head, and is usually already complete before you get the idea anywhere near a computer. What happens on the computer is modeling of your design idea.

For anyone who has read my books, I rename “Design Intent” to “Design For Change”, which to me is more descriptive, and something you can actually act on. Now that I’m thinking about it, “Modeling For Change” might be even better, because the CAD method should not affect the design. With the CAD model, you’re mainly interested in how your model will react to change. All history-based CAD users should agree that your modeling practice will have a big effect on how that model reacts when you change something about it.

Wikipedia talks about the topic like this, in a page on Computer-Aided Design:

3D parametric solid modeling requires the operator to use what is referred to as “design intent“. The objects and features created are adjustable. Any future modifications will be simple, difficult, or nearly impossible, depending on how the original part was created. One must think of this as being a “perfect world” representation of the component. If a feature was intended to be located from the center of the part, the operator needs to locate it from the center of the model, not, perhaps, from a more convenient edge or an arbitrary point, as he could when using “dumb” solids. Parametric solids require the operator to consider the consequences of his actions carefully.

For my purposes in this article, I’m going to use “modeling for change” in place of “design intent”.


It is possible to have design intent with dumb geometry. Here is an article written on extracting design intent from laser scanned objects. That discussion might be hard to follow, but you can definitely see that just from looking at a CAD model with no feature list, you can still discover elements that drive the overall design. Symmetry, patterns, repeated basic shapes.

Since you can do this by just staring at a part for a long time and recognizing patterns and symmetry, it stands to reason that a computer could be taught (programmed) to do the same sort of thing. In fact, “feature recognition” is something that has been around for a while, and as computers get faster, doing live recognition is easier. Building a feature list is a great way to establish intent, but it’s very rigid. What happens when your design intent, or how you want the model to react to change, itself actually changes?

angelina jolie

Running along the right side of this blog post is a feature tree of a part with 341 features. I’ve put it here just as a graphic reminder of how much work goes into complex parts. This is a big machine casting, and used a wide range of features. A customer paid me a fair amount of money to recreate this from a STEP file and a couple of PDF drawings into this feature tree in SolidWorks. He just wanted to have features he could change in SolidWorks. While I was glad to do this and to take the money, I realized that it wasn’t really necessary. SolidWorks could not manipulate the imported STEP file efficiently. Sure it has “Move Face”. But “Move Face” is like trying to write a sentence if the only key on your keyboard is a period.

I’m not saying that history modeling is a bad thing. In fact, I think it’s necessary. But it’s not the only necessary thing. I don’t believe throwing away history-based concepts is a good idea at all. We have to keep history-based modeling as a tool in our toolboxes as people who model a wide range of mechanical components. History modeling is great for creating special kinds of features where the topology varies – the count of edges and faces.

Direct Edit applications could manipulate some of this part, but they can’t do all of it. It wouldn’t matter to Solid Edge ST4 where this model came from. It wouldn’t matter if it were from STEP or even native, if done strictly with direct edit tools. We’ve even seen this on things Dan Staples has done, where direct edit is simply not powerful enough to deal with the complex collision of fillets and other features.

Here I’d also like to address a misconception that I’ve found some people have. Some people think that direct edit software is not parametric. I haven’t done a survey of all the direct edit tools out there, but some do have parametric capabilities. You can still apply dimensions directly to model faces, and even apply relations such as parallel, symmetric, equal. This is still parametric modeling, just applied directly to the finished 3D part rather than to sketches. This is modeling for change that can be changed. You don’t have this indirect feature layer to work through. An extrude feature is meant to work a certain way, but if your intent changes in such a way that the extrude scenario doesn’t work any more, you’ve got a problem. If all you have are the faces

So if history can’t deal with all cases, and direct edit can’t deal with all cases, what are we left with? To me, the only thing that can conquer all cases is a combination of history and direct. This is what Synchronous Technology is all about (starting with ST3). Here’s a little movie that shows some simple design intent change using symmetry settings in Live Rules and dimensions. Live Rules is a blog post all on its own. I won’t go into a lot of detail here, just to show it working in this case. You might want to maximize the window for the movie so you can see the detail pics and the other small things I talk about. When I’m mentioning that you have to use some “shenanigans”, I’m talking about what you’d have to do in SolidWorks to make this kind of design intent change.

20 Replies to “Design Intent Without History”

  1. Hey an imposter! couldnt he use a slightly different name to post? ….I suppose people can tell us apart by the style though…. 😉

    1. Sorry, I don’t frequent this site very much, and didn’t realize that my first-name-only use could cause a confusion. My apologies 🙂

  2. I’m usually a nice guy but I really hate the Parametric=History terminology that is used. I got frustrated enough last year I drew a picture and told the marketing people to look up the definition of “Parametric”.

    I’ll go back to being nice now.

    1. Mark,

      Thanks for chiming in. When ST first hit we weren’t sure what to call it. I think by now the message should be out. Thanks also for the chart. I’ll try to remember to keep the concepts separate, and not automatically associate one with the other.

      Thanks again for stopping in.


    2. While it is true that a non-history based system can have some parametric behavior, all history-based systems are parametric, to my knowledge. A history-based system is distinguished by the fact that the information content is in a recipe consisting of constraint definitions, feature definitions, component instance definitions etc. The model is just a by-product of the evaluation of the recipe. Thus a history-based system supports topological changes more naturally.

      In contrast, in a non-history based system, the model is an essential part of the definition. If you have a parallel relationship between two planar faces, that relationship would be permanently lost if one of the faces is deleted. In such a system it’s unlikely that recovering the deleted face will recover the relationship.

      This is not to suggest that history-based systems are inherently superior to non-history based ones. I think each approach has its merits and place. But it’s foolish to suggest that there is a low or no correlation among the many concepts like history, features, relations, etc. as your  picture suggests. Perhaps an enumeration of the commercial systems available today, according to these concepts, should help settle this matter.

  3. Matt, I am very happy you have started this blog! I have been a Solidworks user for many years and always found your blog, Dezignstuff, interesting and informative.
    I will never forget the first time I was introduced to Solid Edge. You had a article about Solid Edge with ST which included a short video.
    The instant I watched the video I was hooked! I knew if I was able to manipulate the model or part with the ease of ST that was the design freedom I’ve been missing. No longer would I be constrained or roped, as Neil would say, to the original sketch.
    The work flow of Solidworks never made much since to me, always seemed to be backing up! With Solidworks I was merely putting my design in a format others could see, interpret and understand. I was not designing in SW. How can one call it designing when you need to know the design to understand how to best build the model at the very beginning? With SW my time was spent manipulating the program not the design. Working in Solidworks was always like trying to run in waist deep water… very frustrating.
    Solid Edge with ST is a much more natural CAD program. You can start with just an idea of your design and start building from there. I like the way I can start with the first part then open an assembly with that part and then just keep adding parts as the design matures. There is no going backwards just the forward direction of the design. It is freedom of designing not constrained to the original sketch! In Solid Edge with ST you can actually design in the program not just merely put a design in the program.
    Solidworks users your CAD world is going to change. SW evidently recognizes the benefit of direct edit isn’t that what V-6 is?
    The fact is SW was a good program for its day. The CAD world is moving forward and it is direct edit and that is Solid Edge! SW is in a death spiral and my company can’t wait to see if they can recover.

    1. George

      I agree, developing a design in sync (or any direct editor) is way more free flowing than in a history based system.  It is VERY hard to go back to history based modelling when doing early stage design.  As you say, being able to instantly extrude from surfaces at the assembly level really gives a great modelling experience.  Where other direct modellers fall down however is when you want to start constraining things and this is where sync is in a class of its own.  When I used to work in history mode, I typically built the model twice – once to arrive at the shape and then again to build it so it would edit well.  It is rare to have to do that in sync (when I say sync I refer to either a fully sync or a hybrid model – I don’t think in terms of a split environment).

      Before someone jumps in – I typically design mechanical/sheet metal parts not ID stuff.

      What I’d like to see is the ability to use an assembly surface also extend to the sheet metal environment i.e. being able to use a surface to create the base tab.  Currently I workaround by starting in part, creating the feature then converting to SM.

      1. Roger

        How about :

        Insert a SM part  into the assembly,

        Insert a part-copy of a face and thicken that surface, grab any edge and start modeling the SM part ( use the convert to SM from the application menu)

        You can also insert part copy (face), project any edge on that face ans start the contour flange

        1. Hi Luc

          I use a similar workflow:  create in place command, select part template, extrude directly from face of assembly part, convert to SM and good to go from there.  This works quite well but when you do it alot you start to wish it could work in SM like it does in part.

          So, it is not that I think the workflow is impractiacal or overly cumbersome, actually it is fairly straightforward.  But if I had a wish list, then this would be on it!


  4. When I see that SolidWorks Feature Tree I’m reminded of a contract I had a few years ago at a Medical Device company. An Engineer there had spent 6 weeks creating a thin film molded part that had many complex curves. It had about 350 Fillets in the Part file. His fatal mistake was that if a Fillet need to be changed, he would add a new Fillet Feature on top of the existing Fillet(WTH). He sent the Part file to the Mold house and they discovered he forgot to add Draft(!). So they gave the file to me. I gave right back to the Engineer and said “start over”. I’ll never for get the look on his face.

    I know its off topic, kinda, but that’s what I think of looking at that Feature Tree.


    1. Actually Devon, you’ve hit upon an interesting topic — what we call Hack and Whack modeling.  Prior to Synchronous, we (like all history-based folks) frowned upon hack and whack and were always amazed at what strange approaches various users would take that would get baked into their history tree. After criticizing their approach for years, we realized they were just trying to do their job on a tight deadline and didn’t have a lot of time for elegant trees — they just needed to get the model done.

      When we started on Synchronous many years ago, we did an inventory of the literally hundreds of thousands of files we have for testing and found that actually there is hack and whack in the majority of them. It takes a skilled operator to build the perfect feature tree that is not a house of cards — and most users don’t have time for it.

      It was actually after we were well invested in Synchronous that we saw the beauty of hack and whack in the Synchronous world. You can skin the cat 10 different ways and end up at the same place, and any of the methods are equally fine as far as the end result is concerned — because you have not baked in whatever your shortcut of the day was. This is kind of an unforeseen benefit of Synchronous that is very handy — no one ever sees your dirty laundry — only your beautiful clean shirt after the laundry is done.

      1. Hello Dan-

        Thanks for the reply. I find it interesting & encouraging that you took the time to look at user created files and then built your software to help, rather than hinder, how users create 3D models. I look forward to learning more about Solid Edge.



  5. The real beauty of the ST “design intent” is the capabilities for working on imports, editing a part becuase your customer can’t make his mind up and families of parts. Design intent in another way would be in an assembly for instance when you discover holes that should line up don’t. These same direct edit tools you show in the video allow for the holes to be aligned right there right now with the edited part updating and none of this has to go through dependencies or histories. If all dimensions are locked down in the part and you want to change it you have to unlock specific dimensions to do so. When done relock. This prevents hack and whack mistakes that so many were afraid of with ST and preserves design intent. You can’t just change by accident locked dimensions when using live rules. You have to make a deliberate decision to do so.

  6. Thanks for that clarification, until this post I had my doubts about how ST would handle design intent. I’d love to see similar technology in SolidWorks.

    As a long time user of SolidWorks, it’s sometimes hard to see outside the box. I’m kind of stuck on the  SolidWorks train, it has so much momentum in the industry around me it is a hard to get off. Staying compatible with companies and clients, is the biggest reason most will stick with the CAD package they currently use. That may change for SoildWorks in the next couple of years, “Catia Lite” (as you have phrased it) or Cloud SolidWorks my cause the SolidWorks train to derail. Only time will tell.

Leave a Reply

%d bloggers like this: