Skip to main content

Description

Attributes define properties or characteristics of system elements, specifying quantitative or qualitative aspects such as dimensions, weight, material properties, performance metrics, or other parameters. In SysML v2, attributes are fundamental modeling elements that capture the values and properties that describe system components. Attributes can contain scalar values, supported array values, or references to other attributes in the model, creating calculated relationships between system properties. They support units of measurement and type specifications, enabling precise engineering analysis and ensuring consistency across the model. When attributes reference other values, they can perform unit conversions automatically, allowing engineers to view the same property in different unit systems.
The unit field is optional but recommended for engineering values. When specified, it enables automatic unit conversion and helps prevent errors in calculations. For attributes that reference other attributes, the unit can be changed and the evaluated value will be transformed automatically if the conversion is possible.

Value Kinds and Array Values

Attributes support scalar values for all value kinds. Number and boolean attributes also support array values up to three dimensions.
KindScalar1D array2D array3D arrayUnits
NumberOptional shared unit
BooleanNo unit
StringNo unit
DateNo unit
Numeric arrays use one shared unit for the full attribute value. Individual array elements do not have separate units. When an equation or callable code function returns a numeric array, Davinci preserves the array shape and applies the attribute unit to the returned values when possible. Examples of supported array values:
String and date attributes are scalar-only. Arrays of strings and arrays of dates are not supported.

Reading a Named State Value

In any equation, [attribute-uuid].state([state-uuid]) reads that Attribute’s effective value for the named State. Davinci resolves state equations first, rolls up triggered states, inherits from parent states, and falls back to the Attribute’s default value when no override applies. An Attribute can define explicit values for every State or Action in the state branches owned by its host, including nested substates. For example, an Attribute under a Part may define values for both TPO and TPO > Idle. State branches owned by nested Parts are separate and are not valid for the outer Part’s Attribute. The accessor always selects its explicit state rather than an ambient state used to evaluate the surrounding equation. The receiver must be an Attribute and the argument must be a State. For array values, use a 1-based index such as [attribute].state([state])[1] or reduce the result with min(), max(), or mean() when a scalar is required. This syntax does not execute code. Only [code-uuid].method(args) with a Code receiver is callable.

Unit Conversion and Validation

Automatic Unit Conversion

When an attribute references another attribute with a different unit, Davinci automatically converts between compatible units. This allows you to work with the same physical quantity in different unit systems without manual conversion. Example: If an attribute Length_m has a value of 10 m and another attribute Length_ft references it with units specified as ft, Davinci automatically converts and displays 32.8084 ft. The system supports conversions between:
  • Length units: meters, feet, inches, kilometers, miles, etc.
  • Mass units: kilograms, pounds, grams, tonnes, etc.
  • Time units: seconds, minutes, hours, days, etc.
  • Temperature units: Celsius, Fahrenheit, Kelvin
  • And many more: pressure, velocity, energy, power, etc.
Unit conversion works in equations as well. You can mix units freely in expressions, and Davinci will convert all terms to compatible units before performing calculations.

Unit Validation

The system validates unit compatibility during equation evaluation to prevent physically meaningless operations. When units are incompatible, Davinci displays an error indicator. Invalid operations that trigger errors:
  • Adding or subtracting incompatible units: 5 m + 3 kg (length + mass)
  • Comparing incompatible quantities: 10 s > 20 m (time > length)
  • Assigning incompatible units: Setting @Length to 25 kg when Length has units of m
Error indicators:
  • Red error box appears next to the attribute value field
  • Hover over the error to see detailed explanation
  • Error message specifies which units are incompatible
The validation system ensures that your model maintains physical consistency and helps catch errors early in the design process.
For custom unit definitions and unit system management, see Unit Settings.

View Types

Properties Fields

boolean
Yes. Attributes can be used as bases or specializations through object inheritance.
string
Name of the object.
string
Short name of the object.
string
Description of the object.
string
The value of the attribute, which has the form:Equation or value [unit] (type)
If the units of the equation or reference either do not match or can not be converted, an error will occur. Mouseover the error box to see the details of the error.
See the allowed mathematical operations/syntax and base units for details on what is allowed.
connection
A list of all Relationships this object has with other model objects.Read more about Relationships