;| bereinigt im Stilmanager alle Klassifizierungseinträge der Klassifizierung -> Typ, die weder "tragend" "nicht tragend" "Trennwand" "Bemaßung tragend" "Bemaßung nicht tragend" "Bemaßung Trennwand" heissen |; (defun Bereinig_Klassifizierung_Typ ( / setback1 KlassifizierungObjektName Klassifizierung KlassifizierungsEintrag listpos Objektnamepos KlassifizierungObjektNameTyp ENTList ENTListTYP ENTListTYPAnz ENTListTYPEintrag ENTListTYPEintragAnz ENTListTYP-T1 ENTListTYP-T1Anz ENTListTYPTemp NAME listposToDel) (setq setback1 nil) (while (/= setback1 1) (setq KlassifizierungObjektName nil) (setq Klassifizierung nil) (setq KlassifizierungsEintrag nil) (if (and (setq KlassifizierungObjektName (dictsearch (namedobjdict) "AEC_CLASSIFICATION_SYSTEM_DEFS"));DICTIONARY Klassifizierung ; (setq KlassifizierungObjektName ; (vl-remove-if-not '(lambda (x) (= (car X) 350)) KlassifizierungObjektName);alle DICTIONARYS Klassifizierung ; ) ) (progn ;begin suche nach ObjektName der Klassifizierung Typ (setq listpos 0);Listenposition der Elemente auf 0 (foreach teil KlassifizierungObjektName ; (print "teil: ")(princ teil)(terpri) (setq listpos (+ listpos 1));Listenposition der Elemente pro Durchlauf um 1 erhöhen (if (= (car teil) 3);nur für KlassifizierungsNamen (progn (setq TYP (cdr teil)) ; (print "TYP: ")(princ TYP)(terpri) (if (= TYP "Typ") (progn (setq Objektnamepos listpos);Listenposition des zu löschenden Elementes ; (print "Objektnamepos: ")(princ Objektnamepos)(terpri) (setq KlassifizierungObjektNameTyp (list (nth Objektnamepos KlassifizierungObjektName))) );end progn );end if and /= TYP );end progn );end if );end foreach teil KlassifizierungObjektName ;end suche nach ObjektName der Klassifizierung Typ (foreach teil KlassifizierungObjektNameTyp (setq ENTList (entget (cdr teil)));Entitylisten aller Klassifizierung ; (print "AEC_CLASSIFICATION_SYSTEM_DEF: ")(princ ENTList)(terpri) (setq Klassifizierung (vl-remove-if-not '(lambda (x) (= (car X) 360)) ENTList)) (foreach teil Klassifizierung (setq ENTList (entget (cdr teil)));Entitylisten aller DICTIONARYS Klassifizierung ; (print "DICTIONARY: ")(princ ENTList)(terpri) (setq KlassifizierungsEintrag (vl-remove-if-not '(lambda (x) (= (car X) 360)) ENTList)) (foreach teil KlassifizierungsEintrag (setq ENTList (entget (cdr teil)));Entitylisten aller DICTIONARYS Klassifizierung mit KlassifizierungsEinträgen ; (print "DICTIONARY2: ")(princ ENTList)(terpri) )));end 3x foreach (setq ENTListTYP ENTList);Entitylisten aller DICTIONARYS Klassifizierung mit KlassifizierungsEinträgen um die ursprüngliche Liste nicht zu überschreiben (setq ENTListTYPAnz (length ENTListTYP));Anzahl der Elemente der Entityliste des DICTIONARYS Klassifizierung mit KlassifizierungsEinträgen inkl. Objetnamen ; (setq ENTListTYPEintrag (cdr (member (cons 281 1) ENTListTYP)));Entityliste nur KlassifizierungsEinträge inkl. Objetnamen -> nur zum Testen ; (setq ENTListTYPEintragAnz (length ENTListTYPEintrag));Anzahl der Elemnte der Entityliste aller KlassifizierungsEinträgen inkl. Objetnamen -> nur zum Testen ; (setq ENTListTYP-T1 (member (cons 281 1)(reverse ENTListTYP)));Entityliste des DICTIONARYS Klassifizierung ohne KlassifizierungsEinträge in umgekehrter Reihenfolge -> nur zum Testen ; (setq ENTListTYP-T1 (reverse ENTListTYP-T1));Entityliste des DICTIONARYS Klassifizierung ohne KlassifizierungsEinträge -> nur zum Testen ; (setq ENTListTYP-T1Anz (length ENTListTYP-T1));Anzahl der Elemente der Entityliste des DICTIONARYS Klassifizierung ohne KlassifizierungsEinträgen -> nur zum Testen ; (print "ENTListTYP-T1Anz: ")(princ ENTListTYP-T1Anz)(terpri) (setq ENTListTYPTemp ENTListTYP);Entitylisten aller DICTIONARYS Klassifizierung mit KlassifizierungsEinträgen um die ursprüngliche Liste nicht zu überschreiben ;begin Einträge löschen 1 (setq listpos 0);Listenposition der Elemente auf 0 (foreach teil ENTListTYPTemp ; (print "teil: ")(princ teil)(terpri) (setq listpos (+ listpos 1));Listenposition der Elemente pro Durchlauf um 1 erhöhen (if (= (car teil) 3);nur für KlassifizierungsEinträge (progn (setq NAME (cdr teil)) ; (print "NAME: ")(princ NAME)(terpri) (if (and (/= NAME "tragend") (/= NAME "nicht tragend") (/= NAME "Trennwand") (/= NAME "Bemaßung tragend") (/= NAME "Bemaßung nicht tragend") (/= NAME "Bemaßung Trennwand") );end and (progn (setq listposToDel listpos);Listenposition des zu löschenden Elementes ; (print "listposToDel: ")(princ listposToDel)(terpri) (entdel (cdr (nth listposToDel ENTListTYP)));Element KlassifizierungsEintrag löschen (setq setback1 1) );end progn );end if and /= NAME );end progn );end if );end foreach teil ENTListTYPTemp );end progn );end if );end while setback1 );end defun ;---------------------------- (Bereinig_Klassifizierung_Typ)