16. Library

15. Export | | 17. Using input devices

Now we have discussed everything a package can hold it's time to go back to the briefly mentioned library. The library holds things you plan to use in multiple projects, like your favorite actors.

The library is divided into two parts, the suggestion database and packages.

Library packages

Library packages, usage wise, are exactly the same as project packages. You can add or create new packages to/for it in the same way.

The difference is, library packages will be loaded independent from the current project. This way you can use stuff (actors, sequences) from these packages in any currently loaded project. The other way around isn't true though. Packages in the library can't 'see' actors, sequences etc present in the project packages. This is to prevent circular dependencies. It also not necessary because library packages should be generic.

One thing to remember when using library packages, is the fact you create dependencies. You need to keep this in mind when sending a project to a friend to make sure he/she has the needed used packages in his/her library.

If some depended package is not present in the library you can always add it later or even decide to add it to the project instead. LD4DStudio will take care of all internal mappings whenever you add or remove a package. References to objects in a different package will not be deleted upon closing that package.

References will only be removed if you delete the said object in the package. Of course this can only be done for packages currently loaded. Other packages referring to the deleted object will complain about an 'unknown/missing target' upon opening. Such warnings can always be fixed by editing the package in question.

The suggestion database

While editing parts we used joint points suggested by the suggestion database. These suggestions are stored in the suggestion database. By default it holds information for over 150 LDraw parts, but you might want to extend the database for some custom joint locations or (unofficial) LDraw parts not yet included in the database.

Extending the database is quite easy when you have mastered the art of part editing. Let's start by looking at the "Suggestion database" object located under the "Library" object.


The object has no properties only buttons that let you manage suggestion packages. The buttons are (from left to right):

AddLet's you add an existing suggestion package to library.
NewStarts a new suggestion package.
Save allSaves all changes in loaded suggestion packages.
Remove allRemoves all loaded suggestion packages from the library.

Suggestion packages

Suggestion packages are not much different form 'normal' packages. The only difference is you can only store parts in them. Lets examine one of the default packages. Select the "Hinges" package and take a look at it's properties.


The object has four buttons, namely:

SaveSaves the suggestion package changes.
Save asSaves the suggestion package by a new name. The new suggestion package will become part of the library. The old one will be removed.
RemoveRemove this suggestion package from the library.
Add partAdd a new part to the package.

The object has six properties. Name and the author block are self explanatory, but the remaining two need some explaining.

Relative to LDraw dirThis indicates if the base directory property should be handled relatively to the system LDraw directory. This is useful because the LDraw directory location differs from system to system, but most parts in the package will be direct links to LDraw parts. So by using this property you're able to create suggestion packages without dependencies to the LDraw location.
Base directoryThis is the default directory to look in for new part additions. By default it's "parts" and in combination with the "Relative to LDraw dir" property set to true it gives you the LDraw library parts folder.

Suggestion parts

Adding a part is peanuts when the above two properties are set correctly. But for the moment let's limit ourselves to examining the existing parts in the hinges package. There are over 60 parts in this package, lets select the first one "Hinge 1 x 2 base".

The object inspector shows nothing special, only one property needs extra explaining namely: "Ignore subparts". By default all LDraw parts using this LDraw part will 'inherit' suggestion points defined in this LDraw part, but in some situations this is unwanted. For example many parts in the LDraw library are mirrors of others. If the first one has a suggestion the mirror one will inherit the same point. Most of the time, though, the suggestion for the mirrored LDraw part most be different, so we want to define it in the part itself. If you could not ignore the inherited points, you would end up with two suggestions in such a part. For an example of this look at the "Door 1 x 3 x 2 Left" and "Door 1 x 3 x 2 Right" parts in the "Doors" suggestion package.

Suggestion part editor

By double clicking the part object you open it's editing window. You will find it very familiar. The editor is exactly the same as a normal package part editor in point editing mode.

Edit window

Because you're familiar with the part editing window I don't see the need to explain it again for this suggestion DB part edit window.

But before you begin to add and edit point suggestions yourself there's one thing I need to warn you about. The packages you see are part of the LD4DStudio installation, therefore future versions may include changes for them. If you add stuff to them you will lose your work, so it's best to create your own suggestion package(s) for parts you want points for in the suggestion database.

15. Export | | 17. Using input devices
Best viewed with Firefox 2, Seamonkey or IE 7 at 1024x768 or higher resolution.
LEGO is a registered trademark of the LEGO Group, which does not sponsor, endorse, or authorize this website.