The usual way we do it is to derive an accurate list of engineering deliverable ( stress reports,P&IDs, data sheets, study reports...). This is fully correlated with the project scope ( no of equipment, plot size, area of building, etc) and can be quite accurate. Then, use man-hours per type...