Example #1
0
        private bool LoadData()//string FullPatch, ref List<TValue> Items
        {
            byte[] bytes;
            lock (Locker.Get("IO"))
                bytes = System.IO.File.ReadAllBytes(FullPath);

            if (bytes == null || bytes.Length <= 0)
            {
                return(false);
            }

            string data = Compression.UnZipString(bytes);

            if (System.String.IsNullOrEmpty(data))
            {
                return(false);
            }


            XmlList <TValue> XData = Asmodat.Abbreviate.XmlSerialization.Deserialize <XmlList <TValue> >(data);

            lock (Locker.Get("Data"))
            {
                Data = XData.Items;
            }


            SaveTime = DateTime.Now;
            return(true);
        }
Example #2
0
 public JsonResult AddXmlFileJson(XmlListModel model)
 {
     try
     {
         XmlList <XmlListModel> Xlist = new XmlList <XmlListModel>();
         string JsonConfig            = System.IO.File.ReadAllText("App.json");
         var    list = JsonConvert.DeserializeObject <XmlList <XmlListModel> >(JsonConfig);
         if (list.XmlListModel != null && list.XmlListModel.Count > 0)
         {
             var maxID = list.XmlListModel.OrderByDescending(m => m.XID).FirstOrDefault().XID;
             model.XID = maxID + 1;
         }
         else
         {
             model.XID = 1;
         }
         Xlist.XmlListModel = new List <XmlListModel>();
         list.XmlListModel.Add(model);
         Xlist.XmlListModel = list.XmlListModel;
         JsonCover(JsonConvert.SerializeObject(Xlist));
         return(Json(new { code = 1 }));
     }
     catch (Exception ex)
     {
         return(Json(new { code = 0, Message = ex.ToString() }));
     }
 }
        // public XmlList<PlatformCriterion> PlatformCriterions { get; set; }

        #endregion

        #region --- 构造函数

        public AutoProtectionCriterions()
        {
            Name = "自动防护";
            //
            SlopeCriterions = new XmlList <SpCriterion>();
            // PlatformCriterions = new XmlList<PlatformCriterion>();
        }
 private void LoadSemDomTestData(string xmlSemDomData)
 {
     using (var trdr = new StringReader(xmlSemDomData))
     {
         var loader = new XmlList();
         loader.ImportList(Cache.LangProject, "SemanticDomainList", trdr, new DummyProgressDlg());
     }
 }
Example #5
0
        private async void InitDataLocalization()
        {
            var result = await _fromXml.LoadXMLData();

            if ((_listModules = _fromXml.RawModules) != null && result)
            {
                XmlList.SetXmlList(_listModules); // add all values to static list

                foreach (var item in _listModules)
                {
                    NameModule valueEnumType;
                    NameModuleEnum.Name.TryGetValue(item.Name, out valueEnumType);
                    switch (valueEnumType)
                    {
                    case NameModule.Alias:
                    {
                        AlsMP.Placeholder = Loc.Localize("Alias", "Alias");
                        break;
                    }

                    case NameModule.LoginID:
                    {
                        IDWallet.Placeholder = Loc.Localize("IdWallet", "Id Wallet");
                        break;
                    }

                    case NameModule.PasswordFirst:
                    {
                        Pass1MP.Placeholder = Loc.Localize("Password", "Password");
                        break;
                    }

                    case NameModule.PasswordSecond:
                    {
                        Pass2MP.Placeholder = Loc.Localize("SecPassword", "Second Password");
                        break;
                    }

                    case NameModule.api_code:
                    {
                        ApiCodeMP.Placeholder = Loc.Localize("ApiCode", "Api Code");
                        break;
                    }

                    case NameModule.autologon:
                        break;

                    case NameModule.Theme:
                        break;

                    default:
                        throw new NotImplementedException();
                    }
                }
            }

            WaitData(); // here method wait on data from xml file
        }
Example #6
0
 public TimeCard(string fullFilename)
     : base(new XmlDataSource(fullFilename), Resources.XMLRootNode)
 {
     //Categories    = new XMLHash<Category>(XMLDataSource, Resources.XMLNodeGroup_Categories, Resources.XMLNodeName_Category);
     Categories = new XmlCategories(XmlDataSource, Resources.XMLNodeGroup_Categories, Resources.XMLNodeName_Category);
     Projects = new XmlList<Project>(XmlDataSource, Resources.XMLNodeGroup_Projects, Resources.XMLNodeName_Project);
     TaskMgr       = new XmlList<Task>(XmlDataSource, Resources.XMLNodeGroup_Tasks, Resources.XMLNodeName_Task);
     TimeEntries   = new XmlList<TimeEntry>(XmlDataSource, Resources.XMLNodeGroup_TimeEntries, Resources.XMLNodeName_TimeEntry);
 }
Example #7
0
 public Tunnel()
 {
     TunnelVertices = new XmlList <TunnelVertice>();
     Segments       = new XmlList <Segment>();
     //
     SegmentNum = new int();
     Radius     = new double();
     //
     ActiveTunnelForDeserialize = this;
 }
Example #8
0
 private bool InRangeCollection(XmlList <CriterionRange> criterions, double value)
 {
     foreach (var rg in criterions)
     {
         if (!rg.InRange(value))
         {
             return(false);
         }
     }
     return(true);
 }
Example #9
0
 public Frame()
 {
     Beams         = new XmlList <Beam>();
     Columns       = new XmlList <Column>();
     FrameVertices = new XmlList <FrameVertice>();
     //
     LayerHeights = new float[0];
     SpanWidths   = new float[0];
     //
     ActiveFrameForDeserialize = this;
 }
        public void TestSetup()
        {
            Cache = FdoCache.CreateCacheWithNewBlankLangProj(new TestProjectId(FDOBackendProviderType.kMemoryOnly, null),
                                                             "en", "fr", "en", new DummyFdoUI(), FwDirectoryFinder.FdoDirectories, new FdoSettings());
            var loader = new XmlList();

            loader.ImportList(Cache.LangProject, "PartsOfSpeech", Path.Combine(FwDirectoryFinder.TemplateDirectory, "POS.xml"),
                              new DummyProgressDlg());
            // This allows tests to do any kind of data changes without worrying about starting a UOW.
            Cache.ActionHandlerAccessor.BeginUndoTask("Undo doing stuff", "Redo doing stuff");
        }
Example #11
0
        /// <summary>
        /// 此构造函数可以直接声明为 private,在反序列化时 Visual Studio 仍然会将其作为 public 并执行其中的代码。
        /// </summary>
        public DefinitionCollection()
        {
            //
            Materials = new XmlList <Material>();
            Profiles  = new XmlList <Profile>();

            // 这一句必须保留,因为在序列化时会直接进行此处的 public 构造函数,而不会从 public static DefinitionCollection GetUniqueInstance() 进入。
            // 此时必须通过这一句保证 _uiniqueInstance 与本全局对象的同步。
            //_uiniqueInstance = this;
            //
            ActiveDefiCollForDeserialize = this;
        }
Example #12
0
        protected ModelBase()
        {
            ModelName = Constants.ProjectConsts.DefaultModelName;
            ID        = Guid.NewGuid();
            //
            Definitions = new DefinitionCollection();
            SoilLayers  = new XmlList <SoilLayer_Inertial>();
            //

            ModelType         = ModelType.Frame;
            CalculationMethod = CalculationMethod.InertialForce;
        }
        /// <summary> 构造函数 </summary>
        public SocketedShaftSystem()
        {
            //// 土层集合
            SoilLayers = new XmlList <SoilLayerEntity>();
            //SoilLayer sl = new SoilLayer()
            //{
            //    Name = "第一层土",
            //    CompressiveStrength = (float)2e7,
            //};
            //SoilLayer s2 = new SoilLayer()
            //{
            //    Name = "第二层土",
            //    CompressiveStrength = (float)123000,
            //};
            SoilDefinitions = new List <SoilLayer>();
            //SoilDefinitions.Add(sl);
            //SoilDefinitions.Add(s2);
            //SoilLayerEntity sle1 = new SoilLayerEntity()
            //{
            //    Bottom = 250,
            //    Top = 290,
            //    Layer = sl
            //};

            //SoilLayerEntity sle2 = new SoilLayerEntity()
            //{
            //    Bottom = 200,
            //    Top = 300,
            //    Layer = s2
            //};
            //SoilLayers.Add(sle1);
            //SoilLayers.Add(sle2);

            //// 嵌岩桩
            SocketedShaft = new SocketedShaft();

            //// 桩截面集合
            //ShaftSection ss1 = new ShaftSection() { Name = "截面1", BarsCount = 20, Diameter = 2 };
            //ShaftSection ss2 = new ShaftSection() { Name = "截面2", BarsCount = 35, Diameter = 1.5f };
            //SectionDefinitions = new List<ShaftSection> { ss1, ss2 };
            SectionDefinitions = new List <ShaftSection> ();
            ////
            //ShaftSectionEntity sse1 = new ShaftSectionEntity() { Top = 20, Bottom = 10, Section = ss1 };
            //ShaftSectionEntity sse2 = new ShaftSectionEntity() { Top = 10, Bottom = 5, Section = ss2 };
            //XmlList<ShaftSectionEntity> xl = new XmlList<ShaftSectionEntity>() { sse1, sse2 };
            //SocketedShaft.Sections = xl;

            ////
            SystemProperty = new SystemProperty();
            ////
            _uiniqueInstance = this;
        }
        private CriterionRangeList CloneRange(CriterionRangeList srcList)
        {
            var c        = new CriterionRangeList();
            var srcRange = srcList.AndRange;
            var r        = new XmlList <CriterionRange>();

            foreach (var v in srcRange)
            {
                r.Add(v.Clone() as CriterionRange);
            }
            c.AndRange = r;
            return(c);
        }
Example #15
0
 public JsonResult GetXmlListJson(int XID)
 {
     try
     {
         XmlList <XmlListModel> Xlist = new XmlList <XmlListModel>();
         string JsonConfig            = System.IO.File.ReadAllText("App.json");
         var    list  = JsonConvert.DeserializeObject <XmlList <XmlListModel> >(JsonConfig);
         var    model = list.XmlListModel.Where(m => m.XID == XID).FirstOrDefault();
         return(Json(new { code = 1, data = model }));
     }
     catch (Exception ex)
     {
         return(Json(new { code = 0, data = ex.ToString() }));
     }
 }
Example #16
0
 public JsonResult DelXmlFileJson(XmlListModel model)
 {
     try
     {
         XmlList <XmlListModel> Xlist = new XmlList <XmlListModel>();
         string JsonConfig            = System.IO.File.ReadAllText("App.json");
         var    list = JsonConvert.DeserializeObject <XmlList <XmlListModel> >(JsonConfig);
         list.XmlListModel = list.XmlListModel.Where(m => m.XID != model.XID).ToList();
         JsonCover(JsonConvert.SerializeObject(list));
         return(Json(new { code = 1 }));
     }
     catch (Exception ex)
     {
         return(Json(new { code = 1, data = ex.ToString() }));
     }
 }
        /// <summary>
        /// This property deserializes dictionary from string
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public void XmlDeserialize(string data)
        {
            lock (this)
            {
                this.Clear();
                if (!System.String.IsNullOrEmpty(data))
                {
                    XmlList <XmlPair <TKey, TValue> > XList = Asmodat.Abbreviate.XmlSerialization.Deserialize <XmlList <XmlPair <TKey, TValue> > >(data);

                    foreach (XmlPair <TKey, TValue> XKVP in XList.Items)
                    {
                        this.Add(XKVP.Key, XKVP.Value);
                    }
                }
            }
        }
Example #18
0
        /// <summary> 土层的数量或者参数发生变化 </summary>
        /// <param name="layers"></param>
        private void OnSoilLayerChanged(IEnumerable <SoilLayerEntity> layers)
        {
            //_stationModel;
            var top     = _model1.MethodProperty.TopElevation;
            var overlay = _model1.MethodProperty.OverLayingSoilHeight;

            top = top - overlay;
            //
            var soils = new XmlList <SoilLayer_Inertial>();

            foreach (var l in layers)
            {
                soils.Add(new SoilLayer_Inertial(top: top, bottom: top - l.SoilHeight, kci0: l.Kci0));
                top = top - l.SoilHeight;
            }
            //
            Model.SoilLayers = soils;
            _model1.MethodProperty.GetKc(importantSoilLayers: soils);
            //
            RefreshUI_PictureBox(Model, null);
        }
        /// <summary>
        /// This property serilizes dictionary into xml string
        /// </summary>
        /// <returns></returns>
        public string XmlSerialize()
        {
            string data = "";

            lock (this)
            {
                XmlList <XmlPair <TKey, TValue> > XList = new XmlList <XmlPair <TKey, TValue> >();
                XList.Items = new List <XmlPair <TKey, TValue> >(this.Count);

                foreach (KeyValuePair <TKey, TValue> KVP in this)
                {
                    XList.Items.Add(new XmlPair <TKey, TValue>(KVP.Key, KVP.Value));
                }

                if (XList.Items != null && XList.Items.Count > 0)
                {
                    data = Asmodat.Abbreviate.XmlSerialization.Serialize <XmlList <XmlPair <TKey, TValue> > >(XList);
                }
            }

            return(data);
        }
Example #20
0
        /// <summary>
        /// 根据隧道半径、管片数、材料、截面生成一个圆形隧道
        /// </summary>
        /// <param name="radius"> 圆形隧道的半径 </param>
        /// <param name="segmentNum"> 管片的分块数 </param>
        /// <param name="defaultMat"> 管片的材料 </param>
        /// <param name="defaultProfile"> 管片的截面 </param>
        /// <returns></returns>
        public static Tunnel Create(double radius, int segmentNum, Material defaultMat, Profile defaultProfile)
        {
            //
            var tunnelVertices = new XmlList <TunnelVertice>();
            var verticesColle  = tunnelVertices;

            //构造节点系统
            double[] Angles = new double[segmentNum + 1];
            double   _angle = 360 / segmentNum;

            for (int i = 0; i < segmentNum + 1; i++)
            {
                double _angleI = -90 + _angle * (i - 0.5);
                Angles[i] = _angleI;
                verticesColle.Add(new TunnelVertice(radius, _angleI));
            }

            //根据节点对象生成管片构件
            var segments = new XmlList <Segment>();

            for (int i = 0; i < segmentNum; i++)
            {
                Segment _seg = new Segment(material: defaultMat, profile: defaultProfile, v1: verticesColle[i], v2: verticesColle[i + 1]);
                _seg.LocationTag = $"({_seg.Vertice1.Angle},{_seg.Vertice2.Angle})";
                segments.Add(_seg);
            }

            return(new Tunnel()
            {
                TunnelVertices = tunnelVertices,
                Segments = segments,
                //
                SegmentNum = segmentNum,
                Radius = radius,
                _startAngle = -90 - 0.5 * 360 / segmentNum
            });
        }
Example #21
0
        public bool SaveData()
        {
            XmlList <TValue> XData = new XmlList <TValue>();

            if (Data == null || Data.Count == 0)
            {
                lock (Locker.Get("IO"))
                {
                    FileStream FStream = System.IO.File.Create(FullPath);
                    FStream.Close();
                }
            }
            else
            {
                lock (Locker.Get("Data"))
                {
                    XData.Items = new List <TValue>(Data.Count);
                    foreach (TValue value in Data)
                    {
                        XData.Items.Add(value);
                    }
                }


                string data  = Asmodat.Abbreviate.XmlSerialization.Serialize <XmlList <TValue> >(XData);
                byte[] bytes = Compression.Zip(data);
                if (bytes == null)
                {
                    return(false);
                }
                lock (Locker.Get("IO"))
                    System.IO.File.WriteAllBytes(FullPath, bytes);
            }

            SaveTime = DateTime.Now;
            return(true);
        }
Example #22
0
 public JsonResult EditXmlFileJson(XmlListModel model)
 {
     try
     {
         XmlList <XmlListModel> Xlist = new XmlList <XmlListModel>();
         string JsonConfig            = System.IO.File.ReadAllText("App.json");
         var    list = JsonConvert.DeserializeObject <XmlList <XmlListModel> >(JsonConfig);
         foreach (var m in list.XmlListModel)
         {
             if (m.XID == model.XID)
             {
                 m.XmlName   = model.XmlName;
                 m.XmlRemark = model.XmlRemark;
                 m.XmlUrl    = model.XmlUrl;
             }
         }
         JsonCover(JsonConvert.SerializeObject(list));
         return(Json(new { code = 1 }));
     }
     catch (Exception ex)
     {
         return(Json(new { code = 1, data = ex.ToString() }));
     }
 }
Example #23
0
        public void InitDefault()
        {
            m_MyInt       = 69;
            m_MyString    = "This is a test string";
            m_MyXmlString = new XmlString("Native XML string object");
            m_MyFloat     = 3.14f;

            m_MyXmlDateTime          = new XmlDateTime(DateTime.Now);
            m_MyXmlColor             = new XmlColor(Color.BurlyWood);
            m_MyXmlSizeF2d           = new XmlSizeF2d(452.62f, 895.7989f);
            m_MyXmlItemKeyAndValue   = new XmlItemKeyAndValue("KeyNameToUse", m_MyXmlColor);
            m_MyXmlTranslatorElement = new XmlTranslatorElement("MyInternalName", 0);
            m_MyXmlTranslatorElement.AddOrUpdate(Language.English, "My translated text", "The last modifiying person", DateTime.Now);
            m_MyXmlTranslatorElement.AddOrUpdate(Language.German, "My translated text in German", "The last modifiying person", DateTime.Now);

            m_MyXmlPen = new XmlPen(Color.Violet, 20);

            m_MyArrayList = new ArrayList();
            m_MyArrayList.Add(this.MyInt);
            m_MyArrayList.Add(this.MyFloat);
            m_MyArrayList.Add(this.MyString);
            m_MyArrayList.Add(this.MyXmlString);

            m_MyXmlList = new XmlList();
            m_MyXmlList.Add(this.MyInt);
            m_MyXmlList.Add(this.MyFloat);
            m_MyXmlList.Add(this.MyString);
            m_MyXmlList.Add(this.MyXmlString);

            m_MyXmlHashtable = new XmlHashtable();
            m_MyXmlHashtable.Add("HashElement1", m_MyInt);
            m_MyXmlHashtable.Add("HashElement2", m_MyString);
            m_MyXmlHashtable.Add("HashElement3", m_MyXmlString);
            m_MyXmlHashtable.Add("HashElement4", m_MyFloat);
            m_MyXmlHashtable.Add("HashElement5", m_MyXmlList);
        }
Example #24
0
 /// <summary> 构造函数 </summary>
 public SocketedShaft()
 {
     Sections = new XmlList <ShaftSectionEntity>();
 }
        private void LoadSemDomTestDataFromFile(string filePath)
        {
            var loader = new XmlList();

            loader.ImportList(Cache.LangProject, "SemanticDomainList", filePath, new DummyProgressDlg());
        }
        /// <summary>
        /// Check whether the anthropology list exists.  If not, initialize it, popping
        /// up a dialog to ask the user how he wants it done.
        /// Returning true indicates an anthro list was actually loaded during first-time initialization.
        /// </summary>
        public bool CheckAnthroList(ILangProject proj, Form parent, int wsDefault, IHelpTopicProvider helpTopicProvider)
        {
            // Don't bother loading the list into a memory-only project.  These are used for
            // testing, and don't want to be slowed down by disk accesses.
            if (proj.Cache.ProjectId.Type == FDOBackendProviderType.kMemoryOnly)
            {
                return(false);
            }

            // 1. Determine whether or not the Anthropology List has been initialized.
            if (proj.AnthroListOA != null && proj.AnthroListOA.Name.StringCount > 0)
            {
                if (proj.AnthroListOA.ItemClsid == 0 || proj.AnthroListOA.Depth == 0)
                {
                    proj.Cache.DomainDataByFlid.BeginNonUndoableTask();
                    proj.AnthroListOA.ItemClsid = CmAnthroItemTags.kClassId;
                    proj.AnthroListOA.Depth     = 127;
                    proj.Cache.DomainDataByFlid.EndNonUndoableTask();
                }
                return(false);
                // The Anthropology List may still be empty, but it's initialized!
            }
            // 2. Figure out what lists are available (in {FW}/Templates/*.xml).

            string        sFilePattern   = Path.Combine(DirectoryFinder.TemplateDirectory, "*.xml");
            bool          fHaveOCM       = false;
            bool          fHaveFRAME     = false;
            List <string> rgsAnthroFiles = new List <string>();

            string[] rgsXmlFiles = Directory.GetFiles(DirectoryFinder.TemplateDirectory, "*.xml", SearchOption.TopDirectoryOnly);
            string   sFile;

            for (int i = 0; i < rgsXmlFiles.Length; ++i)
            {
                sFile = Path.GetFileName(rgsXmlFiles[i]);
                if (Path.GetFileName(sFile) == "OCM.xml")
                {
                    fHaveOCM = true;
                }
                else if (Path.GetFileName(sFile) == "OCM-Frame.xml")
                {
                    fHaveFRAME = true;
                }
                else if (sFile != "NewLangProj.xml" && IsAnthroList(rgsXmlFiles[i]))
                {
                    rgsAnthroFiles.Add(sFile);
                }
            }

            // 3. display a dialog for the user to select a list.

            sFile = null;
            if (fHaveOCM || fHaveFRAME || rgsAnthroFiles.Count > 0)
            {
                using (FwCheckAnthroListDlg dlg = new FwCheckAnthroListDlg())
                {
                    dlg.SetValues(fHaveOCM, fHaveFRAME, rgsAnthroFiles, helpTopicProvider);
                    if (!String.IsNullOrEmpty(m_sDescription))
                    {
                        dlg.SetDescription(m_sDescription);
                    }
                    //EnableRelatedWindows(hwnd, false);
                    DialogResult res = dlg.ShowDialog(parent);
                    //EnableRelatedWindows(hwnd, true);
                    if (res == DialogResult.OK)
                    {
                        int nChoice = dlg.GetChoice();
                        switch (nChoice)
                        {
                        case FwCheckAnthroListDlg.kralUserDef:
                            break;

                        case FwCheckAnthroListDlg.kralOCM:
                            sFile = Path.Combine(DirectoryFinder.TemplateDirectory, "OCM.xml");
                            break;

                        case FwCheckAnthroListDlg.kralFRAME:
                            sFile = Path.Combine(DirectoryFinder.TemplateDirectory, "OCM-Frame.xml");
                            break;

                        default:
                            Debug.Assert(nChoice >= 0 && nChoice < rgsAnthroFiles.Count);
                            sFile = Path.Combine(DirectoryFinder.TemplateDirectory, rgsAnthroFiles[nChoice]);
                            break;
                        }
                    }
                }
            }

            // 4. Load the selected list, or initialize properly for a User-defined (empty) list.

            using (new WaitCursor(parent))
            {
                if (String.IsNullOrEmpty(sFile))
                {
                    proj.Cache.DomainDataByFlid.BeginNonUndoableTask();
                    proj.AnthroListOA.Name.set_String(wsDefault, FwCoreDlgs.ksAnthropologyCategories);
                    proj.AnthroListOA.Abbreviation.set_String(wsDefault, FwCoreDlgs.ksAnth);
                    proj.AnthroListOA.ItemClsid = CmAnthroItemTags.kClassId;
                    proj.AnthroListOA.Depth     = 127;
                    proj.Cache.DomainDataByFlid.EndNonUndoableTask();
                }
                else
                {
                    XmlList xlist = new XmlList();
                    xlist.ImportList(proj, "AnthroList", sFile, null);
                }
            }

            // 5. create the corresponding overlays if the list is not empty.

            ICmOverlay over = null;

            foreach (ICmOverlay x in proj.OverlaysOC)
            {
                if (x.PossListRA == proj.AnthroListOA)
                {
                    over = x;
                    break;
                }
            }
            if (over != null)
            {
                proj.Cache.DomainDataByFlid.BeginNonUndoableTask();
                foreach (ICmPossibility poss in proj.AnthroListOA.PossibilitiesOS)
                {
                    over.PossItemsRC.Add(poss);
                    AddSubPossibilitiesToOverlay(over, poss);
                }
                proj.Cache.DomainDataByFlid.EndNonUndoableTask();
            }
            return(true);
        }
Example #27
0
        /// <summary>
        /// 根据层高与跨宽生成矩形车站框架
        /// </summary>
        /// <param name="layerHeights">从下往上每一层的高度</param>
        /// <param name="spanWidths">从左往右每一跨的宽度</param>
        public static Frame Create(float[] layerHeights, float[] spanWidths, Material defaultMat, Profile defaultProfile)
        {
            //
            var frameVertices = new XmlList <FrameVertice>();
            var verticesColle = frameVertices;
            //
            int spanCount  = spanWidths.Length;
            int layerCount = layerHeights.Length;

            // 构造节点系统
            double[] Xs = new double[spanCount + 1];
            for (int i = 0; i < spanCount; i++)
            {
                Xs[i + 1] = Xs[i] + spanWidths[i];
            }
            double[] Ys = new double[layerCount + 1];
            for (int i = 0; i < layerCount; i++)
            {
                Ys[i + 1] = Ys[i] + layerHeights[i];
            }
            // 生成结点对象
            for (int c = 0; c < layerCount + 1; c++)
            {
                for (int r = 0; r < spanCount + 1; r++)
                {
                    verticesColle.Add(new FrameVertice(x: Xs[r], y: Ys[c], index_x: r, index_y: c));
                }
            }

            // 根据节点对象生成梁柱单元
            var beams = new XmlList <Beam>();

            for (int c = 0; c < layerCount + 1; c++)
            {
                for (int r = 0; r < spanCount; r++)
                {
                    int  leftVerticeIndex = c * (spanCount + 1) + r;
                    Beam b = new Beam(material: defaultMat, profile: defaultProfile, v1: verticesColle[leftVerticeIndex],
                                      v2: verticesColle[leftVerticeIndex + 1]);
                    b.LocationTag = $"({verticesColle[leftVerticeIndex].Index_X + 1},{verticesColle[leftVerticeIndex].Index_Y})";
                    beams.Add(b);
                }
            }
            var columns = new XmlList <Column>();

            for (int c = 0; c < layerCount; c++)
            {
                for (int r = 0; r < spanCount + 1; r++)
                {
                    int    bottomVerticeIndex = c * (spanCount + 1) + r;
                    Column col = new Column(material: defaultMat, profile: defaultProfile,
                                            v1: verticesColle[bottomVerticeIndex], v2: verticesColle[bottomVerticeIndex + spanCount + 1]);
                    col.LocationTag =
                        $"({verticesColle[bottomVerticeIndex].Index_X},{verticesColle[bottomVerticeIndex].Index_Y + 1})";
                    columns.Add(col);
                }
            }

            return(new Frame()
            {
                Beams = beams,
                Columns = columns,
                FrameVertices = frameVertices,
                //
                LayerHeights = layerHeights,
                SpanWidths = spanWidths,
            });
        }
Example #28
0
 public XmlListParser(XmlList def, string nodeName)
     : base(def, nodeName)
 {
     m_xmlDef = def;
 }
 public CriterionRangeList()
 {
     AndRange = new XmlList <CriterionRange>();
 }