예제 #1
0
        public void Load(XDocument stbData)
        {
            var stbStorys = stbData.Root.Descendants("StbStory");

            foreach (var stbStory in stbStorys)
            {
                // 必須コード
                Id.Add((int)stbStory.Attribute("id"));
                Height.Add((float)stbStory.Attribute("height") / 1000f);
                switch ((string)stbStory.Attribute("kind"))
                {
                case "GENERAL":
                    Kind.Add(KindsStory.GENERAL); break;

                case "BASEMENT":
                    Kind.Add(KindsStory.BASEMENT); break;

                case "ROOF":
                    Kind.Add(KindsStory.ROOF); break;

                case "PENTHOUSE":
                    Kind.Add(KindsStory.PENTHOUSE); break;

                case "ISOLATION":
                    Kind.Add(KindsStory.ISOLATION); break;

                default:
                    break;
                }

                // 必須ではないコード
                // リストの長さが合うように、空の場合はstring.Enpty
                if (stbStory.Attribute("name") != null)
                {
                    Name.Add((string)stbStory.Attribute("name"));
                }
                else
                {
                    Name.Add(string.Empty);
                }
                if (stbStory.Attribute("concrete_strength") != null)
                {
                    StrengthConcrete.Add((string)stbStory.Attribute("concrete_strength"));
                }
                else
                {
                    StrengthConcrete.Add(string.Empty);
                }

                // TODO
                // 所属節点の読み込み List<List<int>> NodeIdList の Set 部分の作成
            }
        }
예제 #2
0
        protected override void ElementLoader(XElement stbElem, StbVersion version, string xmlns)
        {
            base.ElementLoader(stbElem, version, xmlns);
            Height.Add((double)stbElem.Attribute("height"));
            switch ((string)stbElem.Attribute("kind"))
            {
            case "GENERAL":
                Kind.Add(KindsStory.General); break;

            case "BASEMENT":
                Kind.Add(KindsStory.Basement); break;

            case "ROOF":
                Kind.Add(KindsStory.Roof); break;

            case "PENTHOUSE":
                Kind.Add(KindsStory.Penthouse); break;

            case "ISOLATION":
                Kind.Add(KindsStory.Isolation); break;

            case "DEPENDENCE":
                Kind.Add(KindsStory.Dependence); break;

            default:
                Kind.Add(KindsStory.Any); break;
            }

            // 必須ではないコード
            if (stbElem.Attribute("name") != null)
            {
                Name.Add((string)stbElem.Attribute("name"));
            }
            else
            {
                Name.Add(string.Empty);
            }

            if (stbElem.Attribute("concrete_strength") != null)
            {
                StrengthConcrete.Add((string)stbElem.Attribute("concrete_strength"));
            }
            else
            {
                StrengthConcrete.Add(string.Empty);
            }
        }