Notes about specific CAD systems and PMI
Details about implementing PMI attributes within various CAD systems is far beyond the scope of this aPriori documentation. aPriori encourages you to get expert guidance regarding best practices for creating semantic (machine-readable) PMI from your CAD vendor, particularly since CAD vendors are also making enhancements in this area of functionality. However, we have found some hints they may help you get started in identifying and creating PMI attributes in your CAD system that can be imported into aPriori.
CATIA
The following notes may help you to create PMI annotations in CATIA that can be imported into aPriori.
1 Creating Semantic PMI in CATIA generally requires the separately-licensed Functional Tolerancing and Annotation (FTA) module. Once this is installed, you can turn on tolerance toolbar options by clicking Start > Mechanical Design > Functional Tolerancing & Annotation. (Do not click the similarly-named “Product Functional Tolerancing & Annotation” option higher on the same menu. This option will make your part disappear.)
2 To enter semantic PMI in CATIA, select a surface and then click either Insert > Annotations > Tolerancing Advisor, or click the Tolerancing Advisor icon in the toolbar.
Note: If you use a different path or command to enter tolerance annotations (for example, Insert > Annotations > Tolerancing > Geometric Tolerance), you will generally be creating non-semantic PMI and the dialog titles will not say “Semantic”. The annotations you are create will typically not get imported into aPriori. However, see the next section for an exception.
The Semantic Tolerancing Advisor dialog allows you to create various types of GD&T annotations that are appropriate for the selected surface/entity. Some types of callouts need you to indicate a datum reference. Once you do so, more types will be available for selection. In the following example, a planar surface is selected, and datum reference A is selected in the Advisor. As a result, the possible valid callouts are Perpendicularity, Profile of Line, and Profile of Surface. Parallelism is not presented, because CATIA knows that datum A (the bottom surface of the part) is not parallel to the selected surface.
3 As mentioned above, there are some exceptions to the rules that only semantic PMI can be imported to aPriori from CATIA, or that using the procedures above will ONLY create one type or the other:
Roughness – Roughness annotations in CATIA are non-semantic but aPriori is able to parse these annotations if they match certain patterns and in many cases is able to import them.
Flatness and Cylindricity – Some CATIA GD&T callouts defined using the “non-semantic" menu path (Insert > Annotations > Tolerancing > Geometric Tolerance) actually produce semantic PMI that can be imported by aPriori. These appear to be “single surface” types that do not require multiple surfaces or datum references.
4 Best practices for entering roughness values: -- Ra roughness values should be entered in the upper-left field; Rz values should be entered in the lower right field. If roughness numbers are entered in these fields, you do not need to use the “Ra” and “Rz” prefixes.
See How aPriori imports roughness (Ra and Rz) values above for more information.
 
NX
1 To turn on PMI in NX, go to the Application tab and click PMI:
2 Once PMI is enabled, you can access PMI capabilities from the PMI tab and from the PMI menu item on the main drop-down menu:
3 To specify and apply geometric tolerances to model features, click either the Feature Control Frame icon in the tool bar, or Menu > PMI > Feature Control Frame, then fill in the fields on the Feature Control Frame dialog.
It is important to use the Associated Objects control to select the correct geometry reference (typically a surface or a hole) and associate it with the annotation you are creating. Note that aPriori does not read PMI associated on edges.
4 To specify and apply roughness requirements to model surfaces, click either the Surface Finish icon in the tool bar, or Menu > PMI > Surface Finish, then fill in the fields on the Surface Finish dialog. Enter use the Roughness (a) field. If the value that you want is not provided by the drop-down menu, type in the value such as “Ra 1.5” or “Rz 10”.
As mentioned with above for GD&T PMI, you must use the Associated Objects control to select the correct geometry reference and associate it with the roughness annotation you are creating.
Creo
Deprecated functionality (Creo direct integration only): Prior to Release 2016 R2, aPriori extracted linear size/position tolerances, but assigned them to more faces than intended. (For example, the tolerance on the dimension callout between two opposing sides of a rectangular block would be imported into aPriori but applied to all faces of the block). In Release 2016 R2, aPriori no longer extracts linear size/position tolerances, but now extracts Diameter tolerance, Surface Roughness, cosmetic threads, and GD&T callouts
Displaying existing annotations -- By default Creo turns off the display of most annotations to simplify the display. If you are opening a part that contains PMI (such as the NIST PMI test models available from http://www.nist.gov) you may need to turn on the display of these annotations. Using a NIST test part as an example:
Go to the View tab, then click Manage Views > Display Combined Views. At the bottom of the screen, click Mbd_A.
Creating tolerance annotations in Creo -- Creating PMI annotations in Creo requires that you select surfaces and locations in a very specific order. The initial steps are fairly intuitive, but the final steps can be less than obvious, and you can end up with one or two dialog boxes open with no clear direction as to how to complete the operation. The following steps walk you through an annotation procedure. Note that this is not necessarily the best or only way to add a geometric tolerance to a Creo model. It is intended only as a sample path to help users exploring this functionality for the first time. Please refer to official Creo technical support, training, and documentation resources for recommended procedures and best practices.
1 Click the Annotate tab (1), then click Annotation Feature (2). In the Annotation Feature window, click the “Geometric Tolerance” icon (3), and in the Geometric Tolerance window, click the type of annotation you wish to create – in this example, “Circularity” (4).
2 In the Geometric Tolerance dialog box, click Select entity (1), then click the surface to be associated with the tolerance (2). Then click Place gtol (3) and again click the associated surface (4).
3 Select the dimension that was just added to the surface, and then click Ok in both the Geometric Tolerance dialog box and the Annotation Feature dialog box.
4 When you finish creation of the annotation, you may need to explicitly turn on its display. If so, click Show Annotations (1), then click the Geometric Tolerances tab in the Show Annotations dialog (2), click the annotation you wish to display (3), and select its checkbox (4). Click Ok when done.
SolidWorks
aPriori supports importing PMI from SolidWorks as of Release 2018 R1.
Note: aPriori does not support the import of roughness or virtual thread/tap PMI from SolidWorks.
The following information is based on SolidWorks 2016 and 2017.
The primary way to create PMI items in SolidWorks is to use the DimXpert tool, which enables you to create dimensions in 3D space on the 3D model (similar to creating 2D dimensions on a 2D drawing). Note that DimXpert does not allow you to create different views with only certain dimension shown. That is done with SolidWorks MBD. The dimensions and annotations that DimXpert creates are not driving dimensions, but driven dimensions. They are not created when the features are created.
5 Open the model you want to dimension in SolidWorks.
6 Either click the DimXpert tab or click the Tools > DimXpert menu item.
7 Use the options on the toolbar or on the menu to create PMI. However, note that not all of these options create semantic PMI. The following table indentifies which options create semantic PMI.
 
Item Type
Sematic?
Dimensions
Yes
Datums
Yes
Geometric Tolerances
Yes
Datum Targets
No
Notes (including thread Callouts)
No
Surface Finish Symbols
No
Balloons
No
Weld Symbols
No