//Sending to Speckle, search through a public static SpeckleObject ToSpeckle(this GSA0DSpring dummyObject) { var typeName = dummyObject.GetType().Name; var newSpringLines = ToSpeckleBase <GSA0DSpring>(); var newNodeLines = ToSpeckleBase <GSANode>(); var newLines = new List <Tuple <int, string> >(); foreach (var k in newSpringLines.Keys) { newLines.Add(new Tuple <int, string>(k, newSpringLines[k])); } foreach (var k in newNodeLines.Keys) { newLines.Add(new Tuple <int, string>(k, newNodeLines[k])); } var springsLock = new object(); var springs = new List <GSA0DSpring>(); var nodes = Initialiser.GsaKit.GSASenderObjects.Get <GSANode>(); foreach (var p in newLines.Select(nl => nl.Item2)) { var pPieces = p.ListSplit(Initialiser.AppResources.Proxy.GwaDelimiter); if (pPieces[4] == "GRD_SPRING") { var gsaId = pPieces[1]; var spring = new GSA0DSpring() { GWACommand = p }; try { spring.ParseGWACommand(nodes); lock (springsLock) { springs.Add(spring); } } catch (Exception ex) { Initialiser.AppResources.Messenger.CacheMessage(MessageIntent.Display, MessageLevel.Error, typeName, gsaId); Initialiser.AppResources.Messenger.CacheMessage(MessageIntent.TechnicalLog, MessageLevel.Error, ex, typeName, gsaId); } } } Initialiser.GsaKit.GSASenderObjects.AddRange(springs); return((springs.Count() > 0) ? new SpeckleObject() : new SpeckleNull()); }
//Sending to Speckle, search through a public static SpeckleObject ToSpeckle(this GSA0DSpring dummyObject) { var newSpringLines = ToSpeckleBase <GSA0DSpring>(); var newNodeLines = ToSpeckleBase <GSANode>(); var newLines = new List <Tuple <int, string> >(); foreach (var k in newSpringLines.Keys) { newLines.Add(new Tuple <int, string>(k, newSpringLines[k])); } foreach (var k in newNodeLines.Keys) { newLines.Add(new Tuple <int, string>(k, newNodeLines[k])); } var springsLock = new object(); var springs = new List <GSA0DSpring>(); var nodes = Initialiser.GSASenderObjects.Get <GSANode>(); Parallel.ForEach(newLines.Select(nl => nl.Item2), p => { var pPieces = p.ListSplit("\t"); if (pPieces[4] == "GRD_SPRING") { var spring = new GSA0DSpring() { GWACommand = p }; spring.ParseGWACommand(nodes); lock (springsLock) { springs.Add(spring); } } }); Initialiser.GSASenderObjects.AddRange(springs); return((springs.Count() > 0) ? new SpeckleObject() : new SpeckleNull()); }