public StructureWeld(XmlNode node)
            : this()
        {
            foreach (XmlAttribute attribute in node.Attributes)
            {
                switch (attribute.Name)
                {
                    case "name":
                        this.name = attribute.Value;
                        break;

                    case "partner":
                        this.partner = attribute.Value;
                        break;

                    default:
                        throw new NotImplementedException("Unknown Weld attribute: " + attribute.Name);
                }
            }

            foreach (XmlNode data in node.ChildNodes)
            {
                switch (data.NodeType)
                {
                    case XmlNodeType.CDATA:
                        this.weldSettings = StructureWeldCode.Parse(data.InnerText);
                        break;

                    case XmlNodeType.Element:
                        switch (data.Name)
                        {
                            case "JOINT":
                                joints.Add(new StructureWeldJoint(data));
                                break;

                            case "PART":
                                parts.Add(new StructurePart(data));
                                break;

                            default:
                                throw new NotImplementedException("Unknown Element of WELD: " + data.Name);
                        }
                        break;
                }
            }
        }
        public StructureWeld()
        {
            joints = new List<StructureWeldJoint>();
            parts = new List<StructurePart>();

            weldSettings = new StructureWeldCode();
        }