ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Mapping.Voxel Namespace / VoxelVariableProfile Class / Variable Property
Example Version

Variable Property (VoxelVariableProfile)
Gets the variable profile variable name.
Syntax
public string Variable {get;}
Example
Subscribe for Changes to a Voxel Layer
ArcGIS.Desktop.Mapping.Events.MapMemberPropertiesChangedEvent.Subscribe((args) =>
{
    var voxel = args.MapMembers.OfType<VoxelLayer>().FirstOrDefault();
    if (voxel == null)
        return;
    //Anything changed on a voxel layer?
    //At 2.x - if (args.EventHints.Any(hint => hint == MapMemberEventHint.VoxelSelectedVariableProfileIndex))
    if (args.EventHints.Any(hint => hint == MapMemberEventHint.VoxelSelectedVariable))
    {
        //Voxel variable profile selection changed
        var changed_variable_name = voxel.SelectedVariableProfile.Variable;
        //TODO respond to change, use QueuedTask if needed

    }
    else if (args.EventHints.Any(hint => hint == MapMemberEventHint.Renderer))
    {
        //This can fire when a renderer becomes ready on a new layer; the selected variable profile
        //is changed; visualization is changed, etc.
        var renderer = voxel.SelectedVariableProfile.Renderer;
        //TODO respond to change, use QueuedTask if needed

    }
});

ArcGIS.Desktop.Mapping.Voxel.Events.VoxelAssetChangedEvent.Subscribe((args) =>
{
    //An asset changed on a voxel layer
    System.Diagnostics.Debug.WriteLine("");
    System.Diagnostics.Debug.WriteLine("VoxelAssetChangedEvent");
    System.Diagnostics.Debug.WriteLine($" AssetType: {args.AssetType}, ChangeType: {args.ChangeType}");

    if (args.ChangeType == VoxelAssetEventArgs.VoxelAssetChangeType.Remove)
        return;
    //Get "what"changed - add or update
    //eg IsoSurface
    VoxelLayer voxelLayer = null;
    if (args.AssetType == VoxelAssetEventArgs.VoxelAssetType.Isosurface)
    {
        var surface = MapView.Active.GetSelectedIsosurfaces().FirstOrDefault();
        //there will only be one selected...
        if (surface != null)
        {
            voxelLayer = surface.Layer;
            //TODO respond to change, use QueuedTask if needed
        }
    }
    //Repeat for Slices, Sections, LockedSections...
    //GetSelectedSlices(), GetSelectedSections(), GetSelectedLockedSections();
});
Get the Selected Variable Profile
//var voxelLayer = ... ;
//Must be on the QueuedTask.Run()

var sel_profile = voxelLayer.SelectedVariableProfile;

//Get the variable profile name
var profile_name = sel_profile.Variable;
Change the Selected Variable Profile
//var voxelLayer = ... ;
//Must be on the QueuedTask.Run()

var profiles = voxelLayer.GetVariableProfiles();

//Select any profile as long as it is not the current selected variable
var not_selected = profiles.Where(p => p.Variable != sel_profile.Variable).ToList();
if (not_selected.Count() > 0)
{
    voxelLayer.SetSelectedVariableProfile(not_selected.First());
}
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also