Der Ebenenmanager bietet die Information über die Nutzung einer jeden Ebene über den Ebenenmanager an. Diese Werte können über die Eigenschaften abgefragt werden.Um diese Werte auch per VBA abfragen zu können, benötigt man eine MDL Funktion, die in das VBA Projekt eingebunden wird.Hier dazu in VBA ein Beispiel, wie so etwas ausgeführt werden kann.Die dabei erstellte Textdatei liegt im selben Verzeichnis wie die geöffnete aktive Datei und enthält für jede benutzte Ebene die Anzahl der Nutzungen. Am Ende ist die Summer aller Nutzungen gelistet .
Declare Function mdlLevel_getElementCount Lib "stdmdlbltin.dll" (ByRef pUsageCountOut As Long, ByVal modelRefIn As Long, ByVal levelIdIn As Long) As Long Option Explicit Sub usagesPerLevel() Dim pUsageCountOut As Long Dim sName As String Dim modelRefIn As Long Dim levelIdIn As Long Dim status As Long Dim oLv As level Dim lvlCounter As Long Dim path As String lvlCounter = 0 path = ActiveDesignFile.fullName + "-levels.txt" 'Textdatei zur Ausgabe der Werte, liegt im selben Pfad wie die aktive Zeichnung Open path For Output As #1 Print #1, "Level Usages der Datei: " & ActiveDesignFile.fullName Print #1, "" For Each oLv In ActiveDesignFile.Levels status = mdlLevel_getElementCount(pUsageCountOut, ActiveModelReference.MdlModelRefP, oLv.ID) If pUsageCountOut > 0 Then Print #1, oLv.name, pUsageCountOut lvlCounter = lvlCounter + pUsageCountOut ' aufaddieren der Nutzungen aller Ebenen End If Next oLv Print #1, "=======================================================================" Print #1, "Insgesamt sind alle Ebenen zusammen von: " & CStr(lvlCounter) & " Elementen belegt" MessageCenter.AddMessage "Level Usages in Datei geschrieben " & path Close #1 End Sub