Chandon,
I’d like to follow-up on Michael’s and my post from yesterday. It is not my objective to be critical of your effort, but to share a perspective or two.
Every UML modeling tool that I have used makes use of diagrams to create model content. That said, a diagram is NOT a model. A diagram is simply a view of the elements of the model. Michael’s post alludes to this construct when he states “Focus on getting the containment tree (model) right and the rest will flow naturally!”. We could populate the "containment tree" without using diagrams, this is an uncommon practice by most. Which is not to say that it is wrong to employ diagrams when populating the model. Using diagrams is just the typical practice and one of the reasons that many models are merely collections of diagrams and not optimal models of the referent in the context of the model's intended use.
Your model of a car, a real-world object, has some intended purpose and user. As the modeler you have decided that the model should reflect less abstraction in regard to the car’s doors, by representing the properties of each of the car's doors uniquely. As Michael has stated, to accomplish that goal you need to create 2 unique model elements, blocks, one for each door. If the parts of each door are unique to the definition of each unique door, then they too must have unique definitions. Each unique door having their own unique window definition. That said, why do you feel the need to create such specificity in this model? This effort must be justified, by some return on the investment, by the purpose of the model in the context of its use.
If the specificity of the car’s doors serves no purpose in this particular model, then don’t invest the modeling effort. If the only relevant fact about the car’s doors is that there are 2 of them, them simply represent that fact using a multiplicity of “2” on the door end of the Car to door relationship. Don't create 2 part properties for the car doors.
Another consideration I would like to share. You have chosen to name the door part properties by “door1” & “door2”. Do these names express the role/responsibility of each door in the context of the car? Would it be useful to the user of the model to have this understanding of the car’s description? Might there be names that would effectively convey this information?
Thank You for the opportunity to share my perspectives.
Geoff