Reuse reduces raw material use, waste generation and energy consumption caused by building construction. A substantial share of these impacts is contributed by load-bearing systems because of their mass- and energy-intensive production process. Therefore, reusing structural components over multiple service lives has the potential to improve the sustainability of building structures. However, reusing structural elements entails reversing the conventional structural design process: the mechanical and geometric properties of available elements predetermine the geometry and topology of a structure. This paper presents structural optimization techniques: 1) for the design of multiple spatial structures from one stock of elements, and 2) for the synthesis of an optimal stock or kit-of-parts whose elements can be used in multiple structures. The objective of case 1) is to avoid the cutting of stock elements, i.e. to reduce waste. In case 2), the objective is to reuse stock elements in as many structures as possible. In both cases, the assignment of stock elements to the structure is obtained via combinatorial optimization. In addition, geometry optimization is employed to best-fit the structure geometry to the lengths of assigned stock elements. The potential of the proposed methods for large-scale applications is demonstrated via case studies of three spatial structures of complex layout: a dome, two three-chord trusses and a tower.