Creating and Setting Key Attributes

Right off the bat I should say that I’m still learning how to use attributes. Outlines, map views, links, these I understand, and I see how they help me. Attributes feel very different to me, and I’m a bit intimidated by them. [note]Attributes remind me of databases. The problem is that to me databases seem like sticks of dynamite threatening to blow everything I know into pieces. They promise big returns, but I never trust I’ll be able to implement them in a way that delivers on their promise. Tinderbox substantially lowers the stakes of a database-based (!) approach by reducing the requirement to plan extensively in advance, but my anxieties remain. As a result, I actually find imagining and making attributes more challenging than writing the action scripts that affect and use those I already have.[/note] As a result, I think I tend to use them more casually than many people who use Tinderbox do.

Two Ways of Using Attributes

For now, I mostly use attributes in two ways: as labels indicating stable information that I will use to identify notes visually; and as “tags” to temporarily keep track of time-sensitive information through an agent. The first use is straightforward. If I see “Organization A” in the key attributes of a note, I know the source of the information I’m looking at. The second is a bit more complicated.

Imagine a situation in which I’ve requested some information from a group, course preferences perhaps. To keep track of who has submitted the information and who has not, I would create an attribute called “CoursePreferences,” set it to boolian so I have a checkbox to work with, and then add the attribute to my key attributes. I would then create two simple agents. One would search for boxes that are checked (i.e. a value of “true”); the other, for those that are not (i.e. “false”). [note]I would also limit the agent search to the container with the group members’s notes or by prototype. Otherwise, my agent searching for unchecked boxes would be filled with aliases for every note in my project.[/note] As people submit their material, I would be able to check them off easily and my agents would move their notes automatically from my “checked” to “unchecked” lists. When my “unchecked” agent is empty, I’m done and delete both the attribute and the agents.

For this second situation to be worthwhile, I need to be able to create and delete a user attribute (and to set it as a key attribute) quickly. I give instructions for doing all three tasks below. These are followed by a video that shows what things look like in practice.

Creating an Attribute

To create a new attribute:

  1. Open the Inspector (cmd+1)
  2. Select the Document Inspector
  3. Select “New User Attribute” from the dropdown menu (gear icon)
  4. Enter the name of the new attribute.
  5. Select the kind of value the attribute will contain
  6. Tab or click away to make sure everything registers.

Note: in the video you will see that when I type “Organization” the text goes red. This indicates that the attribute name is already in use or doesn’t conform to the naming rules. Adjust the text to something that shows black, and you are good to go.

Deleting an Attribute

Deleting an attribute is easy.

  1. Open the Inspector (cmd+1)
  2. Select the Document Inspector
  3. Select the attribute to be deleted from the dropdown menu. (Be careful!)
  4. Select “Delete user attribute” from the gear menu.

…and it’s gone. So again, be careful!

Setting (and Resetting) a Key Attribute

Tinderbox 6 has made managing key attributes ridiculously easy. To show an attribute at the top of the text window for a note, simply click the “+” button next to the note title. A pop-up shows all of the current key attributes of the note. Click somewhere in the list, begin typing the name of the attribute you want to add, select it from the menu that pops us, and you’re done.

Remember: If you change the key attributes for a prototype then all of the notes that it controls will inherit the change. That’s a good thing. If the prototype is selected while you create the attribute, you can tick the checkbox to add the new attribute to your key attributes automatically.

If ever you see that a note does not inherit new key attributes from it’s prototype and you would like it to, then you simply click the “+” button and then the “reset” button on the pop-up. This should fix the problem.


Next up: simple on-add actions.

(The next video will be the last in this series. Because I’m out of ideas for the moment. If anyone uses these and has suggestions of things they’d like to see, feel free to drop me an email or send me a tweet. I’ll see what I can do.)

Formatting Shallow Outlines

Outlines and maps are where I do most of my work in Tinderbox, but they function very differently from each other. Effective outlines use a hierarchy of container notes to structure information. Maps organize the notes in a single container using spatial relations drawn onto a flat surface.

Having both tools available to work with the same notes is powerful. Yet, in my early project files, I also found it was easy to wind up in a situation where work I put into organizing my outline limited what kind of work I could do with my maps. (cf. “Boxes within Boxes“)


But there’s a way to avoid this potential problem. Using prototypes and the inspector to adjust typography, you can easily create (or adjust) headings and subheadings that can be used to transform a “deep” outline into a “shallow” structured list that doesn’t limit the scope of the corresponding map view.

In the video below, I use the “Organization Prototype” I created in the last post and  the “Events” prototype that is built into Tinderbox [note]You can install this prototype (and several others) by going to File=>Built in Prototypes… .[/note] to create headings in an outline. To do this:

  1. Select a prototype.
  2. Open the inspector (menu or cmd+1).
  3. Switch to the text inspector tab.
  4. Adjust the prototype’s text attributes to create a heading. (The changes are visible as they are made and affect every note controlled by the prototype you are adjusting.)
  5. Select a second prototype and adjust it’s settings to create a subheading.


Once your headings are created, you can use shift+Tab to “flatten” segments of your outline’s structure without eliminating its organization. [note]The thin lines in my outline are Separators. They are the outline view’s equivalent of Adornments and can be created using the contextual or Note menus. They can be named or unnamed and are a useful supplement to headings.[/note]

Next Post: Creating and Deleting Attributes

Creating and Organizing Prototypes

Prototypes are easy to make and manage. So much so that in my early projects I tried to use them for everything. That didn’t work out so well. These days I have fewer prototypes, but those that remain are one of my main tools for organizing material in my projects.

Making a prototype is as basic as basic can be. You simply:

  1. Create a note (or select one [note]I always make prototypes from new notes so that I know that all the attributes are set to default values. A note that is not new may display the default values without actually BEING a default value. Because default and non-default values that look the same can react differently in certain situations, starting with a fresh note eliminates the possibility of unexpected surprises down the road. Obviously, if I were more on top of things, there’d be no problem with making an existing note a prototype. Also, if I were athletic, I would have muscles.[/note]).
  2. Open the Inspector with the menu or by pressing cmd-1.
  3. Go to the “Properties Inspector” tab.
  4. With the note selected, check “prototype.”

In the video below, I show the process. Near the end, I also point out that the order in which prototypes are displayed in the contextual menu is controlled by the placement of prototypes in your project outline. In other words, you can very easily arrange the contextual menu to suit your needs.



Next post: using prototypes to format shallow outlines.

Tinderbox Videos

I’ve just finished recording four Tinderbox screencap videos and plan to present them as a series over the next week.

The videos start out with simple things but end up with something that can seem (but only seem!) complicated. All of them are about using the inspector, an essential but too easily overlooked tool for working with Tinderbox.

The program:

I hope they’re helpful. And if you find they are, then you should definitely check out Mark Anderson’s Tinderbox Reference File and the Tinderbox User Forum. They are where I go to figure out things that have me stumped.

(Links to the posts will be added to the bullets as they go live.)