Kevin Jogin


Good efficient assemblies starts with good efficient parts. As  parts are core elements of large assemblies, they need to be model sensibly and efficiently. Part design always has to start with plan as to how to model it efficiently, with properly placed reference geometry.
One key element when modeling parts is to establish the design intent. Once this is done, you can plan part construction by considering these elements.

  • Origin
    - Where should the origin be?
    - How does the origin affect the mating of the parts in assembly?
  • Symmetry
    - Is there symmetry?
    - If so, how many planes of symmetry? Generally, the origin is on all the planes of symmetry. or even less of the part and then either. Using symmetry, you can model half or quarter or even less of the  part and then either mirror or pattern the rest. mirror or pattern the rest.
  • Features
    - Decide which elements should get their own features in the FeatureManager design tree. Will any features need in-context relationships?
  • Configurations
    - Configurations can be used to create both the maximum (full detail) and minimum (only the detail needed to mate the part into the assembly) conditions of the part.
  • Patterns
    - Patterns can reduce the amount of work to create the part and can also be used at the assembly level to automatically add fasteners.
  • Views
    - Which view of the model Will be the Front View when detailing?
    - Will detailing require special views?
  • Mating requirements
    - How will this part be mated in the assembly?
  • Properties
    - What properties need to be attached to to the part for accurate assembly weights, BOMs, part callouts and the like?
  • Templates
    - Right template can save time by having repetitive information and proper settings already entered. Consider creating specific templates for different customers.
  • Document settings
    - Document settings will control the speed and ease of the design process. What image quality and display settings will allow us to see the design easily without slowing us down?

Part Origins

Part origins are normally located based on the geometry of the part and its symmetry. There are two general exceptions: first is to locate the origin so that the part lines up in a layout grid at the correct position, without mates; second is when the part is created in-context and the origin is located by projecting the assembly origin onto the Front plane of the new part.

Having the origin based on the geometry of the part is the most common method and found in most best practices documents. Creating the geometry of the part off the origin for alignment purposes is generally not done in smaller assemblies or with parts that may go into different assemblies, but can be useful in a larger assembly as the part is inserted at the assembly origin and fixed. This approach reduces the number of top level mates. In many cases, if you properly locate features of the part on the origin, your mating planes already exist. For example, by placing the absolute center of a sketch for a Wide Flange Beam on the origin, then extruding from midplane, you get a Top plane in the middle of the beam, a Right plane in the middle, and a Front plane in the middle without having to do any extra work.

When a part is created in the assembly, the origin could be at some location well away from the part geometry. This is generally unacceptable and can be fixed, or as we will see later, the in-context relationships can be created differently to avoid the origin being off the part.


Taking advantage of symmetry when creating a part can reduce the number and complexity of mates that need to be added at the assembly level. This is particularly true when parts need to be centered on each other.
Using symmetry can also speed the rebuild time for individual parts when you mirror bodies. When mirroring bodies, surfaces are patterned instead of having to rebuild the geometry for each feature.


Plan ahead before modeling to reduce the number of features. Combine features sensibly because you should also keep in mind the need to change the model in the future.

Put the fillets and chamfers at the end and combine them into the minimum number of features consistent with the need to make later changes. By placing these features at the end of the FeatureManager design tree you get two benefits. First, the model rebuilds faster when we are adding features before the fillets and chamfers. Second, you can easily group the fillets and chamfers into folders to suppress/unsuppress them quickly. Use the Feature Statistics tool to determine which features are slowing the rebuild time to see if they can be suppressed while working on other parts of the model.
Feature Freeze Feature Freeze can be used to keep some or all features of a part from rebuilding. This can significantly reduce the rebuild time for complex parts. Setting the Feature Freeze bar at the bottom of the FeatureManager design tree will keep all features from rebuilding and make configuration changes much faster.

In-Context Modeling

Parts can be created and built from within the assembly. These parts can also be inserted into the assembly as new parts and built using converted edges, offset edges, and standard techniques. They are called Virtual or In-context parts.
In-context modeling can be a great time-saver in the design phase of most projects. By using in-context features, you will be required to do much less work when changing dimensions of individual parts and features as the in-context relationships carry the changes through the in-context features in a
predictable way. Generally accepted best practice is to remove in-context references before parts are released to manufacturing to avoid unintended changes from occurring; however, the point at which this occurs is not absolute. In some industries, in-context relationships may be left intact and locked if the customer is known to require changes after manufacturing has begun.
When building parts in context, you can take advantage of other parts that exist. You can copy geometry, offset from it, add sketch relations to it, or simply measure to it.

While there are many advantages to using in-context features in your models, they can cause slower performance when solving the model and can create confusion for people working on the model later in the process. Additionally, creating in-context parts in an assembly can cause the part origin to be someplace other than the most desirable location.

One of the things to consider before deciding to model a part in the context of an assembly is where that part will be used. In-context features and parts are best used for “one-of-a-kind" parts that will be used only in the assembly where they are modeled. Parts that will be used in more than one assembly should probably not be modeled in context. The reason for this is that the external references created by the in-context features are stored in and controlled by the assembly in which the references were established.

If a virtual or in-context part is to be reused in other assemblies, it is possible, with some work, to make a copy of the part and remove all of the external references. The part can also be created by purposely borrowing geometry but with no external references created.

In-Context Modeling and Performance
How do in-context features affect performance? With in-context features, the relationship between the current feature and the entity it is referencing is maintained at the assembly level. This is required because the relationships depend on the positions of the parts which are controlled by mates. In the assembly, we see these relationships as Update Holders. Therefore, in-context features create additional work when the assembly is solved. While one or two properly constructed in-context relationships may not make a noticeable difference in assembly rebuild speed, the more you have, the greater the slowdown could be. So, in addition to the other reasons for removing in-context relationships, we must consider the performance of the assembly.

Creating ln-Context Features

The method in which in-context parts are created as taught in the SolidWorks training classes is as follows:

  • Adding new parts into an assembly
    When you create a new part in an assembly, the part is given a default name and you select a plane (or planar face). The name is used as the temporary part name while the selected plane orients the Front reference plane of the new part. An InPlace mate is added to the assembly to maintain the position of the new part.
    The location of the origin of this new part is determined by projecting the assembly origin onto the Front plane of the new part.
  • Building parts in an assembly
    As the new part is created, the selected plane\face becomes the active sketch and the part is in Edit Part mode. The part is created using standard methods and references to other geometry in the to assembly.
  • Creating in-context features
    When you reference geometry that is in another part while creating a feature, you are creating what is called an in-context feature. For example, referencing the edge of a shaft when making its mating hole in another part creates a relationship between the shaft and the hole. A change to the diameter of the shaft would cause a corresponding change to the diameter of the hole.

InPlace Mates

The InPlace mates created automatically for in-context parts are there to prevent movement of the part. This is because the in-context part is attached to the geometry of parts in the assembly through external references, references that cross between parts at the assembly level. Changing the location of the part can cause changes to the geometry that may not be desired.

Replacing InPlace Mates
You can remove InPlace mates using Delete, and remate the part using standard mate techniques. This technique gives you an option to leave a degree of freedom for movement. Generally this works best if the face selected for the InPlace mate is perpendicular to the direction of motion, as this does not affect the part origin.

Deleting InPlace Mates
When you delete an InPlace mate, a warning message appears after the confirmation dialog.

The base sketch of the part located by the InPlace mate contains references to other entities in' the assembly. These references may update in unexpected ways after this mate is deleted, because the part will no longer be positioned relative to the assembly. Would you like to remove these references now? (No geometry will be deleted.)

Alternative Method

The problem with creating a new part in the context of the assembly is the location of the origin. When you break the in-context relationships, you also need to move the geometry onto the origin. This can sometimes be difficult depending on the features used to create the part. If you create the in-context part first and then delete the InPlace mate and replace it with standard mates, this does not solve the problem of the origin being off the part. An alternative method is to create the part outside of the assembly and then mate it into the assembly before creating any in— context features. This allows the origin of the part to be placed based on the geometry, making the task of breaking in-context relationships easier.

Working Outside the Assembly

Much of the construction required for a part can be done without the overhead of the assembly. Those features that do not require in-context references can be completed within the framework of the part document.

Common Tools

When you build parts in the context of the assembly, sketching is the same as in the part mode with the added benefit that you can see and reference the geometry of the surrounding parts. You will use Convert Entities and Offset Entities as well as add dimensions to geometry.

Alternatively, you can change the setting Do not create references external to the model in Tools, Options, External References, and the new feature or part will not be created with any external references. Converted geometry is simply duplicated in this case, with no constraints. No dimensions or relations to other components or assembly geometry can be added.Hole Series A Hole Series is a special kind of Hole Wizard hole that is created at the assembly level and automatically creates in-context holes in the referenced components. While these are very useful in the design process, remember that you are creating an in-context feature that must be solved at the assembly level.

External References

In-context parts and features create many external references which are used to create and maintain relations between parts at the assembly level. To break these references and keep the part intact, you must manually go through the in-context features and change the in-context references to local references.

When they are working properly, external references are considered in-context. When they cannot work properly, they are considered out of context and cannot update properly.

Out of Context
In—context relationships are maintained through the assembly in the Update Holders 3 . For the in-context feature to work correctly, the assembly must be open for the in-context feature to update. It is able to work properly and change through propagation of changes only while the assembly is open.

Putting a Part Back into Context
To put an out-of-context part back into context, open the externally referenced document. There is an easy way to do this: right-click the out-of-context feature and click Edit In Context.

Breaking and Locking External References
The flow of changes can be stopped temporarily or permanently using the Lock/Unlock and Break options. These options essentially suppress the Update Holder so that it is not solved. This helps to speed up the assembly rebuild.

If you want to reuse the in-context part in another assembly, or use it as the starting point for a similar design or apply motion, you should remove the external references. By copying and editing the in-context part, you can create a duplicate part that is not tied to the assembly.

Once the in-context features are created, it is a good idea to lock the external references. If changes are made that affect the in-context features, the external references can be unlocked, the assembly rebuilt, and then the external references locked again.

When the List External References dialog is active, there are options available to Lock All or Break All references. These options allow you to change the relationship between the in-context part and referenced files.

Lock All
Lock All is used to lock or freeze the references until they are unlocked at a later date using Unlock All These changes are reversible after UK is clicked. Until the references are unlocked, changes will not propagate to the part. When Lock All is selected, SolidWorks displays a message:

All external references of the model “Part Name” will be locked. You will not be able to add any new external references until you unlock the existing references.

The FeatureManager design tree lists the locked references with “->*” symbols. Using Unlock All later will restore the "->" symbols.

No additional external references can be created while the part is in the locked state.

Break All
Break All is used to break all references with the controlling files. Clicking the button launches a message that indicates the change is not reversible after OK is clicked.

When Break All is selected, SolidWorks displays a message: All external references of the model “Part Name” will be broken. You will not be able to activate these references again.

The FeatureManager design tree lists the broken references with "->x" symbols. Changes will no longer propagate to the part.

Once the references are broken, they can be listed only by using the List Broken References check box in the List External References dialog.

Break All does not remove the external references. It simply breaks them, and once broken, they can never be fixed. Because Break All is irreversible, you should use Lock All in almost all situations.

Do not confuse the command List External References with File, Find References. In a part document, the command File, Find References only lists the name of externally referenced documents, if they exist. It does not provide feature, data, status, entity, or component information.

Removing External

References Options like Lock All are useful to interrupt the flow of changes to an in-context part, but the best way to stop the changes permanently is to use File, Save As with the Save As Copy option to copy the part and remove the references.Why Remove External References? When parts are built in-context they contain references. If mates are removed or in-context parts are used in other assemblies (out of context), unexpected changes could occur. Here are some reasons why you might remove external references.

  • Component Movement
    - The In-Place mate prevents movement and although i't can be removed, the features remain in-context.
  • Re-use of Data
    - Component parts can generally be used in multiple assemblies. If a part contains in-context references, they must be removed prior to out-of-context use.
  • Assembly Performance
    - Because the Update Holders are at the top level of the assembly, they must be resolved when the assembly is rebuilt. If they are not removed, they should be locked until they need to be updated.

Part Configurations

Part configurations can have an effect on the speed and performance of large assemblies. There are productivity gains to be realized using configurations and consequently having fewer files to manage, but they can increase the file size of parts and assemblies. You have to decide if the benefits of using configurations outweigh the associated file size issues for their particular application and decide what will be best for them.

Configurations allow you to control many variables within a part or an assembly in a fast and easy manner. The use of design tables takes this further still. However, when a configuration is activated, the data for that configuration is generated and stored in the file (e.g., preview, lightweight data, and body information). This is done to avoid performance problems in complex parts. There would be delays if configuration data had to be built every time a configuration is accessed. Because the data is stored the file size will grow as more configurations are activated. If the files are being opened across a network, or copied across a network to a local working folder, the large file sizes will slow performance as more data will have to be copied across the network.

When a part is used in an assembly, only the information of the configurations of the part used in the assembly is loaded into memory. For example, if a part with 200 configurations, all of which had been activated in the part, were used in the assembly, the data for that part's active configuration would be loaded into memory. If a second instance of the part were inserted into the assembly using a different configuration, the data for the second configuration would also be loaded into memory. The data for the remaining 198 configurations would not be loaded into memory.

  • If a new file is created using File, Save As, only the data for the active configuration is retained, which may reduce the file size significantly.

One way to increase assembly performance is by using simplified configurations that can be selected when opening the assembly.

Simplified Configurations

Simplified configurations are used to reduce the amount of data that must be loaded into RAM when the assembly is opened. This configuration should be created so that only the key information about the part is unsuppressed.

What information is important?

  • Mating surfaces
    All surfaces that will be needed to mate the part into the assembly. This requires some planning to make sure the correct surfaces are included.
  • Interference surfaces
    All surfaces that show the volume of the part and its boundaries. This information is needed to make sure this part does not interfere with the surrounding parts.

What information is not important?

  • Cosmetic features
    Cosmetic features such as fillets, chamfers, engraving should not be included in a simplified configuration.
  • Detail features
    Small details of the part design are not necessary for the assembly and cause additional problems with graphics performance as they require many small triangles to be formed to display the shaded surface. This is analogous to creating a mesh in FEA.

Naming Simplified Configurations

One very effective way to use simplified configurations is to have an assembly configuration that opens all components in their simplified configuration. This assembly configuration is easy to create when opening an assembly by using a Advanced option, because you can select the name of he configuration you wish to open for each component if it exists.

The important thing is that you can select only one configuration name . So you need a company standard for each engineer to create a simplified configuration with the same name. Also remember that capitalization is considered, so Simple and simple are two different configuration names.

The Simplify Tool

One difficulty in creating a simplified configuration is locating and selecting small features. The Simplify command allows the selection of features based on their size relative to the part.

From the Results list you can individually select features and then click Suppress, or select All and then Suppress to suppress an the features found in the Results list. A derived configuration will be created with those features suppressed.

Where to find it:

  • Menu: Tools, Find/Modify, Simplify
  • Tools toolbar: click Simplify


Patterns can save time when used correctly, or they can slow a model rebuild time if not. The advantage of feature patterns is that they can be used as a source for other patterns at the  assembly level (feature—driven patterns). Patterns can also be used as a source to add fasteners to assembly using Smart Fasteners. This has the advantage of faster rebuild times as pattern controls the position of the fasteners instead of mates.

Avoid patterning on top of other patterns. Instead, make a single pattern with all the features.

Move big patterns as far down the FeatureManager design tree as possible. This allows the other features to be built first and also allows the pattern to be suppressed without worrying about parent/child relationships.


Having a proper set of templates can save time in all phases of modeling. The benefits of good templates include:

  • Document properties are set
    Having the document properties set in the template allows you to move ahead to modeling without having to make adjustments to the settings.
  • Visual and physical properties are set
    Visual properties such as the model and background appearance can be set to eliminate the need to change it later. The proper and consistent material can already be added to the part before the first geometry is created.
  • Custom properties are set
    Many items can be prefilled such as company name, address, the person creating the file, and other information established to capture model properties (material, weight, etc.).

Additional Consideration for Parts

In addition to the above techniques for part construction, there are several other considerations for efficient parts.

  • Level of Detail for Manufactured Parts
    What level of detail is required for manufactured parts? Generally, there is one required level of detail and several optional levels. These levels of detail are controlled through modeling and configurations.
  • Full (Default) Configuration
    Any part that you are going to manufacture must contain all the information necessary to actually make it. All the detail may also be required if renderings of the part will be necessary for marketing purposes.
  • Simplified (Assembly) Configuration
    To get the most out of simplified configurations, the company should establish a mandatory name to be used for this configuration. The reason to have a mandatory name is so that when you open an assembly, all components that have a simplified configuration can be opened in that configuration.
  • Drawing Configuration
    In many parts, there are features that should be suppressed before creating a drawing. These are usually features such as fillets that create tangent edges.
  • SpeedPak Configuration
    SpeedPak configurations offer a huge saving in computational and memory requirements. Consider making the creation of a SpeedPak configuration the general rule for all assemblies.
  • Analysis Configuration
    If the part needs to be analyzed, the person doing the analysis will make this configuration since deciding which features to suppress involves more than simply suppressing small fillets.

Level of Detail for Purchased Components

When you use purchased components in your designs, you need models of these components to fit into your assembly. Depending on the source for the component model, there could be a wide range of detail provided. How much of this detail is necessary for you to work on your design? Generally no more than what was listed above for the simplified configuration. To speed the design at the assembly level, a lot of detail can be stripped from the model.

Level of Detail

Too much detail causes excessive rebuild times. Below are some suggestions on ways to remove detail.

  • Do not model threads.
    Model only functional threads. There are considerable regeneration times associated with modeling the helical threads. If you need a visual representation of the threads, Toolbox has an option to show threads as a texture map.
Cosmetic threads, Revolved threads, Helical threads

It takes more than five times the number of triangles to represent the surface of the bolt when you add helical threads.

If you need to see visual threads, use the Cosmetic option in Toolbox.

  • Avoid using text for features.
    Do not model text unless it is part of a casting or will be machined into the part. SolidWorks uses TrueType fonts in Windows. Text can have hundreds of entities, sometimes per letter. You can evaluate the impact of modeled text by opening a part with extruded text and using Performance Evaluation tool previously known as Feature Statistics to list rebuild the times.

Below are the rebuild times for the simple part shown at the right. Notice that it took 0.00 seconds to rebuild with the text suppressed and 0.16 seconds to rebuild with the text unsuppressed. If we compare the geometry, the part without the text has just six faces but with the text there are 530 faces.

If the text is not to be machined into the part, such as labels that will be affixed to the part, consider using decals because they do not create additional geometry.

  • Minimize unnecessary detail.

Combine fillets of equal size or function.

  • Avoid Lofts and Sweeps if you can create the geometry with an extrude or revolve feature. Lofts and sweeps take longer to generate.
  • Do not model springs unless absolutely necessary.
    Like helical threads, sweeping along a helix creates a large file due to the complexity of the surface. Instead use a cylinder that forms the bounding shape of the spring. This can be mated and used to detect interference while solving very quickly.

If you need more of a visual representation, consider adding either a decal or a thread appearance.

  • Fully define sketches. Leaving sketches under defined may be acceptable when you are still in the early part of the design process for a part. Before using that part in an assembly, you should have it fully defined to avoid rebuild errors and to avoid unintentional changes.

Remodeling Parts

Parts sometimes have inefficiencies caused by adding and deleting features, or features added to correct an earlier error while searching for the correct final form. At some point, these inefficiencies should be removed and the part recreated from scratch. It is usually difficult to make the decision to rebuild a part from scratch when you are under a tight deadline, but you need to weigh the cost in both time and money of remodeling the part against potential for problems that may be caused by the model. It certainly takes a finite amount of time to remodel the part, but usually not as long as you think because you know exactly what the final model will look like. With an inefficient model, a simple change could cause the model to fail to rebuild.

While a single inefficient part in a large assembly may not have a huge effect on rebuild time, rebuild times will be affected by many parts that are inefficient. The other consideration is whether this is a single, one-time-use part, or it will be used in this and future designs. You may consider not recreating a one-time-use part, but reusable parts should be created efficiently.

Feature Statistics / Performance Evaluation

The Performance Evaluation / Feature Statistics tool can be invaluable for locating features that are taking a long time to rebuild. You can use this tool to help determine which features should be suppressed in a simplified configuration.

Mate References

For parts that are only inserted into an assembly once, creating mates manually is a reasonable method to place the part. When parts are used many times, however, you can save significant time by establishing mate references on the reusable parts.

Fasteners and Toolbox

Toolbox can be set up to work two different ways:

  • Master parts
    In master part setup, Toolbox retains a set of master parts. When you insert a fastener into a assembly. Toolbox will create a configuration of the master part based on the size you are using. The advantage of this is that the size of those part files increases as additional configurations are created.

    In a company environment, the Toolbox part files are normally kept on a network drive, which means that the files have to be opened across the network, slowing down performance.
  • Copied parts
    In a copied part setup, new part files are created when you insert a fastener into an assembly. The advantage of this method, for large assemblies, is that these files can be stored with the assembly and have only a single configuration.

    While this method creates more files, the files can be stored locally and can be smaller because they only need to have a single configuration.

Toolbox parts can have three different thread displays. Because fasteners are purchased parts, there is no need to show the threads unless you need them for display purposes. For performance gains use Simplified thread display. If you need the threads to display for a rendering, choose Cosmetic to have a thread appearance applied to the surface.


Always resolve rebuild and import errors as they happen. it is much easier to solve a rebuild problem when it happens, because you know where in the process the problem occurred. If you continue to build a part that has errors, the errors will just compound and can take many times more effort to solve than if handled immediately.
Similarly, import errors should be fixed before editing the part further. Failure to solve the import problem immediately is like building a house on a foundation with structural problems.

Import Diagnostics

Whenever you import a model, SolidWorks will ask you if you would like to run Import Diagnostics. Running the diagnostics at this point is preferable to waiting as you can never anticipate the problems that may be caused by geometry with errors. lf you add any additional features to the imported part, Import Diagnostics will no longer be available because it only works on an unmodified imported body.

Check Entity

Another valuable tool is Check. Check can be run on the model at any time and used to locate both errors in the geometry and undesirable geometry, such as short edges, that can cause other geometry to fail.

Where to find it:

  • CommandManager: Evaluate>Check
  • Menu: Tools, Check