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

Every attribute (pen, fill, linetype, layer, etc) in AC has a unique ID number. Internally, AC handles attributes by their IDs. The names are just for us. The IDs control the interactions between attributes, and the default parameters of objects. When a composite or material has the wrong fill, or an object comes in with a surprising default setting, it's often because IDs have become tangled up.

They don't get tangled up on their own, but it seems like they do, as we create and delete attributes, merge them from other projects, etc. Attribute Manager gives us some ability to manipulate IDs, but it's tricky.

Here's an example of the gymnastics you need in order to work with the antiquated attribute ID system. On the other hand, at least it's feasible. On the final hand, it is unbelievable that we can't edit IDs directly, and really we shouldn't have to interact with them at all.

It's also a good example of how attribute IDs can mess things up, which is why you have to hack them.

In this case, all the openings in the Archicad library default to drawing their overhead lines with linetype ID 4. In the templates that ship with AC, that ID is a dashed line, which is fine. In our templates, ID 4 is the 'Layout' linetype, a dot and dashed thing. So unless you change it, the openings look like this:

Bad Dash
Errrrrrg.

Moral: Generally speaking, attribute IDs are strong and attribute names are weak. AC only cares about the '4', not the name 'Dashed', and not the dashes themselves.

The other moral: Especially where libraries are concerned, it's best not to fight default IDs if you can avoid it. It's better to fix one linetype rather than a whole pile of objects. That's where the gymnastics come in.

Here's the first several of our linetypes as seen in Attribute Manager:

Linetypes, As Is

ID 4 is 'Layout'. ID 8 is 'Dashed', which is the one AC wants to use for the openings. The simplest move is to make 'Dashed' ID 4, but it would be more consistent with our standards to make it a copy of 'Dense Dashed', our typical overhead linetype.

So my goal is: 1) Make a copy of Dense Dashed at ID 4. 2) Delete the Dashed item at ID 8. 3) Move IDs 4 through 7 down a slot.

The only ways to move attributes in AM are to Overwrite, which keeps the ID, and to Append, which gives the attribute the ID immediately following the end of the list. Hm.

In order to create a Dense Dashed at ID 4, I have to append it to a list that ends in 3. To make such a list, I append 'Solid Line' three times...

Append Solid
They're like blocking.

...then append 'Dense Dashed':

Append Dashed

To avoid confusion and make the purpose clear, I'm changing the linetype's name to 'GS Dashed'.

Now I'll append items 4-7, which turns them into items 5-8:

Append Others

Finally, I'll overwrite items 4-8 back onto the project:

Overwrite

Like any AM operation, 'Apply' finishes the job.

As for the right side panel, it's just swap space. When prompted, you needn't save it.

A reasonable question would be: When you shifted the IDs of those other linetypes, didn't that mess something up? Answer: I wouldn't be surprised. That's why I'm doing this in the template, rather than a running project. If I find other conflicts, I'll have to chase them out too. Hopefully, by only shifting four attributes I've contained the damage.