The successful implementation of Building Information Models (BIMs) for facility management, maintenance, and operation is highly dependent on the ability to generate such models for existing assets. Generating such BIMs typically requires laser scanning to acquire point clouds and significant post-processing to register the clouds, replace the points with BIM objects, assign semantic relationships and add any additional properties, such as materials. Several research efforts have attempted to reduce the post-processing manual effort by classifying the structural elements and clutter in isolated rooms. They have not however examined the complexity of a whole building. In this paper, we propose a robust framework that can automatically process the point cloud of an entire building, possibly with multiple floors, and classify the points belonging to floors, walls and ceilings. We first extract the planar surfaces by segmenting the point cloud, and then we use contextual reasoning, such as height, orientation, relation to other objects, and local statistics like point density in order to classify them into objects. Experiments were conducted on a registered point cloud of an office building. The results indicated that almost all of the walls and floors/ceilings were correctly clustered in the point cloud