What Is The Definition Of An Attribute In Blender?

When learning how to use a 3D modeling application like Blender, one of the things that we’re going to learn is terminology. There are a lot of terms to learn when we are developing our skill sets with an application as complex as Blender 3D.

The term attribute is used to describe data that is associated with a specific element. For example, a vertex can have multiple attributes associated with it. These can be either pre-existing attributes or user-generated ones. One example of an attribute associated with vertices is the position attribute.

When learning to use a tool like Blender, it can be very beneficial to understand the different terminology used for the various aspects of the blender software. The better we can understand the software that we’re working with, the more we can do with it.

How Is An Attribute Defined In Blender?

An attribute is a value that can be either assigned or changed. To manipulate the behavior of a specific element. The most common example of this is the ability to manipulate attributes associated with mesh geometry.

For example, a vertex has the position attribute which can be manipulated to change the position of that vertex on the X, Y, and Z axes.

There are many attributes that are already built into Blender and these cannot be removed, but they can be used to control various aspects of our geometry.

Below is a list of the different built-in attributes that you will find in Blender, particularly when working with geometry nodes where the ability to control your attributes is most prevalent.

  • Position
  • ID
  • Shade Smooth
  • Material Index
  • Crease
  • Radius
  • Cyclic
  • Handle left
  • Handle Right
  • Resolution

When working with geometry nodes, we know that there are numerous different types of nodes to work with. One of these types is the input type. If you want to take a look at the menu for the different input nodes, you will see that it is broken down into two categories with a divider splitting them.

The Position Node

The bottom half of this menu stores all of the inputs based on attributes of our geometry. For example, here you will find the position node as well as the ID and index nodes. These either use built-in attributes or allow you to create new ones.

When connecting one of these input nodes directly to a field input, it does not make any change to the actual node setup. It simply tells Blender that we want that specific input to use that type of data or that attribute.

A List Of The Various Attribute Domains And Types

Each attribute in Blender has two properties, both an associated domain and a type used to categorize the type of data that is stored in that attribute.

Data Types

When we refer to the type of attribute we are referring to the data type, for example, is it a vector or a float. The type of data used for an attribute determines how other nodes can be used to control it.

Below is a list of the different types of data that are used in Blender for creating attributes…

  • Float
  • Vector
  • Integer
  • Boolean
  • Color

We also have more types of data used in geometry nodes but these are more used for data flow rather than as attributes

  • String
  • Image
  • Object
  • Geometry
  • Mesh
  • Material
  • Texture
  • Collection

How To Use Existing Attributes In Geometry Nodes?

There are many ways in which we can use attributes to control our geometry node systems and they often play an important role in our ability to edit node systems using the modifier.

To clarify which attributes are built-in and what they are used for, take a look at our table below…

PositionVectorPointThis attribute defines the location of the geometry
in local space on the XYZ axis. The position node is used to
call this attribute and the transform and set position nodes
are used to adjust it.
IDIntegerPointEach point can be assigned an ID value by the user to control points based on this value. Multiple points can have the same ID value to call using the ID node. It is different from the index value
which is unique to each point.
Shade SmoothBooleanFaceA boolean style attribute that determines if the shade smoothing effect is applied to specific faces in the 3D viewport and when rendered.
Material IndexIntegerFaceMaterials can be assigned specific values and we can call the value of a material (material index) to assign the material to a selection in geometry nodes.
CreaseFloatEdgeAttribute that is used to maintain sharpness of specific edges even after smoothing effects like subdivision surface.
RadiusFloatPointThis attribute determines the size of points generated on curves as well as in cloud systems.
CyclicBooleanSplineThis is a yes/no attribute that determines whether a spline becomes a full loop, connecting the two end points of the spline.
ResolutionIntegerSplineControls the number of additional points generated between the control points on a bezier curve. Acts in a similar manner to subdivisions
Handle LeftVectorPointExclusive to bezier splines this attribute determines the position of the left side control point.
Handle RightVectorPointExclusive to bezier splines this attribute determines the position of the right side control point.
Pre-existing attributes in Blender

Many of the attributes in this table have their own nodes that you can call to when you want to use them, let’s look at a couple of examples in effect.

Using The Position Node To Control Points

The position node is a powerful tool that allows you to control the translation data of your vertices or points to perform various actions.

If you add a position node and then change the offset value, you can move your mesh as a whole around your scene. The same can be done when using the translation vector of the transform node.

However, using the position node can expand on this functionality. In our example, we add a position node and connect it to the selection input of a separate geometry node.

This does not change anything other than to tell Blender that we want the selection to be based on the position data of each point.

Using A Position Node To Separate The Top Face

We then add a separate XYZ node to isolate the points based on the Z-axis and use a less than math node so then we remove the top dace of the cube. The position attribute is used in this example to delete geometry from our model where we require it.

Applying A Material Using The Material Index Value

A second example is to use the material index attribute to control what parts of your objects use certain materials.

To work the materials created must all have their own material index values. You can do this in the settings section of the materials tab.

Then you can use a set material index node and control which areas of your model use which materials using the selection input.

Creating Custom Attributes Using Geometry Nodes?

In addition to using the built-in attributes that blender provides, we can also create our own custom attributes using geometry nodes. These attributes can be best suited as a means of editing the way that the geometry nodes modifier affects our main objects.

For example, two attributes that are common to create are UV maps and Vertex Groups. The user can for example create a vertex group and use that as an attribute that the node tree calls to for performing a task like extruding or material assignment.

If you want to learn more about Blender you can check out our course on Skillshare by clicking the link here and get 1 month free to the entire Skillshare library.

Is There A Difference Between A Property, An Element, Or An Attribute?

Different terms in Blender refer to different aspects of the Blender interface. As we now know an attribute is a form of data that is formed per element, such as the position data used for a vertex.

An element in Blender is anything that exists in the 3D viewport that is used to construct the scene. It can take the form of any object type or the building blocks used to construct that object such as the vertex, edge, or face type when working with mesh geometry.

Properties on the other hand are changeable values, or parameters, that can adjust our scene in any number of ways. The properties panel is an entire editor type dedicated to controlling all of the properties that are commonly used by Blender in a single space.

How Do Attributes Play A Role In The Use Of Fields?

If you don’t know what fields are, they are essentially functions that convert calculations into single values that can be outputted to adjust the final result of the node tree. This data can be used multiple times across the node tree to influence different areas of the model.

An attribute is often used as a guide for what the fields are calculating. For example, we can generate a field using a combine XYZ and a math node to control the scale of an object on the Z-axis. We can then in theory use an ID node to tell Blender which points are to be used for scaling.

Thanks For Reading The Article

We appreciate you taking the time to read through the article and we hope that you have been able to locate the information that you were looking for. Below we have compiled a list of additional topics that are available for you to view and learn more about Blender.

  • Game Asset Physics with Blender

    Incorporating physics into game assets for realism in Blender.

    Continue Reading

  • Baking Physics Sims in Blender: How-To

    Efficiently baking physics simulations for stability in Blender projects.

    Continue Reading

  • Interactive Physics for Blender Models

    Interactive physics for engaging Blender models and animations.

    Continue Reading