ISMGraphGeneration::FSetNodePropertyArgs¶
#include <ISMGraphGeneration.h>
Description¶
Arguments for setting a node property.
Public Attributes¶
| Name | |
|---|---|
| FName | PropertyName |
| FString | PropertyDefaultValue |
| int32 | PropertyIndex |
| int32 | TargetIndex |
| EArrayChangeType | ArrayChangeType |
| USMNodeInstance * | NodeInstance |
| FString | SubPath |
Public Attributes Documentation¶
variable PropertyName¶
[Required] The name of the property.
variable PropertyDefaultValue¶
[Optional] The default value to assign the property.
variable PropertyIndex¶
[Optional] Index when setting an array element. Also the source index for MoveElement.
variable TargetIndex¶
[Optional] Destination index for MoveElement. Unused by other change types.
variable ArrayChangeType¶
[Optional] How to handle modifying an array.
variable NodeInstance¶
[Optional] The node instance which contains the property, such as a node stack instance. When null the default node template instance is used.
variable SubPath¶
[Optional] Dot-separated sub-path under PropertyName, addressing a nested member or array element to write. Empty = write the top-level UPROPERTY itself. Top-level array indexing uses PropertyIndex; nested array indexing uses Member[i] bracket syntax.
Strict-split precondition. When SubPath is non-empty, every struct parent in the path (the top-level pin named by PropertyName AND every intermediate struct member) must be split first via the editor's Split Struct Pin action (or USMPropertyGraph::SplitResultPin / USMPropertyGraph::SplitSubPin programmatically). Unsplit parents are rejected with a clear error - the write would land on a collapsed parent literal and either be invisible in the editor or get wiped by the next construction-script tick.
For SetElement (default), the path ends at the scalar leaf to write; missing nested array elements along the path are grown to fit.
For structural mutations (AddElement, InsertElement, RemoveElement, Clear, DuplicateElement, MoveElement), the path ends at the target array itself (no trailing [i]). PropertyIndex/TargetIndex carry the op's index parameters, matching the top-level API.
Syntax: MemberA.MemberB[i].MemberC[j].
Example targeting propA[0].propB[1].propC (scalar write): PropertyName = "propA"; PropertyIndex = 0; SubPath = TEXT("propB[1].propC");
Example adding an element to propA.nested.innerArray (structural): PropertyName = "propA"; ArrayChangeType = AddElement; SubPath = TEXT("nested.innerArray");
Extended graph properties (e.g. FSMTextGraphProperty) are addressed by the property name itself, not by their internal Result subfield; pin redistribution to split sub-pins and child property graphs is handled automatically.