Annotations: Annotation Features and Annotations
Overview of Annotation Features
An annotation feature is composed of one or more "annotation elements". Each annotation element is composed of references, parameters and annotations (notes, symbols, geometric tolerances, surface finishes, reference dimensions, driven dimensions, and manufacturing template annotations). The annotation feature allows annotation information to have the same benefits as geometry in Creo Parametric models, that is, parameters can be assigned to these annotation elements, and missing geometric references can cause features to fail in some situations.
Annotation elements may belong to annotation features, or may also be found in data-sharing features (features such as Copy Geometry, Publish Geometry, Merge, Cutout, and Shrinkwrap features).
Creo Object TOOLKIT C++ does not expose the feature element tree for annotation features because some elements in the tree are used for non-standard purposes. Instead, Creo Object TOOLKIT C++ provides specific methods for creating, redefining, and reading the properties of annotation features and annotation elements.
Creating Annotation Features
Methods Introduced:
  • wfcWSelection::CreateAnnotationFeature
  • The method wfcSelection::CreateAnnotationFeature creates a new annotation feature in the model as a wfcAnnotationFeature object. InvokeUI specifies a boolean flag that determines how the annotation features will be created. It can have the following values:
    •  FALSE—Indicates that the feature will be a new empty annotation feature with one general annotation element in it. Modify the new annotation element and add others using subsequent steps.
    •  TRUE—Indicates that Creo Parametricwill invoke the annotation feature creation user interface.
    Redefining Annotation Features
    Redefining an annotation feature involves creation of new annotation elements, deletion of elements that are not required and modification of the feature properties.
    Note
    The methods in this section are shortcuts to redefining the feature containing the annotation elements. Due to this, Creo Parametric must regenerate the model after making the required changes to the annotation element. The methods include a flag to optionally allow the Fix Model User Interface to appear upon a regeneration failure.
    Methods Introduced:
    The method wfcWSelection::AddAnnotationElement adds a new non-graphical annotation element to the feature as a wfcAnnotationElement object.
    The method wfcWSelection::AddElementsInAnnotationFeature adds a series of new annotation elements to the annotation feature as a wfcAnnotationElements object. Each element may be created as non-graphical or may be assigned a pre-existing annotation.
    Note
    In case of Datum Target Annotation Features (DTAFs), you can add only one set datum tag annotation element using the method wfcWSelection::AddElementsInAnnotationFeature.
    The method wfcWSelection::CopyAnnotationElement copies and adds an existing annotation element to the specified annotation feature.
    The method wfcWSelection::DeleteAnnotationElement deletes an annotation element from the feature. The method deletes the annotation element, its annotations, parameters, references, and application data from the feature.
    Note
    In case of Datum Target Annotation Features (DTAFs), the method wfcWSelection::DeleteAnnotationElement allows you to delete only a Datum Target Annotation Element (DTAE) from a DTAF. This method does not allow deletion of a set datum tag annotation element from the DTAF.
    The method wfcWSelection::DeleteElementsInAnnotationFeature deletes a series of annotation elements from the feature. The method deletes the annotation element, its annotations, parameters, references, and application data from the feature.
    Note
    In case of Datum Target Annotation Features (DTAFs), the method wfcWSelection::DeleteElementsInAnnotationFeature allows you to delete only a Datum Target Annotation Element (DTAE) from a DTAF. This method does not allow deletion of a set datum tag annotation element from the DTAF.
    Accessing Annotations
    Methods Introduced:
    The method wfcAnnotation::ShowInDrawing shows the annotation in the current combined state. The annotation will be visible until it is explicitly erased from the combined state. The method also adds the specified annotation to the current combined state, if it has not been added. If the specified annotation has been erased, then the method changes the display status of the erased annotation and makes it visible in the combined state, that is, it unerases the annotation. This method is also capable of showing an annotation in a drawing view similar to the Creo Parametric command Show and Erase. The input arguments are:
    •  DrawingView—Specifies the drawing view.
    •  CompPath—Specifies the assembly component path.
    The methods wfcAnnotation::Display and wfcAnnotation::Undisplay temporarily display and remove an annotation from the display for the specified combined state
    Similarly, the methods wfcAnnotation::DisplayInDrawing and wfcAnnotation::UndisplayInDrawing temporarily display and remove an annotation from the display for the specified drawing. Specify the drawing in the input argument DrawingModel The undisplay and display methods for combined state and drawing should be used together. To edit a shown annotation, it must be first removed temporarily from display by using the undisplay method, followed by editing the annotation. The annotation must be redisplayed using the display method, so that the updated annotation is visible to the user.
    The method wfcAnnotation::Update updates the display of an annotation, but does not actually display it. If the annotation is not currently displayed because it is hidden by layer status or inactive geometry, the text extracted from the annotation may include callout symbols, instead of the text shown to the user. The method wfcAnnotation::Update informs Creo Parametric to update the contents of the annotation in order to cross-reference these callout values. This method supports 3D model notes and detail notes.
    The method wfcAnnotation::IsInactive indicates whether the annotation can be shown or not. An annotation becomes inactive if all the weak references it points to have been lost or consumed.
    The method wfcWDrawing::EraseAnnotation removes an annotation from the display for the specified drawing. The annotation is not shown in the specified drawing.
    Note
    The annotation which was removed from the display using the method wfcWDrawing::EraseAnnotation will become visible again, only if the method wfcAnnotation::ShowInDrawing is called to explicitly display the annotation.
    The method wfcWSelection::ShowAnnotations displays the annotation of the specified type for the selected feature or component.
    The method wfcWSelection::ShowAxes displays the axes for the selected feature and component.
    The method wfcWSelection::ShowDatumTargets displays the datum targets for the selected feature and component.
    Note
    In case of methods wfcWSelection::ShowAnnotations, wfcWSelection::ShowAxes, and wfcWSelection::ShowDatumTargets, for annotations created in drawing mode and owned by a solid, which can be displayed only in the context of that drawing, specify the name of the drawing in the input argument drawing. You can specify the view in which the annotations for the selected feature and component must be displayed. If you pass the input argument DrawingView as NULL, the annotations are displayed in all the views.
    The method wfcWView2D::ShowAnnotations displays the annotation of the specified type in the drawing view by using the enumerated data type wfcAnnotationType.
    The method wfcWView2D::ShowAxes displays the axes in the drawing view.
    The method wfcWView2D::ShowDatumTargets displays the datum targets in the drawing view.
    Accessing and Modifying Annotation Elements
    The following methods provide access and modify the properties of an annotation element.
    Note
    The methods in this section are shortcuts to redefining the feature containing the annotation elements. Because of this, Creo Parametric must regenerate the model after making the indicated changes to the annotation element. The methods include a flag to optionally allow the Fix Model User Interface to appear upon a regeneration failure.
    Methods Introduced:
  • wfcAnnotation::GetAnnotationElement
  • wfcAnnotationElement::GetAnnotationType
  • wfcAnnotationElement::IsReadOnly
  • wfcAnnotationElement::HasMissingReferences
  • wfcAnnotationElement::IsIncomplete
  • wfcAnnotationElement::GetCopyFlag
  • wfcWSelection::SetCopyFlagInAnnotationElement
  • wfcAnnotationElement::IsDependent
  • wfcWSelection::SetDependencyFlag
  • wfcAnnotationElement::GetAnnotation
  • wfcAnnotationElement::GetAnnotationFeature
  • wfcAnnotationElement::IsReferenceStrong
  • wfcAnnotationElement::CollectAnnotationReferences
  • wfcAnnotationElement::CollectQuiltReferenceSurfaces
  • wfcAnnotationElement::GetAnnotationReferenceDescription
  • wfcAnnotationElement::SetAnnotationReferenceDescription
  • wfcWSelection::SetAnnotationInAnnotationElement
  • wfcWSelection::GetAutoPropagateFlagInAnnotationElement
  • wfcWSelection::SetAutoPropagateFlagInAnnotationElement
  • wfcWSelection::AddAnnotationReferenceInAnnotationElement
  • wfcWSelection::SetAnnotationReferencesInAnnotationElement
  • wfcWSelection::RemoveAnnotationReferenceInAnnotationElement
  • wfcWSelection::StrengthenAnnotationElementReference
  • wfcWSelection::WeakenAnnotationElementReference
  • wfcAnnotationReferenceCurveCollectionObject::Create
  • wfcAnnotationReferenceCurveCollectionObject::GetCurveCollection
  • wfcAnnotationReferenceCurveCollectionObject::SetCurveCollection
  • wfcAnnotationReferenceSelectionObject::Create
  • wfcAnnotationReferenceSelectionObject::GetReference
  • wfcAnnotationReferenceSelectionObject::SetReference
  • wfcAnnotationReferenceSurfaceCollectionObject::Create
  • wfcAnnotationReferenceSurfaceCollectionObject::GetSurfaceCollection
  • wfcAnnotationReferenceSurfaceCollectionObject::SetSurfaceCollection
  • The method wfcAnnotation::GetAnnotationElement retrieves the annotation element that contains the annotation as a wfcAnnotationElement object.
    The method wfcAnnotationElement::GetAnnotationType returns the type of the annotation contained in the annotation element using the enumerated data type wfcAnnotationType. The valid values are:
    •  wfcANNOTATION_NOTE—Specifies a note.
    •  wfcANNOTATION_GTOL—Specifies a geometric tolerance.
    •  wfcANNOTATION_SURFACE_FINISH—Specifies a surface finish.
    •  wfcANNOTATION_SYMBOL_INSTANCE—Specifies a symbol.
    •  wfcANNOTATION_DIMENSION—Specifies a driven dimension.
    •  wfcANNOTATION_REF_DIMENSION—Specifies a reference dimension.
    •  wfcANNOTATION_SET_DATUM_TAG—Specifies a set datum tag.
    The method wfcAnnotationElement::IsReadOnly checks if the annotation element has read only or full access.
    The method wfcAnnotationElement::HasMissingReferences checks if an annotation element has missing references. Use the input parameters of this method to investigate specific types and sources of references, or to check all references simultaneously. The input arguments are:
    •  ReferenceType—Specifies the type of reference by using the enumerated data type wfcAnnotationRefFilter. The valid values are:
      wfcANNOTATION_REF_ALL—Specifies all references.
      wfcANNOTATION_REF_WEAK—Specifies weak references.
      wfcANNOTATION_REF_STRONG—Specifies strong references.
    •  ReferenceSource—Specifies the source of the references by using the enumerated data type wfcAnnotationRefFromType. The valid values are:
      wfcANNOT_REF_FROM_ALL—Specifies all references.
      wfcANNOT_REF_FROM_ANNOTATION—Specifies references from annotations.
      wfcANNOT_REF_FROM_USER—Specifies references from users.
    •  AtLeastOneMissingRef—Specifies if the annotation element has at least one missing reference of the specified type and source.
    Use the method wfcAnnotationElement::IsIncomplete returns a true value if the annotation element is incomplete because of missing strong references.
    The method wfcAnnotationElement::GetCopyFlag retrieves the copy flag of the annotation elements. This property is not supported for elements in data sharing features. It returns true if the annotation element contains copies of its references.
    The method wfcWSelection::SetCopyFlagInAnnotationElement sets the copy flag of the annotation element. Set the input argument InvokeUI to true to allow the Fix Model User Interface to appear upon a regeneration failure. This property is not supported for annotations in data sharing features.
    The method wfcAnnotationElement::IsDependent retrieves the value of the dependency flag for the annotation element. This property is supported only for the elements in data sharing features. It returns true if the annotation element is dependent on its parent.
    The method wfcWSelection::SetDependencyFlag sets the dependency flag of the annotation element. This property is supported only for annotations in data sharing features.
    The method wfcAnnotationElement::GetAnnotation returns the annotation contained in an annotation element.
    The method wfcAnnotationElement::GetAnnotationFeature returns the feature that owns the annotation element as a pfcFeature object.
    The method wfcAnnotationElement::IsReferenceStrong identifies if a reference is weak or strong in a given annotation element.
    The method wfcAnnotationElement::CollectAnnotationReferences retrieves an array of references contained in the specified annotation element as a wfcAnnotationReferences object. The input arguments are:
    •  RefStrength—Specifies the type of reference by using the enumerated data type wfcAnnotationRefFilter.
    •  RefSource—Specifies the source of the references by using the enumerated data type wfcAnnotationRefFromType.
    The method wfcAnnotationElement::CollectQuiltReferenceSurfaces returns the surfaces which make up a quilt surface collection reference for the annotation element as a wfcAnnotationReferences object.
    Note
    All the surfaces made inactive by features occurring after the annotation element in the model regeneration are also returned.
    The method wfcAnnotationElement::GetAnnotationReferenceDescription retrieves the description property for a given annotation element reference.
    Note
    The description string is the same as that of the tooltip text for the reference name in the Annotation Feature UI.
    The method wfcAnnotationReference::GetAnnotationReferenceType retrieves the type of the annotation reference by using the enumerated data type wfcAnnotationRefType. The valid values are:
    •  wfcANNOT_REF_SINGLE—Specifies a single reference.
    •  wfcANNOT_REF_CRV_COLLECTION—Specifies the collection of curves.
    •  wfcANNOT_REF_SRF_COLLECTION—Specifies the collection of surfaces.
    The method wfcAnnotationElement::SetAnnotationReferenceDescription sets the description property for a given annotation element reference. The input arguments are:
    •  Reference—Specifies the annotation reference as a wfcAnnotationReference object.
    •  Description—Specifies the description for the annotation element reference.
    Note
    Creo Parametric must regenerate the model after making the indicated changes to the annotation element.
    Use the method wfcWSelection::SetAnnotationInAnnotationElement to modify the annotation contained in an annotation element. Pass the input argument Annotation as NULL to modify the annotation element to be a non-graphical annotation.
    Note
    The above method does not support Datum Target Annotation Elements (DTAEs).
    If you modify the annotation contained in the annotation element, the original annotation is automatically removed from the element and is owned by the model.
    The methods wfcWSelection::GetAutoPropagateFlagInAnnotationElement and wfcWSelection::SetAutoPropagateFlagInAnnotationElement get and set the autopropagate flag of the specified annotation element reference.
    The method wfcWSelection::AddAnnotationReferenceInAnnotationElement adds a strong user-defined reference to the annotation element.
    The method wfcWSelection::SetAnnotationReferencesInAnnotationElement replaces all the user-defined references in the annotation element with references that are specified in the input argument Reference.
    The method wfcWSelection::RemoveAnnotationReferenceInAnnotationElement removes the user-defined reference from the annotation element.
    The method wfcWSelection::StrengthenAnnotationElementReference converts a weak reference to a strong reference.
    The method wfcWSelection::WeakenAnnotationElementReference converts a strong reference to a weak reference.
    The method wfcAnnotationReferenceCurveCollectionObject::Create creates a curve collection object for the specified user-defined annotation references.
    The methods wfcAnnotationReferenceCurveCollectionObject::GetCurveCollection and wfcAnnotationReferenceCurveCollectionObject::SetCurveCollection retrieves and sets the curve collections for the user-defined set of annotation references using the wfcCollection object.
    The method wfcAnnotationReferenceSelectionObject::Create creates a selection object for the specified user-defined annotation references.
    The methods wfcAnnotationReferenceSelectionObject::GetReference and wfcAnnotationReferenceSelectionObject::SetReference retrieves and sets the references for the user-defined annotation references using the pfcSelection object.
    The method wfcAnnotationReferenceSurfaceCollectionObject::Create creates a surface collection object for the specified user-defined annotation references.
    The methods wfcAnnotationReferenceSurfaceCollectionObject::GetSurfaceCollection and wfcAnnotationReferenceSurfaceCollectionObject::SetSurfaceCollection retrieves and sets the surface collections for the user-defined annotation references using the wfcCollection object.
    Accessing Reference and Driven Dimensions
    Methods Introduced:
    The method wfcWSolid::CreateDimension creates a new driven dimension. Specify the geometric references and parameters required to construct the required dimension as the input parameters for this method. Once the reference dimension is created, use the method wfcAnotation::ShowInDrawing to display it. The input arguments of this method are as follows:
    •  AnnotPlane—Specifies the annotation plane for the dimensions.
    •  DimAttachs—Specifies the points on the model where you want to attach the dimension.
    Note
    The attachments structure is an array of two pfcSelection entities. It is provided to support options such as intersect where two entities must be passed as input. From Creo Parametric 3.0 onward, you can create dimensions that have intersection type of reference. The intersection type of reference is a reference that is derived from the intersection of two entities. Refer to the Creo Parametric Detailed Drawings Help for more information on intersection type of reference.
    •  Senses—Specifies more information about how the dimension attaches to each attachment point of the model, that is, to what part of the entity.
    •  OrientHint—Specifies the orientation of the dimension and has one of the following values:
      pfcORIENTATION_HINT_HORIZONTAL—Specifies a horizontal dimension.
      pfcORIENTATION_HINT_VERTICAL—Specifies a vertical dimension.
      pfcORIENTATION_HINT_SLANTED—Specifies the shortest distance between two attachment points (available only when the dimension is attached to points).
      pfcORIENTATION_HINT_ELLIPSE_RADIUS1—Specifies the start radius for a dimension on an ellipse.
      pfcORIENTATION_HINT_ELLIPSE_RADIUS2—Specifies the end radius for a dimension on an ellipse.
      pfcORIENTATION_HINT_ARC_ANGLE—Specifies the angle of the arc for a dimension of an arc.
      pfcORIENTATION_HINT_ARC_LENGTH—Specifies the length of the arc for a dimension of an arc.
      pfcORIENTATION_HINT_LINE_TO_TANGENT_CURVE_ANGLE—Specifies the value to dimension the angle between the line and the tangent at a curve point (the point on the curve must be an endpoint).
      pfcORIENTATION_HINT_RADIAL_DIFF—Specifies the linear dimension of the radial distance between two concentric arcs or circles.
    •  Location—Specifies the initial location of the dimension text.
    Automatic Propagation of Annotation Elements
    Automatic local propagation of annotation elements can be done based on some specified conditions, using a Creo Parametric TOOLKIT application.
    When an appropriate event occurs during a Creo Parametric session, the associated notification method can invoke a local propagation.
    Methods Introduced:
    The method wfcWSession::AutoPropagate causes the local and automatic propagation of annotation elements to the currently selected feature within the same model, after a supported feature has either been created or modified. The propagation behavior is dependant on the standard Creo Parametric algorithm and on the current contents of the selection buffer.
    Following are the list of supported features:
    •  Draft
      Surface
      Solid
    •  Offset
      Surface
      With Draft
      Expand
    •  Mirror Surface
    •  Copy Surface
    •  Move Surface
    The Creo Parametric TOOLKIT application can be written so as to specify the condition for the automatic propagation, based on created feature-type, subtype or any other required properties.
    The method propagates based on the current contents of the selection buffer.
    Note
    The method wfcWSession::AutoPropagate works regardless of the current value for the configuration option, auto_propagate_ae. PTC advises that the Creo Parametric TOOLKIT application respect the current value of this configuration option; otherwise, duplicate versions of the propagated annotations can result.
    Detail Tree
    Methods introduced:
    Use the method wfcWSolid::CollapseDetailTree to collapse all nodes of the detail tree in the Creo Parametric window and make its child nodes invisible.
    Use the method wfcWSolid::ExpandDetailTree to expand the detail tree in the Creo Parametricwindow.
    Use the method wfcWSolid::RefreshDetailTree to rebuild the detail tree in the Creo Parametric window that contains the model.
    The input argument for the above three methods is SolidWindow. It is the window containing the solid. By default, the detail tree in the active window is used.
    Annotation Text Styles
    Methods Introduced:
    The methods wfcAnnotation::GetTextStyle and wfcAnnotation::SetTextStyle retrieve and set the text style for the specified annotation as a pfcAnnotationTextStyle object.
    The method wfcAnnotation::GetTextStyleInDrawing retrieves the text style for the specified annotation in a drawing as a pfcAnnotationTextStyle object. The input arguments are:
    •  Drawing—Specifies a drawing only when the annotation is owned by the solid, but is displayed in the drawing.
    •  CompPath—Specifies the component path to the solid that owns the annotation as a pfcComponentPath object.
    •  View—This is reserved for future use. Pass NULL.
    The method wfcAnnotation::SetTextStyleInDrawing sets the text style for the specified annotation in a drawing.
    The method pfcAnnotationTextStyle::Create creates a data object that contains information about text style for a specified annotation.
    The methods pfcAnnotationTextStyle::GetAngle and pfcAnnotationTextStyle::SetAngle get and set the angle of the text style.
    The methods pfcAnnotationTextStyle::GetColor and pfcAnnotationTextStyle::SetColor retrieve and set the color of the text style as a pfcColorRGB object.
    The methods pfcAnnotationTextStyle::GetFont and pfcAnnotationTextStyle::SetFont get and set the font of the text.
    The methods pfcAnnotationTextStyle::GetHeight and pfcAnnotationTextStyle::SetHeight get and set the height of the text style.
    The methods pfcAnnotationTextStyle::GetWidth and pfcAnnotationTextStyle::SetWidth retrieve and set the width of the text style.
    The methods pfcAnnotationTextStyle::GetThickness and pfcAnnotationTextStyle::SetThickness get and set the thickness of the text style.
    The methods pfcAnnotationTextStyle::GetHorizontalJustification and pfcAnnotationTextStyle::SetHorizontalJustification get and set the horizontal justification of the text style using the enumerated data type pfcHorizontalJustification. The valid values are:
    •  pfcH_JUSTIFY_LEFT—Aligns the text style object to the left.
    •  pfcH_JUSTIFY_CENTER—Aligns the text style object in the center.
    •  pfcH_JUSTIFY_RIGHT—Aligns the text style object to the right.
    •  pfcH_JUSTIFY_DEFAULT—Aligns the text using the default justification. The justification selected for the first note becomes the default for all successive notes added during the current session.
    The methods pfcAnnotationTextStyle::GetVerticalJustification and pfcAnnotationTextStyle::SetVerticalJustification get and set the vertical justification of the text style using the enumerated data type pfcVerticalJustification. The valid values are:
    •  pfcV_JUSTIFY_TOP—Aligns the text style object to the top.
    •  pfcV_JUSTIFY_MIDDLE—Aligns the text style object to the middle.
    •  pfcV_JUSTIFY_BOTTOM—Aligns the text style object to the bottom.
    •  pfcV_JUSTIFY_DEFAULT—Aligns the text using the default justification. The justification selected for the first note becomes the default for all successive notes added during the current session.
    The methods pfcAnnotationTextStyle::GetSlantAngle and pfcAnnotationTextStyle::SetSlantAngle get and set the slant angle of the text style.
    The method pfcAnnotationTextStyle::IsHeightInModelUnits checks if the text height is in relation to the model units or as a fraction of the screen size. This method is applicable for flat-to-screen annotations only.
    The methods pfcAnnotationTextStyle::IsTextMirrored checks if the text style is mirrored.
    The methods pfcAnnotationTextStyle::MirrorText sets the mirroring of the text style. specifies the option to mirror the text style. Specify the input argument Mirror to true to mirror the text style.
    The methods pfcAnnotationTextStyle::IsTextUnderlined checks if the text style is underlined.
    The methods pfcAnnotationTextStyle::UnderlineTextspecifies the option to underline the text style.
    Annotation Orientation
    An annotation orientation refers to the annotation plane or the parallel plane in which the annotation lies, the viewing direction, and the text rotation. You can define the annotation orientation using a datum plane or flat surface, a named view, or as flat to screen. If the orientation is defined by a datum plane, you can set its reference to frozen or driven; where frozen indicates that the reference to the datum plane or named view has been removed.
    Methods Introduced:
    The method wfcAnnotation::Rotate rotates a given annotation by the specified angle. This moves the annotation to a new annotation plane with the appropriate rotation assigned. Other annotations on the annotation’s current plane are unaffected by this method.
    Note
    You can only rotate annotations that belong to annotation elements using the above method.
    The method wfcWSelection::CreateAnnotationPlane creates a new annotation plane from either a datum plane, a flat surface, or an existing annotation that already contains an annotation plane .
    The method wfcWSolid::CreateAnnotationPlaneFromView creates a new annotation plane from a saved model view .
    The method wfcWSolid::CreateFlatToScreenPlane returns an annotation plane representing a flat-to-screen annotation in the model
    The method wfcAnnotationPlane::GetReference returns the planar surface used as the annotation plane .
    The method wfcAnnotationPlane::GetPlaneData returns the geometry of the annotation plane in terms of the origin and orientation of the annotation plane as a wfcWPlaneData object.
    The method wfcAnnotationPlane::GetNormalVector returns the normal vector that determines the viewing direction of the annotation plane .
    The method wfcAnnotationPlane::GetViewName obtains the name of the view that was originally used to determine the orientation of the annotation plane.
    Note
    If the named view orientation has been changed after the annotation plane was created, the orientation of the plane will not match the current orientation of the view.
    Use the method wfcAnnotationPlane::GetPlaneType to obtain the annotation plane type. The valid values are defined in the enumerated data type wfcAnnotationPlaneType:
    •  wfcANNOTATION_PLANE_REFERENCE—The annotation plane is created from a datum plane or a flat surface, and can be frozen or be associative to the reference.
    •  wfcANNOTATION_PLANE_NAMED_VIEW—The annotation plane is created from a named view or a view in the drawing.
    •  wfcANNOTATION_PLANE_FLATTOSCREEN_BY_MODELPNT—The annotation plane is flat-to-screen and annotations are located by model units.
    •  wfcANNOTATION_PLANE_FLATTOSCREEN_BY_SCREENPNT—The annotation plane is flat-to-screen and annotations are located by screen points.
    •  wfcANNOTATION_PLANE_FLATTOSCREEN_LEGACY—The annotation uses a legacy flat-to-screen format located in model space.
    The methods wfcAnnotationPlane::IsFrozen and wfcAnnotationPlane::SetFrozen determine and assign, respectively, whether the annotation orientation is frozen or driven by reference to the plane geometry. These methods are applicable only for annotation planes governed by references.
    The methods wfcAnnotationPlane::IsForceToPlane and wfcAnnotationPlane::SetForceToPlane check and assign, respectively, the boolean value of the argument ForceToPlane for an annotation plane. If this argument is set to true, then the annotations that reference the annotation plane are placed on that plane. If the annotation orientation is not frozen, that is, driven by the reference plane, and if the reference plane is moved, then the annotations also move along with the plane.
    The method wfcAnnotationPlane::GetPlaneAngle returns the current rotation angle in degrees for a given annotation plane.
    The method wfcAnnotationPlane::GetPlaneOrientation returns the text orientation of all annotations on that plane.
    Accessing Baseline and Ordinate Dimensions
    The methods described in this section enable you to create 3D ordinate driven dimensions in 3D models as model annotations or as annotation elements. They also provide the ability to define a baseline annotation element, and then define model ordinate dimension annotations and ordinate dimension annotation elements that reference the baseline annotation element.
    Baseline Dimensions
    Methods Introduced:
    The method wfcWDimension::IsBaseline identifies whether a dimension is a baseline dimension.
    The method wfcWDimension::GetBaselineDimension obtains the baseline dimension in a drawing.
    The method wfcSelection::CreateAnnotationFeatBaseline creates an ordinate baseline annotation element and corresponding dimension as a wfcAnnotationElement object. The input arguments are:
    •  Reference—Specifies the reference geometry for the ordinate baseline dimension as a pfcSelection object.
    •  Plane—Specifies the annotation plane for the baseline dimension and all its related dimensions as a wfcAnnotationPlane. Refer to the section Annotation Orientation for more information on the wfcAnnotationPlane object.
    •  DirReference—Specifies the direction of the dimension witness lines.
    Ordinate Dimensions
    Methods Introduced:
    The method wfcWDimension::IsOrdinate identifies if a dimension is ordinate.
    The method wfcWDimension::GetOrdinateStandard returns the display standard for the ordinate dimensions in the drawing using the enumerated type wfcDimOrdinateStandard. The valid values for display standards are as follows:
    •  wfcDIM_ORDSTD_DEFAULT—Specifies the default style for the ordinate dimensions.
    •  wfcDIM_ORDSTD_ANSI—Specifies the American National Standard style for the ordinate dimension. It places the related ordinate dimensions without a connecting line.
    •  wfcDIM_ORDSTD_JIS—Specifies the Japanese Industrial Standard style for the ordinate dimension. It places the ordinate dimensions along a connecting line that is perpendicular to the baseline and starts with an open circle.
    •  wfcDIM_ORDSTD_ISO—Specifies the International Standard of Organization style for the ordinate dimension.
    •  wfcDIM_ORDSTD_DIN—Specifies the German Institute for Standardization style for the ordinate dimension.
    •  wfcDIM_ORDSTD_SAME_AS_3D—Specifies the ordinate dimension style for 2D drawings. Not used in 3D ordinate dimensions.
    The method wfcWDimension::SetOrdinateStandard sets the style for the specified ordinate dimension or a set of ordinate dimensions.
    Use the method wfcWDimension::SetOrdinateReferences to set the dimension attachments and dimension senses.
    The method wfcWDrawing::CreateAutoOrdinateDimensions creates ordinate dimensions automatically for the selected surfaces. The input arguments are:
    •  Surfaces—Specifies a set of parallel surfaces for which the ordinate dimensions must be created as a pfcSelections object.
    •  Baseline—Specifies a reference element used to create the baseline dimension as a pfcSelection object. The reference element can be an edge, a curve, or a datum plane.
    The method wfcWDimension::OrdinateDimensionToLinear converts an existing ordinate dimension to a linear dimension in a solid.
    The method wfcWDimension::LinearDimensionToOrdinate converts a linear dimension to an ordinate dimension.
    Note
    The dimension must be first created as an ordinate dimension and then converted to a linear dimension. This method does not work on dimensions which were first created as linear dimensions.
    Annotation Associativity
    The methods described in this section allow you to ensure associativity between shown annotations in drawings and 3D models. You can independently control the position associativity and attachment associativity of a drawing annotation.
    Note
    •  Drawing annotations can have only uni-directional associativity, that is, changes to the position and attachment of the annotation in the 3D model are reflected for the annotation in the drawing view, but not vice-versa.
    •  You cannot modify the position associativity and attachment associativity of a drawing annotation from the 3D model.
    •  You cannot make free, flat-to-screen annotations in a drawing view associative to the annotations in the 3D model.
    •  Annotation properties such as text, jogs, breaks, skew, witness line clippings, and flip arrow states are not associative.
    Methods Introduced:
    The method wfcAnnotation::IsAssociative checks if a given annotation in a drawing view is associative to the annotation in the 3D model.
    The method wfcAnnotation::GetAttachmentAssociativity retrieves the associativity of the attachment using the enumerated data type wfcAnnotationAttachmentAssociativity. The valid values are as follows:
    •  wfcANNOTATTACH_ASSOCIATIVITY_NONE—Specifies that the drawing annotation is not associative.
    •  wfcANNOTATTACH_ASSOCIATIVITY_PARTIAL—Specifies that the drawing annotation is partially associative.
    •  wfcANNOTATTACH_ASSOCIATIVITY_FULL— Specifies that the drawing annotation is fully associative.
    The method wfcAnnotation::UpdatePosition updates the position of the drawing annotation, and makes it associative to the position of the annotation in the 3D model. Pass the input argument Drawing of the method as a pfcDrawing object.
    Note
    You can update the associative position only for drawing annotations that have their placement based on model coordinates.
    The method wfcAnnotation::UpdateAttachment updates the attachment of the drawing annotation, and makes it associative to the attachment of the annotation in the 3D model. Associative attachment of an annotation refers to both – its references and its attachment point on its references.
    Note
    You can update the associative attachment only for drawing annotations that are attached to the geometry.
    Accessing Set Datum Tags
    The methods described in this section provide the ability to access and display set datum tag annotations in 3D models.
    Methods Introduced:
    The methods wfcSetDatumTag::GetAttachment and wfcSetDatumTag::SetAttachment get and set the item on which the datum tag is placed .
    Note
    To specify the datum plane or datum axis as the attachment option, pass the input argument Reference as NULL in the method wfcSetDatumTag::SetAttachment. The datum tag is attached to the datum axis at the default location.
    The methods wfcSetDatumTag::GetAnnotationPlane and wfcSetDatumTag::SetAnnotationPlane get and set the annotation plane for the specified set datum tag.
    Once the set datum tag annotation is created, use the method wfcSetDatumTag::Show to display it.
    Designating Dimensions and Symbols
    Methods Introduced:
    The method wfcWModel::DesignateSymbol designates a dimension, dimension tolerance, geometric tolerance or surface finish symbol to the specified model.
    The method wfcWModel::IsDesignatedSymbol determines if a dimension, dimension tolerance, geometric tolerance or surface finish symbol has been designated to a model.
    The method wfcWModel::UndesignateSymbol undesignates the dimension, dimension tolerance, geometric tolerance or surface finish symbol from the specified model.
    Surface Finish Annotations
    The methods described in this section provide read access to the properties of the surface finish object. They also allow you to create and modify surface finishes.
    The style of surface finishes for releases previous to Pro/ENGINEER Wildfire 2.0 was a flat-to-screen symbol attached to a single surface. From Pro/ENGINEER Wildfire 2.0 onwards, the method for construction of surface finishes has been modified. The new style of surface finish is a symbol instance that may be attached on a surface or with a leader. The following methods support both the old and new surface finish annotations, except where specified.
    Methods Introduced:
    The methods wfcSurfaceFinish::GetValue and wfcSurfaceFinish::SetValue get and set the value of a surface finish annotation.
    The method wfcSurfaceFinish::GetReferences returns the surface or surfaces referenced by the surface finish .
    The method wfcSurfaceFinish::GetSurfaceCollection obtains a surface collection which contains the references of the surface finish .
    The method wfcSurfaceFinish::SetSurfaceCollection assigns a surface collection to be the references of the surface finish. This overwrites all current surface finish references. The following types of surface collections are supported:
    •  One by one surface set
    •  Intent surface set
    •  Excluded surface set
    •  Seed and Boundary surface set
    •  Loop surface set
    •  Solid surface set
    •  Quilt surface set
    The method wfcSurfaceFinish::Modify modifies the symbol instance data for the specified surface finish. This method supports new symbol-based surface finishes only.
    The method wfcSurfaceFinish::GetSymbolInstructions returns the symbol instance data for the surface finish.
    The method wfcSurfaceFinish::Delete deletes the specified surface finish.
    Once the surface finish annotation is created, use the method wfcSurfaceFinish::Show to display it.
    The method wfcWModel::CreateSurfaceFinish creates a new symbol-based surface finish annotation. The method requires a symbol instance data structure for creation. Once the surface finish annotation is created, use the method wfcAnnotation::ShowInDrawing to display it.
    Symbol Annotations
    The methods described in this section provide support for 3D mode symbols. Creo Object TOOLKIT C++ methods for symbol instances are used in both 2D and 3D modes. Symbols for a particular mode must conform to the requirements for that mode.
    Creating, Reading and Modifying 3D Symbols
    Methods Introduced:
    The methods wfcWDetailSymbolInstItem::GetAnnotationPlane and wfcWDetailSymbolInstItem::SetAnnotationPlane retrieve and set the annotation plane for 3D symbol data . Annotation planes are required for 3D symbol instances but are not applicable for 2D symbol instances.
    Locating and Collecting 3D Symbols and Symbol Definitions
    Methods Introduced:
    The method wfcWDetailSymbolDefItem::VisitNotes visits the notes contained in a symbol definition stored in a solid model or a drawing.
    The method wfcWDetailSymbolDefItem::VisitEntities visits the entities contained in a symbol definition stored in a solid model.
    The method wfcWSolid::RetrieveSymbolDefItem allows retrieval of a symbol definition into a given solid model. The input arguments for this method are as follows:
    •  FileName— The name of the symbol definition file.
    •  Source — The location to search for the symbol definition file.
    •  FilePath— The path to the file with a symbol definition. If not given, then the symbol definition is located in the designated directory.
    •  Version— The version of the symbol definition file. Pass -1 to get the latest version.
    •  UpdateUnconditionally— Update flag.
      xtrue - Update the existing symbol definition unconditionally.
      xfalse- Do not load new definition if the same symbol exist in the drawing.
    The method wfcWSolid::ListDetailItems collects and returns a sequence of all the symbol instances used in the specified solid.
    Notes
    The methods in this section enable you to access the notes created in .Creo
    Note
    These methods are applicable to solids (parts and assemblies) only.
    Note Properties
    Methods Introduced:
    The method wfcWDetailNoteItem::GetElbowDirection retrieves the direction of elbow in a note in model coordinate system . For flat-to-screen notes, the method retrieves the elbow direction in screen coordinate system.
    The methods wfcWDetailNoteItem::GetLeaderStyle and wfcWDetailNoteItem::SetLeaderStyle retrieve and set the leader style used for the note. The valid values of the leader style are specified by the enumerated data type wfcLeaderStyle:
    •  wfcLEADER_STYLE_STANDARD—Specifies that the leader style used for the note is standard.
    •  wfcLEADER_STYLE_ISO—Specifies that the leader style used for the note is ISO.
    The method wfcWDetailNoteItem::Get3DLineEnvelope retrieves the envelope of a line for a specified note .
    The method wfcWDetailNoteItem::GetLegacyLeaderNoteLength retrieves the length of a leader line in a note.
    The method wfcWDetailNoteItem::GetLegacyLeaderNoteDirection retrieves the direction of the leader line in a note .
    Note
    Creo Parametric adds hard line breaks to the multiple lines drawing notes created in Creo Elements/Pro during retrieval. The hard line breaks display the text of the note on separate lines in the Note Properties dialog box as they actually appear in the drawing note.
    Accessing Note Placement
    The methods described in this section provide access to the properties of a 3D note.
    Methods Introduced:
    The method wfcWDetailNoteItem::GetLeaderArrowTypes retrieves the type of arrowhead used for leaders attached to the note .
    The method wfcWDetailNoteItem::GetAnnotationPlane retrieves the annotation plane assigned to the note attachment data .
    Modifying 3D Note Attachments
    The actual note created in Creo Parametric will not be modified until the note attachment is assigned to the note.
    Methods Introduced:
    The method wfcWDetailNoteItem::AddLeader adds a new leader to the end of the array of current leaders on a note. .
    Use the method wfcWDetailNoteItem::AddLeaderWithArrowType to add a new leader to the end of the array of current leaders on a note and specify the type of arrowhead that is to be used for the attached leader. The method takes as input a pfcDetailLeaderAttachment object and the type of arrowhead to be used for the leader.
    The methods pfcDetailLeaderAttachment::GetLeaderAttachment and pfcDetailLeaderAttachment::SetLeaderAttachment retrieve and set the leader attachment as a pfcAttachment object.
    The methods pfcDetailLeaderAttachment::GetType and pfcDetailLeaderAttachment::SetTyperetrieves and sets the type of attachment using the enumerated data type pfcDetailLeaderAttachmentType. It determines the precise attachment point for the note leader.
    The valid values are:
    •  pfcLEADER_ATTACH_NONE—Specifies regular leader attachment.
    •  pfcLEADER_ATTACH_NORMAL—Specifies a normal attachment.
    •  pfcLEADER_ATTACH_TANGENT—Specifies a tangent attachment.
    The method wfcWDetailNoteItem::SetLeadersWithArrowType sets a new leader to the end of the array of current leaders on a note and specifies the type of arrowhead that is to be used for the attached leader. The input arguments are:
    The method wfcWDetailNoteItem::RemoveLeader removes a leader from the note .
    The method wfcWDetailNoteItem::SetAnnotationPlane sets the annotation plane for the notes .
    The method wfcWSolid::CreateOnItemNote sets the location of an "On Item" note placement. Using this method removes any leaders currently assigned to the note attachment.
    The method wfcWSolid::CreateFreeNote sets the location of the note text. The input arguments to this method are TextLines and Attach. The note text is stored in relative model coordinates, where {0.5, 0.5, 0.5} indicates the exact center of the model's display bounding box obtained from wfcWSolid::GetDisplayOutline, and {0.0, 0.0, 0.0} and {1.0, 1.0, 1.0} represent the corners of the box.
    Text Style Properties
    Methods Introduced:
    The method pfcTextStyle::GetAngle and pfcTextStyle::SetAngle get and set the angle of rotation for the text style object. If you do not call pfcTextStyle::SetAngle when creating the text style, the rotation defaults to 0.0.
    The methods pfcTextStyle::GetFontName and pfcTextStyle::SetFontName get and set the font used to display the text style object.
    The methods pfcTextStyle::GetHeight and pfcTextStyle::SetHeight get and set the height of the text style object. The value -1.0 means that the text has the default height for text currently specified for the drawing.
    The methods pfcTextStyle::GetIsMirrored and pfcTextStyle::SetIsMirrored get and set the mirroring option specified for the text style object.
    The methods pfcTextStyle::GetSlantAngle and pfcTextStyle::SetSlantAngle get and set the slant angle of the text style object.
    The methods pfcTextStyle::GetThickness and pfcTextStyle::SetThickness get and set the line thickness of the text style object. The value -1.0 means that the text has the default thickness for text currently specified for the drawing.
    The methods pfcTextStyle::GetWidthFactor and pfcTextStyle::SetWidthFactor get and set the width factor of the text style object. The width factor is the ratio of the width of each character to the height. The value -1.0 means that the width factor has the default value for text currently specified for the drawing.
    The methods pfcTextStyle::GetIsUnderlined and pfcTextStyle::SetIsUnderlined get and set the underline option for the text style object.