| AdvStatusSemanticAnnotation
			Type describing the semantic annotation status. 
			   Enumerated Values
							
								| Value | NLS Value | Comment |  
								| TPSStatusUnknown | Unresolved | The validity status of the annotation is not
									or cannot be checked. |  
								| TPSStatusTTRSKO | Invalid Tolerancing Feature | At least one of the components of the group of
									surfaces to which the 3D annotation is applied is invalid. |  
								| TPSStatusTTRSUnknown | Unresolved Tolerancing Feature | The user surface or group of surfaces pointed
									by 3D annotation have at least one of its components not loaded. |  
								| TPSStatusSemanticKO | Invalid Semantic | Related entity reports a semantic deviation
									with respect to its Standard. |  
								| TPSStatusSemanticUnknown | Unresolved Semantic | Semantic diagnosis does not run or semantic
									status cannot be properly established. |  
								| TPSStatusLeaderKO | Disconnected leader | A leader is not pointing the referenced
									geometry. | CATFTAElement
				Type describing the generic annotation element. Basic type for any entity
					involved in the definition of a tolerancing specification 
				   AttributesThis type exposes 3 attributes: 
					 
								
									| Name | Type | Comment |  
									| IsSemantic | Boolean | Returns TRUE if the annotation is a
										semantic. |  
									| GeometriesPointed | String |  |  
									| CountTextAnnotation | Integer | The count of text annotations created on
										an FTA element | ExampleThe following sample illustrates how to prompt a name of any entity handled
						with this object type:  let FTAEntity(CATFTAElement)
FTAEntity = .... // Feature to be managed as an CATFTAElement
// Display CATFTAElement name if valid
if ( FTAEntity <> NULL)
{
	Message( "Here is prompted the name of this FTA Entity: #", FTAEntity.Name )
}
 CATTPSAllAnnotations
			Type describing the specific FTA type used to retrieve annotations (Texts,
				dimensions, datum, GDTs, roughness, weld, NOA). 
			   AttributesThis type exposes 2 attributes:  
							
								| Name | NLS Name | Type | Comment |  
								| LinkToFeatName | Applied to a feature name | String |  |  
								| LinkToFeatType | Applied to a feature type | String |  | Example// Get the list of annotation within a Part feature
Let ListOfAnnotation( List )
ListOfAnnotation = SelectedPart.Query("CATTPSAllAnnotations", "")
// Parse result list to guess what are those annotations (name display)
Let FTAEntity(CATFTAElement)
Let AllAnnotationElt(CATTPSAllAnnotations)
for AllAnnotationElt inside ListOfAnnotation
{
	// Assign Annotation Elt as FTAElement to read its Name
	set FTAEntity = AllAnnotationElt
	
	// Read its attribute value
	Let LinkToFeat(String)
	LinkToFeat = AllAnnotationElt.LinkToFeatName
	Let LinkToType(String)
	LinkToType = AllAnnotationElt.LinkToFeatType
	
	// Display
	if ( FTAEntity <> NULL )
		Message(
	"Here is prompted the name of this FTA Entity: #
	    _ its attribute LintToFeatName value is  : #
	    _ its attribute LinkToFeatType value is  : #", FTAEntity.Name, LinkToFeat,LinkToType )
 CATTPSBasicDim
			Filtering type describing basic dimension annotations. 
			   Attributes
							
								| Name | Type | Comment |  
								| ReferencesADrillHole | Boolean | Returns TRUE if CATTPSBasicDim references a
									drill hole. |  
								| ReferencesADrillHoleAxis | Boolean | Returns TRUE if CATTPSBasicDim references a
									drill hole axis. |  
								| ReferencesADrillHoleAxisUsingCG | Boolean | Returns TRUE if CATTPSBasicDim references a
									drill hole axis based on constructed geometry. |  
								| IsCGLineGeometry | Boolean |  | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a basic dimension ?
	Let BasicDim( CATTPSBasicDim )
	set BasicDim = AllAnnotationElt
	if ( BasicDim <> NULL )
		Message("Annotation is a basic dimension")
 CATTPSCapture
			Type defining variables to manage FTA Capture entities. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| ListTypeOccurrence |  | List | List(List(type, occurrence), List(type,
									occurrence)…) |  
								| IsCurrent | IsCurrent | Boolean | The current status of the capture. |  
								| HasACamera | HasACamera | Boolean | Returns TRUE if a camera is associated to the
									Capture. |  
								| HasAView | HasAView | Boolean | Returns TRUE if the capture has a view
									associated. |  
								| GetAssociatedTPSView | GetAssociatedTPSView | CATTPSView | The CATTPSView associated to the capture. |  
								| CaptureCameraDirection  |  | list of 3 double | The direction of the camera associated to the
									capture. If there is no camera associated, returns list(0, 0,
									0). |  
								| CaptureCameraZenith |  | list of 3 double | The zenith direction of the camera associated
									to the Capture. If there is no camera associated, returns
									list(0, 0, 0). |  
								| CameraName | CameraName | String | The name of the camera associated to the
									capture, if there is no camera associated the attribute
									CameraName returns empty string "". |  
								| SystemUsed |  | List of string | The list of all datum name referenced by the
									DatumReferenceFrame. | Example// Get the list of captures within a Part feature
Let ListOfCapture( List )
ListOfCapture = SelectedPart.Query("CATTPSCapture", "")
// Parse result list to guess what are (if any) existing captures (name display)
Let FTAEntity(CATFTAElement)
Let CaptureElt(CATTPSCapture)
for CaptureElt inside ListOfCapture
{
	// Assign current Capture Elt as FTAElement to read its Name
	set FTAEntity = CaptureElt
	
	// Read its attribute list length
	Let CaptureSet(List)
	CaptureSet = CaptureElt.ListTypeOccurrence
	Let NumberOfElementInCapture(Integer)
	NumberOfElementInCapture = CaptureSet.Size
	
	// Display
	if ( FTAEntity <> NULL )
		Message(
	"Here is prompted the name of this FTA Entity: #
	 Capture is composed of # element(s)", FTAEntity.Name, NumberOfElementInCapture )
 CATTPSConstructedGeometry
			Type defining variables aimed at holding FTA constructed geometry. 
			   Example// Get the list of CGs (Constructed Geometries) within a Part feature
Let ListOfCG( List )
ListOfCG = SelectedPart.Query("CATTPSConstructedGeometry", "")
// Parse result list to guess what are those retrieved CGs (name display)
Let FTAEntity(CATFTAElement)
Let CurrentCG(CATTPSConstructedGeometry)
for CurrentCG inside ListOfCG
{
	// Assign current CG Elt as FTAElement to read its Name
	set FTAEntity = CurrentCG
	
	// Display
	if ( FTAEntity <> NULL )
		Message("Here is prompted the name of this FTA Entity: #", FTAEntity.Name )
 CATTPSCoordDim
			Filtering type describing coordinate dimension annotations. 
			   ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a coordinate dimension ?
	Let CoordDim( CATTPSCoordDim )
	set CoordDim = AllAnnotationElt
	if ( CoordDim <> NULL )
		Message("Annotation is a coordinate dimension")
 CATTPSFlagNote
			Filtering type dealing with flag note annotations. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| HavingAttrLink | Having Attribute links | Boolean |  |  
								| HavingDocument | Having Hyper Links | Boolean |  |  
								| LabelString | Label String | String |  | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a flag note ?
	Let FlagNote( CATTPSFlagNote )
	set FlagNote = AllAnnotationElt
	if ( FlagNote <> NULL )
        {
                // read its attributes content
                Let HasAttrLink( Boolean )
                HasAttrLink = FlagNote.HavingAttrLink
                Let HasAttrLinkValue( String )
                if ( HasAttrLink == TRUE )
                     HasAttrLinkValue = "true"
                else
                     HasAttrLinkValue = "false"
                Let IsDocAssociated( Boolean )
                IsDocAssociated = FlagNote.HavingDocument
                Let IsDocAssociatedValue( String )
                if ( IsDocAssociated == TRUE )
                     IsDocAssociatedValue = "true"
                else
                     IsDocAssociatedValue = "false"
                Let Label( String )
                Label = FlagNote.LabelString
		Message(
                "Annotation is a flag note:
                    _ attribute HavingAttrLink is set to: #
                    _ attribute HavingDocument is set to: #
                    _ label specifies equals to         : #"HasAttrLinkValue,IsDocAssociatedValue,Label)
        }
 CATTPSNoa
			Filtering type addressing NOA annotations. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| NOAType | NOAType | String | The type of the NOA | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a NOA entity ?
	Let NOA( CATTPSNoa )
	set NOA = AllAnnotationElt
	if ( NOA <> NULL )
		Message("Annotation is a NOA element")
 CATTPSNonSemantic
			Filtering type segregating FTA having no semantic meaning. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| TypeAnnotation | Type | TypeAnnotation |  | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation without semantic ?
	Let NonSemanticEntity( CATTPSNonSemantic )
	set NonSemanticEntity = AllAnnotationElt
	if ( NonSemanticEntity <> NULL )
		Message("Annotation is a non semantic element")
 CATTPSReferenceFrame
			Filtering type revealing reference frame specifications. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| LabelRefFrame | Label String | String |  | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a reference frame element ?
	Let ReferenceFrame( CATTPSReferenceFrame )
	set ReferenceFrame = AllAnnotationElt
	if ( ReferenceFrame <> NULL )
        {
                // read its single attribute content
                Let Label( String )
                Label = ReferenceFrame.LabelRefFrame
		Message("Annotation is a Reference Frame named: #",Label)
        }
 CATTPSRestrictedArea
			Filtering type allowing to specify variable to focus on restricted area
				definition. 
			   Example// Get the potential restricted areas created within a Part feature
Let RestrictedAreaList( List )
RestrictedAreaList = SelectedPart.Query("CATTPSRestrictedArea", "")
// Parse result list to guess what are those retrieved CGs (name display)
Let FTAEntity(CATFTAElement)
Let RestrictedAreaEntity(CATTPSRestrictedArea)
for RestrictedAreaEntity inside RestrictedAreaList
{
	// Assign current restricted area as FTAElement to read its Name
	set FTAEntity = RestrictedAreaEntity
	
	// Display
	if ( FTAEntity <> NULL )
		Message("Here is prompted the name of this FTA Entity: #", FTAEntity.Name )
}
 CATTPSRoughness
			Filtering type grabbing roughness elements belonging to an annotation set. 
			   ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a Roughness entity ?
	Let Roughness( CATTPSRoughness )
	set Roughness = AllAnnotationElt
	if ( Roughness <> NULL )
		Message("Annotation is a Roughness element")
 CATTPSSemantic
			Filtering type segregating FTA interesting regarding their semantic meaning
				according to the applied Standard. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| AdvStatusSemanticAnnotation | Advanced Status | AdvStatusSemanticAnnotation |  |  
								| StatusSemanticAnnotation | Status | StatusSemanticAnnotation |  |  
								| TypeSemanticAnnotation | Type | TypeSemanticAnnotation |  | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation semantic ?
	Let SemanticFTA( CATTPSSemantic )
	set SemanticFTA = AllAnnotationElt
	if ( SemanticFTA <> NULL )
	{
		// Deduce semantic status of the annotation
		Let StatusMsg( String )
		Let GlobalStatus( StatusSemanticAnnotation )
		GlobalStatus = SemanticFTA.StatusSemanticAnnotation
		if ( GlobalStatus == "TPSStatusOK" )
		{
			// Valid: everything is OK
			StatusMsg = "Valid"
		}
		else
		{
			// Try to learn more about invalidity
			Let AdvStatusSemanticStatus( AdvStatusSemanticAnnotation )
			AdvStatusSemanticStatus = SemanticFTA.AdvStatusSemanticAnnotation
			if ( AdvStatusSemanticStatus == "TPSStatusUnknown" )
				StatusMsg = "Unresolved"
			else if ( AdvStatusSemanticStatus == "TPSStatusTTRSKO" )
				StatusMsg = "Invalid Tolerancing Feature"
			else if ( AdvStatusSemanticStatus == "TPSStatusTTRSUnknown" )
				StatusMsg = "Unresolved Tolerancing Feature"
			else if ( AdvStatusSemanticStatus == "TPSStatusSemanticKO" )
				StatusMsg = "Invalid Semantic"
			else if ( AdvStatusSemanticStatus == "TPSStatusSemanticUnknown" )
				StatusMsg = "Unresolved Semantic"
			else if ( AdvStatusSemanticStatus == "TPSStatusLeaderKO" )
				StatusMsg = "Deconnected leader"
			else
				StatusMsg = "Invalidity root cause is not well understood"
		}
		
		// Assess FTA semantic type
		Let FTASemanticType( String )
		Let FTAType( TypeSemanticAnnotation )
		FTAType = SemanticFTA.TypeSemanticAnnotation
		if ( FTAType == "TPSGeometricalAnnot" )
			FTASemanticType = "Geometrical tolerance"
		else if ( FTAType == "TPSDimensionAnnot" )
			FTASemanticType = "Dimension"
		else if ( FTAType == "CATTPSReferenceFrame" )
			FTASemanticType = "Datum Reference Frame"
		else if ( FTAType == "TPSDatumAnnot" )
			FTASemanticType = "Datum feature"
		else if ( FTAType == "TPSTargetAnnot" )
			FTASemanticType = "Datum target"
		else
			FTASemanticType = "Weird type detected as semantic."
		Message(
		"Annotation is a semantic element of type #.
		Its semantic validity assesment has given the diagnosis: #",FTASemanticType,StatusMsg )
	}
 CATTPSSet
			Type representing the Annotation Set. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| ProductReferencedr | Reference Product | String |  |  
								| SwitchOn | SwitchOn | Boolean | Returns TRUE if annotation set is switch on. |  
								| StandardName | StandardName | String | The name of the standard used by the
									annotation set. | Methods The following methods are associated with this type: Example// Request any existing annotation under a Part feature
Let AnnotationSetList( List )
AnnotationSetList = SelectedPart.Query("CATTPSSet", "")
// Parse result list; it should contain only one entity.
Let FTAEntity(CATFTAElement)
Let SetEntity(CATTPSSet)
for SetEntity inside AnnotationSetList
{
	// Assign current restricted area as FTAElement to read its Name
	set FTAEntity = SetEntity
	
	// Display
	if ( FTAEntity <> NULL )
		Message("Name of the annotation set: #; it constitutes a specification of #.", FTAEntity.Name, SetEntity.ProductReference )
}
 CATTPSText
			Annotation type working with text. 
			   Inheritance PathObjectType
 Feature
  CATFTAElement
   CATTPSTextAttributes
							
								| Name | NLS Name | Type | Comment |  
								| HavingAttrLink | Having Attribute links | Boolean |  |  
								| TextString | Text String | String |  | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a Text entity ?
	Let Text( CATTPSText )
	set Text = AllAnnotationElt
	if ( Text <> NULL )
        {
                // Check if text content is issued from a pointed entity
                Let HasAttrLink( Boolean )
                HasAttrLink = Text.HavingAttrLink
                Let HasAttrLinkValue( String )
                if ( HasAttrLink == TRUE )
                     HasAttrLinkValue = ", and this value is the proxy of a pointed entity."
                else
                     HasAttrLinkValue = "."
		Message("Annotation is a Text element; its content is: ##", Text.TextString, HasAttrLinkValue)
        }
 CATTPSView
			Type managing the view. 
			   Attributes
							
								| Name | Type | Comment |  
								| IsReferencedByACapture  | Boolean | Returns TRUE if a capture references the view |  
								| ReferencedCaptureName | String | Returns the list of names of the captures
									referencing the view |  
								| ViewPlaneNormal | list of 3 doubles | The normal direction of the CATTPSView |  
								| ViewPlaneFirstDirection | list of 3 doubles | The first direction of the plane of
									CATTPSView | Example
// Get the list of Views constituting 2D layout of a Part feature
Let ListOfFTAView( List )
ListOfFTAView = SelectedPart.Query("CATTPSView", "")
// Parse result list to have an idea of views composing the layout of this Part Feature
Let FTAEntity(CATFTAElement)
Let OneView(CATTPSView)
for OneView inside ListOfFTAView
{
	// Assign current View as FTAElement to read its Name
	set FTAEntity = OneView
	
	// Display
	if ( FTAEntity <> NULL )
		Message("View: #", FTAEntity.Name )
}
 CATTPSViewText
			Specialized Annotation type representing text for View name. 
			   Inheritance PathObjectType
 Feature
  CATFTAElement
   CATTPSViewTextAttributes
							
								| Name | NLS Name | Type | Comment |  
								| HavingAttrLink | Having Attribute links | Boolean |  |  
								| TextString | Text String | String |  | 
 CATTPSWeld
			Filtering type dealing with weld annotations. 
			   ExampleCATTPSWeld
Filtering type to deal with weld annotations.
Refer to user documentation: https://help.3ds.com/2016x/English/DsDoc/FtaUserMap/fta-t-Annotations-WeldFeature.htm
Example:
Extract from the main loop given in CATTPSAllAnnotations section:
...
	// Is current annotation a Weld entity ?
	Let Weld( CATTPSWeld )
	set Weld = AllAnnotationElt
	if ( Weld <> NULL )
		Message("Annotation is a Weld.")
 DimensionType   Enumerated Values
							
								| Value | NLS Value | Comment |  
								| DrwDimDistance | Distance | Dimension between two elements |  
								| DrwDimLength | Length | Intrinsic dimension of one element |  
								| DrwDimAngle | Angle | Angular dimension between two entities |  
								| DrwDimRadius | Radius | Radius of an entity |  
								| DrwDimDiameter | Diameter | Diameter of an entity |  
								| DrwDimChamfer | Chamfer | Dimensions applied to the Part Design chamfer feature |  
								| TPSOrientedDimDistance | Oriented Distance | Oriented dimension between two elements |  
								| TPSOrientedDimAngle | Oriented Angle | Oriented agular dimension between two elements |  
								| TPSThread | Thread | Thread dimension |  
								| TPSSecondDim | Second Dimension | Second dimension | ExampleTPSDimensionAnnot
Filtering type required to manage dimension features.
Refer to user documentation: https://help.3ds.com/2016x/English/DsDoc/FtaUserMap/fta-m-Dimensions-sb.htm?ContextScope=cloud&id=bc76c723b18d458e8a2d95eb3a9906bf#Pg0
Based on a valid reference for such an object, end user can consult:
   _ Dim3DDriveableAttr,
   _ DimFakeAttr,
   _ DimTrueAttr,
   _ DimensionType (see DimensionType),
   _ DimensionValue.
Example:
Extract from the main loop given in CATTPSAllAnnotations section:
...
	// Is current annotation a dimension ?
	Let Dimension( TPSDimensionAnnot )
	set Dimension = AllAnnotationElt
	if ( Dimension <> NULL )
	{
		// Take into account its internal attributes to better qualify it
		// 3D driven?
		Let SteeredDimension( String )
		if ( Dimension.Dim3DDriveableAttr == true )
			SteeredDimension = "; that value is driven by a 3D input"
		else
			SteeredDimension = ""
		
		// Fake dimension?
		Let FakeFacet( String )
		if ( Dimension.DimFakeAttr == true )
			FakeFacet = "fake "
		else
			FakeFacet = ""
		
		// True dimension
		Let TrueDim( String )
		if ( Dimension.DimTrueAttr == true )
			TrueDim = " (true dimension)"
		else
			TrueDim = ""
		
		// Dimension type study
		Let TypeStr( String )
		Let DimType( DimensionType )
		DimType = Dimension.DimensionType
		if ( DimType == "DrwDimDistance" )
			TypeStr = "Distance"
		else if ( DimType == "DrwDimLength" )
			TypeStr = "Length"
		else if ( DimType == "DrwDimAngle" )
			TypeStr = "Angle"
		else if ( DimType == "DrwDimRadius" )
			TypeStr = "Radius"
		else if ( DimType == "DrwDimDiameter" )
			TypeStr = "Diameter"
		else if ( DimType == "DrwDimChamfer" )
			TypeStr = "Chamfer"
		else if ( DimType == "TPSOrientedDimDistance" )
			TypeStr = "Oriented Distance"
		else if ( DimType == "TPSOrientedDimAngle" )
			TypeStr = "Oriented angular dimension"
		else if ( DimType == "TPSThread" )
			TypeStr = "Thread"
		else if ( DimType == "TPSSecondDim" )
			TypeStr = "Second dimension"
		else
			TypeStr = "Unexpected"
		
		Message("Annotation is a #dimension# of type # displaying value ##.",FakeFacet, TrueDim, TypeStr, Dimension.DimensionValue, SteeredDimension)
	}
 GDTType   Enumerated Values
							
								| Value | NLS Value | Comment |  
								| DRW_GDT_NOSYMBOL | None | No symbol applied |  
								| DRW_GDT_STRAIGHTNESS | Straightness | Straightness |  
								| DRW_GDT_FLATNESS | Flatness | Flatness |  
								| DRW_GDT_CIRCULARITY | Circularity | Circularity |  
								| DRW_GDT_CYLINDRICITY | Cylindricity | Cylindricity |  
								| DRW_GDT_LINEPROFILE | Line Profile | Line Profile |  
								| DRW_GDT_SURFACEPROFILE | Surface Profile | Surface Profile |  
								| DRW_GDT_ANGULARITY | Angularity | Angularity |  
								| DRW_GDT_PERPENDICULARITY | Perpendicularity | Perpendicularity |  
								| DRW_GDT_PARALLELISM | Parallelism | Parallelism |  
								| DRW_GDT_POSITION | Position | Position |  
								| DRW_GDT_CONCENTRICITY | Concentricity | Concentricity |  
								| DRW_GDT_SYMMETRY | Symmetry | Symmetry |  
								| DRW_GDT_CIRCULARRUNOUT | Circular Runout | Circular Runout |  
								| DRW_GDT_TOTALRUNOUT | Total Runout | Total Runout | 
 StatusSemanticAnnotation   Enumerated Values
							
								| Value | NLS Value | Comment |  
								| TPSStatusOK | Valid | Semantic validation diagnosis completed and OK |  
								| TPSStatusAllKO | Invalid | Semantic status invalid; more precise
									information is possible with AdvStatusSemanticAnnotation | 
 TPSDatumAnnot
			Filtering type focusing datum definition. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| FeatureRefName | Reference name | String | Gets the datum label. | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  	// Is current annotation a datum ?
	Let Datum( TPSDatumAnnot )
	set Datum = AllAnnotationElt
	if ( Datum <> NULL )
        {
                // read its single attribute content
                Let Label( String )
                Label = Datum.FeatureRefName
		Message("Annotation is a Datum named: #",Label)
        }
 TPSDimensionAnnot
			Filtering type required for managing dimension features. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| Dim3DDriveableAttr | Driving 3D | Boolean | Indicates if the dimension is drivable or not. |  
								| DimFakeAttr | Fake | Boolean | Indicates if the dimension is fake or not. |  
								| DimFakeAttrValue | DimFakeAttrValue | String |  |  
								| DimFakeModeAttr | DimFakeModeAttr | Integer |  |  
								| DimTrueAttr | True | Boolean | Indicates if the dimension is a true dimension
									or not. |  
								| DimensionType | Type | DimensionType | Describes the dimension type. |  
								| DimensionValue | Value | LENGTH | Gets the dimension value. |  
								| ToleranceType |  | enum | the value of the tolerance type (General,
									numerical, tabulated single limit, information, thread, or
									undefined) |  
								| DualValueDescription | DualValueDescription | String |  |  
								| FetchDescription |  | String |  |  
								| PathsOfGeometriesPointed |  | List of Features |  | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  
	// Is current annotation a dimension ?
	Let Dimension( TPSDimensionAnnot )
	set Dimension = AllAnnotationElt
	if ( Dimension <> NULL )
	{
		// Take into account its internal attributes to better qualify it
		// 3D driven?
		Let SteeredDimension( String )
		if ( Dimension.Dim3DDriveableAttr == true )
			SteeredDimension = "; that value is driven by a 3D input"
		else
			SteeredDimension = ""
		
		// Fake dimension?
		Let FakeFacet( String )
		if ( Dimension.DimFakeAttr == true )
			FakeFacet = "fake "
		else
			FakeFacet = ""
		
		// True dimension
		Let TrueDim( String )
		if ( Dimension.DimTrueAttr == true )
			TrueDim = " (true dimension)"
		else
			TrueDim = ""
		
		// Dimension type study
		Let TypeStr( String )
		Let DimType( DimensionType )
		DimType = Dimension.DimensionType
		if ( DimType == "DrwDimDistance" )
			TypeStr = "Distance"
		else if ( DimType == "DrwDimLength" )
			TypeStr = "Length"
		else if ( DimType == "DrwDimAngle" )
			TypeStr = "Angle"
		else if ( DimType == "DrwDimRadius" )
			TypeStr = "Radius"
		else if ( DimType == "DrwDimDiameter" )
			TypeStr = "Diameter"
		else if ( DimType == "DrwDimChamfer" )
			TypeStr = "Chamfer"
		else
			TypeStr = "Unexpected"
		
		Message("Annotation is a #dimension# of type # displaying value ##.",FakeFacet, TrueDim, TypeStr, Dimension.DimensionValue, SteeredDimension)
	}
 TPSGeometricalAnnot
			Filtering type employed with geometrical tolerance specification (GDT). 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| GDTType | Type | GDTType | Describes the geometrical tolerance type. |  
								| GDTValue | Value | LENGTH | Gets the geometrical tolerance value. |  
								| GDTValueString | ValueString | String | Gets the geometrical tolerance string. | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a GDT ?
	Let GDT( TPSGeometricalAnnot )
	set GDT = AllAnnotationElt
	if ( GDT <> NULL )
        {
                // Decode symbol used in this specification
                Let GDTSymbol( String )
                Let GDTSymbolType( GDTType )
                GDTSymbolType = GDT.GDTType
                if ( GDTSymbolType == "DRW_GDT_NOSYMBOL" )
                     GDTSymbol = "None"
                else if ( GDTSymbolType == "DRW_GDT_STRAIGHTNESS" )
                     GDTSymbol = "Straightness"
                else if ( GDTSymbolType == "DRW_GDT_FLATNESS" )
                     GDTSymbol = "Flatness"
                else if ( GDTSymbolType == "DRW_GDT_CIRCULARITY" )
                     GDTSymbol = "Circularity"
                else if ( GDTSymbolType == "DRW_GDT_CYLINDRICITY" )
                     GDTSymbol = "Cylindricity"
                else if ( GDTSymbolType == "DRW_GDT_LINEPROFILE" )
                     GDTSymbol = "Line Profile"
                else if ( GDTSymbolType == "DRW_GDT_SURFACEPROFILE" )
                     GDTSymbol = "Surface Profile"
                else if ( GDTSymbolType == "DRW_GDT_ANGULARITY" )
                     GDTSymbol = "Angularity"
                else if ( GDTSymbolType == "DRW_GDT_PERPENDICULARITY" )
                     GDTSymbol = "Perpendicularity"
                else if ( GDTSymbolType == "DRW_GDT_PARALLELISM" )
                     GDTSymbol = "Parallelism"
                else if ( GDTSymbolType == "DRW_GDT_POSITION" )
                     GDTSymbol = "Position"
                else if ( GDTSymbolType == "DRW_GDT_CONCENTRICITY" )
                     GDTSymbol = "Concentricity"
                else if ( GDTSymbolType == "DRW_GDT_SYMMETRY" )
                     GDTSymbol = "Symmetry"
                else if ( GDTSymbolType == "DRW_GDT_CIRCULARRUNOUT" )
                     GDTSymbol = "Circular Runout"
                else if ( GDTSymbolType == "DRW_GDT_TOTALRUNOUT" )
                     GDTSymbol = "Total Runout"
                else
                     GDTSymbol = "Unknown symbol"
		Message("# represents a geometrical tolerance specification. Tolerance value is: #; symbol applied corresponds to #.",GDT.GDTValueString,GDT.GDTValue,GDTSymbol)
        }
 TPSTargetAnnot
			Filtering type for handling datum target annotations. 
			   Attributes
							
								| Name | NLS Name | Type | Comment |  
								| TargetRefName | Reference name | String | Gets the datum target label. |  
								| TargetSize | Size | LENGTH | Gets the datum target size. | ExampleExtract from the main loop given in CATTPSAllAnnotations section:  // Is current annotation a datum target ?
	Let DatumTarget( TPSTargetAnnot )
	set DatumTarget = AllAnnotationElt
	if ( DatumTarget <> NULL )
        {
                // Display datum target characteristics
		Message("Annotation is a Datum Target named: # with specified size: #.",DatumTarget.TargetRefName,DatumTarget.TargetSize)
        }
 TypeAnnotation   Enumerated Values
							
								| Value | NLS Value | Comment |  
								| TPSTextAnnot | Text | The annotation type is Text. |  
								| TPSFlagNoteAnnot | Flag note | The annotation type is Flag Note. |  
								| TPSNAOAnnot | Note Object Attribute | The annotation type is Note Object Attribute. |  
								| TPSGeometricalAnnot | Geometrical tolerance | The annotation type is Geometrical Tolerance. |  
								| TPSDimensionAnnot | Dimension | The annotation type is Dimension. |  
								| TPSDatumAnnot | Datum feature | The annotation type is Datum. |  
								| TPSTargetAnnot | Datum target | The annotation type is Datum Target. |  
								| TPSRoughnessAnnot | Roughess | The annotation type is Roughness. |  
								| TPSWeldAnnot | Weld | The annotation type is Weld. | 
 TypeSemanticAnnotation   Enumerated Values
							
								| Value | NLS Value | Comment |  
								| TPSGeometricalAnnot | Geometrical tolerance | The annotation type is Geometrical Tolerance. |  
								| TPSDimensionAnnot | Dimension | The annotation type is Dimension. |  
								| CATTPSReferenceFrame | Datum system |  |  
								| TPSDatumRefenceFrame | Datum reference frame | The annotation type is Datum Reference Frame. |  
								| TPSDatumAnnot | Datum feature | The annotation type is Datum. |  
								| TPSTargetAnnot | Datum target | The annotation type is Datum Target. |  
								| CATTPSConstructedGeometry | Constructed geometry |  | 
  CATTPSSemanticDimension  Attributes
							
								| Name | Type | Comment |  
								|  Prefix | String | The prefix used by the semantic dimension. |  
								|  Suffix | String | The suffix used by the semantic Dimension. |  |