Knowledge collaboration design. Theory techniques and applications for collaboration in architecture