CustomFeature Object Preview

Derived from: Feature Object
Defined in namespace "adsk::fusion" and the header file is <Fusion/Features/CustomFeature.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

Object that represents an existing CustomFeature feature in a design.

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().
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 feature. This works for both parametric and non-parametric features.
dissolve Dissolves the feature so that the feature information is lost and only the B-Rep geometry defined by the feature remains. This is only valid for non-parametric features.
setStartAndEndFeatures Sets the start and end features that will be grouped by the custom feature. The "features" in this case can be any object that is visible in the timeline, such as modeling features, sketches, and construction geometry. The input features and all features between them in the timeline will be grouped by the custom feature.

The current start and end features can be determined by using the CustomFeature.features property and getting the first and last feature from the returned array.

Properties

Name Description
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.
attributes Returns the collection of attributes associated with this face.
baseFeature If this feature is associated with a base feature, this property will return that base feature. If it's not associated with a base feature, this property will return null.
bodies Returns the bodies that were modified or created by this feature. This property works for both parametric and non-parametric features.

For a BaseFeature, this property has two different behaviors depending on if the BaseFeature is active for edit or not. When the base feature is active, this property returns the bodies owned by the base feature or the source bodies. When the base feature is not active, this property returns the result bodies.

When a body is added to a base feature, that body is owned by the base feature and is only seen in the UI when the base feature is active. This body is referred to as a "source body". Fusion creates a parametric copy of the body when you exit the base feature. This copy is referred to as the "result body," and it is used for subsequent modeling operations.

You can map between the source and result bodies by using their position within the bodies returned. To get a valid list of result bodies, you should roll the timeline to immediately after the base feature node in the timeline. Otherwise, subsequent operations could have done something to cause one or more bodies to no longer be available.
customNamedValues Returns the set of custom named values associated with this custom feature. These are a set of named values that are saved with this feature that you can use to save any additional information that is useful for you in managing the custom feature. For example, you might have a setting like an option for different shapes that the user chooses when creating the feature that are not represented as a parameter. You can use this to save the chosen value so when the feature is computed or edited you can use the value originally chosen. During an edit, you might allow the user to edit this setting and you can update the saved custom value.
definition Gets the CustomFeatureDefinition object associated with this custom feature. null/None is returned in the case where the definition does not exist, which is typically a result of the owning add-in not being loaded.
dependencies Returns the collection of dependencies for this custom feature. You can use the collection to query, add, and remove dependencies.
entityToken Returns a token for the Feature object. This can be saved and used at a later time with the Design.findEntityByToken method to get back the same feature.

When using entity tokens it's important to understand that the token string returned for a specific entity can be different over time. However, even if you have two different token strings that were obtained from the same entity, when you use findEntityByToken they will both return the same entity. Because of that you should never compare entity tokens as way to determine what the token represents. Instead, you need to use the findEntityByToken method to get the two entities identified by the tokens and then compare them.
errorOrWarningMessage Returns the error or warning message in the case where the healthState property returns either WarningFeatureHealthState or ErrorFeatureHealthState. Otherwise this property returns an empty string.
faces Returns the faces that were created by this feature. This works for both parametric and non-parametric features.
features Returns the features combined by this custom feature. The start and end features and all of the features between them in the timeline are returned.
healthState Returns the current health state of the feature.
isParametric Indicates if this feature is parametric or not.
isSuppressed Gets and sets if this feature is suppressed. This is only valid for parametric features.
isValid Indicates if this object is still valid, i.e. hasn't been deleted or some other action done to invalidate the reference.
linkedFeatures Returns the set of features that are linked to this feature. The set of linked features are all of the features that were created in various components as the result of a single feature being created in the user interface.
name Returns the name of the feature as seen in the browser (non-parametric) or in the timeline (parametric).
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():
parameters Returns the list of parameters associated with this custom feature.
parentComponent Returns the parent component that owns this feature.
timelineObject Returns the timeline object associated with this feature.

Accessed From

CustomFeature.createForAssemblyContext, CustomFeature.nativeObject, CustomFeatureDependency.parentCustomFeature, CustomFeatureEventArgs.customFeature, CustomFeatureParameter.parentCustomFeature, CustomFeatures.add, CustomFeatures.item, CustomFeatures.itemByName

Version

Introduced in version January 2021