3. Data

2. Interface | | 4. Parts

Now that you're somewhat familiar with the application's window system it's time to start working. In LD4DStudio your work is stored in packages and a project, so lets talk about those concepts.

Please note that I will also explain the object tree and object inspector piece by piece during this chapter. These interface aspects are so intermixed with the workings of the whole application, it's hard to tell all about it in one place.


A project within LD4DStudio basically stores the state of your interface. A project does not hold any kind of 'real data' itself. You could even say project files are not important at all, they just keep all the stuff you're using for your current work together in a nice container. The actual data for your work will be stored in packages, but more about that later.

In LD4DStudio there's always exactly one project active. If none has been saved or opened there will be simply a 'new project' active. To manage your project select the top level object 'Project' in the object tree. When you do this, you notice a change in the object inspector, it will look somewhat like this:

Project object inspector

The object inspector now displays the 'contents' of the selected object. Its layout will vary among different kinds of objects. For the Project object there's only an 'Information' page available. This will simply report a number of statistics about the current object. At the top of the inspector you'll see a small toolbar with a couple of buttons (Please ignore the crappy button pictures, I'm not an artist). Such a toolbar is available for all objects that have 'actions'. These actions can also be executed by using the right mouse menu of the object. As you might have guessed, the number and nature of the buttons is also dependent on what kind of object is selected.

For a project we got quite 'normal' actions. From left to right the buttons are:

  • "New": This let's you start a new project. Clicking it will open a dialog where you have to choose how you want to start a new project. You can start with a fresh workspace or let the program also create some initial files and a directory for you. For now we use the "Start the new project only" option whenever I ask you to create a new project in this manual.
  • "Load": This lets you select an existing project from disk. While opening, it will restore all desktops and open windows and even the object tree state to how it was when you saved the project.
  • "Save": This will save the current project. If it's a new project you will be asked for a filename first. A project can only be saved if all it's dependencies are saved as well. To ensure this a couple of 'other' save confirmation dialogs might appear before the actual project will be saved to disk.
  • "Save as": This lets you save the project to a new file. Optionally it also lets you save all package files in the project to new files.
  • "Clean up": A project keeps track of every object's open windows even after they're closed. Over time this can make project files quite large and could cause slow loading. By clicking on the cleanup button all state data of closed windows will be deleted. This does not hurt any 'real' data. Opening a window without state information will just use defaults again.

That's about it for projects, so let's talk about packages.


Packages is where things start to get interesting, because a package is where you store your 'real data'. Packages are separate files on disk, so to use one you need to add it to your project. But do note packages are not exclusively part of any particular project. You can add it to as many projects you like. Also any project may use as many packages you like - there is no hard coded limit.

The packages your current project is using can be managed from the 'Packages' object directly under the project object. When selected, the packages object displays a toolbar like the picture below.

Packages object toolbar

From left to right the buttons are:

  • "Add": This lets you select a package from disk to be added. After it has been added it's contents will become available via the object tree.
  • "New": This will add a new empty package.
  • "Save All": This will save all open project package changes. For newly created packages a filename will be asked.
  • "Remove All": This will unload (not delete from disk!) all loaded project packages. It will ask to save changes if any were made.

After being added, a package will appear in the object tree directly below the 'packages' object. By selecting a package object you will be able to edit its contents. The main package object also introduces two new 'pages' to the object inspector area. The pages 'Properties' and 'Notes' are visible when you select an package object, so this is a good moment to explain those kinds of pages.

Package object properties

The property page (Displayed above) is arguably the most important part of any object, because with it you edit its behavior/content at the most basic level. The Package object has four different properties, namely: (Main/Name, Author/Name, Author/EMail and Author/Website). The first property, Name, is read-only. It displays the shortened filename (if the package has been saved, otherwise it will state "<new package>"). The other three properties are used to store strings concerning the author information of this package. Like the information page the property page is not available for all objects. The number and type of properties will vary widely from object to object.

Package object notes

The 'Notes' page (Displayed above) is where you can store reminders/explanations about the object. This page will look always the same (just a big edit field). But, like all other pages, it's not available for all objects.

Reusing packages

Because of the modular approach using packages you can use (and reuse!) the contents of one package in another. For example you could create a package to hold everything to do with a car. Then you create a second package for some kind of robot. By storing these things in different packages you can use them to form any new package, as long you add them to the same project. Now whenever you want to make an animation with a car and/or a robot you 'include' the desired package(s) and off you go. No need to define the same characters over and over again. You can even add basic animation sequences (like the robot walking) in the package and reference them from another animation.

The following illustration might help to get things more clear, but the concept of packages will be addressed plenty of times in the rest of the manual.

Packages example

Organizing project and package files

The key to keeping things manageable is to organize your project and package files from the beginning. Most projects will have at least two files, the project file and a 'main' package file. So it's good practice to make a new folder for these two files. It's also common practice to give the main package of a project the same name as that project. The above (creating a directory, project and package with the same name) is precisely what the second choice in the new project dialog does automatically for you. So it's good practice to take care of it that way on project start.

Additional packages for use with this project alone should be stored in the same folder. Packages you create for use with other projects as well should be stored in some central folder in a higher directory. You could also keep the model LDraw files in the same folder as the package using them to keep things even more together.

For example one could use a directory structure like:

  • Projects
    • Shared Packages
      • Car
        • Car.4pk
        • Car.mpd
      • Robot
        • Robot.4pk
        • Robot.mpd
    • Robot Encounter
      • Robot Encounter.4pj
      • Robot Encounter.4pk
    • Some project 1
    • Some project 2

Please note these are only 'suggestions' - LD4DStudio basically does not care where those files are. Also note that all file references will be stored relatively, so if you move the whole 'projects' folder to a different location, LD4DStudio will still be able to locate the packages used by projects as long the substructure remains the same.

2. Interface | | 4. Parts
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.