public static SpeckleObject ToSpeckle(this GSA2DVoid dummyObject) { var newLines = ToSpeckleBase <GSA2DVoid>(); var voids = new List <GSA2DVoid>(); var nodes = Initialiser.GSASenderObjects[typeof(GSANode)].Cast <GSANode>().ToList(); foreach (var p in newLines.Values) { var pPieces = p.ListSplit("\t"); if (!pPieces[4].Is2DMember()) { // Check if void if (pPieces[4] == "2D_VOID_CUTTER") { try { var v = new GSA2DVoid() { GWACommand = p }; v.ParseGWACommand(nodes); voids.Add(v); } catch { } } } } Initialiser.GSASenderObjects[typeof(GSA2DVoid)].AddRange(voids); return((voids.Count() > 0) ? new SpeckleObject() : new SpeckleNull()); }
public static SpeckleObject ToSpeckle(this GSA2DVoid dummyObject) { var newLines = ToSpeckleBase <GSA2DVoid>(); var voidsLock = new object(); var voids = new SortedDictionary <int, GSA2DVoid>(); var nodes = Initialiser.GsaKit.GSASenderObjects.Get <GSANode>(); var keyword = dummyObject.GetGSAKeyword(); //Parallel.ForEach(newLines.Keys, k => foreach (var k in newLines.Keys) { var pPieces = newLines[k].ListSplit(Initialiser.AppResources.Proxy.GwaDelimiter); if (!pPieces[4].Is2DMember()) { // Check if void if (pPieces[4] == "2D_VOID_CUTTER") { var gsaId = pPieces[1]; try { var v = new GSA2DVoid() { GWACommand = newLines[k] }; v.ParseGWACommand(nodes); lock (voidsLock) { voids.Add(k, v); } } catch (Exception ex) { Initialiser.AppResources.Messenger.Message(MessageIntent.TechnicalLog, MessageLevel.Error, ex, "Keyword=" + keyword, "Index=" + k); } } } } //); if (voids.Values.Count() > 0) { Initialiser.GsaKit.GSASenderObjects.AddRange(voids.Values.ToList()); } return((voids.Keys.Count > 0) ? new SpeckleObject() : new SpeckleNull()); }
public static SpeckleObject ToSpeckle(this GSA2DVoid dummyObject) { var newLines = ToSpeckleBase <GSA2DVoid>(); var voidsLock = new object(); var voids = new List <GSA2DVoid>(); var nodes = Initialiser.GSASenderObjects.Get <GSANode>(); Parallel.ForEach(newLines.Values, p => { var pPieces = p.ListSplit("\t"); if (!pPieces[4].Is2DMember()) { // Check if void if (pPieces[4] == "2D_VOID_CUTTER") { try { var v = new GSA2DVoid() { GWACommand = p }; v.ParseGWACommand(nodes); lock (voidsLock) { voids.Add(v); } } catch { } } } }); Initialiser.GSASenderObjects.AddRange(voids); return((voids.Count() > 0) ? new SpeckleObject() : new SpeckleNull()); }