How to obtain the area of a single face of a mesh?

If you want to compute face areas of a RhinoCommon mesh you could also implement e.g. Heron’s formula, like so:

import math

def triangleArea(ptA,ptB,ptC):
    
    """ Compute area of triangle using Heron's Formula """
    
    dA = ptB.DistanceTo(ptC)
    dB = ptA.DistanceTo(ptC)
    dC = ptA.DistanceTo(ptB)
    p = (dA+dB+dC)/2
    area = math.sqrt(p*(p-dA)*(p-dB)*(p-dC))
    
    return area

def computeMeshFaceAreas(mesh):
    
    """ Computes the face areas for a mesh using triangleArea """
    
    faceAreas = []
    vts = mesh.Vertices
    for f in mesh.Faces:
        if f.IsTriangle:
            fA = triangleArea(vts[f.A],vts[f.B],vts[f.C])
        elif f.IsQuad:
            fA1 = triangleArea(vts[f.A],vts[f.B],vts[f.C])
            fA2 = triangleArea(vts[f.A],vts[f.C],vts[f.D])
            fA = fA1 + fA2
        faceAreas.append(fA)
        
    return faceAreas
2 Likes