Renaming an item in DEVONthink to match the name of its parent group

When creating a new project folder (group) in DEVONthink, I often make use of Templates. Templates are just files in a folder somewhere that get copied into the DEVONthink database. For example, I have a project starter” Tinderbox document named Basic Project Template.tbx”. When inserting the template file into my DEVONthink project, it uses the same name as the original, which isn’t helpful. DEVONthink is very scriptable, so I wrote an AppleScript to rename the selected document the same as the enclosing group/folder.

Well, I didn’t exactly write it. It’s more like I conjured it.

I first tried copying an existing script that seemed like it would give me a head start and set to modifying that. I didn’t know how to refer to the enclosing group in AppleScript so I started to browse DEVONthink’s dictionary. It occurred to me that maybe I could just ask ChatGPT for help, so I typed:

Write me an applescript to rename an item in DEVONthink to the name of its enclosing folder”

ChatGPT wrote the following:

tell application "DEVONthink 3"
    -- Get the currently selected item
    set selectedItem to content record of viewer window 1
    
    -- Get the enclosing group (folder) of the selected item
    set enclosingGroup to parent 1 of selectedItem
    
    -- Get the name of the enclosing group
    set enclosingGroupName to name of enclosingGroup
    
    -- Get the name of the selected item
    set selectedItemName to name of selectedItem
    
    -- Generate the new name by combining the enclosing group name and the selected item name
    set newName to enclosingGroupName & " - " & selectedItemName
    
    -- Rename the selected item with the new name
    set name of selectedItem to newName
end tell

It worked great on the first try. The only change I made was to remove the selectedItemName” from the final name. What a world.