示例#1
0
        static public void EraseSelectedTunnel(object sender, long handleValue)
        {
            if (SelectedTunnels == null || SelectedTunnels.Count == 0)
            {
                return;
            }

            var et = SelectedTunnels.Find((tunnel) =>
            {
                if (tunnel.HandleValue == handleValue)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            });

            if (et != null)
            {
                SelectedTunnels.Remove(et);
            }

            SelectedTunnelChanged?.Invoke(sender, SelectedTunnels);
        }
示例#2
0
        static public void ChangeSelection(object sender, SelectionSet set)
        {
            SelectedTunnels = new List <DBTunnel>();
            SelectedNodes   = new List <DBNode>();

            if (set.Count != 0)
            {
                Document doc = Application.DocumentManager.MdiActiveDocument;
                Database db  = doc.Database;
                Editor   ed  = doc.Editor;

                var ids = set.GetObjectIds();
                Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;

                Utils.TransactionControl(() =>
                {
                    Entity entity = null;
                    foreach (var id in ids)
                    {
                        entity = (Entity)tm.GetObject(id, OpenMode.ForRead, false);
                        if (entity.IsErased == true)
                        {
                            return;
                        }
                        long handleValue = entity.Handle.Value;
                        if (entity is BaseTunnel)
                        {
                            DBTunnel dbTunnel = Utils.GetEntityFromDB(handleValue) as DBTunnel;

                            if (dbTunnel == null)
                            {
                                return;
                            }
                            else
                            {
                                SelectedTunnels.Add(dbTunnel);
                            }
                        }
                        else if (entity is Node)
                        {
                            DBNode dbNode = Utils.GetEntityFromDB(handleValue) as DBNode;
                            if (dbNode == null)
                            {
                                return;
                            }
                            else
                            {
                                SelectedNodes.Add(dbNode);
                            }
                        }
                    }
                });
            }
            SelectedTunnelChanged?.Invoke(sender, SelectedTunnels);
            SelectedNodeChanged?.Invoke(sender, SelectedNodes);
        }