| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Ordner unterdrücken (2253 mal gelesen)
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 Win 7, 64 Bit, Inventor 2013.
|
erstellt am: 15. Feb. 2012 14:30 <-- editieren / zitieren --> Unities abgeben:
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 Win 7, 64 Bit, Inventor 2013.
|
erstellt am: 16. Feb. 2012 15:25 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 16. Feb. 2012 19:25 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hi Zur Zeit geht es nicht. Du müßtest es zu Fuß machen. Dazu unter BrowserFolder/BrowserNode durch alle darunter liegenden BrowserNodes laufen, jeweils das NativeObject (sollte die jeweilige ComponentOccurrence sein) nehmen und unterdrücken. Hast du BrowserFolder auch noch ineinander geschachtelt, kommt noch ein rekursiver Aufruf dazu. ------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 Win 7, 64 Bit, Inventor 2013.
|
erstellt am: 20. Feb. 2012 10:55 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 20. Feb. 2012 21:16 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hi Natürlich haben wir keine Beispiele parat, also schreiben wir welche. Der folgende Code läuft rekursiv durch Ordner und Unterordner und unterdrückt einfach alles. Code: Private Sub SuppressBrowserFolder()Dim oDoc As Document Set oDoc = ThisApplication.ActiveDocument Dim oBrowserPane As BrowserPane Set oBrowserPane = oDoc.BrowserPanes.Item("Modell") Dim oTopNode As BrowserNode Set oTopNode = oBrowserPane.TopNode Dim oCompOcc As ComponentOccurrence Dim oBrowserFolder As BrowserFolder Dim oBrowserNode As BrowserNode For Each oBrowserFolder In oTopNode.BrowserFolders If oBrowserFolder.BrowserNode.BrowserFolders.Count > 0 Then Call processsubfolder(oBrowserFolder.BrowserNode) End If For Each oBrowserNode In oBrowserFolder.BrowserNode.BrowserNodes If TypeOf oBrowserNode.NativeObject Is ComponentOccurrence Then Set oCompOcc = oBrowserNode.NativeObject oCompOcc.Suppress End If Next Next End Sub
Private Sub processsubfolder(ByVal oBrowserNode As BrowserNode) Dim oSubFolder As BrowserFolder For Each oSubFolder In oBrowserNode.BrowserFolders If oSubFolder.BrowserNode.BrowserFolders.Count > 0 Then Call processsubfolder(oBrowserNode) End If For Each oBrowserNode In oSubFolder.BrowserNode.BrowserNodes If TypeOf oBrowserNode.NativeObject Is ComponentOccurrence Then Set oCompOcc = oBrowserNode.NativeObject oCompOcc.Suppress End If Next Next End Sub
------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 Win 7, 64 Bit, Inventor 2013.
|
erstellt am: 21. Feb. 2012 08:09 <-- editieren / zitieren --> Unities abgeben:
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 Win 7, 64 Bit, Inventor 2013.
|
erstellt am: 15. Mrz. 2012 14:46 <-- editieren / zitieren --> Unities abgeben:
Hallo RK, Dein Code funktioniert Supper, ich wollte das Anpassen das ch Z. B. nur Ordner mit dem Name Test1 unterdrückt wird und nicht alle. Kriege ich nicht hin! noch eine Frage, wie kann ich wieder das Unterdrücken wegnehmen? Gruß Sawah Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 15. Mrz. 2012 19:10 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hi Selektiv nach bestimmten Ordner könnte man simpel so machen: Code: Private Sub SuppressBrowserFolder()Dim oDoc As Document Set oDoc = ThisApplication.ActiveDocument Dim oBrowserPane As BrowserPane Set oBrowserPane = oDoc.BrowserPanes.Item("Modell") Dim oTopNode As BrowserNode Set oTopNode = oBrowserPane.TopNode Dim oCompOcc As ComponentOccurrence Dim oBrowserFolder As BrowserFolder Dim oBrowserNode As BrowserNode For Each oBrowserFolder In oTopNode.BrowserFolders If oBrowserFolder.BrowserNode.BrowserFolders.Count > 0 Then Call processsubfolder(oBrowserFolder.BrowserNode) End If If oBrowserFolder.Name = "test1" Then For Each oBrowserNode In oBrowserFolder.BrowserNode.BrowserNodes If TypeOf oBrowserNode.NativeObject Is ComponentOccurrence Then Set oCompOcc = oBrowserNode.NativeObject oCompOcc.Suppress End If Next End If Next End Sub
Private Sub processsubfolder(ByVal oBrowserNode As BrowserNode) Dim oSubFolder As BrowserFolder For Each oSubFolder In oBrowserNode.BrowserFolders If oSubFolder.BrowserNode.BrowserFolders.Count > 0 Then Call processsubfolder(oBrowserNode) End If If oBrowserFolder.Name = "test1" Then For Each oBrowserNode In oSubFolder.BrowserNode.BrowserNodes If TypeOf oBrowserNode.NativeObject Is ComponentOccurrence Then Set oCompOcc = oBrowserNode.NativeObject oCompOcc.Suppress End If Next End If Next End Sub
Die Unterdrückung aufheben würde ich nicht per API machen. Beim Unterdrücken wird eine Detailgenauigkeit erstellt. Wähle im Teilebrowser unter Darstellungen, Detailgenauigkeit wieder die Hauptansicht. ------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 Win 7, 64 Bit, Inventor 2013.
|
erstellt am: 16. Mrz. 2012 08:00 <-- editieren / zitieren --> Unities abgeben:
|