@staticmethod
def _is_story_equivalent(face1, face2, tolerance):
    """Check whether the area, XY centerpoint and XY first point match between Face3D.

        Args:
            face1: First Face3D to check.
            face2: Second Face3D to check.
            tolerance: The maximum difference between x, y, and z values at which
                point vertices are considered to be the same.

        Returns:
            True if face1 is geometrically equivalent to face 2 else False.
        """
    cent1 = face1.center
    cent2 = face2.center
    if abs(cent1.x - cent2.x) > tolerance or abs(cent1.y - cent2.y
        ) > tolerance:
        return False
    start1 = face1[0]
    start2 = face2[0]
    if abs(start1.x - start2.x) > tolerance or abs(start1.y - start2.y
        ) > tolerance:
        return False
    area_tol = tolerance ** 2
    if abs(face1.area - face2.area) > area_tol:
        return False
    return True
