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
Where we have dynamic scheduling, downstream nodes can have their execution disabled by turning on the flag in the upstream attribute.
Gets the number of downstream connections to this attribute
Gets the list of downstream connections to this attribute
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
Gets the number of upstream connections to this attribute
get_upstream_connections
(self)Gets the list of upstream connections to this attribute
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
Defines the memory space that GPU array data pointers live in.
Flag that is set when an attribute need not be valid for compute() to happen.
resolved_prefix
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,
Connects this attribute with another attribute. Assumes regular connection type.
- Parameters:
path (omni.graph.core.Attribute) – The destination attr
modify_usd (bool) – Whether to create USD.
- 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,
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,
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( ) 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,
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,
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,
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,
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( ) 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,
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,
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:
- get_disable_dynamic_downstream_work( ) 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( ) 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( ) 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:
- get_downstream_connections_info( ) 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:
- get_extended_type( ) omni.graph.core._omni_graph_core.ExtendedAttributeType #
Get the extended type of the attribute
- Returns:
Extended type of the attribute data object
- Return type:
- get_handle( ) 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,
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( ) 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( ) str #
Get the attribute’s name
- Returns:
The name of the current attribute.
- Return type:
str
- get_node( ) omni::graph::core::Py_Node #
Gets the node to which this attribute belongs
- Returns:
The node associated with the attribute
- Return type:
- get_path( ) str #
Get the path to the attribute
- Returns:
The full path to the attribute, including the node path.
- Return type:
str
- get_port_type( ) 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:
- static get_port_type_from_name(
- name: str,
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:
- get_resolved_type( ) 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:
- get_type_name( ) str #
Get the name of the attribute’s type
- Returns:
The type name of the current attribute.
- Return type:
str
- get_union_types( ) 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( ) 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( ) 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:
- get_upstream_connections_info( ) 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:
- is_array( ) 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,
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,
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( ) 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( ) 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( ) 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( ) 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,
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:
- register_value_changed_callback(
- self: omni.graph.core._omni_graph_core.Attribute,
- func: object,
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,
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,
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,
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,
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,
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,
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,
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