  We discuss the construction of finite element spaces of differential forms
which satisfy the crucial assumptions of the finite element exterior calculus,
namely that they can be assembled into subcomplexes of the de Rham complex
which admit commuting projections. We present two families of spaces in the
case of simplicial meshes, and two other families in the case of cubical
meshes. We make use of the exterior calculus and the Koszul complex to define
and understand the spaces. These tools allow us to treat a wide variety of
situations, which are often treated separately, in a unified fashion.
