This dissertation aims to provide a comprehensive account of set theory with urelements. In Chapter 1, I present mathematical and philosophical motivations for studying urelement set theory and lay out the necessary technical preliminaries. Chapter 2 is devoted to the axiomatization of urelement set theory, where I introduce a hierarchy of axioms and discuss how ZFC with urelements should be axiomatized. The breakdown of this hierarchy of axioms in the absence of the Axiom of Choice is also explored. In Chapter 3, I investigate forcing with urelements and develop a new approach that addresses a drawback of the existing machinery. I demonstrate that forcing can preserve, destroy, and recover the axioms isolated in Chapter 2 and discuss how Boolean ultrapowers can be applied in urelement set theory. Chapter 4 delves into class theory with urelements. I first discuss the issue of axiomatizing urelement class theory and then explore the second-order reflection principle with urelements. In particular, assuming large cardinals, I construct a model of second-order reflection where the principle of limitation of size fails.