One topic that you did not cover – using the journal file with Revit external commands.
Here are some things that I've noticed in the past:
- If your external command has dialog boxes, your application will freeze if Revit is being driven by a journal.
- The alternative to this is to use the JournalData StringStringMap in the ExternalCommandData which is passed to you.
- You can read values from the StringStringMap and use them instead of your dialog boxes.
- You can write the values at the end of your command – based on what the user selected – so that your existing commands can be played back.
- When last I looked at it (2009?) there were problems playing back your command if it included calls to select elements using PickOne or WindowSelect.
Thank you Matt for these valuable hints!