Revit is great in many ways. But by far my biggest gripe is the over-organization of its modeling abilities. The single most important aspect of modeling (and I might argue, of BIM) is the ability to go into a a model and simply create or edit what you want without headaches. LATER you can categorize it, and attach other information. Revit is horrible in this sense as a modeler. When you create an in-place family, you have to negotiate a series of dialog boxes to categorize your model before you start it. Also, in-place families have restrictions on them based on their categories...create a structural framing category, and you will then have a hard time moving it around and copying it, rotating it, etc, experiment a bit and see for yourself. It gives you all kinds of weird restrictions. If you want to create a sophisticated roof model with framing elements, etc..you have two choices. Build it as a highly inflexible in-place family or build it as a series of inserted families that created separately are positioned around (then with little editing ability to cut and shape elements with respect to one another). Either modeling option sucks and is second rate compared to any 1st generation modeler from any other system. Try creating and editing a complicated roof framing system that is custom...I dare you.
Revit should learn from established modelers and give you the ability to create a simple friggin model without headaches. For custom work this is key! Better yet, it would also be great to add some sort of hierarchy view to the family editor so that you can create sophisticated 3d models (their solids and voids) and edit them efficiently. Check out Ironcad for a bit of learning about how to do this. BIM is fundamentally about modeling. How Revit has not figured this out in its 6th release is beyond me. Its still impossible to create something as simple as an interesting trellis...I need a degree in Revit software programming to achieve it.