Providing easy-to-use tools for the creation of detailed three-dimensional content is a key challenge for computer graphics research. Assembly-based modeling is a promising approach to making 3D modeling widely accessible. The advantage of assembly-based modeling is that users need not create new geometry from scratch; modeling reduces to selection and placement of components extracted from a database. A key challenge in assembly-based 3D modeling is the identification of components that are relevant to the modeler's intent. In this paper, we present a probabilistic reasoning approach to assembly-based modeling. Our approach studies a model library to learn how shapes are put together, and uses this knowledge to suggest semantically and stylistically relevant components to the user at each stage of the modeling process. To facilitate rapid creation of detailed 3D models by novices, we have developed a prototype assembly-based modeling tool that allows shapes to be composed via drag-and-drop. Suggested components are shown by category, with more relevant suggestions appearing first. When a component is dragged in, it is snapped and glued to the rest of the model for easy assembly. In our experiments, users with little or no modeling experience became proficient with the tool after only a few minutes of training and constructed detailed, attractive 3D models.