Assembling effeciently

I'm a designer/IT for a small company that assembles various structures using joints and pipe ~ 1 inch in diameter. We've always had performance issues with structures that approach ~ 1000 square feet or are relatively complicated. These structures typically consist of less than 30 parts. Moving, rotating, and mating parts becomes a process that takes 1 - 5 minutes per action.

Here's an example of something I designed recently. It doesn't fall into the ~1000 square feet category, but it's complicated enough to introduce some slow downs.

My question is if this is a solvable problem and is it solved by better hardware or better assembly habits?

Here are our computer specs:

2.4GHz i7-4700MQ

8GB RAM

GeForce GTX 765M

3.2GHz Xeon W3550

8GB RAM

Quadro 4000

Personally, when I assemble, I make our pipe parts virtual so my configurations remain in the assembly without the need for an external file. Our other designer makes a copy of the pipe part to hold his configurations. Is one way better/faster or is there any other solutions?

In terms of mating, I mate all of our joints first using concentric, distance, tangent, width, symmetric, then add the pipes last using up to surface extrudes between joints. I used to measure the distance between two joints and set that as the blind length of the pipe, but that usually makes making modifications to the assembly harder. Our other designer does a mix of blind and up to surface pipes, but doesn't typically use any of the advance mates. Again, is there a better way to increase performance?

SolidworksAssemblies