On Land

Environment Information
At Rill Architects we run ArchiCAD on macOS. If you work at Rill, this is your stuff. If you don't, but you work in ArchiCAD, you may find something interesting. Anybody else, I don't know.
RSS

This is a reprint of the notes for the Libraries & Objects tech meeting a while back.


0. Terms.
Technically, the libraries are full of Library Parts. There are different kinds: Object, Door, Window, Lamp, Property, Macro. Others slip my mind.
For this discussion, I will use the term 'Object' to refer to any Library Part, even though in AC6.5/7 this isn't correct. In AC8, GS has made the terms Library Part and Object interchangeable, so we can start getting used to it.
In AC7, the Load Libraries dialog box was replaced by an uglier but scarcely more functional palette called the Library Manager. I will refer to The Library Manager only. If you run 6.5, understand that Load Libraries does (about) the same thing.

1. What Loading Libraries Means.
When you place a wall, or slab, or whatever, the element becomes part of the project file.
When you place an Object, the Object isn't really in the project. The project file stores the location, name, and parameters of the Object you placed. When it comes time to display the Object from whatever point of view, Archicad looks up the Object in the loaded libraries, sets the parameters, and follows the appropriate scripts to build the Object.
Loading the libraries means making Objects available to be placed.

2. Why You Sometimes Have to Load Libraries and Sometimes You Don't.
The path of the default Libraries is saved with the project file. When you open a file, Archicad looks for the default Libraries in the default location, and, finding them, loads them automatically. If the path isn't available, Archicad is stumped and gives you the Library Manager so you can tell it where the Libraries are.
If you take file home and open it, Archicad will look for the carrot, not find it, and give you the Library Manager. Load the Libraries from your local disk. When you bring the file back, you will have the same scenario as Archicad looks on the path of your home machine. Reintroduce the carrot.

3. When Objects are Missing.
It's because Archicad found an instance of an object, looked it up, and couldn't find it in the loaded libraries. The responsibility of finding it then falls to you. You MUST find them, because missing parts results in screwed-up drawings. The exception is the case when the missing Object doesn't effect what you're doing at that moment, which had better be something pretty narrow, and you need to be sure. Think it over.
What to do next depends on the situation.
If this is a current project, and you're at the office, make sure the carrot is mounted. (In AC8 on OS X, Archicad mounts the volume with the default Libraries when you open the file, if you forgot. Nice.)
If this is a current project, and you're at home, reload from the local disk.
If this is an old project, you may have to find the Objects manually, and then load those folders. (They could be anywhere. As messy as things are now, they used to be much worse.) Old projects mean old Objects, and old Objects aren't all still in use. For this reason, Archives are an excellent idea (see below).
If you have only one or two missing parts, consider the possibilty that there were saved to the wrong location. This happens with Patches very easily.

4. Duplicate Names.
Missing Parts: usually fatal. Duplicate Names: only fatal sometimes. Still, they should be avoided. The worst-case is using one Object when you think it's another, and not getting the expected result.
Don't create duplicates. Name Objects with descriptive, unique names. AC7 will only allow you to save an Object with the same name at the expense of purging the one that already exists. Never, ever, do this, unless you're sure of the situation. AC8 will allow a duplicate name; it will give a warning. Still, don't do it.

5. Kinds of Objects and Their Origins.
Objects can be built using the Archicad tools. 2D Objects are saved from the floor plan. 3D Objects are saved from the 3D window. Anything that can be built or drawn in Archicad can be saved as an Object, from a duplex receptacle to a house. Objects created in this way may serve their purpose, but their power is limited by the fact that they are not parametric.
Powerful Objects are written, by someone trying to solve a problem, in GDL (Geometric Description Language). (Saved Objects can also be in GDL, which is nice for improving them later.) GDL is a very, very light programming language, which makes it by far the most advanced programming language any of you have ever used. (me too.) Writing GDL Objects is an investment, but one that must be made (by at least one person in a firm) in order to get Archicad to behave EXACTLY how you want. Practically everything in this firm that works beautifully does so because of well-developed GDL.
If you save a bracket from the 3D window, you have a good shortcut. If you write a full-featured door, you have a valuable tool.
The other kind of Object we use all the time is the Patch. This is an automatic 2D symbol of given area of drawing. It is the ultimate in non-transferable specialization. Which is not to say they aren't way cool, they are.

6. Parts of an Object File.
The Parameters. They appear in the lower part of the object settings dialog. These are things you can change, and the source of a good Object's power.
2D Symbol. A drawing, which can be shown in the floor plan in conjuction with, or instead of, the 2D script elements.
Scripts. These are text commands which make the stuff you can see. Archicad reads the scripts and does what they say. They include:
Master Script. Information used by the other scripts. The master script is read every time any other script is read.
2D Script. Makes the symbol you see in the floor plan.
3D Script. Make the model polygons you see in the S/E or 3D window.
Parameter Script. Tells the Parameters how to behave. Limits options.
Interface Script. Builds the User Interface, an optional alternate to the parameter list.
The scripts consist of commands of these sorts: Go there. Make this. Come back. Go there. Make this many of these, depending on this. Check this condition, and if it's this, do this, and if it's that, do that.

7. Naming Objects.
As described above under 'Duplicate Names', Object names should be descriptive and they must be unique.
Basically, say what it is. Then add either a project code or your initials. If there's several of something, toss in a number. I find it convenient to put the noun first, then the adjectives. E.g., Bracket Bay PROJ.gsm, rather than Bay Bracket. This keeps the brackets together alphabetically. I usually name Patches by the window they're in for Sections, and by the room for the floor plan. It is imperative to use the project code with patches, as it's very easy to make duplicate names, thereby trashing someone else's patch, for which they are allowed to choke you. I always use a number in a Patch name, even if there probably won't be a second one.
Add a version number for things there's likely to be another version of. E.g., I end the Window names with JAM70, or JAM8. (There will not be an 8.5. I was a fool to think there would be a 7.5. Another story.)

8. What the Project Libraries Are For.
a. Patches. Put them in a folder called 'Patches' inside the Project library folder.
b. One-off things like wall kicks that are customized to are specific project situation.
c. Custom things like brackets. One day we may decide they're nice and move them to the R&D Standard LIB. Later.
I use the project libraries as a development zone where I can develop new stuff out of sight of everyone, then when I get something good, I move stuff over to the standard LIB.

9. Project Archives.
As described above, the project file doesn't contain the Objects. If you open a project without the required libraries accessible, the Objects will not be drawn or built and things will be screwed up. An archive (extension: .PLA) is a special project file which contains the library parts. It is recommeneded that projects which are completed be saved as an archive.
When an archive is opened, it will build a library of the parts contained within it. You will be prompted for the desired location of this library. The library will be built, and the project will open, with no missing parts or need for the Library Manager. This saves you the hassle of searching all over for ancient Objects to go with your ancient project.
Note that this library is not complete. It contains only the Objects that were actually placed in the project. If you are opening an archive with the intention of pushing the project forward, you should Save As under a new name with a current date, and load the libraries from the standard location. If there are any missing parts at that point, move the Objects from the archive library to the Project Library of the project.