Capturing function in a model assembly

To expand on my previous post, methodology in using SolidWorks should employ strategies that capture function (not just form and fit). This is true at the individual model level, and at the model assembly level. There are likely many ways to capture function within a model assembly. If used in a particular way, Horizontal Modeling can be employed. Other methods are Top-Down and Bottom-Up. Given the names of these methods, it is easy to see where the name “Horizontal” came from. The methods described here are for engineering environment where much of the design is custom or discrete parts, where similar componentry is rare. (As presented here, this is not the best methodology for creating model assemblies where componentry is very similar for a multitude of products, though some individual methods covered in this article might still be useful in that environment.)  I don’t presume that what I’ve written here some sort of final say.  My ideas have evolved over the years, and I’m sure they will continue to evolve as SolidWorks will evolve.

So, my preferred method doesn’t really have a name, per se. I use which ever methods are best for the particular task at hand, within certain given rules. For example, when working with model assemblies, it’s usually not a good idea to solidly use Top-Down methods. That is, do not create models at the assembly level and work down from there. It’s not that this is conceptually bad. It’s just that SolidWorks doesn’t do a good job at handing this method in the extreme examples. It creates relationships that are unnecessary and hard to detect during troubleshooting. (Yes, I realize this goes against the whole idea of parametrics, upon which SolidWorks, Pro-E and other applications are supposedly based.) However, some level of thought has to be put into building a model assembly that does resemble Top-Down methodology. To capture the function of an assembly within SolidWorks, an understanding of how the components interact with each in the real world must be considered. This is tempered by the need to create as much of a stable and editable model assembly as possible.

To do this, parts must be modelled with their most significant function as the core. This is the feature that is the most functionally laden. This is often the feature where the most important interfacing with other components occurs. Center that feature about the default reference geometry (the three default planes). Think about how the part is to interface with other parts. For example for a basic part, relative to the top view of the feature to its function, the feature should be centered on the X and Y plans, with the Z plane assigned to the mounting surface. Other methods also exist. The idea is to model the feature in the most functionally meaning way. If this is done consistently on all models within a model assembly, mating those components together using Horizontal Modeling methods will be much easier to execute and edit.

Once parts are modelled in this way, the model assembly is a simple matter. The reference geometry of that very same core feature can now be used at the assembly level. Before starting the design and modelling, determine the most significant part. This is the part that carries the highest functional burden. This can be the component to which most other components mate (such as a base plate). It can also be the component that interfaces with another model assembly or critical component. Other possibilities exist too.


Whatever type of part you decide is the significant component in your assembly, it is that part which should be first inserted into the model assembly. Align that model’s reference geometry to the three default planes of the model assembly, but do not mate the model to the model assembly’s reference geometry. In fact, never mate any model to the model assembly’s three default planes. Instead, fix the most significant component. This is the component to which all other parts will be mated, directly or indirectly. There are three main reasons for this. First, this functionally establishes the part as the core of the assembly. Second, this significantly reduces the chances that unnecessary or unintended relationships will occur in the assembly. Third, it allow the assembly more degrees of editability should realignment of this or other portions need to occur.


Only mate components to other fully defined components. All mating should be driven by function. Mate components to the core model as they would be in real life. This means using a logical combination of both reference geometry and feature geometry. If two faces functionally mate flush to each other in real life, then make the surfaces coincident in the model assembly. If a component is to be centered on a mounting plate, don’t use the mounting holes to mate the part together. Use the models center planes and the interfacing surface. Yes, apply the best method. Don’t use only features or only reference geometry. There is no preference between the two methods. Use the method that best captures the function. This may be counter-intuitive to some people. However, if it is understood that this is how a model assembly was built, I feel that this is the most intuitive methodology. Build the assembly based on function.


More important functions take precedent over lesser functions. If a model is fully defined, do not apply more mates to it to capture further function.  This would be both redundant to the primary function(s), and cause over-defining errors very quickly in SolidWorks. This is part of the general rule for all modelling methods, avoid establishing unnecessary relationships. Having them will ruin any attempts of any good practices methodology.


By using this methodology (or combinations of methodologies, actually), one can capture a parts form, fit and its function within the SolidWorks environment.