Appearance Object

Derived from: Base Object
Defined in namespace "adsk::core" and the header file is <Core/Materials/Appearance.h>

Description

An appearance.

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().

copyTo

**RETIRED** This method has been retired and replaced by the addByCopyMethod on the Appearances object.

Copies this appearance to the specified target.

deleteMe

Deletes the Appearance from the Design. This method is only valid for appearances that are in a Design and are unused.

Properties

Name Description
appearanceProperties returns the collection of Properties that define this appearance
color Gets and sets the appearance's primary color as RGBA. This maps to the color property of the appearance's surface type, which is opaque_albedo for opaque appearances, metal_f0 for metallic, and transparent_color for transparent. Setting an alpha of less than 255 enables translucency on opaque appearances. Use appearanceProperties for properties that aren't exposed here, such as emission, index of refraction, and anisotropy. The color can only be set for appearances in a Design or the favorites list.
colorTexture Gets and sets the path of a base-color image used as a texture for the appearance's primary color slot. Setting a path connects a new texture and setting an empty string disconnects the existing texture. Getting this property returns the filename of the connected texture or an empty string if there isn't one connected.

The first of colorTexture, normalTexture, and roughnessTexture that is set defines the UV scale, and the others copy that scale when they're connected so that all three maps tile at the same rate. To use a specific scale instead, set texture_RealWorldScaleX and texture_RealWorldScaleY on each texture using appearanceProperties after connecting it. Other texture settings, such as the wrap modes, are set the same way by accessing the texture using appearanceProperties.itemById('opaque_albedo').value, where the ID is metal_f0 or transparent_color for metallic and transparent appearances.

The image is saved within the document so the appearance still renders correctly when the document is opened on another machine. The path returned by the getter is a path on the local file system and will typically differ from the path that was set once the document has been saved and reopened, so it shouldn't be used as an identifier.

This property can only be set for appearances in a Design or the favorites list, and setting it fails if the appearance doesn't have a primary color slot. Appearances created using Appearances.add always support this property.
hasTexture Property that indicates if this appearance has a texture associated with it.
id The unique internal ID of this Appearance.
isUsed Returns true if this Appearance is used in the Design.
isValid Indicates if this object is still valid, i.e. hasn't been deleted or some other action done to invalidate the reference.
name Returns the name of this Appearance. This is the localized name shown in the UI.
normalTexture Gets and sets the path of a tangent-space normal map used as a texture for the appearance's surface_normal slot. Setting a path connects a new texture and setting an empty string disconnects the existing texture. Getting this property returns the filename of the connected texture or an empty string if there isn't one connected.

The image is interpreted as an OpenGL convention tangent-space normal map, which is the "normal_gl" variant from typical PBR sources. To use a heightmap or bump map instead, set this property to the image path and then change the texture's bumpmap_Type to bumpmap_height_map using appearanceProperties.itemById('surface_normal').value.properties.

The order in which colorTexture, normalTexture, and roughnessTexture are set matters, as described for colorTexture. As with colorTexture, the image is saved within the document but the path returned by the getter after the document has been saved and reopened can differ from the path that was set.

This property can only be set for appearances in a Design or the favorites list, and setting it fails if the appearance doesn't have a surface_normal slot. Appearances created using Appearances.add always support this property.
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():
parent Property that returns the Parent object of this Appearance (a MaterialLibrary, Design, or AppearanceFavorites collection).
roughness Gets and sets the surface roughness in the range 0 to 1, where 0 is a perfect mirror and 1 is fully matte. This maps to the surface_roughness property. The roughness can only be set for appearances in a Design or the favorites list.
roughnessTexture Gets and sets the path of a grayscale roughness map used as a texture for the appearance's surface_roughness slot. Setting a path connects a new texture and setting an empty string disconnects the existing texture and falls back to the roughness value. Getting this property returns the filename of the connected texture or an empty string if there isn't one connected.

Setting this property resets roughness to 1.0 so the texture's grayscale values are used directly, where 0 is mirror-smooth and 1 is fully matte. To attenuate the texture, set roughness afterwards, for example setting it to 0.7 caps the roughness at 70 percent.

The order in which colorTexture, normalTexture, and roughnessTexture are set matters, as described for colorTexture. As with colorTexture, the image is saved within the document but the path returned by the getter after the document has been saved and reopened can differ from the path that was set.

This property can only be set for appearances in a Design or the favorites list, and setting it fails if the appearance doesn't have a surface_roughness slot. Appearances created using Appearances.add always support this property.
usedBy Returns a collection of the entities currently using this appearance. This property is only valid for an appearance in a Design and where the IsUsed property returns true. The collection returned can contain bodies, faces, or occurrences that have this appearance applied.

Accessed From

Appearances.add, Appearances.addByCopy, Appearances.item, Appearances.itemById, Appearances.itemByName, FavoriteAppearances.add, FavoriteAppearances.item, FavoriteAppearances.itemById, FavoriteAppearances.itemByName, Material.appearance, MaterialPreferences.appearanceOverride, BRepBody.appearance, BRepFace.appearance, ConfigurationAppearanceCell.appearance, CustomGraphicsAppearanceColorEffect.appearance, MeshBody.appearance, Occurrence.appearance

Samples

Name Description
Avoid Machine Surface Settings API Sample

This sample script demonstrates how to use Machine/Avoid/Gouge/Fixture functionality.

The script starts by opening a sample model from the CAM Samples folder via its URN. The model comprises a curved surface with a through slot, a countersunk hole and a raised, circular and filleted upstand from the surface. The model is supported by two rectangular blocks, themselves mounted on a fixture plate. A setup is included with a single operation running a 3-axis diagonal raster over the model, supports and fixture. The operation machines the fixture, the supporting blocks, the upper surface of the upstand and the area within the slot and hole, something we would like to avoid.

The script duplicates the original operation and then proceeds to create a series of MachineAvoidGroups. These are labelled as either Machine in the case of 2 cap surfaces for the slot and hole, Fixture for the fixture plate, Gouge for the supporting blocks and Avoid for the top face of the upstand. Additionally, both AxialOffset and RadialOffset can be specified for the Machine, Avoid and Fixture passes.

Create Engravings Selection Sets API Sample

This sample script demonstrates how to find and machine engravings in the Z+ direction using pocket recognition.

The script will first open an example model via its URN. Using pocket recognition, it will identify pockets that may be engravings based on their dimensions.

We assume here that an engraving pocket is:

  • Made with a flat bottom face and no fillet.
  • A closed pocket.
  • Has a Z height less than 2 mm

We demonstrate creating selection sets in both Design and Manufacture workspaces and use one of the selection sets as an operation geometry selection input to generate an engraving operation.

The engraving toolpath can be seen by expanding the setup and selecting the operation.

Material API Sample

Demonstrates using materials and appearance using the API.

To use the sample, create a new Python or C++ script and copy and paste this code, replacing the default code. The sample also uses an external appearance library which you can get here. Copy that to any location on your computer and edit the path in the script. When running the script, have a design open that contains a body in the root component.

Version

Introduced in version August 2014