Check Your Grammar: Verification for GD&T and MBD

Geometric dimensioning and tolerancing (GD&T) is a widely-adopted engineering language. Just like any language, however, it takes time and effort to learn and use properly.

For example, let’s look at a manufacturer who practically lives by the ASME Y14.5-2009 GD&T standard. At this company, every new engineer must go through one week of Y14.5 training and then apply GD&T to all designs. However, with that level of commitment, the team members, including seasoned engineers, still make mistakes frequently due to lack of knowledge, oversights or fatigue—similar to those typos in an email that we’ve all made.

Fortunately, Microsoft Office provides a spelling and grammar check to flag typos for us. Wouldn’t it be nice if an engineering design tool could help flag GD&T mistakes too? After all, just like other languages, GD&T is structured and has a well-defined set of rules and best practices.

Well, this is where a real-time grammar verification such as the one in SOLIDWORKS MBD can assist.

To start, note that this checking function only gives warnings. It doesn’t stop a workflow, force us to correct an error or automatically fix the error. We still have the flexibility to ignore it after a careful review. Therefore, engineers still need to take the control and responsibility.

Figures 1 and 3 show where a flag can be raised:

  1. In the graphics area, a feature control frame in error is turned in yellow.
  2. On the DimXpert tree, the top node of this entire PMI scheme is prefixed with a warning sign and presented in red.
  3. The questionable feature node is prefixed with a warning sign.
  4. The questionable GD&T node is prefixed with a warning sign and presented in red.
  5. A warning message explaining the root cause is displayed in a pop-up bubble when the mouse cursor is over the GD&T node.
  6. The same warning message is displayed at the bottom of a GD&T definition dialog in Figure 3.

Figure 1. A GD&T error is flagged in both the graphic area and the tree nodes.

Now, you may wonder: What’s wrong with this position tolerance? The warning message says, “No size tolerances defined for feature Boss5.” Aha! Because this position tolerance contains a maximum material condition (MMC) modifier  image006 (M in a circle) to the diameter tolerance zone Φ.020in, it needs to know the boss feature’s overall size tolerances to calculate its MMC.

We can fix it easily either by adding the boss size tolerances as shown in Figure 2 or removing this MMC modifier. The former approach could save cost because it only requires the Φ.020in position tolerance at the MMC, which is Φ.810in, or the biggest boss. At the least material condition, Φ.790in, or the smallest boss, the position tolerance could be as loose as Φ.040in or Φ.010in + Φ.010in + Φ.020in. Therefore, if it meets the functional requirements, Figure 2 would be a more cost-effective recommendation.

Figure 2. The added size tolerances for the boss feature corrected the feature control frame.

Following the same logic to loosen the tolerance requirements and cut cost, I applied the MMC at the datum features A and C in this feature control frame in Figure 2. The warning is now gone.

Can we apply the MMC to the datum feature B? Let’s give it a try. Figure 3 shows the warning, “A material condition modifier applied to a feature that cannot have size tolerances.” Why? Because the datum feature B is a plane, not a feature of size. It can’t have size tolerances or the MMC at all, so the MMC doesn’t apply here and SOLIDWORKS MBD catches this error.

Figure 3. A warning against an incorrect MMC modifier to a datum plane.

As we construct a feature control frame on the Geometric Tolerance dialog in Figure 3, let’s pay attention to the warning messages at the bottom of this dialog as it guides us towards a more robust GD&T creation.

The above are just several quick illustrations of the grammar verifications against the MMC modifier. Now let’s go through the key compartments in a feature control frame to review more examples.


There are 14 GD&T symbols, and they are used for specific feature control types. For example, if we change the position tolerance symbol in Figure 2 to a flatness symbol, the grammar verification will give us a warning as shown in Figure 4, “Boss5 is an invalid feature type for flatness,” because, obviously, it doesn’t make sense to define how flat a cylinder is.

Figure 4. An invalid flatness symbol applied to a cylinder.

The similar checking is conducted against other symbols. For instance, defining a circularity control symbol to the datum feature B (a flat plane) would be flagged.


The next compartment is for tolerances. As we move along, we need to keep in mind not only the validity of an individual compartment, but also its relationships with other compartments. That is, whether this compartment definition makes sense in the context of the entire feature control frame.

Here the grammar checking verifies whether a tolerance number or a tolerance zone is valid. For example, the tolerance needs to be a numeric value in the first place. There are several exceptions of letters such as the CZ in the ISO 1101:2012 standards, but for most cases, tolerances are numbers. Furthermore, the tolerance zone needs to be applicable to the corresponding feature control type. Figure 5 shows an invalid zone type specified for a cylindricity tolerance control. We can fix that by removing the diameter modifier Φ from this compartment. As a comparison, if we choose a concentricity control type, then the diameter tolerance zone modifier Φ will be needed in this tolerance compartment. Otherwise, the grammar check will throw out an error.

Figure 5. An invalid tolerance zone type specified for a cylindricity tolerance.

Datum features

Datum features are the foundation of GD&T, so there are very extensive checks in MBD against them. First of all, the datum feature needs to be called out before being referenced in a feature control frame. Otherwise, the GD&T dialog will remind us, “Datum X has not been defined.” Of course, we can still proceed here and define the datum feature X later to fix the reference.

In addition, the control type symbol is checked against a datum feature. In Figure 6, although a runout tolerance is valid on this cylinder, it’s invalid in the context of the datum feature A because a feature for a runout tolerance needs to be coaxial with the datum axis.

Figure 6. An invalid datum feature framework specified for a runout tolerance.

Besides the manual GD&T definition, the datum features are also checked in the auto dimension scheme as shown in Figure 7. The secondary datum feature shouldn’t be collinear with the primary datum feature. Otherwise, they would generate the same theoretical datum, the hole axis, which would be a duplicate.

Figure 7. An invalid secondary datum feature collinear with the primary one.

There are hundreds of rules built into SOLIDWORKS MBD. We can only show very few examples in this article. Please feel free to check out the product and discuss the grammar verifications in detail in the comment area below. To learn more about how the software can help you with your MBD implementations, please watch this video below and visit its product page.

About the Author

Oboe Wu is a SOLIDWORKS MBD product manager with 20 years of experience in engineering and software. He is an advocate of model-based enterprise (MBE) and smart manufacturing.  

Recent Articles

Related Stories

Enews Subscribe