In current research I have come across the desire for quick access to the Last used command.
The need is fairly well understood and there are several precedents. Anyhow, I have come across a simple question I wanted to get some quick feedback on.
You are picking up some marks on a plan. You place several dimension strings and then zoom the view to another area. You select a wall with the modify tool and change its type. At this point you wish to place some additional dimensions.
You right-click and choose "Repeat %last command%" or hit the "Enter" key.
Question:
What is the %last command%? Zoom or Dimension? Should view navigation be included or excluded?
AutoCAD includes all commands. I could also see a desire to separate navigation from modeling and editing. Revit has some precedent for treating these separately such as the "Previous Pan/Zoom" command availability in addition to "Undo".
I'd appreciate any thoughts, opinions, or examples.
_erik
As far as I know, AutoCAD doesn't include navigation in the "Repeat last command" option. I think this only happens when you undo a command, that it takes you back through the navigation as well.
I would prefer Revit keep navigation out of any repeat-last-command option and any undo actions.
Posted by: Donnie | July 15, 2009 at 12:18 PM
I agree with Donnie. Keep navigation out of any repeat-last-command option and any undo actions.
Posted by: ixxx69 | July 15, 2009 at 12:48 PM
I expected this would be the preference but its good to check. I just went into ACAD and the ENTER key is definitely considering zooms.
Posted by: Anthony Hauck | July 15, 2009 at 01:42 PM
Ditto - keep navigation out of repeat last command.
Posted by: Gary | July 15, 2009 at 01:45 PM
Sorry Erik, should've been more specific. Wheelmouse navigation isn't included, but typed navigation commands (who still does that??? j/k) are.
Posted by: Donnie | July 15, 2009 at 01:50 PM
Ah. I stopped daily ACAD use with release 14 and have been unable to ever forget the typed commands. Those memory cells are wrote. ; )
Posted by: Anthony Hauck | July 15, 2009 at 03:11 PM
Autocad does include navigation commands in the last command, unless the navigation was accomplished solely via the mouse. All navigation acts are included in Undo. This disctinction is repeated with object edits in that if one changes an object properties with CHPROP, that is what is invoked by pressing Enter, but if the property is changed directly in the Proprties palette, then LastCommand will ignore that act. Undo will not; that change is still undo-able. (As a last aside about Autocad, commands invoked by gripedits are not repeatable; this is moderately confusing for new users, since proper commands are invoked and visible on the command line.)
I think that this behavior is a reasonably good model: all actual commands that are issued by the user go into the LastCommand stack (which really is a stack, just use the up arrow to walk up the history). Changes to objects done in a direct manner do not invoke commands, and thus those commands are not in the LastCommand stack, but can be undone.
In the scenario posited, an element was modified "directly", so that should not be repeated. The dimension command is what ought to be in LastCommand, but if Match Type had been used, then LastCommand would invoke Match Type again.
The real problem here is, "What is a command". Until this can be clearly defined, one cannot answer the question, "what constitutes the last command?" I think Revit really needs this kind of basic philosophy, and once established, to adhere to it. Some potentially thorny possibilities: would Move ever be in LastCommand? Since it requires a selection set before being invoked, this presents a problem. What happens if my last act was to change a Revit setting like Line Patterns? Modify a view's Visbility Graphics, initiated by a keyboard shorcut "command"? Borrow an element? Change the current Workset?
In the pre-2010 interface, I might have suggested that everything which can be invoked via the Design Bar, or a tool icon ought to be elegible for LastCommand, but the type selector and Options Bars are not commands per se, and thus they are not included. This conveniently leaves out things like accessing the Materials in a project, or changing Keynoting settings, things that are not, generally speaking, acts which one desires to be readily repeatable.
But in 2010, I think the distinction is a lot harder, since there is no real hierarchy which can inform the user as to what behavior they might expect. One could say that everything other than the Manage tab ought to be eligible, but then one has to answer for all those commands only available in specific contexts. I guesss that since once a contextual command is completed the context is left, then the command cannot be repeated. This would be more confusing, I'm afraid. As an advocate for de-contextualizing many commands (and by extension the interface) I'll repeat the suggestion to allow most (all?) commands to be invoked with empty selection sets, prompting when necessary. While only a partial solution, this then simplifies the discussion as to what constitutes a command.
And finally, what about extensions? The path forward ought to include suggested behavior so that external developers can apply the logic to give users a consistent experience.
By the way, invoking LastCommand via a right-click--menu-selection is not especially desirable; it needs to be available in the keyboard shortcut definitions. In one place, not nine.
Posted by: Joel Osburn | July 15, 2009 at 03:22 PM
I would include any change to the model or annotation of the model as a command.
Changes to Revit settings (including materials, units, etc.) and changes from one view to another or zoom/pan within a view would not be commands.
Posted by: Bob | July 15, 2009 at 03:56 PM
Keyboard shortcuts are definitely known. A previous post explained the root of the current awkwardness. last command would certainly be a good candidate for a shortcut but would still need some UI affordable for discoverability.
The same commands eligible for shortcuts would also be top level UI. right now this is similar to any comands available to keyboard shortcuts. A concept is in a stack of recent commands the last command would be in fact the last enabled command. This would prevent some of the weirdness of the last command being used in sketch or being called in a view that does not support it.
Posted by: Anthony Hauck | July 15, 2009 at 05:04 PM
I would say that zooming or panning would not be included. Usually if you need to zoom in closer between "commands" then one zoom should get you there, so there should be no further zooming required and with the scroll wheel, etc. it should be easier to zoom anyway. In AutoCAD you have transparent zooms that can be invoked mid-command.
If you need to select an object first then that command should be repeated only if you have selected another object
If you don't need to select an object first, as in dimensions or text, then that command should be repeated.
So from the above you could end up with a scenario thus: Place a dimension, select a wall and change its type, place another dimension. As you have not selected another wall then the repeated command would be dimension.
Finally, if we are trying to have a consistent look and feel between software then why wouldn't the enter key (or space bar) be used to repeat the last command.
Posted by: PaulB | July 15, 2009 at 08:44 PM
As pointed out in the posts above, there seems to be an issue when it comes to contextual commands.
Just to through something out here, what if you had a Contextual Stack for Objects?
For instance, a Wall object can be Moved. But it can also have the Profile edited. A Door object can also be moved, but cannot have it's Profile edited.
So say you take the following process;
1. Draw a Wall
2. Place a Door
3. Move the Door
4. Edit the Wall's Profile
5. Select both Wall and Door
6. Use the Last Command function...
In this instance, the Last Command would be the Move command, as it is common to all selected objects, being the Wall and Door.
Should only the Wall had been selected it would have run the Edit Profile command. If it was the Door, then the Move command.
So in a context objects scenario the Last Command would have started at the top of the Last Command stack and run down it until it hits a command that satisfies the criteria. I just don't know if this would get confusing though.
I too don't want to see zooming and panning in the Last Command. It was irritating enough in AutoCAD without it coming to Revit.
Posted by: Chad | July 15, 2009 at 10:20 PM
I think that the last command functionality should be limited to creation commands that do not require and object to be selected in order to be invoked.
Creating a history stack that is evaluated as part of the last command action would be too confusing for the user as it would not be very predictable. I would not want to keep in mind what my last few commands were, in order to be able to predict what command would be invoked.
Another option is to place a prompt on the cursor when the user executes "last command" on a command that requires an object to be selected. The prompt would be "Select Objects to %Last Command%".
The "last command" action could be invoked with a double spacebar hit, and the object selection set in the example discussed above could be accepted with a single spacebar hit.
Posted by: Rafael | July 15, 2009 at 11:58 PM
Definitely do not include the view navigation commands. The question is, how best to access the last command? Right-click is ok, but maybe it could list the last two or three to choose from a short list? Keyboard shortcut or Enter sounds way too dangerous for invoking the last command as the user won't be 100% sure what they'll get (5 minute wait for Purge ain't fun).
What about the way RevPac does it - a small toolbar that keeps the last few used icons (more precisiely, the most frequently used recently)? I'm not keen on that as it is more clutter on the screen - might be better if a right-click or keyboard shortcut revealed a temporary icon menu just like the steering wheel "View previous". This would give the user a clear & quick choice of what they wanted to do again; context sensitive commands no longer applicable would either be greyed out or missing from that list.
Posted by: Tim Waldock | July 16, 2009 at 07:21 AM
Don't include navigation commands. ditto that.
however, sometimes (as it's been noted) I don't need the last command - I need the one before that. Or the last dialog box. The real beauty of a last command routine is the ability to draw from your short term memory and quickly repeat what you just recently did in an expidited fashion.
What about adding the last 3 commands (and dialog boxes) to the right-click context menu? That way when I add a door, edit the properties, then zoom to a new location I can right-click and add a new door right away.
Posted by: eddy | July 16, 2009 at 09:05 AM
I'm concerned this is getting too complicated. Right-clicks, dialog boxes, pop-ups, etc. seem to negate the point of LastCommand. It should be invoked by the spacebar and enter key (except of course when typing within a note, label, etc.)
The LastCommand should be the _last command_, whether that's element creation, modification, editing, etc. Generally speaking, only navigation and selection of elements should be excluded (an argument could be made either way about things like settings, properties, etc - I'm not sure I have strong feelings one way or the other).
My most common use of LastCommand is when I intentionally or prematurely (because I'm not thinking ahead) end the use of a command.
Examples:
I'm drawing a chain of walls, reach the end of a chain, exit the command, and then want to draw more walls.
I'm aligning elements to another element, finish with those elements, exit the command, and then want to align different elements.
Dimensioning, text notes, tagging.
The LastCommand shouldn't be considered a way to "fix" or compensate for the problems of the ribbon. If this feature had been implemented in Revit Classic, it should work the same way in 2010.
Posted by: ixxx69 | July 16, 2009 at 10:34 AM
ixxx69
I don't think this topic has anything to do with with the ribbon problems. This has never been part of Revit and so therefore could be considered a new/improvement feature.
Generally
I also believe we are getting way too complicated, the whole idea of repeating the last command is to speed up - what you just cancelled/finished. This is not another way to quickly select your last x number of commands, by the time you have scrolled through the list you would have been quicker to go back to the ribbon or shortcut keys. The more complicated this one single feature is the more it doen't work for everybody.
Posted by: PaulB | July 16, 2009 at 06:59 PM
I definetely agree that navigation should NOT be included. Panning, zooming, switching views, etc, should not be included in RLC.
How should it be implemented? Space bar is a tough sell, since if anything is selected, space bar activates flip controls. In AUTOCAD we can use right click, but we have OPTIONS:
Right click can act differently when either:
1. Time sensitive (how long you hold it)
2. If items are selected
3. If nothing is selected.
This has to be addressed. For instance: If im deleting items, i very well may have a door selected when i go for RLC. If i hit space bar, is it to delete door or flip door?
I also agree that putting it in the right click drop down isnt IDEAL since then its two clicks away at best. Maybe a slightly settable right click option, like autocad, would work. Or another key, that would be a ONE KEY STROKE command. I could see it being Enter...
Posted by: Aaron Maller (twiceroadsfool) | July 16, 2009 at 07:06 PM
I agree with keeping it simple. Its good to see people express the different angles and thoughts on the matter. Its also reassuring to see consistent data that confirms my suspicion on the view navigation exclusion. Thank you all.
Posted by: Anthony Hauck | July 16, 2009 at 07:06 PM
Navigation should not be included. We already have an option for last/zoom pan so leave that in and just stick with the modelling access.
Posted by: Adam | July 16, 2009 at 08:01 PM
A suggestion for "Enter" input
Have a timed right click
short is "Enter"
long is Context menu
this function could be switched on in the Options menu with a Time parameter to customize what is short and long.
The Enter Key is aways awkward as most of the shortcut keys are on the left side of the Keyboard.
So a quick right click would get you back to the last command.
And what about using a Ctrl- Short Right Click
to move back in the Rewind Stack.
Posted by: mruehr | July 16, 2009 at 09:11 PM
In the same way that AutoCAD has some Options for the Right-Click, I would prefer something similar in Revit.
I would like the option to use the Spacebar to run the previous command. I would happily forego the ability to flip an object, since we already have the ability to do this using the flip arrows.
It's about time Revit starts getting some more users options and remembering user settings.
Posted by: Chad | July 17, 2009 at 01:14 AM
I agree that navigation should not be included in a "Last Command" tool. This function is highly desired in the user interface. You are on to something.
Posted by: Greg Hale | July 20, 2009 at 11:29 AM
@ PaulB - Just for the record, my point _was_ that this shouldn't have anything to do with the Ribbon.
Posted by: ixxx69 | July 20, 2009 at 12:30 PM
raises an interesting question...it seems you would have to change Revit's UI to support noun/verb or verb/noun actions like AutoCAD in order for Last Command to really work well (AutoCAD doesn't, usually, care if you invoke the command and then select the object or select the object and then invoke a command).
Navigation, I would prefer stay out of last command.
Posted by: brad | July 20, 2009 at 11:17 PM
You can see here :
http://forums.augi.com/showthread.php?t=84766
the work made by a french AUGI user about this feature.
Please Take a look to the other functions developped.
This is what we use !
Posted by: Gravelin | July 24, 2009 at 07:54 AM
Make command´s work like in Microstation.
Posted by: armindo | July 25, 2009 at 05:24 AM
It was said several times above...KISS. No navigation commands and no "timed Enters", right-click options, mouse roll-overs/hovers, Ctrl-clicks, etc. This is purely a desire for the absolute last command you entered or used on object to manipulate or annotate in some fashion. It was very useful in AutoCAD and would be in REVIT too. There are many instances (as one response noted) where either by not realizing you were going to need the command again or by sequence of operations you moved around on the model and now need exactly the same command again...and who wants to try and remember three commands deep? that's what the computer is for!
Posted by: Stewart W. | July 28, 2009 at 07:33 AM