1. A method for generating a collection of takeoff objects from a computer-aided design (CAD) drawing, the method comprising: parsing the CAD drawing to identify a set of drawing objects, the CAD drawing comprising a plurality of different types of drawing objects, each type of drawing object uniquely identified by a different object globally unique identifier (GUID), wherein each identified drawing object is associated with a set of instances having the same object GUID of the associated drawing object; generating a model tree comprising drawing objects and instances from the CAD drawing, wherein the set of instances of a drawing object in the CAD drawing that share the same object GUID are grouped together in the model tree; generating a takeoff object for each of the identified drawing objects of the model tree, the takeoff object configured to store a quantify type, a quantify property, and cost data used to generate a cost estimate for the identified drawing object; prompting a user to specify, for each of the takeoff objects, a value for each of the quantify type, the quantify property, and the cost data; storing, for each of the takeoff objects, the values for each of the quantify type, the quantify property, and the cost data, in the takeoff object; receiving, for each of the takeoff objects, a selection of a takeoff category to be associated with the takeoff object, wherein the takeoff category is associated with one or more additional takeoff objects according to data stored in a database; storing each of the takeoff objects in the CAD drawing; quantifying, for each of the takeoff objects, from the values for the quantify type and the quantify property stored in the takeoff object, a takeoff quantity for the instances of the identified drawing object corresponding to the takeoff object, and computing, from the takeoff quantity and the cost data, the cost estimate for the instances of the identified drawing object corresponding to the takeoff object; and generating a hierarchical takeoff report based on each the takeoff objects, wherein the hierarchical takeoff report displays, as sub-elements to the each of the takeoff categories associated with the takeoff objects, the values for the quantify type, the quantify property, the cost data and the cost estimate for each of the instances of the drawing objects.