ArcGIS Pro 3.4 API Reference Guide
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.
Example Version

GetPatchNormal Method
Gets the normal coordinate for the specified patch (part) at the point index.
Syntax
public Coordinate3D GetPatchNormal( 
   int patchIndex,
   int pointIndex
)

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.

Cube with Normals

Example
Get the normal coordinate of a multipatch
// <summary>
// This method gets the normal coordinate of a multipatch and does something with it.
// </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 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also