Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  Löschen von Properties

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 SolidEdge
Autor Thema:  Löschen von Properties (2569 mal gelesen)
peticeo
Mitglied
Wirtschaftsinformatiker FH


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

Beiträge: 162
Registriert: 25.10.2005

Windows 7 64bit
Quad X5472
ST 2/12
Teamcenter 8.1

erstellt am: 29. Mrz. 2010 08:32    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

Hallo

In der Hilfe gibt es die PropertyClass "Delete Method"

Dim objPropertySets As SolidEdgeFileProperties.PropertySets = Nothing
Dim objProperties As SolidEdgeFileProperties.Properties = Nothing
Dim objProperty As SolidEdgeFileProperties.Property = Nothing

  ' Create a new instance of PropertySets.
  objPropertySets = New SolidEdgeFileProperties.PropertySets
  objPropertySets.Open("C:\Part1.par", False)
  objProperties = objPropertySets.Item("Custom")
  objProperty = objProperties.Add("My Custom Property", "My Custom Value")
  objProperty.Delete()
  objPropertySets.Save()
  objPropertySets.Close()

Gibt es eine Möglichkeit, Properties zu löschen, wenn das Dokument Aktiv ist??

Ich habs so versucht, leider erfolglos:

Dim mApp As SolidEdgeFramework.Application = GetObject(, "SolidEdge.Application")
Dim objPropertySets As SolidEdgeFileProperties.PropertySets = Nothing
Dim objProperties As SolidEdgeFileProperties.Properties = Nothing
Dim objProperty As SolidEdgeFileProperties.Property = Nothing

        objPropertySets = New SolidEdgeFileProperties.PropertySets
        objPropertySets = mApp.ActiveDocument
        objProperties = objPropertySets.Item("Custom")
        objProperty = objProperties.Add("My Custom Property" (hier die dementsprechende Properties), "My Custom Value")
        objProperty.Delete()
        objPropertySets.Save()
        objPropertySets.Close()

Kann mir jemand helfen?

Ich sollte alle Properties ("Custom") löschen und neue erstellen.

Gruss Peticeo

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 200
Registriert: 19.11.2004

erstellt am: 29. Mrz. 2010 08:56    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 Nur für peticeo 10 Unities + Antwort hilfreich

Hallo Peticeo,

2 Fehler:

1) Bei einem aktiven (geladenen) Dokument kann man nicht mit den Eigenschaften über das Solid Edge FileProperties Objekt arbeiten, sondern muss dies über das Properties-Objekt des entsprechenden Document-Objekts bewerkstelligen.
2) Du musst die Delete-Methode in einer For-Schleife auf alle Items der Custom-Properties Auflistung ausführen, das Gegenstück quasi zur Add-Methode, und nicht auf ein einzeln zugewiesenes Property-Objekt. Dabei ist die For-Schleife vom höchsten Item-Index (Count-Eigenschaft) zum kleinsten Index (also 1) zu durchlaufen. Eine For Each Schleife geht deshalb nicht. Danach das Properties-Objekt durch Aufruf dessen Save-Methode speichern.

Hier als fertige Methode:

Code:

    Private Sub DeleteCustomProperties()
        Dim seApp As SolidEdgeFramework.Application = Nothing
        Dim seDoc As SolidEdgeFramework.SolidEdgeDocument = Nothing
        Dim propSets As SolidEdgeFramework.PropertySets = Nothing
        Dim customPropSet As SolidEdgeFramework.Properties = Nothing

        Try
            seApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SolidEdge.Application"), SolidEdgeFramework.Application)
            seDoc = CType(seApp.ActiveDocument, SolidEdgeFramework.SolidEdgeDocument)

            propSets = CType(seDoc.Properties, SolidEdgeFramework.PropertySets)
            customPropSet = propSets.Item("Custom")

            For i As Integer = customPropSet.Count To 1 Step -1
                customPropSet.Item(i).Delete()
            Next

            customPropSet.Save()
            propSets.Save()
        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            If customPropSet IsNot Nothing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(customPropSet)
                customPropSet = Nothing
            End If
            If propSets IsNot Nothing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(propSets)
                propSets = Nothing
            End If
            If seDoc IsNot Nothing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(seDoc)
                seDoc = Nothing
            End If
            If seApp IsNot Nothing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(seApp)
                seApp = Nothing
            End If
        End Try
    End Sub



------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

[Diese Nachricht wurde von wksyspro am 31. Mrz. 2010 editiert.]

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 200
Registriert: 19.11.2004

erstellt am: 31. Mrz. 2010 13:56    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 Nur für peticeo 10 Unities + Antwort hilfreich

Hallo Peticeo,

ich habe in meinem obigen Beitrag den Code für die Lösung nachgetragen.

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

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

peticeo
Mitglied
Wirtschaftsinformatiker FH


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

Beiträge: 162
Registriert: 25.10.2005

Windows 7 64bit
Quad X5472
ST 2/12
Teamcenter 8.1

erstellt am: 01. Apr. 2010 19:55    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

Herzlichen Dank

Ich werde es zwar erst am Mittwoch nachprüfen aber ich bin mir sicher dass es läuft.

Wünsche dir noch eine erholsame Zeit 
Peticeo

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

NetDeveloper1711
Mitglied


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

Beiträge: 2
Registriert: 13.08.2012

erstellt am: 13. Aug. 2012 16:15    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 Nur für peticeo 10 Unities + Antwort hilfreich

Hallo zusammen,

kämpfe mit dem gleichen Problem, allerdings möchte ich nur bestimmte benutzerdefinierte Properties löschen, nicht alle.
Danach würde ich manche gern neu definieren aber mit anderem Typ.

Das Beispiel oben funktioniert bei mir nicht.

In der Zeile

seApp = CType(System.Runtime.InteropServices.Marshal.GetActiveObject("SolidEdge.Application"), SolidEdgeFramework.Application)

setze ich Breakpoint und der schmießt gleich Exception:

Vorgang nicht verfügbar. (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))

Ich lasse es unter .NETFramework 4.0 laufen.

Vielen Dank im Voraus und Gruß

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

wksyspro
Mitglied
Dipl.-Ing.


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

Beiträge: 200
Registriert: 19.11.2004

erstellt am: 13. Aug. 2012 20:28    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 Nur für peticeo 10 Unities + Antwort hilfreich

@NetDeveloper1711,

das Beispiel in meinem obigen Beitrag setzt ein geöffnetes Solid Edge Dokument voraus - und Achtung, es löscht, wie im Thread gewünscht, alle benutzerdefinierten Eigenschaften des aktiven Dokuments!

Du kannst natürlich in der For-Schleife unter Verwendung der Name-Eigenschaft das Löschen auf bestimmte Eigenschaften beschränken.

------------------
Viele Grüße,

Wolfgang Kunert
www.wksyspro.de

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

NetDeveloper1711
Mitglied


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

Beiträge: 2
Registriert: 13.08.2012

erstellt am: 14. Aug. 2012 07:47    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 Nur für peticeo 10 Unities + Antwort hilfreich

Danke,
es hat funktioniert. Problem lag darin das der Ordnder schreibgeschützt war  .

Wie kann ich das auf mehrere SE-Dateien anwenden z.B. auf ein ganzes Ordner?

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

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