I see very large file sizes for assemblies that don't really make sense. Assemblies just reference the included parts and add additional mating constraints, right? But
even if I only include one part in the assembly, I get a quite a lot of data in the assembly. (150 kb with just one primitive part in it.)
Now if I have subassemblies that are larger, each time I include them anywhere, I waste a lot of space.
For example, if I create a new assembly A which contain nothing else but assembly B with size 42MB, then assembly A has a size of 28MB afterwards. I know the file sizes I am talking about here are not big, but it's not getting better with bigger files. A part has a complexity and space is needed to represent that, but multiple assemblies should be able to reference the same data without having to replicate most of it each time.
So here my question: is there a way to include parts or subassemblies in a new assembly without incurring this high cost every time?
I normally do not worry about file size; I am more concerned with the amount of memory used when the file is opened and the effect on the video card. Assemblies contain more than just references and mates. There are also bitmaps for previews, a parasolid representation of the assembly for every configuration (used if you open the assembly for view only and other things). There is also meta data for every component stored. And the list goes on and on. I do not know how much it is a factor today (because I do not pay attention to file size) but at one time just saving a file twice would cause it to double in size.