I am inspired to look for the algorithms of building design. The promise of BIM seems hollow to me because it doesn't use information theory to model a building - it just records links among drawings, specs and material lists. This assists those that come after design but burdens those doing the design. It is not convenient or effective to embed details when creating a design, nor to go back later to embed the info as a separate task.
What is needed is a system that works as a notebook for the designer to document his decisions as he goes along and prompts him for conditional decisions. Whether this can be integrated with a CAD system seems unlikely.
SpecLink (by BSD) shows a better way with specs, but doesn't create a task list for the designer and it is too verbose - no one reads or cares about all the boiler plate; put it all in product literature and industry standards.
There needs to be a conceptual tool that allows for tagging elements of a freehand drawing, that allows for substituting design elements to bring the layout some reality, and that keeps track of both what has been decided and what has yet to be decided. Having made a decision, the world of other decisions gets narrower. All of this gets integrated into an electronic tasks list that modifies its future choice of tasks based on those already made (phase step checklists). For example, having selected ROOF in a conceptual phase step, at the next level the generic type of roof is indicated, say flat, and then the material choice, TPO, leads to a list of conditions, and subsequently list of needed details. You can deal with roofs at each subsequent level or delve into the issue to its complete conclusion.
I think that many of the tools that this concept depends upon already exist. The tricky part is integrating them into an innocuous environment that let's design happen as smoothly as a pencil and tracing paper.