Toggle link type visibility


(David Bertenshaw) #1

Hi,

I’ve been looking but can’t find a way to toggle the visibility of multiple link types. I can do it one-by-one in the inspector of course, but I’m looking for a quicker way.

Scenario: planning a novel where I want to map different sorts of links. E.g some are personal (x hates z, x loves y, y loves z, z wishes x and y would go away and they all despise w etc) while some are related to conflicts and so on.

I can map the two types easily enough with a naming convention (p-loves, p-hates etc – p for personal) and attribute (dashed etc) and colour differentiating the individual type within a group.

What I can’t find is a way to turn all the personal links on and off. I was hoping there’d be a suitable attribute + action (if ($LinkType.beginsWith(“p-”)) etc) but I can’t find one.

Is this possible or is it purely a manual process?

Many thanks.


(David Bertenshaw) #3

Thanks for the quick reply, Paul.

I suppose I could cobble something together with Keyboard Maestro and changing the filename of the custom xml file to make it visible to TBX.

  1. Close TBX
  2. Rename the custom xml file in application support accordingly
  3. Restart TBX

Better than going through each link type and toggling the visibility perhaps.

I’ll have a play and see how far I get.

thanks!


(David Bertenshaw) #5

Just tried it.

LinkTypes.xml is I think only for new TBX files.

For existing files the linkType info is within the tbx file itself, so it would mean a search and replace of the working file. It can still be done, but it’s getting a bit more risky… I think I’ll leave it for today as I’m not really sure what I’m doing and I’ll waste more time playing with it than I will just going through the inspector…

Thanks very much for your help.


(Mark Anderson) #6

That’s certainly my understanding. It was there for those who wanted their own (additional) default set of links.

What’s asked for needs new or extended functionality to existing action codes so I’d suggest mailing in a feature request.


(David Bertenshaw) #7

Cheers Mark.

Will do.


(Paul Walters) #8

Ok. I deleted all the bad advice so as not to mislead others. Sorry :zipper_mouth:


(eastgate) #9

At present, link type editing is purely manual.

How many link types are you working with?


(David Bertenshaw) #10

Hi Mark,

I’m still finalising that – I asked the question because as I came across the issue as I was developing the idea, rather than that I have a set number of links that must be included.

But basically, I think it will useful for me to have the same planning map for at least two ideas: conflicts/actions and relationships, so that I can choose easily to disable one or both to unclutter the map a little, without losing information.

So, a set of linktypes to cover the relationships between characters (p-loves, p-hates, p-envies, p-distrusts etc) and another set of links to cover actions arising out of conflicts (e.g. Steve > ‘a-feeds’ > Racial Tension, Peter > ‘a-investigates’ > Fred’s murder etc)

In all there are about 12 link types so far.

The idea would be that I could switch off all the a-links at once to see just the ‘relationships’ map, or switch the p-links off to see just the conflict actions.

Of course I can do this all manually, but it’s a bit repetitive, so I wondered if there was a stamp action to speed it up. I’ve tried other ideas (such as having two agents – but of course the links don’t persist in aliases so it’s not quite as convenient as having the one map.)

But I’ll stress – I’m only testing these ideas out, so I’m happy to hear advice about better ways to go about this.

Thanks

David


(John Rowney ) #11

I hope I am not hijacking this thread but I have a very similar case. I am moving house and i have created a (large, for me) map of all the “stuff” in the old house that needs to go into specific rooms/locations in the new house. I am using links to make these relationships.

I appreciate that it has already been stated that link typing is manual, but a thought for a future feature would be something along the lines of:

if($LinkDestination=Garage){$LinkType=Garage} or similar.

The key element that relates to the original poster’s question is the following. Say I have already manually defined a bunch of link types (Garage, Kitchen, Bathroom, …)to define the rooms etc. i the new house, how do I quickly create a view that only shows a single link type, such as Garage. This would very quickly give me a simple view of all the stuff (junk?) that is going in the new Garage.

Thanks in advance,

john


(Mark Anderson) #12

Assuming ‘Garage’ is a unique note name:

if($LinkDestination=="Garage"){linkTo("Garage","Garage"}

See linkTo(). Happily if a link of that direction and link type exist no new link is created otherwise the items are linked.

Now you’ve generated the links you can make an agent with the query:

linkedTo("Garage","Garage")

This should match all the item intended for the Garage. See linkedTo().


(John Rowney ) #13

Wow! Thanks Mark - I was already closer than I thought.

John


(John Rowney ) #14

The final step of this process is to identify “orphan” items that have neither inbound nor outbound links. I have tried setting up an Agent with the Query

linkedTo("*") != true & linkedFrom != true

and then tried

!(linkedFrom("") & linkedTo(""))

Both forms return everything in my entire Map!

Further guidance most appreciated.

John


(John Rowney ) #15

Edit

the second form was

!(linkedFrom("") & linkedTo(""))

John


(John Rowney ) #16

Hmmmm

“*” [“asterisk”] is getting converted to “” for some reason.


(eastgate) #17

Why not use

$InboundLinkCount==0 & $OutboundLinkCount==0


(John Rowney ) #18

Mark,

Am getting exactly the same result as before. Please see see simple test file Link_Testing.tbx (60.9 KB)

John


(Mark Anderson) #19

Overlooked here is that when/whether aliases share their original’s basic links (text links are never instrinsic.

Your agent ‘HasNoLink’ has this code:

$OutboundLinkCount==0 & $InboundLinkCount==0 & JDRitem

It finds all three notes. To find just ‘Item1’ I believe you need to use:

$OutboundLinkCount(original)==0 & $InboundLinkCount(original)==0 & $JDRitem

Sidenote: the last term in the original query incorrectly omits the ‘$’ to the attribute name. As it happens TTBX correctly guesses the user intends to refer to the attribute ‘JDRitem’ as opposed to a string literal of that name. However, the correct syntax is ‘$JDRitem’.