ArcGIS Pro 2.7 API Reference Guide
GetPatchNormal Method
Example 

ArcGIS.Core.Geometry Namespace > Multipatch Class : GetPatchNormal Method
The index of the patch. Must be greater than or equal to zero and less than PartCount.
The index of the point relative to the patch. Must be greater than or equal to zero and less than the value returned from GetPatchPointCount.
Gets the normal coordinate for the specified patch (part) at the point index.
Syntax
public Coordinate3D GetPatchNormal( 
   int patchIndex,
   int pointIndex
)
Public Function GetPatchNormal( _
   ByVal patchIndex As Integer, _
   ByVal pointIndex As Integer _
) As Coordinate3D

Parameters

patchIndex
The index of the patch. Must be greater than or equal to zero and less than PartCount.
pointIndex
The index of the point relative to the patch. Must be greater than or equal to zero and less than the value returned from GetPatchPointCount.

Return Value

The coordinate representing the normal.
Exceptions
ExceptionDescription
The patch index must be >= 0.
The patch index must be less than the number of patches (parts) in the multipatch.
The point index must be >= 0.
The point index must be less than the number of points in the patch. See GetPatchPointCount
This multipatch does not have normals.
Remarks
The normals of a 3D object are used for lighting. They define the direction that each face will reflect light. They are usually perpendicular to the geometry but can also be defined in other directions.
Example
// <summary>
// This method gets the normal coordinate of a multipatch and does something with it.
// This method must be called on the MCT. Use QueuedTask.Run.
// </summary>
// <param name="multipatch">The input multipatch.</param>
// <param name="patchIndex">The index of the patch (part) for which to get the normal.</param>
public void DoSomethingWithNormalCoordinate(Multipatch multipatch, int patchIndex)
{
  if (multipatch.HasNormals)
  {
    // If the multipatch has normals, then the number of normals is equal to the number of points.
    int numNormals = multipatch.GetPatchPointCount(patchIndex);

    for (int pointIndex = 0; pointIndex < numNormals; pointIndex++)
    {
      Coordinate3D normal = multipatch.GetPatchNormal(patchIndex, pointIndex);

      // Do something with the normal coordinate.
    }
  }
}
Requirements

Target Platforms: Windows 10, Windows 8.1

See Also

Reference

Multipatch Class
Multipatch Members