Showing posts with label symbol. Show all posts
Showing posts with label symbol. Show all posts

Monday, May 13, 2013

Creating symbols in Omnigraffle

Before Omnigraffle, I used Fireworks for all of my UX wire-framing. I don't miss its clunkiness and its constant crashing. But I do miss its symbols.

A symbol in Fireworks (as in Illustrator) is an object that can have multiple instances in your document. If you change the symbol, every instance of it changes. 

You can see how this would be useful for wire-framing. You might have dozens of instances of, say, a symbol containing an avatar and name that represents a member in a social network:



If you copied an Omnigraffle group for making these member representations, you'd have to update every such group in your document if you now needed to add, say, the member's birthdate.

Creating "symbols" in OmniGraffle


There's a trick in Omnigraffle that lets you accomplish this very thing. (I found this trick on a blog entry by Todd Moy on Viget: he lists some excellent Omnigraffle tips there.) 

In OmniGraffle, you can copy a set of objects "as PDF" (Edit > Copy As > PDF) and then paste that PDF object. And at any time, you can double-click that object to edit the copied objects. Nothing is lost upon this conversion to PDF. After pasting the PDF copy, I always just delete the original.

Double-clicking a PDF object brings up a new OmniGraffle window that contains the copied OmniGraffle objects, and this window links back to the PDF instance you double-clicked:



Choosing File > Save in this link-back window after making your edits updates that PDF object.

Here's the powerful part: editing and then saving any copy that you've made of this PDF object updates all other copies of that PDF object in your document. You edit one, and all copies update.

Gotchas


There are a few things you need to be aware of. 

1. This behavior does not extend to other documents. Because of this, don't put a PDF object in a stencil, because when you drag that object from the stencil into your document, it will be seen as a completely separate object, and not just an instance containing same set of objects. Instead use Copy/Paste or Duplicate within the document at hand.
2. The system does not catalog these objects, so once you delete the last instance, it's gone.
3. If you resize the instance, the objects within it don't resize, but because of the resizing, they are shown as stretched or shrunk. This makes it nearly impossible to make pixel-accurate redlines, as the spacing between objects is not accurately measurable - nor are the font sizes.

To overcome (2) above, I make a layer on the last page of my document (where I put my revisions list), and put a copy of each PDF object on that layer. I also make the layer non-printing, just in case I forget to hide it before exporting to a PDF document.