UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InterchangeBaseNode.h File Reference
#include "Containers/Array.h"
#include "Containers/Map.h"
#include "Containers/StringFwd.h"
#include "Containers/UnrealString.h"
#include "CoreMinimal.h"
#include "CoreTypes.h"
#include "Delegates/Delegate.h"
#include "HAL/PlatformCrt.h"
#include "Math/Color.h"
#include "Misc/AssertionMacros.h"
#include "Misc/Guid.h"
#include "Misc/TVariant.h"
#include "Nodes/InterchangeBaseNodeUtilities.h"
#include "Templates/SharedPointer.h"
#include "Types/AttributeStorage.h"
#include "UObject/AssetRegistryTagsContext.h"
#include "UObject/Class.h"
#include "UObject/Field.h"
#include "UObject/NameTypes.h"
#include "UObject/Object.h"
#include "UObject/ObjectMacros.h"
#include "UObject/SoftObjectPath.h"
#include "UObject/UObjectGlobals.h"
#include "UObject/UnrealType.h"
#include "InterchangeBaseNode.generated.h"

Go to the source code of this file.

Classes

struct  UE::Interchange::FBaseNodeStaticData
 
class  UInterchangeBaseNode
 

Namespaces

namespace  InterchangePrivateNodeBase
 
namespace  UE
 
namespace  UE::Interchange
 

Macros

#define IMPLEMENT_NODE_ATTRIBUTE_KEY(AttributeName)   const UE::Interchange::FAttributeKey Macro_Custom##AttributeName##Key = UE::Interchange::FAttributeKey(TEXT(#AttributeName));
 
#define IMPLEMENT_NODE_ATTRIBUTE_GETTER(AttributeName, AttributeType)
 
#define IMPLEMENT_NODE_ATTRIBUTE_SETTER_NODELEGATE(AttributeName, AttributeType)
 
#define INTERCHANGE_BASE_NODE_ADD_ATTRIBUTE(ValueType)
 
#define INTERCHANGE_BASE_NODE_GET_ATTRIBUTE(ValueType)
 

Enumerations

enum class  EInterchangeNodeContainerType : uint8 { None , TranslatedScene , TranslatedAsset , FactoryData }
 
enum class  EInterchangeNodeUserInterfaceContext : uint8 { None , Preview }
 

Functions

template<typename ValueType >
bool InterchangePrivateNodeBase::GetCustomAttribute (const UE::Interchange::FAttributeStorage &Attributes, const UE::Interchange::FAttributeKey &AttributeKey, const FString &OperationName, ValueType &OutAttributeValue)
 
template<typename ValueType >
bool InterchangePrivateNodeBase::SetCustomAttribute (UE::Interchange::FAttributeStorage &Attributes, const UE::Interchange::FAttributeKey &AttributeKey, const FString &OperationName, const ValueType &AttributeValue)
 
INTERCHANGECORE_API FPropertyInterchangePrivateNodeBase::FindPropertyByPathChecked (TVariant< UObject *, uint8 * > &Container, UStruct *Outer, FStringView PropertyPath)
 

Macro Definition Documentation

◆ IMPLEMENT_NODE_ATTRIBUTE_GETTER

#define IMPLEMENT_NODE_ATTRIBUTE_GETTER (   AttributeName,
  AttributeType 
)
Value:
FString OperationName = GetTypeName() + TEXT(".Get" #AttributeName); \
return InterchangePrivateNodeBase::GetCustomAttribute<AttributeType>(*Attributes, Macro_Custom##AttributeName##Key, OperationName, AttributeValue);
FString GetTypeName()
Definition Casts.h:66
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127

◆ IMPLEMENT_NODE_ATTRIBUTE_KEY

#define IMPLEMENT_NODE_ATTRIBUTE_KEY (   AttributeName)    const UE::Interchange::FAttributeKey Macro_Custom##AttributeName##Key = UE::Interchange::FAttributeKey(TEXT(#AttributeName));

Use these macros to create Get/Set/ApplyToAsset for an attribute you want to support in your custom UOD node that derive from UInterchangeBaseNode. The attribute key will be declared under the private access modifier, and the functions are declared under the public access modifier. The class access modifier is public after calling this macro.

Note
- The Get will return false if the attribute was never set.
- The Set will add the attribute to the storage or update the value if the storage already has this attribute.
- The Apply will set a member variable of the AssetType instance. It will apply the value only if the storage contains the attribute key
Parameters
AttributeName- The name of the Get/Set functions. For example, if you pass Foo you will end up with GetFoo and SetFoo functions.
AttributeType- This is to specify the type of the attribute: bool, float, FString, or anything else supported by the FAttributeStorage.
AssetType- This is the asset you want to apply the storage value.
EnumType- Optional. Specify only if the AssetType member is an enum so we can type cast it in the apply function (we use uint8 to store the enum value).

◆ IMPLEMENT_NODE_ATTRIBUTE_SETTER_NODELEGATE

#define IMPLEMENT_NODE_ATTRIBUTE_SETTER_NODELEGATE (   AttributeName,
  AttributeType 
)
Value:
FString OperationName = GetTypeName() + TEXT(".Set" #AttributeName); \
return InterchangePrivateNodeBase::SetCustomAttribute<AttributeType>(*Attributes, Macro_Custom##AttributeName##Key, OperationName, AttributeValue);

◆ INTERCHANGE_BASE_NODE_ADD_ATTRIBUTE

◆ INTERCHANGE_BASE_NODE_GET_ATTRIBUTE

Enumeration Type Documentation

◆ EInterchangeNodeContainerType

Enumerator
None 
TranslatedScene 
TranslatedAsset 
FactoryData 

◆ EInterchangeNodeUserInterfaceContext

Enumerator
None 
Preview