Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Selectionfilter ergibt null

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Selectionfilter ergibt null (717 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 11. Nov. 2015 11:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich habe etwas Probleme den SelectionFilter richtig anzusprechen.
Ich möchte eine OjectCollection erhalten, entsprechend Layername und Objekttyp:
Code:
ObjectIdCollection coll = new ObjectIdCollection();
                switch (sel.EntName)
                {
                    case "AcDbPolyline":
                        descr = string.Format("Layer=" + sel.Layername + ", 2D");
                        coll = Selection.SsetFilter(sel.Layername, sel.EntName);
                        surf.Tinsurface.BreaklinesDefinition.AddStandardBreaklines(coll, 10, 5, 5, 0);
                        break;
                    case "AcDb2dPolyline":
                        descr = string.Format("Layer=" + sel.Layername + ", 2D");
                        coll = Selection.SsetFilter(sel.Layername, sel.EntName);
                        surf.Tinsurface.BreaklinesDefinition.AddStandardBreaklines(coll, 10, 5, 5, 0);
                        break;
                    case "AcDb3dPolyline":
                        descr = string.Format("Layer=" + sel.Layername + ", 3D");
                        coll = Selection.SsetFilter(sel.Layername, sel.EntName);
                        surf.Tinsurface.BreaklinesDefinition.AddStandardBreaklines(coll, 10, 5, 5, 0);
                        break;
                }

Das Problem im Selectionfilter ist, dass ich vermutlich den
(int)DxfCode.Subclass, "AcDb2dPolyline"), 100); falsch anspreche, wie muss das richtig lauten?

Nach dieser Variante werden mir alle Polylinien auf Layer "200" ausgelesen. Es sollten jedoch nur die 3dPolylinien sein

Code:
        [CommandMethod("FilterSelectionSet")]
        public static void FilterSelectionSet()
        {
            // Get the current document editor
            Editor acDocEd = Application.DocumentManager.MdiActiveDocument.Editor;

            // Create a TypedValue array to define the filter criteria
           

            TypedValue[] acTypValAr = new TypedValue[3]
            {
                    new TypedValue((int)DxfCode.Subclass, "AcDb3dPolyline"),
                    new TypedValue((int)DxfCode.LayerName, "200"),
                    new TypedValue((int)DxfCode.LayoutName, "Model"),
            };

            // Assign the filter criteria to a SelectionFilter object
            Autodesk.AutoCAD.EditorInput.SelectionFilter acSelFtr = new Autodesk.AutoCAD.EditorInput.SelectionFilter(acTypValAr);

            // Request for objects to be selected in the drawing area
            PromptSelectionResult acSSPrompt;
            acSSPrompt = acDocEd.GetSelection(acSelFtr);

            // If the prompt status is OK, objects were selected
            if (acSSPrompt.Status == PromptStatus.OK)
            {
                SelectionSet acSSet = acSSPrompt.Value;

                Application.ShowAlertDialog("Number of objects selected: " +
                                            acSSet.Count.ToString());
            }
            else
            {
                Application.ShowAlertDialog("Number of objects selected: 0");
            }
        }


------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

[Diese Nachricht wurde von cadplayer am 11. Nov. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadplayer
Ehrenmitglied
CADniker


Sehen Sie sich das Profil von cadplayer an!   Senden Sie eine Private Message an cadplayer  Schreiben Sie einen Gästebucheintrag für cadplayer

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 13. Nov. 2015 13:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz