Wednesday, October 7, 2009

On Learning Revit, #1

So, I'm knee deep in learning Revit. Oh, my holy God. I've instantly turned into an idiot. I forgot what it was like to be such a dumb newbie at a CAD program. But at the same time, I can't help but feel great about the potential of what is to come, both personally, professionally and in the industry as a whole.

When I started to learn AutoCAD - Release 2-point-something back in 1987 - I had no idea the depth of the program. Learning it was simple - I "got" about 80% of it after two or three classes. Of course, we had to learn only a smattering of commands printed on a plastic sheet taped to a graphics tablet, so the entirety of the program was more or less self evident.

I felt that I had mastered the program after about 6 months of professional use. But as time wore on I discovered methods of working which made me realize it would be years before I could actually make that gloat. After constant use, I developed insights, techniques and muscle memories which helped drive me to look into customization and programming in AutoLISP to accomplish more. That led to a whole new understanding of the innards of the program which continues to this day.

What I loved about AutoCAD - up until fairly recently - was how it handled under my fingertips. It was one of those magical programs which just felt wonderful to use. I just knew how to do things easily and could think ahead of the program, so I would tend to think through a drafting problem in my head and be able to easily translate that into a series of commands. It helped that AutoCAD's command syntax was initially very much verb-noun based, like a normal sentence.

For example: "I want to Move These Things from Here to Over Here" would translate to

Command: Move
Select objects: [Pick some things]
Select object: [Hit to finish picking]
Start point: [Pick a start point]
End point: [End point]

It just doesn't get much easier than that.

Even after migrating (read: kicking, screaming, yanking of hair, etc.) from a tablet to a mouse, I found the act of drawing geometry, snapping, zooming, panning, and other hand-intensive operations just worked, and worked correctly and elegantly. Mind and mouse operated as one, and one developed the innate ability to think 12 steps ahead of any editing operation.

That's why people bought those silly 16-button puck monstrosities. I knew folks who could play those things like Rick Wakeman. It was like driving a finely tuned racing car, where your finger flips the flappy-paddle gearbox without even thinking. Or, as in my case, with playing the drums - you do not really concentrate on what you are playing at the muscle level, you think about the music. The hands, fingers and feet just seem to go.

Sadly, with today's releases I do not believe this is the case, as program bloat, interface bling and useless feaure-itis have turned a once-mean, lean and clean program into a pile of programmed mush. It seems I have a crazy number of UI elements yelping for attention, like a bunch of 4 year-olds at a birthday party after the cake and ice cream.

Worse, you have to now really worry about what your mouse hand is doing. In the olden times, you could wrench your mouse around and tell it who's boss. Now, you have to be really careful about moving, picking, mousing over and so on. The least little twitch and you end up picking the wrong thing or firing off the wrong command or OSnap.

Palettes of various kinds, which were quietly sitting hidden on the side now scream out when I have the audacity to mouse a little too close to the edge. And of course, the ones I need aren't anywhere to be found - and when I do find them I can't get them to go the Hell away fast enough. Even my status bar looks like the dashboard of a Russian spaceship.

Even the much-maligned Ribbon, which I actually do sort of like, sometimes - like, say, Wednesdays - is a screen hog, and slow to respond to as well. In 2010 I like the layout - well, it's the best it can be given the complexity and enormity of the program. But it just looks klunky and doesn't scale with a resolution over 1024x768, leaving you a nice fat chunk of valuable screen space which is rendered useless.

Wait. What was I talking about, again? Oh yeah, Learning Revit.

Revit isn't so much about learning commands, it's about learning to build in software. Like AutoCAD circa 1987, there's isn't a whole lot of varied stuff to deal with. It's an extremely FOCUSED program. Once you get past the idea of BIM vs dumb ol' CAD (which takes about 3 minutes, tops), it's a fairly level learning curve to get through the core mechanics. You have the basics of inputting architectural objects (walls, doors, windows, floors, roofs, etc). And you have a basic set of modify commands at your disposal that are familiar to any AutoCAD user, but built with a touch more intelligent design. Sketch-based design is just huge and an integrated part of the overall core workflow. Commands like Offset and Array work in a way we could only hope for in AutoCAD-land. And the Align command is simply beyond brilliant.

After that, you have the Project Browser; View properties; Levels and Grids; Schedules, Rendering, Project Settings, Constraints, Parameters and so on. For the most part, all excellently implemented and a real eye-opener for a knuckle-dragging, mouth-breather like me. Run through the tutorials and you Get It.

Then you hit families. Specifically, parametric families. Hooo boy. Wow. Just, wow.

There is an amazing amount of power contained in what really is a simple framework that allows you to create a fabulous wealth of intelligently designed building components that do exactly what you want them to do. Combined with Parameters and formulas, they are, I guess, most closely related to a marriage of AutoCAD's Dynamic Blocks, ACA's MVBlocks, and Constraints (easily the two best new features of the past 6 releases). You get an incredible architectural tool combined with (bonus!) an elegance and ease of use which is exhilarating to work with.

In contrast with most new features in AutoCAD, which if actually useful would be great if not combined with some new UI fiddly doodad which irritates your senses.

After 22 years of working with AutoCAD and AutoCAD Architecture, you get a little jaded. You may now and then see much potential in the software, yet with every new release, more often than not you are hit in the head with some software design dumbness which obliterates any excitement you may have had in a demo. So you stop looking at the potential in some feature, because to get to that Promised Land is simply Too Hard. You see features that are shaky at best; and to properly implement, would take an inordinate amount of training time. Worse, you have in ACA the ability for some untrained numskull to get their mitts on the drawing (to get it changed and to the engineer STAT) who, when seeing all this AEC object stuff, will without hesitation explode it down to dumb linework just to get something out the door.

But when you learn a new CAD program like Revit, everything old becomes new again. You see the potential, but you don't know any of the gotchas, and are still dumb enough not to understand all of the limitations. With experience comes wisdom, and without the ability to "cheat," you know that you have no choice but to make it work. When you look at the exceptional work of others, you see that just about anything is really possible.

I'm just pissed I didn't start learning this stuff sooner.