示例#1
0
        public static SpeckleObject ToSpeckle(this GSARigidConstraints dummyObject)
        {
            var newLines = ToSpeckleBase <GSARigidConstraints>();

            var constraintsLock = new object();
            var constraints     = new List <GSARigidConstraints>();
            var nodes           = Initialiser.GSASenderObjects.Get <GSANode>();
            var stages          = Initialiser.GSASenderObjects.Get <GSAConstructionStage>();

            Parallel.ForEach(newLines.Keys, k =>
            {
                try
                {
                    var constraint = new GSARigidConstraints()
                    {
                        GSAId = k, GWACommand = newLines[k]
                    };
                    constraint.ParseGWACommand(nodes, stages);
                    lock (constraintsLock)
                    {
                        constraints.Add(constraint);
                    }
                }
                catch { }
            });

            Initialiser.GSASenderObjects.AddRange(constraints);

            return((constraints.Count() > 0) ? new SpeckleObject() : new SpeckleNull());
        }
示例#2
0
        public static SpeckleObject ToSpeckle(this GSARigidConstraints dummyObject)
        {
            var newLines = ToSpeckleBase <GSARigidConstraints>();

            var constraints = new List <GSARigidConstraints>();
            var nodes       = Initialiser.GSASenderObjects[typeof(GSANode)].Cast <GSANode>().ToList();
            var stages      = Initialiser.GSASenderObjects[typeof(GSAConstructionStage)].Cast <GSAConstructionStage>().ToList();

            foreach (var k in newLines.Keys)
            {
                try
                {
                    var constraint = new GSARigidConstraints()
                    {
                        GSAId = k, GWACommand = newLines[k]
                    };
                    constraint.ParseGWACommand(nodes, stages);
                    constraints.Add(constraint);
                }
                catch { }
            }

            Initialiser.GSASenderObjects[typeof(GSARigidConstraints)].AddRange(constraints);

            return((constraints.Count() > 0) ? new SpeckleObject() : new SpeckleNull());
        }
示例#3
0
        public static SpeckleObject ToSpeckle(this GSARigidConstraints dummyObject)
        {
            var newLines        = ToSpeckleBase <GSARigidConstraints>();
            var typeName        = dummyObject.GetType().Name;
            var constraintsLock = new object();
            var constraints     = new SortedDictionary <int, GSARigidConstraints>();
            var nodes           = Initialiser.GsaKit.GSASenderObjects.Get <GSANode>();
            var stages          = Initialiser.GsaKit.GSASenderObjects.Get <GSAConstructionStage>();

            Parallel.ForEach(newLines.Keys, k =>
            {
                try
                {
                    var constraint = new GSARigidConstraints()
                    {
                        GSAId = k, GWACommand = newLines[k]
                    };
                    constraint.ParseGWACommand(nodes, stages);
                    lock (constraintsLock)
                    {
                        constraints.Add(k, constraint);
                    }
                }
                catch (Exception ex)
                {
                    Initialiser.AppResources.Messenger.CacheMessage(MessageIntent.Display, MessageLevel.Error, typeName, k.ToString());
                    Initialiser.AppResources.Messenger.CacheMessage(MessageIntent.TechnicalLog, MessageLevel.Error, ex, typeName, k.ToString());
                }
            });

            Initialiser.GsaKit.GSASenderObjects.AddRange(constraints.Values.ToList());

            return((constraints.Keys.Count > 0) ? new SpeckleObject() : new SpeckleNull());
        }