How to get current selected Polyline in Selection event.

How to get current selected Polyline in Selection event.

MarkJamesRogolino
Advocate Advocate
470 Views
1 Reply
Message 1 of 2

How to get current selected Polyline in Selection event.

MarkJamesRogolino
Advocate
Advocate

Hello, everyone. 

I have a question, how can I get selected Polyline on Selection event.

My scratch code is following. But this is wrong, Please someone help me. Thank you.

public static void SubscribeToDoc(AcadDocument doc)
        {
            //doc.CommandEnded += new CommandEventHandler(doc_CommandEnded);
            var ed = doc.Editor;
            ed.SelectionAdded += Obj_Selected;
        }
static void Obj_Selected(object sender, SelectionAddedEventArgs e)
        {
            var ids = e.AddedObjects.GetObjectIds();
            var doc = Application.DocumentManager.MdiActiveDocument;
            var db = doc.Database;
            var ed = doc.Editor;
            TypedValue[] typedValueArray = new TypedValue[1];
            typedValueArray.SetValue(new TypedValue((int)DxfCode.Start, "POLYLINE,LWPOLYLINE"), 0);

            var selectionFilter = new SelectionFilter(typedValueArray);

            var promptSelectionResult = ed.GetSelection(selectionFilter);

            var selectionSet = promptSelectionResult.Value;
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
                foreach (SelectedObject obj in selectionSet)
                {
                    Polyline poly = tr.GetObject(obj.ObjectId, OpenMode.ForRead, false) as Polyline;
                    curPline = poly;
                }
                tr.Commit();
            }
        }

 

0 Likes
471 Views
1 Reply
Reply (1)
Message 2 of 2

jose_mendoza_koerber
Participant
Participant

Hi,

I guess you need to use the ImpliedSelectionChanged event. You find this EventHandler within the document object.

The Document.Editor.SelectImplied() returns the current selection.