ArcGIS Pro 3.0 API Reference Guide
ArcGIS.Desktop.Mapping.Voxel Namespace / SliceDefinition Class / Normal Property
Example

In This Topic
    Normal Property (SliceDefinition)
    In This Topic
    Gets and sets the slice normal.
    Syntax
    public Coordinate3D Normal {get; set;}
    Public Property Normal As Coordinate3D
    Remarks
    The Normal is a unit vector (x, y, z)
    Example
    Create a Slice
    //var voxelLayer = ... ;
    //Must be on the QueuedTask.Run()
    
    if (voxelLayer.Visualization != VoxelVisualization.Volume)
        voxelLayer.SetVisualization(VoxelVisualization.Volume);
    voxelLayer.SetSliceContainerExpanded(true);
    voxelLayer.SetSliceContainerVisibility(true);
    
    //To stop the Voxel Exploration Dockpane activating use:
    voxelLayer.AutoShowExploreDockPane = false;
    //This is useful if u have your own dockpane currently activated...
    
    //At 2.x - var volumeSize = voxelLayer.GetVolumeSize();
    
    //Use the SelectedVariableProfile to get the slices currently in the TOC
    //via its associated volume
    var volume = voxelLayer.SelectedVariableProfile.Volume;
    var volumeSize = volume.GetVolumeSize();
    
    //Orientation 90 degrees (West), Tilt 0.0 (vertical)
    //Convert to a normal
    var normal = voxelLayer.GetNormal(90, 0.0);
    
    //Create the slice at the voxel mid-point. VoxelPosition
    //is specified in voxel-space coordinates
    
    //At 2.x - 
    //voxelLayer.CreateSlice(new SliceDefinition()
    //{
    //    Name = "Middle Slice",
    //    VoxelPosition = new Coordinate3D(volume.Item1 / 2, volume.Item2 / 2, volume.Item3 / 2),
    //    Normal = normal,
    //    IsVisible = true
    //});
    
    //Create the slice on the respective volume
    volume.CreateSlice(new SliceDefinition()
    {
        Name = "Middle Slice",
        VoxelPosition = new Coordinate3D(volumeSize.X / 2, volumeSize.Y / 2, volumeSize.Z / 2),
        Normal = normal,
        IsVisible = true
    });
    
    //reset if needed...
    voxelLayer.AutoShowExploreDockPane = true;
    
    Change Tilt on a Slice
    //var voxelLayer = ... ;
    //Must be on the QueuedTask.Run()
    
    //To stop the Voxel Exploration Dockpane activating use:
    voxelLayer.AutoShowExploreDockPane = false;
    //This is useful if u have your own dockpane currently activated...
    //Normally, it would be set in your dockpane
    
    if (voxelLayer.Visualization != VoxelVisualization.Volume)
        voxelLayer.SetVisualization(VoxelVisualization.Volume);
    voxelLayer.SetSliceContainerVisibility(true);
    
    //At 2.x - var slice = voxelLayer.GetSlices().First(s => s.Name == "Change Tilt Slice");
    
    //Use the SelectedVariableProfile to get the slices currently in the TOC
    //via its associated volume
    var volume = voxelLayer.SelectedVariableProfile.Volume;
    var slice = volume.GetSlices().First(s => s.Name == "Change Tilt Slice");
    
    (double orientation, double tilt) = voxelLayer.GetOrientationAndTilt(slice.Normal);
    
    //Convert orientation and tilt to a normal
    slice.Normal = voxelLayer.GetNormal(orientation, 45.0);
    //At 2.x - voxelLayer.UpdateSlice(slice);
    volume.UpdateSlice(slice);
    
    //reset if needed...Normally this might be when your dockpane
    //was de-activated (ie "closed")
    voxelLayer.AutoShowExploreDockPane = true;
    
    Requirements

    Target Platforms: Windows 11, Windows 10, Windows 8.1

    See Also