Attribute

class omni.graph.core.Attribute

Bases: pybind11_object

An attribute, defining a data type and value that belongs to a node

Methods

__init__(*args, **kwargs)

connect(self, path, modify_usd)

Connects this attribute with another attribute.

connectEx(self, info, modify_usd)

Connects this attribute with another attribute.

connectPrim(self, path, modify_usd, write)

Connects this attribute to a prim that can represent a bundle connection or just a plain prim relationship

deprecation_message(self)

Gets the deprecation message on an attribute, if it is deprecated.

disconnect(self, attribute, modify_usd)

Disconnects this attribute from another attribute.

disconnectPrim(self, path, modify_usd, write)

Disconnects this attribute to a prim that can represent a bundle connection or just a plain prim relationship

ensure_port_type_in_name(name, port_type, ...)

Return the attribute name with the port type namespace prepended if it isn't already present.

get(self[, on_gpu, instance])

Get the value of the attribute

get_all_metadata(self)

Gets the attribute's metadata

get_array(self, on_gpu, get_for_write, ...)

Gets the value of an array attribute

get_attribute_data(self, instance)

Get the AttributeData object that can access the attribute's data

get_disable_dynamic_downstream_work(self)

Where we have dynamic scheduling, downstream nodes can have their execution disabled by turning on the flag in the upstream attribute.

get_downstream_connection_count(self)

Gets the number of downstream connections to this attribute

get_downstream_connections(self)

Gets the list of downstream connections to this attribute

get_downstream_connections_info(self)

Returns the list of downstream connections for this attribute, with detailed connection information such as the connection type.

get_extended_type(self)

Get the extended type of the attribute

get_handle(self)

Get a handle to the attribute

get_metadata(self, key)

Returns the metadata value for the given key.

get_metadata_count(self)

Gets the number of metadata values on the attribute

get_name(self)

Get the attribute's name

get_node(self)

Gets the node to which this attribute belongs

get_path(self)

Get the path to the attribute

get_port_type(self)

Gets the attribute's port type (input, output, or state)

get_port_type_from_name(name)

Parse the port type from the given attribute name if present.

get_resolved_type(self)

Get the resolved type of the attribute

get_type_name(self)

Get the name of the attribute's type

get_union_types(self)

Get the list of types accepted by a union attribute

get_upstream_connection_count(self)

Gets the number of upstream connections to this attribute

get_upstream_connections(self)

Gets the list of upstream connections to this attribute

get_upstream_connections_info(self)

Returns the list of upstream connections for this attribute, with detailed connection information such as the connection type.

is_array(self)

Checks if the attribute is an array type.

is_compatible(self, attribute)

Checks to see if this attribute is compatible with another one, in particular the data types they use

is_connected(self, attribute)

Checks to see if this attribute has a connection to another attribute

is_deprecated(self)

Checks whether an attribute is deprecated.

is_dynamic(self)

Checks to see if an attribute is dynamic

is_runtime_constant(self)

Checks is this attribute is a runtime constant.

is_valid(self)

Checks if the current attribute is valid.

map_to_target(self, target_attrib_name, ...)

Maps the attribute to another one on the graph target.

register_value_changed_callback(self, func)

Registers a function that will be invoked when the value of the given attribute changes.

remove_port_type_from_name(name, is_bundle)

Find the attribute name with the port type removed if it is present.

set(self, value[, on_gpu, instance])

Sets the value of the attribute's data

set_default(self, value[, on_gpu])

Sets the default value of the attribute's data (value when not connected)

set_disable_dynamic_downstream_work(self, ...)

Where we have dynamic scheduling, downstream nodes can have their execution disabled by turning on the flag in the upstream attribute.

set_metadata(self, key, value)

Sets the metadata value for the given key

set_resolved_type(self, resolved_type)

Sets the resolved type for the extended attribute.

update_attribute_value(self, update_immediately)

Requests the value of an attribute.

write_complete(attributes)

Warn the framework that writing to the provided attributes is done, so it can trigger callbacks attached to them

Attributes

gpu_ptr_kind

Defines the memory space that GPU array data pointers live in.

is_optional_for_compute

Flag that is set when an attribute need not be valid for compute() to happen.

resolved_prefix

target_mapping

Returns the attribute name on the graph target the attribute is mapped to

__init__(*args, **kwargs)
connect(self: omni.graph.core._omni_graph_core.Attribute, path: omni.graph.core._omni_graph_core.Attribute, modify_usd: bool) bool

Connects this attribute with another attribute. Assumes regular connection type.

Parameters
Returns

True for success, False for fail

Return type

bool

connectEx(self: omni.graph.core._omni_graph_core.Attribute, info: omni::graph::core::Py_ConnectionInfo, modify_usd: bool) bool

Connects this attribute with another attribute. Allows for different connection types.

Parameters
  • info (omni.graph.core.ConnectionInfo) – The ConnectionInfo object that contains both the attribute and the connection type

  • modify_usd (bool) – Whether to modify the underlying USD with this connection

Returns

True for success, False for fail

Return type

bool

connectPrim(self: omni.graph.core._omni_graph_core.Attribute, path: str, modify_usd: bool, write: bool) bool

Connects this attribute to a prim that can represent a bundle connection or just a plain prim relationship

Parameters
  • path (str) – The path to the prim

  • modify_usd (bool) – Whether to modify USD.

  • write (bool) – Whether this connection represents a bundle

Returns

True for success, False for fail

Return type

bool

deprecation_message(self: omni.graph.core._omni_graph_core.Attribute) str

Gets the deprecation message on an attribute, if it is deprecated. Typically this message gives guidance as to what the user should do instead of using the deprecated attribute.

Returns

The message associated with a deprecated attribute

Return type

str

disconnect(self: omni.graph.core._omni_graph_core.Attribute, attribute: omni.graph.core._omni_graph_core.Attribute, modify_usd: bool) bool

Disconnects this attribute from another attribute.

Parameters
  • attribute (omni.graph.core.Attribute) – The destination attribute of the connection to remove

  • modify_usd (bool) – Whether to modify USD

Returns

True for success, False for fail

Return type

bool

disconnectPrim(self: omni.graph.core._omni_graph_core.Attribute, path: str, modify_usd: bool, write: bool) bool

Disconnects this attribute to a prim that can represent a bundle connection or just a plain prim relationship

Parameters
  • path (str) – The path to the prim

  • modify_usd (bool) – Whether to modify USD.

  • write (bool) – Whether this connection represents a bundle

Returns

True for success, False for fail

Return type

bool

static ensure_port_type_in_name(name: str, port_type: omni.graph.core._omni_graph_core.AttributePortType, is_bundle: bool) str

Return the attribute name with the port type namespace prepended if it isn’t already present.

Parameters
  • name (str) – The attribute name, with or without the port prefix

  • port_type (omni.graph.core.AttributePortType) – The port type of the attribute

  • is_bundle (bool) – true if the attribute name is to be used in a bundle. Note that colon is an illegal character

  • instead. (in bundled attributes so an underscore is used) –

Returns

The name with the proper prefix for the given port type

Return type

str

get(self: omni.graph.core._omni_graph_core.Attribute, on_gpu: bool = False, instance: int = 18446744073709551614) object

Get the value of the attribute

Parameters
  • on_gpu (bool) – Is the data to be retrieved from the GPU?

  • instance (int) – an instance index when getting value on an instantiated graph

Returns

Value of the attribute’s data

Return type

Any

get_all_metadata(self: omni.graph.core._omni_graph_core.Attribute) dict

Gets the attribute’s metadata

Returns

A dictionary of name:value metadata on the attribute

Return type

dict[str,str]

get_array(self: omni.graph.core._omni_graph_core.Attribute, on_gpu: bool = False, get_for_write: bool, reserved_element_count: int, instance: int = 18446744073709551614) object

Gets the value of an array attribute

Parameters
  • on_gpu (bool) – Is the data to be retrieved from the GPU?

  • get_for_write (bool) – Should the data be retrieved for writing?

  • reserved_element_count (int) – If the data is to be retrieved for writing, preallocate this many elements

  • instance (int) – an instance index when getting value on an instantiated graph

Returns

Value of the array attribute’s data

Return type

list[Any]

get_attribute_data(self: omni.graph.core._omni_graph_core.Attribute, instance: int = 18446744073709551614) omni::graph::core::Py_AttributeData

Get the AttributeData object that can access the attribute’s data

Parameters

instance (int) – an instance index when getting value on an instantiated graph

Returns

The underlying attribute data accessor object for this attribute

Return type

omni.graph.core.AttributeData

get_disable_dynamic_downstream_work(self: omni.graph.core._omni_graph_core.Attribute) bool

Where we have dynamic scheduling, downstream nodes can have their execution disabled by turning on the flag in the upstream attribute. Note you also have to call setDynamicDownstreamControl on the node to enable this feature. See setDynamicDownstreamControl on INode for further information.

Returns

True if downstream nodes are disabled in dynamic scheduling, False otherwise

Return type

bool

get_downstream_connection_count(self: omni.graph.core._omni_graph_core.Attribute) int

Gets the number of downstream connections to this attribute

Returns

the number of downstream connections on this attribute.

Return type

int

get_downstream_connections(self: omni.graph.core._omni_graph_core.Attribute) List[omni.graph.core._omni_graph_core.Attribute]

Gets the list of downstream connections to this attribute

Returns

The list of downstream connections for this attribute.

Return type

list[omni.graph.core.Attribute]

get_downstream_connections_info(self: omni.graph.core._omni_graph_core.Attribute) List[omni::graph::core::Py_ConnectionInfo]

Returns the list of downstream connections for this attribute, with detailed connection information such as the connection type.

Returns

A list of the downstream ConnectionInfo objects

Return type

list[omni.graph.core.ConnectionInfo]

get_extended_type(self: omni.graph.core._omni_graph_core.Attribute) omni.graph.core._omni_graph_core.ExtendedAttributeType

Get the extended type of the attribute

Returns

Extended type of the attribute data object

Return type

omni.graph.core.ExtendedAttributeType

get_handle(self: omni.graph.core._omni_graph_core.Attribute) int

Get a handle to the attribute

Returns

An opaque handle to the attribute

Return type

int

get_metadata(self: omni.graph.core._omni_graph_core.Attribute, key: str) str

Returns the metadata value for the given key.

Parameters

key – (str) The metadata keyword

Returns

Metadata value for the given keyword, or None if it is not defined

Return type

str

get_metadata_count(self: omni.graph.core._omni_graph_core.Attribute) int

Gets the number of metadata values on the attribute

Returns

the number of metadata values currently defined on the attribute.

Return type

int

get_name(self: omni.graph.core._omni_graph_core.Attribute) str

Get the attribute’s name

Returns

The name of the current attribute.

Return type

str

get_node(self: omni.graph.core._omni_graph_core.Attribute) omni::graph::core::Py_Node

Gets the node to which this attribute belongs

Returns

The node associated with the attribute

Return type

omni.graph.core.Node

get_path(self: omni.graph.core._omni_graph_core.Attribute) str

Get the path to the attribute

Returns

The full path to the attribute, including the node path.

Return type

str

get_port_type(self: omni.graph.core._omni_graph_core.Attribute) omni.graph.core._omni_graph_core.AttributePortType

Gets the attribute’s port type (input, output, or state)

Returns

The port type of the attribute.

Return type

omni.graph.core.AttributePortType

static get_port_type_from_name(name: str) omni.graph.core._omni_graph_core.AttributePortType

Parse the port type from the given attribute name if present. The port type is indicated by a prefix seperated by a colon or underscore in the case of bundled attributes.

Parameters

name (name The attribute) –

Returns

The port type indicated by the attribute prefix if present.

AttributePortType.UNKNOWN if there is no recognized prefix.

Return type

omni.graph.core.AttributePortType

get_resolved_type(self: omni.graph.core._omni_graph_core.Attribute) omni::graph::core::Py_Type

Get the resolved type of the attribute

Returns

Resolved type of the attribute data object, or the hardcoded type for regular attributes

Return type

omni.graph.core.Type

get_type_name(self: omni.graph.core._omni_graph_core.Attribute) str

Get the name of the attribute’s type

Returns

The type name of the current attribute.

Return type

str

get_union_types(self: omni.graph.core._omni_graph_core.Attribute) object

Get the list of types accepted by a union attribute

Returns

The list of accepted types for the attribute if it is an extended union type, else None

Return type

list[str]

get_upstream_connection_count(self: omni.graph.core._omni_graph_core.Attribute) int

Gets the number of upstream connections to this attribute

Returns

the number of upstream connections on this attribute.

Return type

int

get_upstream_connections(self: omni.graph.core._omni_graph_core.Attribute) List[omni.graph.core._omni_graph_core.Attribute]

Gets the list of upstream connections to this attribute

Returns

The list of upstream connections for this attribute.

Return type

list[omni.graph.core.Attribute]

get_upstream_connections_info(self: omni.graph.core._omni_graph_core.Attribute) List[omni::graph::core::Py_ConnectionInfo]

Returns the list of upstream connections for this attribute, with detailed connection information such as the connection type.

Returns

A list of the upstream ConnectionInfo objects

Return type

list[omni.graph.core.ConnectionInfo]

is_array(self: omni.graph.core._omni_graph_core.Attribute) bool

Checks if the attribute is an array type.

Returns

True if the attribute data type is an array

Return type

bool

is_compatible(self: omni.graph.core._omni_graph_core.Attribute, attribute: omni.graph.core._omni_graph_core.Attribute) bool

Checks to see if this attribute is compatible with another one, in particular the data types they use

Parameters

attribute (omni.graph.core.Attribute) – Attribute for which compatibility is to be checked

Returns

True if this attribute is compatible with “attribute”

Return type

bool

is_connected(self: omni.graph.core._omni_graph_core.Attribute, attribute: omni.graph.core._omni_graph_core.Attribute) bool

Checks to see if this attribute has a connection to another attribute

Parameters

attribute (Attribute) – Attribute for which the connection is to be checked

Returns

True if this attribute is connected to another, either as source or destination

Return type

bool

is_deprecated(self: omni.graph.core._omni_graph_core.Attribute) bool

Checks whether an attribute is deprecated. Deprecated attributes should not be used as they will be removed in a future version.

Returns

True if the attribute is deprecated

Return type

bool

is_dynamic(self: omni.graph.core._omni_graph_core.Attribute) bool

Checks to see if an attribute is dynamic

Returns

True if the current attribute is a dynamic attribute (not in the node type definition).

Return type

bool

is_runtime_constant(self: omni.graph.core._omni_graph_core.Attribute) bool

Checks is this attribute is a runtime constant.

Runtime constants will keep the same value every frame, for every instance. This property can be taken advantage of in vectorized compute.

Returns

True if the attribute is a runtime constant

Return type

bool

is_valid(self: omni.graph.core._omni_graph_core.Attribute) bool

Checks if the current attribute is valid.

Returns

True if the attribute reference points to a valid attribute object

Return type

bool

map_to_target(self: omni.graph.core._omni_graph_core.Attribute, target_attrib_name: str, fabric_id: int = 0) omni::graph::core::FunctionResult

Maps the attribute to another one on the graph target.

Parameters
  • target_attrib_name (str) – the attribute name on the graph target prim to map this attribute to

  • fabric_id (integer) – (optional) The fabric id cache in which the attribute lives. Uses the default fabric cache associated to the graph if not specified

Returns

Whether the call was immediately applied, failed or deferred. Deferral can

happen when the graph does not yet have any explicit instances or a prim view applied

Return type

FunctionResult

register_value_changed_callback(self: omni.graph.core._omni_graph_core.Attribute, func: object) None

Registers a function that will be invoked when the value of the given attribute changes.

Note that an attribute can have one and only one callback. Subsequent calls will replace previously set callbacks. Passing None for the function argument will clear the existing callback.

Parameters

func (callable) – A function with one argument representing the attribute that changed.

static remove_port_type_from_name(name: str, is_bundle: bool) str

Find the attribute name with the port type removed if it is present. For example “inputs:attr” becomes “attr”

Parameters
  • name (str) – The attribute name, with or without the port prefix

  • is_bundle (bool) – True if the attribute name is to be used in a bundle. Note that colon is an illegal character in bundled attributes so an underscore is used instead.

Returns

The name with the port type prefix removed

Return type

str

set(self: omni.graph.core._omni_graph_core.Attribute, value: object, on_gpu: bool = False, instance: int = 18446744073709551614) bool

Sets the value of the attribute’s data

Parameters
  • value (Any) – New value of the attribute’s data

  • on_gpu (bool) – Is the data to be set on the GPU?

  • instance (int) – an instance index when setting value on an instantiated graph

Returns

True if the value was successfully set

Return type

bool

set_default(self: omni.graph.core._omni_graph_core.Attribute, value: object, on_gpu: bool = False) bool

Sets the default value of the attribute’s data (value when not connected)

Parameters
  • value (Any) – New value of the default attribute’s data

  • on_gpu (bool) – Is the data to be set on the GPU?

Returns

True if the value was successfully set

Return type

bool

set_disable_dynamic_downstream_work(self: omni.graph.core._omni_graph_core.Attribute, disable: bool) None

Where we have dynamic scheduling, downstream nodes can have their execution disabled by turning on the flag in the upstream attribute. Note you also have to call setDynamicDownstreamControl on the node to enable this feature. This function allows you to set the flag on the attribute that will disable the downstream node. See setDynamicDownstreamControl on INode for further information.

Parameters

disable (bool) – Whether to disable downstream connected nodes in dynamic scheduling.

set_metadata(self: omni.graph.core._omni_graph_core.Attribute, key: str, value: str) bool

Sets the metadata value for the given key

Parameters
  • key (str) – The metadata keyword

  • value (str) – The value of the metadata

set_resolved_type(self: omni.graph.core._omni_graph_core.Attribute, resolved_type: omni::graph::core::Py_Type) None

Sets the resolved type for the extended attribute.

Only valid for attributes with union/any extended types, who’s type has not yet been resolved. Should only be called from on_connection_type_resolve() callback. This operation is async and may fail if the type cannot be resolved as requested.

Parameters

resolved_type (omni.graph.core.Type) – The type to resolve the attribute to

update_attribute_value(self: omni.graph.core._omni_graph_core.Attribute, update_immediately: bool) bool

Requests the value of an attribute. In the cases of lazy evaluation systems, this generates the “pull” that causes the attribute to update its value.

Parameters

update_immediately (bool) – Whether to update the attribute value immediately. If True, the function will block until the attribute is update and then return. If False, the attribute will be updated in the next update loop.

Returns

The value of the attribute

Return type

Any

static write_complete(attributes: sequence) None

Warn the framework that writing to the provided attributes is done, so it can trigger callbacks attached to them

Parameters

attributes (list[omni.graph.core.Attribute]) – List of attributes that are done writing

property gpu_ptr_kind

Defines the memory space that GPU array data pointers live in.

property is_optional_for_compute

Flag that is set when an attribute need not be valid for compute() to happen. bool:

property target_mapping

Returns the attribute name on the graph target the attribute is mapped to

Returns

The name of the target, or None if there isn’t one mapped

Return type

string