This is a great topic - one of my favorites. I find the labels "top/down" and "bottom/up" to be a bit misleading in this discussion. A maybe more important related question is "local components" vs "external components". You can build in a "bottom/up" fashion using all local components (though it does take a bit of self-restraint to do so). It's harder to try to build "top/down" using all external components, maybe not even possible. So, the topics are certainly related.
In my admittedly biased view, the ability to have local components is one of Fusion's coolest features. Most of us came from Inventor, and it was a pain (a UI pain, a data management paint) to create a bunch of parts on disk just to get a quick concept design in place. So, I tend to like to work with local components when I can. Certainly when exploring design options, this is very handy. There is also the related benefit of "design in place". Again, this is much harder to do in a traditional parts/assembly modeler. It is very convenient to be able to build up a design with all the components built in the right place. And the As-Built Joint is the culmination of that workflow. If the components are in place, then it is very easy to create joints between them. Finally, the ability to do position-based modeling is also very powerful in this workflow - to be able to reference a component inside another component, at a certain position, I find very useful.
So, when should you use external components? Your mileage may vary, but I find that external components are very useful for components that don't change much (off the shelf stuff), because then you don't need to have all the features for building those components cluttering up your timeline. There is also a performance aspect to it. For small designs, having all the components in a single timeline is great. Once you get above 50 components or so, it becomes a nightmare to manage (more on that later), and can be slow to modify one of the early components in your design. So, if you know you are going to be building a large design, it's good to think up front how you might want to break it up. Maybe along subsystem boundaries makes sense. A lot of this just takes time and experience to find the way that works best for you.
And, the points raised here about it being very easy (too easy, maybe) to create a dependency nightmare using local components is a very good one. Be very aware of what you are referencing where. Sure, sketching on the face of another component, or auto-projecting an edge/face from another component into a sketch is convenient. But, every time you do that, you are creating a dependency in your design. It's easy to end up with spaghetti dependencies, and as mentioned here, editing becomes very fragile. So, turn off auto-projections. Use datum planes without dependencies for sketch planes when you can. Be very deliberate about projecting things into your sketch. When you do need to project, choose the most stable thing you can project (a face is more stable than an edge, a body is more stable than a face, and origin work geometry is the most stable of all).
Use R.U.L.E. #1 and #2 to keep your components self-contained. You will be much happier.
One last word about local components/top/down modeling. If you want to save yourself future nightmares when you come back to edit them months later, be very careful in organizing your timeline. Turn on "Component Color Swatches" to help you visualize your component organization in the timeline. If you make an edit to a component, roll back to its area of the timeline and insert features, rather than just sticking them at the end of the timeline. I take it one step further, and create a timeline group for each component, but that's just me. And, as rule #2 says, rename everything. It's so much easier to know which extrude created this notch if you have it named in the timeline. Name your joints, workplanes, sketches, everything. It is a pain at first, but you will thank yourself later.
Jeff Strater
Engineering Director