Generating a sequence of motions for removing components in a three-dimensional assembly, one at a time, is considered—the robot motion being strictly translational. We map the boundary representation of a given assembly to a tree structure called Disassembly Tree (DT). Traversing the DT in pre- and post-order yields a minimal sequence of operations for disassembly and assembly, respectively. In this paper, an assembly is classified by the logical complexity of its DT (an ordered graph whose nodes are components of the given assembly) and by the geometric complexity of the nodes in DT (in terms of the number of motions needed to remove a single component). Next, whether a component can be removed in one motion is described as a predicate. This predicate is then used in an algorithm for constructing the DT. For a class of assemblies that exhibit total ordering, the algorithm decides whether each component can be removed in a single motion, by constructing a DT in O(N log N) time, on the average, where N is the total number of mating faces in the assembly.