Content Library Organization

I happened upon a time saving organization work around that I figured I would share. This might help a few people plus I am hoping that minds smarter than mine will think of ways to refine it to be even more useful.
A couple of warnings:
1. This will only work with Windows OS.
2. This involves some knowledge of MS DOS, so if dropping to a command line scares you, I would caution about attempting this. This should be a fairly safe process as it doesn't change any content.
Why this is useful... I found myself constantly searching for certain assets in DS that I use all the time. The Studio "Favorites" function was hit or miss for me. Creating custom actions worked, but it was time consuming and the links were prone to break when Studio or the assets were updated.
The answer I came on was to use Symbolic Links to create "copies" of assets without actually copying anything. This let me create a directory of pseudo short cuts that Studio sees as the original items.
I'm a "Show Don't Tell" sort of person, so this is what my end result looks like:
What you see here is a snippet of my Content Library pane, with the "Favorites" directory showing. All the folders on the left are directories that are linked via a Symbolic Link (Directory Junction). The two icons on the right are specific files that are linked via Symbolic Link (Basic).
The beauty of this set up is that the Content Library and the Smart Content panels can be open at the same time. Allowing you to navigate Smart Content as usual, while still having your Favorite items easily accessible. The Symbolic Links also do not use up any extra hard drive space. They are essentially null file redirects, so if the content is updated, the links will still work (as long as directory names / file names have not changed).
Here is how this is accomplished:
1. Create a new, empty Content directory in Studio. It doesn't matter where.
2. Open a Command line prompt as Administrator.
3. Navigate to the directory in a MS DOS window. Remember if the directory names have spaces in them, you have to type the directory in quotes ( " ).
4. Using the Smart Content panel in Studio, find one of the items you want to link. Right click on it and select "Browse to File Location."
5. A new Windows panel should open showing the directory the favorite file is located in.
6. Click in the Navigation panel and the location of the directory should be highlighted. Click Control-C to copy this information.
7. Switch to the Command Line window and type:
mklink /J "Name of Folder" " < Control-V > "
In this example; "Name of Folder" should be what you'd like the folder to look like in Studio.
Control-V is exactly what it implies, hit Control plus V and the copied directory will be inserted. Make sure that you type a quote sign ( " ) before and after the Control-V.
8. Hit Enter.
That's it. If you switch back to Studio and refresh the Content Directory the new link should appear.
For the example I used, the actual command line would look like this:
mklink /j "Moorland Dragon" "D:\DAZ-Libraries\Dog-Cat-Dragon-Horse\Runtime\Libraries\Character\P3DA_Dragons"
If you screw up the command, no harm done. Nothing is affected. You might get an error message, but since this command doesn't change any files, nothing bad should happen.
If you linked to the wrong directory, no harm done either. You can delete the new file and nothing else will be affected The directory you linked to will be unaffected.




Comments
In theory this should work on macOS too. The command is
ln
(https://apple.stackexchange.com/questions/115646/how-can-i-create-a-symbolic-link-in-terminal)This is a good idea I hadn't really thought of, thanks for sharing! My library is ballooning and its taking me forever to navigate to my common items these days.
Daz Studio does allow you to create link files by copy-andf-paste within the Content Library (or you can create the .djl file yourself in a text editor - it's almost trivial if you create one in DS as an exemplar).
I didn't know that, thanks. It's good to know... I've been shying away from doing this inside DS only because whenever I invest a lot of energy / time in doing it... Something breaks it. Usually an update to either DS or the products themselves.
The Symbolic Links is something I used for other unrelated programs and didn't even consider using it for DS. Frankly, I didn't think it would work until I experimented with it. If I did it within DS I would have to do each individual item, where this is a one line command for a directory of items. I just got so sick of searching for "Ghost," HDRI," and "Render Studio." Those are the items I tend to use with almost every project.
I was on the fence about sharing, only because of how much damage an amateur could do when in the command line interface. That's one of the reasons why I didn't detail that step... if you don't know how to do that, you probably shouldn't attempt this.
I can't help wonder; why not simply use categories?
It'd be a lot less "messy" because you don't have to create virtual copies, the categories can be accessed in both the smart contents pane as well as the content library pane and well... as mentioned: instead of creating virtual copies you're basically setting up references. And all it takes is right clicking on an item and selecting the categories you want to use.
Never used categories for anything. That whole section of the menu is a complete mess and I've never found it useful for finding anything.
A good example is my Figures > People > Female > Real World. It has 900 icons in it, with no discernible way to tell what character goes with which generation.
Using the Symbolic Links lets me organize the directories into a tree that works for me. Plus one command line does the entire directory. With Categories I would need to go into each item and categorize them one at a time. The last time I did something like this, the very next DS version came along and wiped out hours worth of work.
You can make your own Category tree next to the Default and include what you want, where you want, as many times as you want.
If you wanna get really crazy with customizing for your workflow, check out https://www.daz3d.com/forums/discussion/293141/released-visualmenus-commercial I used to have a really cool setup in that. Wiped it out along with my whole library to start from scratch and reorganize at a folder structure level again lol. After it's all installed and organized, gonna have to make a new cascading menu popup.
I'm learning a lot about library organization from this thread. Are any of these methods easily duplicated across multiple workstations?
Symbolic Links can be moved like any other file, but will probably not work on multiple workstations. They function similar to Windows short cuts; so unless the associated files are in exactly the same places, the copied links will not work.
The .djl link files are portable, as long as the target file is correctly installed.
Well, this is timely! I've just finished doing a complete reinstall of Daz and redownloading all my content!
I'm organizing everything under the "Catagories" section on the Content Library panel using "Create a Sub-Catagory...". I'm trying to keep a similar structure to Smart Content, as I rely on that quite a lot (although I know I probably shouldn't). I also sort all of my tattoos in their own catagory, or makeup, or converted items/characters, or commonly-used render settings.
I'd love to know how longtime users organize their content libraries, or if there's a more optimal way to do it. Particularly if there's some way around the "LOCAL USER" thing.
LOCAL USER catches any items that do not belong to a Product, either from manual installation or bad metadata that does not properly define the Product or misplaces the items. (Not to be confused with "Lost and Found" category, which is for items with no content type, like "Prop" or "Materials", defined). You can go to the Content Library (DAZ and/or Poser Formats) and select the folders and items to include in the Product, either new or existing. I believe it only does the immediate folder at a time, so repeat until all items are included. You can then see the Product in the alphanumeric Products list (it ignores leading articles "the", "a" and "an" in case you use them, go to the next word in the name), or right-click on any now-defined item and select "Show Asset in -> Products".
I suggest keeping your custom categories separate from the Default, otherwise that would be quite the rat's nest to navigate. I do the categorization when I install, so I can find everything later, and make sure everything is accounted for.
I've been trying to tame the DS categories organization but I think that it's a lost cause. I just reread the posts above about LOCAL USER and discovered nearly 3,900 items there!!
I have been catgorizing other items from the Lost and Found over the past two weeks or so. In some cases, when I categorize an item, it still also appears under its former categorization as well even though I Remove References from the item, remove it from all categories, and categorize it again. For example, I have 176 items that have been automatically categorized as Props/Food. I created a Breakfast subcategory under Food and dragged several items into it. The items now appear both in the Breakfast subcategory as well as in the Food category. How can I remove the items from the Food category and only have them appear in the Breakfast category.
Thanks in advance.
By the way, I rediscovered VisualMenus last week after reading about in in another post. I'd bought it in 2019 but never explored it. Products like it are the way to go with trying to organize content.
I'm just taking another look at this. I have avoided using Categories because of one time when I spent days creating a comprehensive category structure only to have it all wiped by a DAZ Studio update. Anyhow, I thought that it might be safe to dip my toes again but I quickly realised another big reason for not using Categories: they don't update when the content library changes.
Say I have a category for G8F Clothing which is a duplicate of the Clothing sub-folder in my Content Library. I use DIM to install a new purchase or I move a folder out of it's vendor vanity folder. These changes are not reflected in the Catergory so I end up with category links whic point to non-existing folders.
So the Symbolic Link solution seems to be the answer but I would like to know more about Richard's claim that this can be done within DAZ Studio using Copy & Paste ... how, exactly? I have no idea what a .djl file is.
@marble: The whole point of making custom categories (or, at least, my favourite aspect) is that you don't care where the assets are installed. I let them land where they want (unless it really messes up the folder structure), then make the categories, because I use them exclusively (unless I can't remember where I put it ;-P..) Symbolic links are nothing more than a path to the asset (along with store ID and SKU, if available), and will no longer work if you move the original. You can move the link, sure, but you can also move the categories and their contents, without affecting the functionality.
To make a .djl file, just select the asset(s), right-click and copy. Go to the destination folder, or create one of your liking (right-click on a folder and add a subfolder in your preferred layout), then right-click in the asset list area to paste the contents. It will look like a regular asset with no indication that it is any different; same icon, same name, but the info pane will show the link and the path to the original location.
With either solution, you need to do it after you move the originals, if you still want to do that. Sometimes updates will re-arrange the assets, or re-name them, which does break the links, or the categories. Fortunately that does not happen with every update, but if it does, well, I just do that product again. I now check ahead of time to see if the new contents matches the previous installation (Installed Files vs. Package Files). Select all, copy, paste into notepad++ and compare the two lists. If they do not line up, I uninstall the old one, and delete the metadata from the Product list. Install the new one and re-categorize from scratch. A few more minutes, but no complications.
If you are afraid of losing your categorization, you can export the User Data and re-import it if needed. I make a habit of exporting it at least once a week, copying it out and uploading to the cloud. Just preparing to fail...
@jjoyner: Dragging assets from one category folder to another in Studio makes a copy. You need to select them, right-click and cut. Go to the target folder right-click and Paste Reference. As for the duplicates, are you trying to change the default category? Those are considered "Vendor" data and are read-only. They can be copied, but not deleted. You would need to alter the metadata file and re-import it to get the changes to stick. You can export the data file from the Content DB Editor from the Products view, but beware! Any custom categories will get swept up as Vendor data and mark that branch of any custom categories as read-only, all the way to the root, with no way to undo it (that I know of). If you go that route, re-import the metadata for that product and it should replace any previous metadata. Also, note that re-installing the product will overwrite the exported metadata, so you should copy it to a safe place, or replace the one in the package. If you are making a complete custom category, you should be able to move the references around as much as you like.
I understand what you're saying here but... you don't really need any special method in order to keep both panes open at the same time. I'm not sure if that's what you're implying here or if you're merely commenting on the favorites section, but nothing will stop you from using both panes at once.
A method I use very often myself whenever I'm experimenting with a new(ish) figure or prop: I often load the figure using the smart contents and then look for props and accessories to use while also using the content library to direct me to the product contents of the figure so that I know exactly which parts came with the figure (and thus were meant to be used with him or her) and which parts are just that: other parts.
Ayway, I definitely agree that customizing your categories can be a very useful and rewarding endeavor. I'm not a fan of using 'favorites' because that can also quicky turn into a small mess of its own, but sorting out props in a way that makes most sense to you (or is the most useful) is definitely a good thing. These days I hardly conform to any default categories but instead also often move most things around into multiple categories.
However, dragging and dropping isn't always the best idea. Right clicking and then using the categorize feature is easier because it wil make sure that you don't create any extra clutter.
Thanks for your feedback; I'll explore it further. I'm a relatively recently retired (2019) hobbyist who has been dabbling at this stuff since 2007 (iClone).
It's a "slow and steady wins the race" kind of approach. There are a few traps, pitfalls, and false leads that might or might not be documented somewhere. The worst is one that includes your customization as vendor data. That, and the lack of an undo function. I have nodded off and sleep-clicked a few times to awaken to a "what the heck did I just do" moment of panic.
Actually you don't have to go item by item - http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/specific_ui/create_asset_links/start
Simple answer... I spent three days setting up Categories and such inside DS. Less than a week later, the database was corrupted by an update and I lost all of that.
From that day one I vowed that any other organization I did would be outside of DS to avoid all the wasted time.
Custom categories are saved in metadata and should be exported. In case of damage to the database, reimporting this modified metadata retrieves the categories.
I take your point about categories and, of course, you are right that they are useful in that way. My issue with the Content Library has always been the tedious task of digging through the heirarchy to select items I need to load. I bought and use the Bookmark script but that's not ideal either. So I would like to have a simplified organisation but categories didn't quite suit my purpose and I didn't know that there was such a thing as a .djl file so I will try your method and see if that suits me better. Thank you.
That's fine. To each their own. My method doesn't need to be exported or backed up and works for me.
Sorry but the copy/paste just resulted in a copy of the actual original in the new folder path. The info pane says the path is the new folder, not the original. Looking at the file in Windows Explorer it is a .duf file, not a .djl file.
Sorry, I wasn't clear about that part. It should be done inside Studio in the Content Library, not in a Windows Explorer.
Yes, that's how I did it. In the DAZ Studio Content Library pane - Right-click select an item and copy (in my case the Bardot Outfit shoes), open a self-created folder called "Footwear", Right-Click and paste. The shoes appear as expected but when I hover over the icon and check the info, it tells me that the path to this item is the current folder that it was just pasted into.
There should be both a file path to the original .duf, and a link path to the .djl file.
Nope - just a path to the current ,duf file in the current folder. No .djl file at all.
Okay. I tried it with a "properly" installed file, and it makes the .djl. I tried it with a file that I modified (not installed, not part of a product other than LOCAL USER) and it just makes a copy. So, I guess the link only works with assets that are fully qualified to do so. Don't ask me what, exactly, qualifies it, though.