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