/// <summary> 为道路中的所有边坡设置土质或者岩质属性 </summary> private void SetSlopeSoilRock(List <SlopeLine> allSlopes) { SoilRockRange.SetSlopeSoilRock(Options_Collections.SoilRockRanges, allSlopes.Select(r => r.XData).ToArray()); // 保存数据 foreach (var s in allSlopes) { s.Pline.UpgradeOpen(); s.FlushXData(); s.Pline.DowngradeOpen(); } }
private void SoilRockRangesOnAddingNew(object sender, AddingNewEventArgs e) { var ss = _soilRockRanges.LastOrDefault(); if (ss == null) { ss = new SoilRockRange(0, 0, SoilRockRange.Distribution.左右两侧, SubgradeType.岩质); } else { ss = (SoilRockRange)ss.Clone(); ss.StartStation = ss.EndStation; } e.NewObject = ss; }
/// <summary> 将<seealso cref="Xrecord"/>对象中的数据刷新到内存中的静态类中 </summary> /// <param name="xrec">其值可以为 null,表示集合中一个数据都没有 </param> public static void FromXrecord_SoilRockRanges(Xrecord xrec) { SoilRockRanges = new List <SoilRockRange>(); if (xrec != null) { var buffs = xrec.Data.AsArray(); if (buffs == null || buffs.Length == 0) { return; } // try { var itemsCount = (int)buffs[0].Value; var fieldsCount = 4; var baseIndex = 0; for (int i = 0; i < itemsCount; i++) { var s = new SoilRockRange( startStation: (double)buffs[baseIndex + 1].Value, endStation: (double)buffs[baseIndex + 2].Value, distribution: Utils.GetExtendedDataEnum <SoilRockRange.Distribution>(buffs[baseIndex + 3]), type: Utils.GetExtendedDataEnum <SubgradeType>(buffs[baseIndex + 4])); // SoilRockRanges.Add(s); baseIndex += fieldsCount; } } catch (Exception ex) { Debug.Print("提取整条道路中岩土分区信息出错" + ex.AppendMessage()); } } // }