On Land

Environment Information
At Rill Architects we run ArchiCAD on Mac OS X. 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
Too Many Things
Kinda looks like a jellyfish
This image shows a few isolated elements from a lighthouse-looking tower structure. The 54 columns are balusters for the stair railing. The 110 objects are wood beams for the roof framing.

By themselves, it's not a lot of elements, or even a lot of polygons.

Yet these guys were found to be the cause of a severe and mysterious performance problem. An elevation containing the tower, which should generate in about 30 seconds, took four minutes to generate with these elements in the model.

The problem: AC has to figure out what's in front of what behind what in front of what, for all those overlapping elements. The calculations quickly become very complex and it takes time.

Here's the tricky part: The columns and objects weren't even visible in the elevation; they weren't going to be drawn at all. But apparently there's no way for AC to know that in advance, so you have to wait an extra 2-4 minutes for every section/elevation to generate.

It was hard to figure out, which took some time, but I'm afraid to wonder how much time was wasted over the weeks since those elements were put in.

BTW, it's not my project.

How I figured it out. I tried tearing out all the old objects, resolving the intermittent report errors, doing a forward merge, and opening the project as a dummy user, none of which worked.

There was a clue in the progress dialog as the elevations generated, but it took me a while to recognize it as such. The progress bar would hang up on 'Processing Objects' and 'Processing Columns'. The objects clue isn't much of a clue; of course there's a lot of objects. Hanging on columns is weirder, so weird that I figured it was a glitch; that was a mistake.

I still suspected mystical corruption, and it's my superstitious belief that corruption develops over time, so I tried deleting the whole first phase of the model, which is not in the current scope of work. (I used a heavy marquee for this.) That worked. I undid the delete.

Then I noticed the tower. I thought such a contraption probably has some funky geometry. I deleted the tower only, and that worked. Then I switched to the thin marquee and tried deleting one story at a time. This was disappointingly ineffective. Now I know that the reason is that the complexity was spread over several stories.

But when I trashed the top story, with all the beam objects, the 'Processing Objects' delay went away, leaving only the 'Columns' delay. I finally realize that the progress dialog wasn't totally off base. If losing objects helps, then we should look for some columns to lose. I did a select-all-columns within the marquee on each story, which finally coughed up the balusters.

Delete. End of slowness.

Tips:

• If you've ruled out file corruption, you need to look for 'heavy' conditions in the model itself.

• If you just did some weird complex modeling and suddenly it slows down, that's a big hint.

• You can tear the model in half and throw it away. Undo is your friend. Saving as is your friend. Start trashing stuff and see if the problem goes away. You can do a similar test by turning off half the layers, then the other half, etc.

• Watch the progress dialog. If it spends a long time on 'Objects' or 'Columns' or whatever, or the time estimate shoots up at a certain stage, that's a clue.

I thought we were supposed to model everything.

This is a good time to review this. We don't 'model everything'. We model what it is efficient to model, which, for a skilled ACer, is a lot of stuff. You model the major pieces of the project. You model stuff that shows up in a lot of views. You model enough to really understand the building. You model enough that annotations can be added easily.

You have to work within your own abilities and within the power of AC on your machine.

I hope it's obvious that you don't model things that cause AC to bog down and start wasting your time. We don't model joists, individual rafters, or other generic framing. Too much work for us, and, it turns out, for AC.

In the tower, some of the framing was intended to be exposed, but most of it was 'architecturally' insignificant and should have been skipped. The balusters are definitely nice to model, but there are situations where you need to compromise to keep the model running smoothly.

Maybe the tower section should be a drawing, or maybe a drawing elevation of the balusters should be pasted into the model SE window. Maybe the balusters should be on a layer that only shows in 3D views and not in section/elevation. That kind of lateral thinking.