5 isn't really a part of 3 really. I guess I wasn't too clear on what I meant by bookmark. Think of the term bookmark as a bookmark in a hard copy book, not a bookmark/link/favorite we use to remember web pages. It's just a point in the undo queue. You tell ArchiCAD to set a bookmark, then perform some work, then when you undo you have the option to undo everything right after the bookmark. Then you could optionally copy/paste, check a dimension, or do any number of tasks that don't affect the undo queue (like save if I get my other undo wish granted) and after you are done you can redo to the next bookmark or back to the end of the queue.
For 5 I am thinking of a certain number of undo queues. Maybe 10 or 20 windows could each have their own undo queue. They could each have maybe up to 500 or 1000 steps in them. This way, you can do some work in a detail window then do some work in section window, realize you screwed up on the detail window, change back to the detail window and undo without affecting the section window. This would take some serious thought about how to implement because we can have hundreds of windows defined in one ArchiCAD file. I would think that the decision about whether a window would have its own undo queue would have to be part of the quickview creation process. And then if you already had 10 or 20 windows with their own undo queues what do you do when you want 21? Do you (Heaven forbid) PURGE the undo queue of the window whose undo queue you don't want separate? Or can Graphisoft somehow merge it into a global undo queue? I would think this would be the most complex of all of my wishes since it is the most dynamic, user configurable, and it is quite non-linear. Even a non-linear global undo queue (ala Photoshop) is (in a way) linear. It's like ripping out a page in a book. The remaining book is still linear.
6 (the non-linear undo queue) is not impossible. Maybe it is with undo the way Graphisoft has designed it, but there are other programs that have non-linear undo queues. Photoshop and 3DSMax (sort of) come to mind. I'm envisioning a complete rewrite of the undo process, which would enable things like this and wish 7. Maybe the entire 1000 (or more) undo steps wouldn't be non-linear. But I would think at least the first 300 should (user-configurable). 100 would be faar too little to be of any use (for me). I can fill up the 99 step undo queue in about 5-10 minutes and only affect a few permanent objects. What use would a non-linear undo queue be if it only affected 3 permanent objects? I can copy to the clipboard, undo, fix the object and paste instead. That's easier. I would like to undo the set of entry doors I did earlier that day while keeping the complex solid element operation I just finished. Maybe wish 1, along with wish 2 would negate this wish a bit. Undo until you find the object unchanged, select it, copy to the clipboard, redo to the end of the undo queue. Delete the object, Paste. I do that now sometimes. Of course then dimensions and other linked things (like walls trimmed to roof and maybe solid element operations) are removed. Which is why the non-linear undo queue would be so useful. Implementation would be an issue. If we have 1000 items in the undo queue and you want to remove the first one, you obviously can't LIST them all in a dialog box. But this is something I think could be figured out with a bit of intelligent design and collaboration with the ArchiCAD user base.
I just thought of another undo wish, A REAL pipe-dream:
8 ) Maybe there could be a timestamp for each undo step. That would be so cool. You query a number and it tells you when the step was performed. Then you can get a guestimate as to how far back to undo.
The thousands of steps might not seem too important right now, but one day when you need it, you will be glad it's there.