<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def section_multiplane(self, plane_origin, plane_normal, heights):
 """ Return multiple parallel cross sections of the current mesh in 2D. Parameters --------- plane_normal: (3) vector for plane normal Normal vector of section plane plane_origin : (3,) float Point on the cross section plane heights : (n,) float Each section is offset by height along the plane normal. Returns --------- paths : (n,) Path2D or None 2D cross sections at specified heights. path.metadata['to_3D'] contains transform to return 2D section back into 3D space. """

        # turn line segments into Path2D/Path3D objects
        from .exchange.load import load_path
        # do a multiplane intersection
        lines, transforms, faces = intersections.mesh_multiplane(
            mesh=self,
            plane_normal=plane_normal,
            plane_origin=plane_origin,
            heights=heights)

        # turn the line segments into Path2D objects
        paths = [None] * len(lines)
        for index, L, T in zip(range(len(lines)),
                               lines,
                               transforms):
            if len(L) > 0:
                paths[index] = load_path(
                    L, metadata={'to_3D': T})
        return paths