We present a fast and efficient heuristic algorithm for solving a large class of three-dimensional packing problems with the objective of maximizing the average volumetric utilization of containers that might be of different dimensions. The algorithm is a tree-search algorithm that implicitly explores the solution space. The algorithm relies on the fact that, in practice, (i) the number of different types of objects to pack is limited and known in advance, and (ii) the number of occurrences of those objects is sufficiently high to permit use of a pattern approach to solve, at least partially, the problem. Each node of the search tree is solved using an extension of a pallet-loading heuristic developed by Morabito and Morales to generate the...