Sie sind auf Seite 1von 10

Construction Estimating

Chad Harris & Dan Steinmetz MBA 614 Winter 2013

CONSTRUCTION ESTIMATING SOFTWARE


EXECUTIVE SUMMARY
BACKGROUND
While most large construction firms have sophisticated estimating software programs that help simplify the process, many smaller construction firms are often still using pencil and paper to prepare their project bids. For these smaller contractors, this method can be very time consuming. It can also be a very inaccurate method as a result of human error. Incorrect calculations or the omission of important items can result in crippling losses for the contractor.

OVERVIEW
This program is designed to minimize the time a contractor must spend to prepare a bid for a construction project while helping to eliminate the mistakes that can occur when a contractor prepares a bid using pencil, paper, and calculator. To use the program, the contractor must first enter in all of their project information. Cost information is automatically updated from an access database and the internet into the program, and then automatically updated back into the access database as well. Once pricing is up to date, the contractor can begin building an estimate for that project. The program includes a summary sheet with all of the typical necessary categories or trades that need to be estimated when building a home. The summary sheet is linked to individual sheets built specifically for estimation of each trade, such as Flooring or Framing. The contractor has the ability to navigate quickly through each category through links on the summary sheet or through custom buttons on the ribbon. Once an estimate is complete, the contractor can send a proposal to the client via email just by clicking a button on the ribbon. The program can also create pdf files of the proposal and the contractors estimate with the click of a button. The program is also designed to track project costs and compare them with the estimate as a project is being completed. All of these features allow for a quick and accurate estimation of a construction project, saving valuable time and other resources, allowing the contractor to focus more on getting their projects completed.

Chad Harris & Dan Steinmetz

IMPLEMENTATION DOCUMENT
STARTING A NEW PROJECT
The user of this program would have a Template version of the software in a folder somewhere on the hard drive. This template version of the workbook cannot be saved over to prevent a user from deleting any necessary data or disturbing the functionality of the program. Upon opening the template workbook, the user is immediately presented with a User Form that requests information regarding the new project they would like to begin compiling an estimate for. (See Figure 1)

Figure 1 Input New Project Information

This User Form asks the user to enter a number of details about the new project, including the customer name and the customer email. Of the eight input boxes on the form, five of the them require input from the user because the details entered into those input boxes is used later in the process when the completed proposal is emailed to the client. To ensure we receive this information from the user, we included code to check for the details. If the user clicks the OK button without having entered data in all required fields, a message box will pop up alerting the user that required fields were left blank. The user is then sent directly back to the User Form in order to fill in any remaining required fields. The only way for the user to exit this User Form is by completing all required fields and pressing OK, or by pressing the Cancel button. As discussed earlier, we dont want the user to be able to save over the template version of the workbook, so if the user clicks the Cancel button, the template file is simply closed without saving changes. If the user clicks OK, the data entered by the user is then carried over into the project spreadsheets. A new subfolder is then created and the name of the subfolder is the name of the client on the new project. The workbook is then saved in that new subfolder and is also given the name of the client.

Chad Harris & Dan Steinmetz

UPDATE MATERIAL COSTS WITHIN NEW PROJECT


After a user begins a new project and that new project is saved in the new subfolder, the next step in the process would be for the user to update all material costs. Doing this by hand would be complicated since this program contains dozens of worksheets and hundreds of different items. In order to ensure the proposal reflects current material costs, those costs need to be updated each time a user starts a new project estimate. To accomplish this, we have an Update Costs button on our ribbon. (See Figure 2)

Figure 2 Project Ribbon with New Buttons

When the user presses the Update Costs button, the program will connect to an Access database that is located in the same system folder as the original Template file. The table in the Access database contains all the items from the entire program and the idea is that a member of the companys office staff would be tasked with continually updating the costs in this database whenever supplier pricing changed. (See Figure 3)

Chad Harris & Dan Steinmetz

Figure 3 Cost Data within Access Database

By pressing the Update Costs button, the workbook connects to Access, creates a new worksheet called Cost Data, and then populates that worksheet with the data it pulls in from Access. (See Figure 4)

Figure 4 Cost Data Pulled into Excel from Access Database

Some of the items imported from the database have URLs listed. The URLs are where those particular items can be found online at Lowes.com. These would be items that a contractor chooses to buy on a Lowes account rather than buying from a material wholesaler. For the items that do have a lowes.com URL, our code takes each URL and runs a web query to find the cost to buy that product on the company account at Lowes. Once the web query runs, the cost of that particular item is placed into the Cost Data sheet.

Chad Harris & Dan Steinmetz

Once all the cost data has been imported to this Excel workbook and the costs of items available at Lowes have been updated, the program then takes all this cost data and goes line-by-line through that data in order to find that item in the workbook and update with the new cost pulled from Access. The program then takes all of the updated cost information and returns it to the Access database, ensuring that all costs are up to date in both locations. Once all costs throughout the workbook and Access database have been updated, the new Cost Data worksheet is deleted. At this point, the user is ready to begin actually building the estimate. Occasionally, the user will also want to push the updated costs from Lowes back to the Access database. In order to do this, we provided a Push Lowes Costs to Access button. This helps to ensure that the costs for all materials available at Lowes can be updated automatically on a routine basis.

BUILDING AN ESTIMATE
After the new project workbook has been created and all material costs have been updated, the user can now begin to build out the estimate. The program has a total of 33 worksheets the user must go through and enter quantities for the different materials. (See Figure 5) These 33 worksheets are considered the Detail worksheets and each sheet is dedicated to one particular building trade (e.g. roofing, electrical, HVAC, or insulation).

Figure 5 Building the Estimate

Chad Harris & Dan Steinmetz

As the user navigates through each of the 33 Detail worksheets and inputs the quantity for each item, formulas contained within each worksheet calculate the total cost for each item. Formulas also calculate a subtotal at the bottom of each Detail worksheet, and those subtotals are returned to the Cost Breakdown Summary worksheet. As the user navigates through the workbook, we also added several navigation buttons to the ribbon to assist the user. (See Figure 6)

Figure 6 Navigation Buttons

The Previous and Next navigation buttons simply give the user another way to move from sheet to sheet within the workbook. The View Cost Breakdown button takes the user to the CostBreakdownSummary sheet so the user can view the current details at any time while building the estimate. The View Proposal button will take the user directly to the CustomerProposal worksheet so the user can view the details of that proposal as the estimate is built. We felt these buttons were necessary because the workbook has so many worksheets in it. With dozens of worksheets, it saves the user time to be able to click the button and go directly to the cost breakdown sheet or the proposal sheet without having to scroll through all the sheets to find them.

PRINTING BREAKDOWN AND PROPOSAL SHEETS TO PDF


After the user has gone through each of the 33 Details sheets and built out the estimate, we have provided buttons on the ribbon to allow the user to save the CostBreakdownSummary sheet and the CustomerProposal sheets as PDFs. (See Figure 7)

Chad Harris & Dan Steinmetz

Figure 7 PDF of the Customer Proposal

When the Print Proposal to PDF or the Print Breakdown to PDF buttons are pushed, the PDFs are created and named using the Project Name and are put in the subfolder that is also named after the Project Name. Either file can then be accessed in the future by the user so the user doesnt have to open the project workbook back up to get the details of the cost breakdown or the customer proposal.

EMAILING THE CUSTOMER PROPOSAL


Once the project estimate has been completely built out and the cost breakdown summary and customer proposals have been saved as PDFs, our ribbon contains an Email Proposal button. When the user pushes this button, code runs to send an email to the customer. The body of the email is a form letter that is created in Gmail using a text file we created. (See Figure 8)

Figure 8 Text File Used to Create Email to Customer

This text file contains the basic text of the form letter and the variables needed to convert some elements of the form letter to specific project information (e.g. customer name, project name). In order to send the email, our code first connects to Gmail. After connecting to Gmail, a User Form will appear which prompts the user to enter a Username and Password. After the user enters this information, the code then uses the text file to create the body of the email and also attaches the customer proposal to the email. The email is then sent to the client at the address specified in the project workbook. (See Figure 8) At this point, the estimate is complete and the client has received the proposal.

Chad Harris & Dan Steinmetz

Figure 8 Send Email to Client with Proposal Attached

LEARNING AND CONCEPTUAL DIFFICULTIES ENCOUNTERED


One of the biggest things we learned as we worked to complete this project was the importance of setting a detailed plan before beginning to write code. If we had spent more time planning and determining all the features the program needed, it would have saved us some time. For example, we initially added six new buttons to our workbook ribbon. As we moved forward with writing the code, we later determined that the program really needed two more buttons. We then went back and had to add these new buttons. The process would have been much quicker had we determined up front how many new buttons we needed and then been able to add all the new buttons at once. Another thing we learned as we worked on this project is that making a minor change to correct one issue in the program can then lead to unintended interruptions elsewhere within the program. For example, our program creates new files each time a new project is started. Initially, we had this file being saved in the save system folder as the workbook template. We later decided that each individual project should be saved in its own subfolder within the folder where the template is located. After changing the code to create such a subfolder and save the new project in that folder, it then affected other functions of our program, such as the print to PDF. We then had to go to those other sections of code and change the code to reflect the new location of the project workbook. Luckily, we had been good about inserting comments throughout all of our subprocedures, so we were able to quickly locate all the lines of code that needed to be edited to reflect the change. One conceptual difficulty encountered with this project was the database we were using to update material costs each time a new project is started. Because the workbook contains thousands of items, we simply didnt have the time to create a database that contained each of those items. We ended up creating our own database just to show that our code would function properly for this project. This database we created only contains 28 of the items listed in the project workbook. However, it performs the exact functions we need it to perform on this small scale, so we feel confident that if we had the time

Chad Harris & Dan Steinmetz

to build out a database that contained each one of those items, it would still function properly when the Update Costs button was pushed. For a small contractor, the creation of this massive database would be very time consuming. But once the database was created, maintenance would be minimal. Essentially, an office assistant could be tasked with receiving cost changes from suppliers and then just opening the database and changing those costs accordingly. Because most cost changes from suppliers are fairly infrequent, we would assume that the office assistant would only be changing prices on a handful of items at a time. For larger contractors, this would be a complete non-issue because they typically pay for a subscription to a construction database. This means these companies always have access to a complete database of costs without having to be responsible for updating those costs. If this were the case, our code could quickly be edited so that rather than connecting with an internal Access database, it would connect to the external cost database. The cost data from this external database would then be pulled back into the project workbook and could be used to update the material costs in the same way our Access database currently does this.

ASSISTANCE
In writing the code for this project, the only help we received was from Professor Allen. We also referenced several of the in-class projects we wrote throughout the semester. Professor Allen helped us to debug the code that connects us to our Access database. The in-class projects we referenced then helped us correctly extract the data from the database and insert it into the Excel workbook.

Chad Harris & Dan Steinmetz

10

Das könnte Ihnen auch gefallen