Ein vielfach genutzte Farbzuweisung für Elemente is "von Ebene", d.h. ein Element wird in der Farbe dargestellt, die für die Ebene des Elementes zugewiesen ist.
Bei der Auswahl der Farben für die Ebenen können neben den FArben der FArbtabelle ( Farbe 0 bis 255) auch beliebige RGB Werte zugeweisen werden. Dies kann beispielsweise bei der Plotausgabe Probleme bereiten, wenn Plotkonventionen FArben abändern und die RGB Werte nicht identifiziert werden.Deshalb kann es interessant sein, alle RGB Farben der Ebenen auf konkrete Indexfarben der Farbtabelle abzuändern, dabei aber möglichst die Farbe selber beizubehalten.Dazu gibt es in VBA die hilfreiche Methode .InternalColorToIndexedColor, die eine möglichst ähnliche Farbe in der Farbtabelle findet.
Um pauschal alle Farben der Ebenen auf konkrete Indexfarben abzuändern, könnte man folgenden Ansatz verwenden:
Dim oLv As Level For Each oLv In ActiveDesignFile.Levels If Not oLv.IsFromLevelLibrary Then oLv.ElementColor = ActiveModelReference.InternalColorToIndexedColor(oLv.ElementColor) End If Next ActiveDesignFile.Levels.Rewrite