PMIHoleThreadNote Object Preview

Derived from: PMICreatedAnnotation Object
Defined in namespace "adsk::fusion" and the header file is <Fusion/PMI/PMIHoleThreadNote.h>

PreviewThis functionality is provided as a preview of intended future API capabilities. You are encouraged to use it and report any problems or suggestions using the Fusion API and Scripts forum.

Because this is a preview of future functionality, there is the possibility that it will change, which will possibly break any existing programs that use this functionality. Because of that, you should never deliver any programs that use any preview capabilities. For a distributed program, you should wait until it has moved from preview to released state.

Description

Defines a created PMI which includes data corresponding to Hole/Thread Note PMI. Provides access to information such as tolerances, thread information, and units.

Methods

Name Description
classType Static function that all classes support that returns the type of the class as a string. The returned string matches the string returned by the objectType property. For example if you have a reference to an object and you want to check if it's a SketchLine you can use myObject.objectType == fusion.SketchLine.classType().
convertImportedToFusionPMI Converts this PMIAnnotation to a Fusion PMIAnnotation if it is of supported type and has valid reference geometry.

Supported types are:

Imported PMI annotation (PMIImportedDimension) and valid reference geometry is converted to Hole/Thread Note PMI.

Imported PMI annotation (PMIImportedNote) and valid reference geometry is converted to Leader Line Note PMI.

Imported PMI folder (PMIImportedFolder) which includes information about a Hole Note is converted to Hole/Thread Note PMI.

The converted PMIAnnotation can then be edited.

After successful conversion, the new PMIAnnotation will be added to the collection of PMI in the component, and the original PMIAnnotation will be removed. If it fails to convert, the original PMIAnnotation remains unchanged.
createForAssemblyContext Creates or returns a proxy for the native object - i.e. a new object that represents this object but adds the assembly context defined by the input occurrence.
deleteMe Deletes the PMI.
markUpToDate Marks the PMI as up-to-date and dismisses warnings.

Properties

Name Description
annotationTargetPoint Gets the point on the annotation plane where the leader line meets the annotated geometry.
annotationTextPoint Gets and sets the point on the annotation plane where the PMI text is anchored.
assemblyContext Returns the assembly occurrence (i.e. the occurrence) of this object in an assembly. This is only valid in the case where this is acting as a proxy in an assembly. Returns null in the case where the object is not in the context of an assembly but is already the native object.
counterboreDepth Gets and sets the PMIGeometricValue used to define the depth of the counterbore segment of the hole in cm. Not applicable for bosses.

When querying, if the counterbore depth is not set, the value will be 0 and hasValue property will be false.

When setting, it is possible to also add tolerances to the object set by setting the tolerance property of the PMIGeometricValue object.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
counterboreDiameter Gets and sets the PMIGeometricValue used to define the diameter of the counterbore segment of the hole in cm. Not applicable for bosses.

When querying, if the counterbore diameter is not set, the value will be 0 and hasValue property will be false.

When setting, it is possible to also add tolerances to the object set by setting the tolerance property of the PMIGeometricValue object.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
counterboreRadius Gets and sets the PMIGeometricValue used to define the radius of the counterbore segment of the hole in cm. Not applicable for bosses.

When querying, if the counterbore radius is not set, the value will be 0 and hasValue property will be false.

When setting, it is possible to also add tolerances to the object set by setting the tolerance property of the PMIGeometricValue object.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
countersinkAngle Gets and sets the PMIGeometricValue used to define the angle of the countersink segment of the hole in radians. Not applicable for bosses.

When querying, if the countersink angle is not set, the value will be 0 and hasValue property will be false. When setting, this value does not have tolerances, and will not be taken into account.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
countersinkDiameter Gets and sets the PMIGeometricValue used to define the diameter of the countersink segment of the hole in cm. Not applicable for bosses.

When querying, if the countersink diameter is not set, the value will be 0 and hasValue property will be false. When setting, it is possible to also add tolerances to the object set by setting the tolerance property of the PMIGeometricValue object.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
depth Gets and sets the PMIGeometricValue used to define the depth of the hole in cm. In the case of bosses, it represents the height of the boss.

When querying, if the depth is not set, the value will be 0 and hasValue property will be false.

When setting, it is possible to also add tolerances to the object set by setting the tolerance property of the PMIGeometricValue object.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
diameter Gets and sets the PMIGeometricValue used to define the diameter of the annotated hole or boss in cm.

When querying, if the diameter is not set, the value will be 0 and hasValue property will be false.

When setting, it is possible to also add tolerances to the object set by setting the tolerance property of the PMIGeometricValue object.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
errorOrWarningMessage If there are errors or warnings in the PMI, this property will return a string that contains the error or warning message. Otherwise it returns an empty string. Only applies to PMI that has an associated parametric Feature.

Returns empty string for other PMI types that don't have a parametric Feature.
hasImportedGeometry Gets whether the created PMI was converted from an imported PMI and therefore whether it has original graphics/geometry that can be shown.
hasSecondaryDisplaySettings Gets and sets whether there are secondary display settings defined for the Hole/Thread Note PMI.
healthState Gets the health state of the PMI. Only applies to PMI that have a timeline object, in Parametric Modelling.

Returns UnknownFeatureHealthState for other PMI types that don't have a parametric Feature.
holeType Gets the type of the hole.
horizontalAlignment Gets and sets the horizontal alignment of the PMI text relative to its anchor point.

This determines how the text box is positioned relative to the text placement point.
isDeletable Indicates if this PMI can be deleted.
isFlipHoleNormal Gets and sets whether the hole normal should be treated as flipped, resulting in the hole top to be placed at the lowest found face of the hole.

This is applicable only to complex holes, in other cases the value is ignored.
isHoleAnnotation Indicates whether the PMI is representing a hole or a boss.
isLightBulbOn Indicates if the light bulb (as displayed in the browser) is on.

A PMI will only be visible if its light bulb, the containing folder's light bulb, the collection's and the component's light bulbs are all on.
isOutOfDate Indicates if this PMI is outdated and needs to be recomputed. This typically happens when the geometry or parameters that the PMI references have been modified. Applicable for both imported and created PMI, regardless of whether they are parametric or not.
isParametric Indicates if this PMI is parametric or not.
isPerpendicularLine Gets and sets whether the PMI text is perpendicular to the leader line or parallel to it.
isShowImportedGeometry Gets and sets whether the original graphics/geometry of the PMI should be visible. Only supported for PMI that has been converted from imported data.
isSuppressed Indicates if this PMI is suppressed. Only applies to PMI that has an associated parametric Feature.

Returns false for other PMI types that don't have a parametric Feature.
isThreaded Gets and sets whether the hole or the boss has a thread associated.

Setting this to false will result in all thread information being removed.

Updating this value will reset the segments in the PMI.
isThreadedThrough Gets and sets whether the hole or boss is threaded all the way through.

Setting this to true will remove the thread depth information.

Updating this value will reset the segments in the PMI.
isThrough Gets and sets whether the hole should be considered a through hole.

Setting this to true will remove the depth information related to the PMI.

Setting this to false will result in a default depth set without tolerance.

Updating this value will reset the segments in the PMI.
isValid Indicates if this object is still valid, i.e. hasn't been deleted or some other action done to invalidate the reference.
isVisible Indicates if the PMI is visible. This property is affected by the AssemblyContext (parent component) of the PMI.
isWantQuantityNote Indicates if the quantity is visible in the graphics.

Updating this value will reset the segments in the PMI.
isWantSelectAllMatchingHoles Gets and sets whether the Hole/Thread Note PMI should represent all the matching holes in the design.

While this can be set to true on existing PMI, it does not always ensures that all matching holes are included.

Updating this value will result in the referenced entities being updated to include all matching holes.
leaderLineExtension Gets and sets the length of the leader line extension.

This value extends the leader line in the direction determined by the perpendicular setting.
name Gets and sets the name of the PMI as it is shown in the browser.
nativeObject The NativeObject is the object outside the context of an assembly and in the context of its parent component. Returns null in the case where this object is not in the context of an assembly but is already the native object.
objectType This property is supported by all objects in the API and returns a string that contains the full name (namespace::objecttype) describing the type of the object.

It's often useful to use this in combination with the classType method to see if an object is a certain type. For example: if obj.objectType == adsk.core.Point3D.classType():
parentComponent Gets the component this PMI belongs to.
plainText This is a convenience property that provides the plain-text representation of the PMI text. It iterates through the segments and concatenates their text representation.
plane Gets the plane of the PMI.
primaryDisplaySettings Gets and sets the primary display settings for the Hole/Thread Note PMI.

This will always be existent, and includes information about format and units.
quantity Gets the number of holes/bosses the Hole/Thread Note PMI is associated with.
radius Gets and sets the PMIGeometricValue used to define the radius of the hole in cm. Not applicable for bosses.

When querying, if the radius is not set, the value will be 0 and hasValue property will be false.

When setting, it is possible to also add tolerances to the object set by setting the tolerance property of the PMIGeometricValue object.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
referencedEntities Returns an array of referenced entities for this PMI.
secondaryDisplaySettings Gets and sets the secondary display settings for the Hole/Thread Note PMI.

This will not always be existent, based on the hasSecondaryDisplaySettings value.

Setting this value will also set hasSecondaryDisplaySettings to true.
segments Gets and sets the list of PMISegments used to define the PMI text.

The segments can be any combination of PMITextSegment, PMISymbolSegment and PMILineBreakSegment objects.

Changing this property will result in changing the displayed text of the PMI.
shaftTolerance Gets and sets the PMIGeometricValueTolerance for the shaft diameter of the annotated hole if a shaft tolerance exists.
threadDepth Gets and sets the PMIGeometricValue used to define the thread depth of the hole in cm. In the case of bosses, it represents the thread length of the boss.

When querying, if the thread depth is not set, the value will be 0 and hasValue property will be false.

When setting, it is possible to also add tolerances to the object set by setting the tolerance property of the PMIGeometricValue object.

Setting this to an object with "hasValue" set to true and "value" set to 0 will result in the modeled value being set (if such value exists in the model).

Updating this value will reset the segments in the PMI.
threadInfo Gets and sets the ThreadInfo object associated with the hole/thread note.

Returns null if the hole is not threaded.

Updating this value will reset the segments in the PMI.
timelineObject Gets the timeline object associated with this PMI. Only applies to PMI that has an associated timeline feature.

Returns null if the PMI does not have an associated timeline feature.
type Gets the type of this PMI annotation.
verticalAlignment Gets and sets the vertical alignment of the PMI text relative to its anchor point.

This determines the vertical positioning of the text box relative to the calculated text placement point.

Accessed From

PMIHoleThreadNote.createForAssemblyContext, PMIHoleThreadNote.nativeObject, PMIHoleThreadNotes.add, PMIHoleThreadNotes.item, PMIHoleThreadNotes.itemByName, PMIHoleThreadNotes.itemsByEntities

Version

Introduced in version April 2026