{"id":2560,"date":"2026-10-02T06:52:05","date_gmt":"2026-10-02T04:52:05","guid":{"rendered":"https:\/\/cad-kompass.de\/?p=2560"},"modified":"2026-10-03T11:21:44","modified_gmt":"2026-10-03T09:21:44","slug":"anwendungsfall-waehler-000-bis-200","status":"publish","type":"post","link":"https:\/\/cad-kompass.de\/?p=2560","title":{"rendered":"Anwendungsfall-W\u00e4hler 000 bis 200"},"content":{"rendered":"\n<style>\n    .awf-box {\n        --awf-primary: #3f5f75;\n        --awf-primary-dark: #2c4a5e;\n        --awf-primary-deep: #1e3548;\n        --awf-error: #dc2626;\n        --awf-good: #059669;\n        --awf-good-deep: #15803d;\n        --awf-accent: #e8913a;\n        --awf-warn: #d97706;\n        --awf-ink: #1e293b;\n        --awf-text: #334155;\n        --awf-muted: #64748b;\n        --awf-faint: #94a3b8;\n        --awf-border: #c8d6e0;\n        --awf-surface: #f7f9fb;\n        \/* Tool-spezifisch: die drei Stufen der kommunalen Einschaetzung. Bewusst nur als kleines\n           Quadrat im Kartenfuss gesetzt, nicht als farbiger Streifen an der Karte. *\/\n        --awf-stufe-regel: #059669;\n        --awf-stufe-gelegentlich: #d97706;\n        --awf-stufe-nie: #94a3b8;\n        background: var(--awf-surface);\n        border: 3px solid var(--awf-primary);\n        border-radius: 8px;\n        margin: 28px 0;\n        overflow: hidden;\n        position: relative;\n        font-family: inherit;\n        color: var(--awf-text);\n        line-height: 1.6;\n    }\n    .awf-box *, .awf-box *::before, .awf-box *::after { box-sizing: border-box; }\n\n    .awf-header {\n        background: linear-gradient(135deg, var(--awf-primary-deep) 0%, var(--awf-primary-dark) 100%);\n        padding: 20px 28px 18px;\n        position: relative;\n        overflow: hidden;\n    }\n    .awf-header::after {\n        content: '';\n        position: absolute;\n        bottom: 0; left: 0; right: 0;\n        height: 3px;\n        background: repeating-linear-gradient(90deg, #3f5f75 0px, #3f5f75 8px, transparent 8px, transparent 12px);\n    }\n    .awf-header-top { display: flex; align-items: center; gap: 12px; }\n    .awf-header-icon { width: 36px; height: 36px; flex-shrink: 0; opacity: 0.9; }\n    .awf-box .awf-box-title {\n        font-size: 1.15rem; font-weight: 700; color: #fff;\n        margin: 0; padding: 0; letter-spacing: 0.01em; display: block;\n    }\n    .awf-box .awf-box-desc {\n        font-size: 0.85rem; color: rgba(255,255,255,0.66);\n        margin: 4px 0 0; padding: 0; line-height: 1.5; display: block;\n    }\n\n    .awf-body { padding: 22px 28px 24px; }\n\n    .awf-privacy {\n        background: #f0fdf4;\n        border: 1px solid #bbf7d0;\n        border-radius: 3px;\n        padding: 9px 14px;\n        margin-bottom: 14px;\n        font-size: 0.8rem;\n        color: #15803d;\n        line-height: 1.5;\n        display: flex; align-items: center; gap: 8px;\n    }\n    .awf-privacy::before { content: '\\1F512'; flex-shrink: 0; font-size: 0.9rem; }\n\n    .awf-intro {\n        background: #f0f5fa;\n        border-left: 3px solid var(--awf-primary);\n        border-radius: 0 4px 4px 0;\n        padding: 12px 16px;\n        margin-bottom: 16px;\n        font-size: 0.84rem;\n        color: var(--awf-text);\n    }\n    .awf-intro p { margin: 0 0 8px; }\n    .awf-intro p:last-child { margin-bottom: 0; }\n    .awf-intro strong { color: var(--awf-ink); }\n\n    .awf-panel {\n        background: #fff;\n        border: 1px solid var(--awf-border);\n        border-radius: 4px;\n        padding: 14px 16px 16px;\n        margin-bottom: 16px;\n    }\n\n    .awf-field { margin-bottom: 14px; }\n    .awf-field:last-child { margin-bottom: 0; }\n    .awf-label {\n        font-size: 0.75rem;\n        font-weight: 700;\n        color: var(--awf-muted);\n        text-transform: uppercase;\n        letter-spacing: 0.06em;\n        margin-bottom: 6px;\n        display: block;\n    }\n    .awf-note {\n        font-size: 0.79rem;\n        line-height: 1.55;\n        color: #92700c;\n        background: #fffbeb;\n        border: 1px solid #f4cf81;\n        border-left: 3px solid #d97706;\n        border-radius: 0 3px 3px 0;\n        padding: 8px 12px;\n        margin: 0 0 8px;\n    }\n    .awf-note strong { color: #7a5c07; }\n    .awf-note-plain {\n        font-size: 0.78rem;\n        line-height: 1.55;\n        color: var(--awf-muted);\n        margin: 6px 0 0;\n    }\n    .awf-note-plain strong { color: var(--awf-primary-dark); }\n\n    .awf-segrow { display: flex; flex-wrap: wrap; gap: 6px; }\n\n    .awf-box .awf-segbtn {\n        -webkit-appearance: none !important;\n        appearance: none !important;\n        display: inline-flex;\n        align-items: center;\n        min-height: 34px !important;\n        padding: 5px 12px !important;\n        font: inherit !important;\n        font-size: 0.81rem !important;\n        font-weight: 600 !important;\n        line-height: 1.3 !important;\n        border: 1px solid var(--awf-border) !important;\n        border-radius: 3px !important;\n        background: #fff !important;\n        color: var(--awf-muted) !important;\n        cursor: pointer !important;\n        box-shadow: none !important;\n        text-transform: none !important;\n        letter-spacing: normal !important;\n        transition: background 0.15s, color 0.15s, border-color 0.15s;\n    }\n    .awf-box .awf-segbtn:hover {\n        background: #eef3f7 !important;\n        border-color: var(--awf-primary) !important;\n        color: var(--awf-ink) !important;\n    }\n    .awf-box .awf-segbtn:active {\n        background: #e2eaf1 !important;\n        border-color: var(--awf-primary-dark) !important;\n        color: var(--awf-primary-deep) !important;\n    }\n    .awf-box .awf-segbtn:focus-visible {\n        outline: 2px solid var(--awf-primary) !important;\n        outline-offset: 2px !important;\n        border-color: var(--awf-primary) !important;\n        color: var(--awf-primary) !important;\n    }\n    .awf-box .awf-segbtn:disabled {\n        opacity: 0.45 !important;\n        cursor: not-allowed !important;\n        background: #f1f5f9 !important;\n        color: var(--awf-faint) !important;\n        border-color: var(--awf-border) !important;\n    }\n    .awf-box .awf-segbtn.is-active {\n        background: var(--awf-primary) !important;\n        border-color: var(--awf-primary) !important;\n        color: #fff !important;\n    }\n    .awf-box .awf-segbtn.is-active:hover {\n        background: var(--awf-primary-dark) !important;\n        border-color: var(--awf-primary-dark) !important;\n        color: #fff !important;\n    }\n\n    .awf-box .awf-btn {\n        -webkit-appearance: none !important;\n        appearance: none !important;\n        display: inline-flex;\n        align-items: center;\n        min-height: 36px !important;\n        padding: 7px 14px !important;\n        font: inherit !important;\n        font-size: 0.82rem !important;\n        font-weight: 700 !important;\n        line-height: 1.3 !important;\n        border: 1px solid var(--awf-primary) !important;\n        border-radius: 3px !important;\n        background: #fff !important;\n        color: var(--awf-primary) !important;\n        cursor: pointer !important;\n        box-shadow: none !important;\n        text-transform: none !important;\n        letter-spacing: normal !important;\n        transition: background 0.15s, color 0.15s, border-color 0.15s;\n    }\n    .awf-box .awf-btn:hover { background: var(--awf-primary) !important; color: #fff !important; border-color: var(--awf-primary) !important; }\n    .awf-box .awf-btn:active { background: var(--awf-primary-dark) !important; color: #fff !important; border-color: var(--awf-primary-dark) !important; }\n    .awf-box .awf-btn:focus-visible { outline: 2px solid var(--awf-primary) !important; outline-offset: 2px !important; }\n    .awf-box .awf-btn:disabled { opacity: 0.45 !important; cursor: not-allowed !important; background: #f1f5f9 !important; color: var(--awf-faint) !important; border-color: var(--awf-border) !important; }\n    .awf-box .awf-btn.is-active { background: var(--awf-primary) !important; color: #fff !important; border-color: var(--awf-primary) !important; }\n\n    .awf-box .awf-search {\n        width: 100%;\n        padding: 10px 14px;\n        font-size: 0.92rem;\n        font-family: inherit;\n        border: 1px solid var(--awf-border);\n        border-radius: 3px;\n        color: var(--awf-ink);\n        background: #fff;\n        -webkit-appearance: none;\n        appearance: none;\n        transition: border-color 0.15s, box-shadow 0.15s;\n    }\n    .awf-box .awf-search:focus {\n        outline: none;\n        border-color: var(--awf-primary);\n        box-shadow: 0 0 0 2px rgba(63,95,117,0.12);\n    }\n    .awf-box .awf-search::placeholder { color: var(--awf-faint); }\n\n    .awf-resultbar {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 10px;\n        align-items: flex-start;\n        justify-content: space-between;\n        margin-bottom: 12px;\n    }\n    .awf-satz {\n        flex: 1 1 320px;\n        font-size: 0.88rem;\n        color: var(--awf-ink);\n        line-height: 1.6;\n        margin: 0;\n    }\n    .awf-satz strong { color: var(--awf-primary-deep); }\n    .awf-satz-sub { display: block; font-size: 0.82rem; color: var(--awf-muted); margin-top: 2px; }\n\n    .awf-flash {\n        background: #eef4f8;\n        border: 1px solid var(--awf-border);\n        border-left: 3px solid var(--awf-primary);\n        border-radius: 0 3px 3px 0;\n        padding: 10px 14px;\n        margin-bottom: 12px;\n        font-size: 0.82rem;\n        color: var(--awf-text);\n        line-height: 1.55;\n    }\n    .awf-flash strong { color: var(--awf-primary-deep); }\n\n    .awf-empty {\n        background: #fff;\n        border: 1px dashed var(--awf-border);\n        border-radius: 4px;\n        padding: 18px 20px;\n        text-align: left;\n    }\n    .awf-empty-head {\n        font-size: 0.95rem;\n        font-weight: 700;\n        color: var(--awf-primary-deep);\n        margin: 0 0 6px;\n    }\n    .awf-empty-text { font-size: 0.86rem; color: var(--awf-text); margin: 0 0 12px; line-height: 1.6; }\n    .awf-empty-actions { display: flex; flex-wrap: wrap; gap: 8px; }\n\n    .awf-list { display: flex; flex-direction: column; gap: 12px; }\n\n    .awf-card {\n        background: #fff;\n        border: 1px solid var(--awf-border);\n        border-radius: 4px;\n        padding: 14px 16px 13px;\n    }\n    .awf-card-head {\n        display: flex;\n        flex-wrap: wrap;\n        align-items: baseline;\n        gap: 8px 10px;\n        margin-bottom: 7px;\n    }\n    .awf-nr {\n        font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n        font-size: 0.95rem;\n        font-weight: 700;\n        color: var(--awf-primary-deep);\n        background: #eef4f8;\n        border: 1px solid var(--awf-border);\n        border-radius: 2px;\n        padding: 1px 8px;\n        letter-spacing: 0.04em;\n    }\n    .awf-card-title {\n        font-size: 0.98rem;\n        font-weight: 700;\n        color: var(--awf-ink);\n        margin: 0;\n        line-height: 1.35;\n        flex: 1 1 200px;\n    }\n    .awf-flag {\n        font-size: 0.72rem;\n        font-weight: 700;\n        text-transform: uppercase;\n        letter-spacing: 0.04em;\n        padding: 2px 7px;\n        border-radius: 2px;\n        border: 1px solid #f4cf81;\n        background: #fffbeb;\n        color: #92700c;\n        white-space: nowrap;\n    }\n    .awf-flag.awf-flag-rahmen {\n        border-color: #b9cddb;\n        background: #eef4f8;\n        color: var(--awf-primary-dark);\n    }\n    .awf-kurz { font-size: 0.86rem; color: var(--awf-text); margin: 0 0 10px; line-height: 1.6; }\n\n    .awf-facts { margin: 0; padding: 0; font-size: 0.82rem; }\n    .awf-fact { display: flex; gap: 10px; padding: 3px 0; border-top: 1px solid #eef2f6; }\n    .awf-fact:first-child { border-top: 0; }\n    .awf-fact-key {\n        flex: 0 0 96px;\n        color: var(--awf-muted);\n        font-weight: 600;\n        line-height: 1.5;\n    }\n    .awf-fact-val { flex: 1 1 auto; color: var(--awf-text); line-height: 1.55; }\n    .awf-fact-val em { font-style: normal; color: var(--awf-ink); font-weight: 600; }\n\n    .awf-mark {\n        display: inline-block;\n        width: 8px;\n        height: 8px;\n        border-radius: 1px;\n        margin-right: 6px;\n        vertical-align: 0;\n        background: var(--awf-stufe-nie);\n    }\n    .awf-mark-regel { background: var(--awf-stufe-regel); }\n    .awf-mark-gelegentlich { background: var(--awf-stufe-gelegentlich); }\n    .awf-mark-nie { background: var(--awf-stufe-nie); }\n\n    .awf-est {\n        font-size: 0.7rem;\n        font-weight: 700;\n        text-transform: uppercase;\n        letter-spacing: 0.05em;\n        color: var(--awf-muted);\n        border: 1px solid var(--awf-border);\n        border-radius: 2px;\n        padding: 0 5px;\n        margin-left: 6px;\n        white-space: nowrap;\n    }\n\n    .awf-phase-chip {\n        display: inline-block;\n        font-size: 0.75rem;\n        color: var(--awf-primary-dark);\n        background: #f0f5fa;\n        border: 1px solid #dbe4ec;\n        border-radius: 2px;\n        padding: 0 6px;\n        margin: 2px 4px 2px 0;\n        line-height: 1.6;\n    }\n    .awf-phase-chip.is-hit { background: var(--awf-primary); border-color: var(--awf-primary); color: #fff; }\n\n    .awf-katalog {\n        margin: 10px 0 0;\n        padding: 8px 12px;\n        background: #fffbeb;\n        border: 1px solid #f4cf81;\n        border-radius: 3px;\n        font-size: 0.81rem;\n        color: #92700c;\n        line-height: 1.55;\n    }\n    .awf-katalog strong { color: #7a5c07; }\n    .awf-katalog-same { background: #f7f9fb; border-color: var(--awf-border); color: var(--awf-muted); }\n    .awf-katalog-same strong { color: var(--awf-primary-dark); }\n\n    .awf-verweis {\n        margin: 9px 0 0;\n        font-size: 0.79rem;\n        color: var(--awf-muted);\n    }\n    .awf-verweis strong { color: var(--awf-primary-dark); font-weight: 600; }\n    .awf-box .awf-verweis a, .awf-box .awf-verweis a:visited { color: var(--awf-primary-dark); font-weight: 600; text-decoration: underline; }\n    .awf-box .awf-verweis a:hover, .awf-box .awf-verweis a:focus-visible { color: #1e3548; background: transparent; }\n\n    .awf-foot {\n        margin-top: 18px;\n        padding-top: 14px;\n        border-top: 1px solid var(--awf-border);\n        font-size: 0.76rem;\n        color: var(--awf-muted);\n        line-height: 1.6;\n    }\n    .awf-foot p { margin: 0 0 7px; }\n    .awf-foot p:last-child { margin-bottom: 0; }\n    .awf-foot strong { color: var(--awf-primary-dark); }\n\n    @media (max-width: 620px) {\n        .awf-header { padding: 16px 18px 15px; }\n        .awf-body { padding: 18px 18px 20px; }\n        .awf-fact { flex-direction: column; gap: 0; }\n        .awf-fact-key { flex: none; }\n    }\n<\/style>\n\n<div class=\"awf-box\" data-awf-root>\n    <div class=\"awf-header\">\n        <div class=\"awf-header-top\">\n            <svg class=\"awf-header-icon\" viewBox=\"0 0 36 36\" fill=\"none\" aria-hidden=\"true\">\n                <rect x=\"5\" y=\"5\" width=\"26\" height=\"26\" rx=\"2.5\" stroke=\"rgba(255,255,255,0.55)\" stroke-width=\"1.6\"\/>\n                <line x1=\"9.5\" y1=\"12\" x2=\"26.5\" y2=\"12\" stroke=\"rgba(255,255,255,0.9)\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n                <line x1=\"9.5\" y1=\"18\" x2=\"26.5\" y2=\"18\" stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n                <line x1=\"9.5\" y1=\"24\" x2=\"20\" y2=\"24\" stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/>\n                <circle cx=\"24.5\" cy=\"24.5\" r=\"5.5\" fill=\"#1e3548\" stroke=\"rgba(255,255,255,0.92)\" stroke-width=\"1.8\"\/>\n                <line x1=\"28.4\" y1=\"28.4\" x2=\"32\" y2=\"32\" stroke=\"rgba(255,255,255,0.92)\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n            <\/svg>\n            <div>\n                <h2 class=\"awf-box-title\">Anwendungsfall-W&auml;hler 000 bis 200<\/h2>\n                <div class=\"awf-box-desc\">In einer kommunalen Ausschreibung stehen die Anwendungsf&auml;lle oft nur als Nummern, zum Beispiel 010, 050 und 080. Hier steht, was sie hei&szlig;en, wer sie liefert, was vorher da sein muss und ob sie in einem kommunalen Projekt &uuml;berhaupt gemeint sind.<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"awf-body\">\n        <div class=\"awf-privacy\">L&auml;uft komplett im Browser. Keine Daten verlassen deinen Rechner.<\/div>\n\n        <div class=\"awf-intro\">\n            <p>Die harmonisierte Liste hat <strong>21 Anwendungsf&auml;lle<\/strong>. Ein Anwendungsfall benennt eine BIM-Anwendung, also einen Prozess oder Arbeitsschritt, der mit der BIM-Methode l&auml;uft, und damit einen vereinbarten Zweck der Modellnutzung, kein Werkzeug und kein Reifegrad. Die Nummerierung gibt <strong>keine Reihenfolge<\/strong> vor, man arbeitet die Liste nicht von 010 nach 200 ab.<\/p>\n            <p>Was die Nummern im Vergabe-PDF verlangen und was dort nicht dabeisteht, erkl&auml;rt die Seite <a href=\"https:\/\/cad-kompass.de\/?p=2558\">Das Vergabe-PDF lesen<\/a> dieses Themenfelds; jeden Begriff, der hier vorkommt, erkl&auml;rt das <a href=\"https:\/\/cad-kompass.de\/?p=2641\">BIM-Lexikon<\/a>.<\/p>\n            <p><strong>Sonderfall 000:<\/strong> Die 000 ist kein Arbeitsschritt, sondern in der Liste der Platz f&uuml;r weitere oder &uuml;bergreifende Anwendungsf&auml;lle; in der Praxis stehen dort die Festlegungen eines Projekts, also AIA, BIM-Abwicklungsplan und Besprechungsregeln. Wer <em>AwF 000<\/em> liest, sucht die Vertrags- und Organisationsebene des Projekts. Das ist eine Einordnung, die Quelle formuliert es als Kann-Regelung.<\/p>\n        <\/div>\n\n        <div class=\"awf-panel\">\n            <div class=\"awf-field\">\n                <label class=\"awf-label\" for=\"awfSuche\">Suche &uuml;ber Nummer, Titel, Erkl&auml;rung und Stichworte<\/label>\n                <input type=\"text\" class=\"awf-search\" id=\"awfSuche\" placeholder=\"zum Beispiel: 050, Kanal, Bestand, Abrechnung\" autocomplete=\"off\" spellcheck=\"false\">\n            <\/div>\n\n            <div class=\"awf-field\">\n                <span class=\"awf-label\" id=\"awfPhaseLabel\">Projektphase<\/span>\n                <p class=\"awf-note\"><strong>Die Phasenzuordnung ist unverbindlich.<\/strong> Das Rahmendokument nennt sie selbst eine wahrscheinliche Systematik und ausdr&uuml;cklich eine Anregung, keine Vorgabe. Sie ist an die HOAI angelehnt, aber keine Zuordnung zu Leistungsphasen. Wer im Angebot eine Phase zusagt, liest sie deshalb aus der AIA des Auftraggebers.<\/p>\n                <div class=\"awf-segrow\" id=\"awfPhaseGrob\" role=\"group\" aria-labelledby=\"awfPhaseLabel\"><\/div>\n                <div class=\"awf-segrow\" id=\"awfPhaseFein\" style=\"margin-top: 6px;\" role=\"group\" aria-label=\"Feine Projektphase\"><\/div>\n                <p class=\"awf-note-plain\"><strong>Drei Nummern haben im Regelprozess V3.0 keinen Steckbrief:<\/strong> 000, 020 und 200. Sie haben deshalb auch keine Phasenmarkierung und erscheinen bei gesetzter Phase nicht in der Liste, obwohl 020 Bedarfsplanung inhaltlich in die Bedarfsphase geh&ouml;ren w&uuml;rde.<\/p>\n            <\/div>\n\n            <div class=\"awf-field\">\n                <span class=\"awf-label\" id=\"awfRolleLabel\">Wer liefert den Fall<\/span>\n                <div class=\"awf-segrow\" id=\"awfRolle\" role=\"group\" aria-labelledby=\"awfRolleLabel\"><\/div>\n                <p class=\"awf-note-plain\">Die Rollenzuordnung ist eine <strong>Einsch&auml;tzung<\/strong> aus den Voraussetzungen der Steckbriefe, keine Angabe der Quelle. Voreingestellt ist das Planungsb&uuml;ro.<\/p>\n            <\/div>\n\n            <div class=\"awf-field\">\n                <span class=\"awf-label\" id=\"awfKommLabel\">Kommunale Realit&auml;t (Einsch&auml;tzung)<\/span>\n                <div class=\"awf-segrow\" id=\"awfKomm\" role=\"group\" aria-labelledby=\"awfKommLabel\"><\/div>\n                <p class=\"awf-note-plain\">Begr&uuml;ndete Einsch&auml;tzung f&uuml;r Gemeindestra&szlig;e, Kanal und Erschlie&szlig;ung. Keine Aufwandsangabe, keine Empfehlung, was man anbieten soll.<\/p>\n            <\/div>\n\n            <div class=\"awf-field\">\n                <span class=\"awf-label\" id=\"awfKatLabel\">Katalog des Auftraggebers<\/span>\n                <div class=\"awf-segrow\" id=\"awfKatalog\" role=\"group\" aria-labelledby=\"awfKatLabel\"><\/div>\n                <p class=\"awf-note\"><strong>Diese Achse zeigt Warnungen,<\/strong> weil es zwischen den Katalogen keine Entsprechung zum Umrechnen gibt. Dieselbe Nummer meint bei DB InfraGO Fahrweg etwas anderes: 050 ist dort Visualisierung, die Koordination der Fachgewerke ist die 060, und 090 hei&szlig;t Kostenplanung statt Genehmigungsprozess. Wer eine Bahn-AIA mit dem Bundeskatalog im Kopf liest, bietet das falsche Paket an.<\/p>\n            <\/div>\n        <\/div>\n\n        <div class=\"awf-resultbar\">\n            <p class=\"awf-satz\" id=\"awfSatz\" aria-live=\"polite\" role=\"status\"><\/p>\n            <button type=\"button\" class=\"awf-btn\" id=\"awfReset\">Alles zur&uuml;cksetzen<\/button>\n        <\/div>\n\n        <div id=\"awfFlash\"><\/div>\n        <div class=\"awf-list\" id=\"awfListe\"><\/div>\n\n        <div class=\"awf-foot\">\n            <p><strong>Nummern und Bezeichnungen:<\/strong> harmonisierte Liste nach BIM Deutschland, <em>Standard-Anwendungsf&auml;lle. Mustersteckbrief, Nomenklatur und harmonisierte Liste<\/em>, Version 2.1 vom 15.02.2022, Tabelle 14 beziehungsweise Anhang C. Der Download beim Herausgeber hat den Dateinamen V2.0 (16.02.2022), eine Datei V2.1 gibt es nicht. Der Herausgeber stellt die reine Liste aus Nummer und Bezeichnung ausdr&uuml;cklich zur Verwendung in eigenen Unterlagen bereit. <strong>Die Beschreibungstexte der Quelle sind nicht &uuml;bernommen<\/strong>, alle Kurzerkl&auml;rungen hier sind selbst formuliert.<\/p>\n            <p><strong>Phasenmarkierung:<\/strong> Rahmendokument <em>Anwendungsf&auml;lle f&uuml;r den Regelprozess<\/em>, V3.0, BMV, Februar 2026, Steckbriefe Abschnitt 1.1. Ausgelesen am 31.07.2026. Die Steckbriefe liegen als Grafik vor, die Seiten wurden gerendert und die markierten Zellen einzeln ausgelesen, zwei Seiten zus&auml;tzlich mit dem Auge gegengelesen. Das Raster des Stra&szlig;en- und Br&uuml;ckenbaus hat siebzehn Spalten; die Zusammenfassung zu den vier Gruppen Bedarf, Planen, Bauen und Betreiben ist eine eigene Zuordnung.<\/p>\n            <p><strong>Zwei Oranget&ouml;ne ohne Legende:<\/strong> Die Phasentabellen der Quelle markieren mit zwei verschiedenen Oranget&ouml;nen. Eine Legende dazu war auf den gepr&uuml;ften Seiten nicht auffindbar. Der Unterschied wird deshalb nicht gedeutet, beide T&ouml;ne gelten hier gleicherma&szlig;en als markiert.<\/p>\n            <p><strong>Vergleichskataloge:<\/strong> DB InfraGO, Gesch&auml;ftsbereich Fahrweg, BIM-Anwendungsf&auml;lle, Seitenabruf 31.07.2026 &middot; Arbeitshilfe <em>Anwendungsfallsteckbriefe<\/em>, BIM f&uuml;r Bundesbauten, V2.0, Juli 2024. DB InfraGO Fahrweg z&auml;hlt anders; der Bundesbau folgt in Nummern und den meisten Titeln der harmonisierten Liste, mit eigenen Steckbriefen.<\/p>\n            <p><strong>Als Einsch&auml;tzung gekennzeichnet:<\/strong> Rollenzuordnung, kommunale Realit&auml;t samt Begr&uuml;ndung sowie die Stichworte zu <em>braucht<\/em> und <em>liefert<\/em>. Die Datenlizenz Deutschland Zero 2.0 gilt f&uuml;r die Inhalte des BIM-Portals, also Merkmale und Merkmalsgruppen; die Liste hier st&uuml;tzt sich auf die Freigabe im Dokument selbst. Keine Aufwandsampel, keine Kostensch\u00e4tzung, keine Empfehlung, welche F&auml;lle man anbieten soll.<\/p>\n            <p>Stand 09\/2026, Pr&uuml;ftag der Quellen 31.07.2026 und 08.09.2026.<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n(function () {\n    'use strict';\n\n    var root = document.querySelector('[data-awf-root]');\n    if (!root) { return; }\n\n    \/* ---------- Phasenraster ---------- *\/\n\n    var GRUPPEN = [\n        { id: 'bedarf', label: 'Bedarf', satz: 'in der Bedarfsphase', fein: ['Bedarf'] },\n        { id: 'planen', label: 'Planen', satz: 'in der Planungsphase', fein: ['Grundlagenermittlung', 'Vorplanung', 'Entwurfsplanung', 'Genehmigungsplanung', 'Ausf\u00fchrungsplanung', 'Unterst\u00fctzung der Vergabe'] },\n        { id: 'bauen', label: 'Bauen', satz: 'in der Bauphase', fein: ['Objekt\u00fcberwachung', 'Bauvorbereitung', 'Bauausf\u00fchrung', 'Bau- und Projektdokumentation'] },\n        { id: 'betreiben', label: 'Betreiben', satz: 'in Betrieb und Erhaltung', fein: ['Betrieb (im engeren Sinn)', 'Erhaltung', 'Verkehrsmanagement', 'Fachdatenmanagement', 'Umwelt', 'Haushaltsangelegenheiten'] }\n    ];\n\n    var ROLLEN = [\n        { id: 'pb', label: 'Planungsb\u00fcro', satz: 'ein Planungsb\u00fcro', dativ: 'einem Planungsb\u00fcro' },\n        { id: 'ag', label: 'Auftraggeber', satz: 'einen Auftraggeber', dativ: 'dem Auftraggeber' },\n        { id: 'bu', label: 'Bauunternehmen', satz: 'ein Bauunternehmen', dativ: 'einem Bauunternehmen' },\n        { id: 'be', label: 'Betrieb', satz: 'den Betrieb', dativ: 'dem Betrieb' }\n    ];\n\n    var STUFEN = [\n        { id: 'regel', label: 'regelm\u00e4\u00dfig', satz: 'regelm\u00e4\u00dfig gemeint', mark: 'awf-mark-regel' },\n        { id: 'gele', label: 'gelegentlich', satz: 'gelegentlich gemeint', mark: 'awf-mark-gelegentlich' },\n        { id: 'nie', label: 'praktisch nie', satz: 'praktisch nie gemeint', mark: 'awf-mark-nie' }\n    ];\n\n    var KATALOGE = [\n        { id: 'harm', label: 'Harmonisierte Liste' },\n        { id: 'db', label: 'DB InfraGO Fahrweg' },\n        { id: 'bb', label: 'BIM f\u00fcr Bundesbauten' },\n        { id: 'kom', label: 'Kommunaler Auftraggeber' }\n    ];\n\n    \/* ---------- Datensatz: 21 Eintraege ----------\n       nr und titel stammen aus der harmonisierten Liste Version 2.1 (Datei V2.0) (einbettbar).\n       kurz, braucht, liefert, kommunalWarum, rolle und tags sind selbst formuliert.\n       phasen sind ausgelesene Tatsachenangaben aus dem Rahmendokument V3.0.        *\/\n\n    var DATEN = [\n        {\n            nr: '000',\n            titel: 'Grunds\u00e4tzliches',\n            kurz: 'Kein einzelner Arbeitsschritt, sondern der Platz f\u00fcr die \u00fcbergreifenden Festlegungen: Auftraggeber-Informationsanforderungen, BIM-Abwicklungsplan, Besprechungs- und Ablageregeln. Wer AwF 000 im Vergabe-PDF liest, sucht die Vertrags- und Organisationsebene.',\n            phasen: [],\n            steckbrief: false,\n            rahmen: true,\n            rolle: ['ag', 'pb'],\n            komm: 'gele',\n            kommFein: 'rahmengebend',\n            kommWarum: 'Der Platz f\u00fcr AIA, BAP und Besprechungsregeln, und damit der Absatz, der auch in der d\u00fcnnsten kommunalen Ausschreibung schon steht.',\n            braucht: ['Auftraggeber, der seine Ziele benennt', 'AIA oder wenigstens eine beantwortete Bieterfrage', 'benannte Zust\u00e4ndigkeiten im B\u00fcro'],\n            liefert: ['BIM-Abwicklungsplan', 'Ablage- und Benennungsregeln', 'Besprechungs- und Freigaberhythmus'],\n            verweis: 'Themenfeld 2, Der BAP im kleinen B\u00fcro',\n            tags: 'rahmen klammer organisation vertrag aia bap projektbesprechung grundsaetzliches uebergreifend'\n        },\n        {\n            nr: '010',\n            titel: 'Bestandserfassung und -modellierung',\n            kurz: 'Was schon da ist, wird aufgenommen und als Modell aufgebaut: Gel\u00e4nde, Fahrbahn, Kanal, Sparten, Baugrund. Im kommunalen Tiefbau f\u00e4ngt ohne das nichts an, und es ist der Posten, der den Zeitplan rei\u00dft.',\n            phasen: ['Bedarf', 'Grundlagenermittlung', 'Vorplanung'],\n            steckbrief: true,\n            rolle: ['pb', 'ag'],\n            komm: 'regel',\n            kommFein: 'regelm\u00e4\u00dfig',\n            kommWarum: 'Ohne Bestandsmodell aus Vermessung, Sparten und Kanalbestand f\u00e4ngt in einem kommunalen Stra\u00dfenprojekt nichts an, und die Bestandsdaten sind zugleich der gr\u00f6\u00dfte ungeplante Aufwand.',\n            braucht: ['Vermessung im vereinbarten Bezugssystem', 'Spartenauskunft der Leitungstr\u00e4ger', 'Kanalbestand aus dem Kataster'],\n            liefert: ['Bestandsmodell mit Gel\u00e4ndeoberfl\u00e4che', 'Bestandsdaten mit Quelle, Alter und Genauigkeitsangabe'],\n            verweis: 'Themenfeld 3, Bestandsdaten annehmen',\n            tags: 'bestand vermessung aufmass sparten kanal baugrund gelaende punktwolke befliegung dgm'\n        },\n        {\n            nr: '020',\n            titel: 'Bedarfsplanung',\n            kurz: 'Der Bedarf wird vor der Planung beschrieben: was die Ma\u00dfnahme leisten soll, welche Fl\u00e4chen und Funktionen sie braucht. Das ist Hochbaulogik, im Regelprozess der Bundesfernstra\u00dfen fehlt der Fall folgerichtig ganz.',\n            phasen: [],\n            steckbrief: false,\n            rolle: ['ag'],\n            komm: 'nie',\n            kommFein: 'praktisch nie',\n            kommWarum: 'Der Fall h\u00e4ngt am Raumbedarfsplan nach Muster 13 RBBau und ist Hochbaulogik, im Regelprozess der Bundesfernstra\u00dfen fehlt er folgerichtig ganz.',\n            braucht: ['Bedarfstr\u00e4ger, der seine Anforderungen aufschreibt', 'Nutzungs- oder Raumbedarfsprogramm'],\n            liefert: ['beschriebener Bedarf als Planungsgrundlage'],\n            verweis: '',\n            tags: 'bedarf raumbedarf rbbau hochbau vorlauf programm bedarfstraeger'\n        },\n        {\n            nr: '030',\n            titel: 'Planungsvarianten bzw. Erstellung haushaltsbegr\u00fcndender Unterlagen',\n            kurz: 'Mehrere L\u00f6sungen werden am Modell durchgespielt und vergleichbar gemacht, etwa zwei Knotenpunktvarianten. Im Stra\u00dfenbau taucht der Fall meist nur als 030 Planungsvarianten auf, das ist die in der Quelle vorgesehene Wahlm\u00f6glichkeit und keine Abweichung.',\n            phasen: ['Bedarf', 'Vorplanung'],\n            steckbrief: true,\n            rolle: ['pb'],\n            komm: 'gele',\n            kommFein: 'gelegentlich',\n            kommWarum: 'Variantenvergleiche am Knotenpunkt oder im Stra\u00dfenraum gibt es oft, aber sie werden selten als eigener Anwendungsfall beauftragt und noch seltener bezahlt.',\n            braucht: ['Bestandsmodell', 'Bewertungskriterien, auf die sich alle vorher einlassen'],\n            liefert: ['Variantenmodelle im gleichen Detailgrad', 'nachvollziehbarer Vergleich mit Mengen je Variante'],\n            verweis: '',\n            tags: 'varianten vergleich knotenpunkt trassenvariante haushaltsunterlage vorplanung entscheidung'\n        },\n        {\n            nr: '040',\n            titel: 'Visualisierung',\n            kurz: 'Das Modell wird so aufbereitet, dass Nichtfachleute es verstehen: die Ansicht f\u00fcr den Gemeinderat, das Bild f\u00fcr die B\u00fcrgerversammlung. Kommunal oft der eigentliche Grund, warum BIM \u00fcberhaupt im Vergabe-PDF steht.',\n            phasen: ['Vorplanung', 'Entwurfsplanung', 'Genehmigungsplanung', 'Ausf\u00fchrungsplanung'],\n            steckbrief: true,\n            rolle: ['pb'],\n            komm: 'regel',\n            kommFein: 'regelm\u00e4\u00dfig',\n            kommWarum: 'Die B\u00fcrgerinformation ist im kommunalen Umfeld h\u00e4ufig der eigentliche Grund, warum BIM \u00fcberhaupt im Vergabe-PDF auftaucht.',\n            braucht: ['abgestimmter Planungsstand', 'klare Aussage, was gezeigt werden soll'],\n            liefert: ['Ansichten, Bilder oder ein Modell zum Durchklicken', 'Stand und Datum der gezeigten Fassung'],\n            verweis: '',\n            tags: 'visualisierung buergerbeteiligung gemeinderat rendering ansicht praesentation oeffentlichkeit'\n        },\n        {\n            nr: '050',\n            titel: 'Koordination der Fachgewerke',\n            kurz: 'Die Fachmodelle von Stra\u00dfe, Kanal, Leitungen und Ingenieurbau werden zusammengef\u00fchrt und gegeneinander gepr\u00fcft. Sobald mehrere Gewerke im selben Bauabschnitt liegen, ist das der Fall mit dem gr\u00f6\u00dften Nutzen.',\n            phasen: ['Bedarf', 'Grundlagenermittlung', 'Vorplanung', 'Entwurfsplanung', 'Ausf\u00fchrungsplanung', 'Bauausf\u00fchrung', 'Bau- und Projektdokumentation'],\n            steckbrief: true,\n            rolle: ['pb', 'ag'],\n            komm: 'regel',\n            kommFein: 'regelm\u00e4\u00dfig',\n            kommWarum: 'Sobald Stra\u00dfe, Kanal und Leitungstr\u00e4ger im selben Bauabschnitt liegen, ist die Fachmodellkoordination der Fall mit dem gr\u00f6\u00dften Nutzen.',\n            braucht: ['gemeinsames Bezugssystem f\u00fcr Lage und H\u00f6he', 'vereinbarte Aufteilung der Modelle je Fachdisziplin', 'Liefertermine f\u00fcr die Zusammenf\u00fchrung'],\n            liefert: ['Koordinationsmodell', 'Konfliktliste mit Zust\u00e4ndigkeit und Frist'],\n            verweis: 'Themenfeld 6, Kollisionspr\u00fcfung im Tiefbau',\n            tags: 'koordination kollision fachmodell zusammenfuehrung leitungstraeger sparten konflikt gewerke'\n        },\n        {\n            nr: '060',\n            titel: 'Planungsfortschrittskontrolle und Qualit\u00e4tspr\u00fcfung',\n            kurz: 'Der Auftraggeber pr\u00fcft, ob die Lieferung den vereinbarten Stand und die vereinbarten Informationen hat. Ohne Pr\u00fcfregeln und ein Pr\u00fcfwerkzeug bleibt das ein Wunsch.',\n            phasen: ['Bedarf', 'Grundlagenermittlung', 'Vorplanung', 'Entwurfsplanung', 'Ausf\u00fchrungsplanung', 'Bauausf\u00fchrung', 'Bau- und Projektdokumentation'],\n            steckbrief: true,\n            rolle: ['ag', 'pb'],\n            komm: 'gele',\n            kommFein: 'gelegentlich',\n            kommWarum: 'Fachlich sinnvoll und ohne Pr\u00fcfregeln und Pr\u00fcfwerkzeug schwer zu erf\u00fcllen, kommunal fast nie ausdr\u00fccklich beauftragt, intern aber lohnend.',\n            braucht: ['Pr\u00fcfregeln aus der AIA', 'definierte Lieferzeitpunkte', 'Pr\u00fcfwerkzeug, das beide Seiten kennen'],\n            liefert: ['Pr\u00fcfbericht mit Befund je Regel', 'freigegebener oder zur\u00fcckgewiesener Modellstand'],\n            verweis: 'Themenfeld 6, Pr\u00fcfen, bevor jemand anderes pr\u00fcft',\n            tags: 'pruefung qualitaet fortschritt freigabe pruefregel modellpruefung datenqualitaet'\n        },\n        {\n            nr: '070',\n            titel: 'Bemessung und Nachweisf\u00fchrung',\n            kurz: 'Statik, Entw\u00e4sserung, Standsicherheit. Gerechnet wird im Fachprogramm, das Modell liefert dazu in der Regel die Geometrie und ein paar Kennwerte.',\n            phasen: ['Vorplanung', 'Entwurfsplanung', 'Genehmigungsplanung', 'Ausf\u00fchrungsplanung'],\n            steckbrief: true,\n            rolle: ['pb'],\n            komm: 'nie',\n            kommFein: 'selten modellbasiert',\n            kommWarum: 'Entw\u00e4sserungsnachweis und Standsicherheit laufen im Fachprogramm, das Modell liefert allenfalls die Geometrie daf\u00fcr.',\n            braucht: ['belastbare Geometrie', 'Baugrund- und Belastungsannahmen'],\n            liefert: ['Nachweis im Fachformat', 'R\u00fcckf\u00fchrung der Bemessungsergebnisse ins Modell'],\n            verweis: '',\n            tags: 'bemessung nachweis statik entwaesserung standsicherheit berechnung fachprogramm hydraulik'\n        },\n        {\n            nr: '080',\n            titel: 'Ableitung von Planunterlagen',\n            kurz: 'Aus dem Modell entstehen die Pl\u00e4ne, die weiterhin unterschrieben und eingereicht werden. Weil die Genehmigung am zweidimensionalen Plan h\u00e4ngt, ist das kommunal der Fall, der auf jeden Fall geliefert werden muss.',\n            phasen: ['Bedarf', 'Vorplanung', 'Entwurfsplanung', 'Genehmigungsplanung', 'Ausf\u00fchrungsplanung', 'Objekt\u00fcberwachung', 'Bau- und Projektdokumentation'],\n            steckbrief: true,\n            rolle: ['pb'],\n            komm: 'regel',\n            kommFein: 'regelm\u00e4\u00dfig, faktisch Pflicht',\n            kommWarum: 'Die Genehmigung l\u00e4uft weiter \u00fcber den zweidimensionalen Plan, deshalb ist die Planableitung im kommunalen Projekt der Anwendungsfall, der auf jeden Fall geliefert werden muss.',\n            braucht: ['Modell mit planungsrelevanten Informationen', 'Planrahmen, Ma\u00dfstab und Darstellungsregeln'],\n            liefert: ['Lageplan, L\u00e4ngsschnitt und Querprofile als Plan', 'nachvollziehbarer Bezug zwischen Plan und Modellstand'],\n            verweis: 'Themenfeld 2, Wem das Modell geh\u00f6rt',\n            tags: 'plan planableitung lageplan laengsschnitt querprofil zeichnung pdf ausgabe unterschrift'\n        },\n        {\n            nr: '090',\n            titel: 'Genehmigungsprozess',\n            kurz: 'Antrag, Beteiligung und Genehmigung laufen modellgest\u00fctzt. Eine kommunale Genehmigungsstelle nimmt in der Regel Papier oder PDF an, ein modellbasierter Pr\u00fcflauf ist nicht vorgesehen.',\n            phasen: ['Vorplanung', 'Entwurfsplanung', 'Genehmigungsplanung', 'Ausf\u00fchrungsplanung'],\n            steckbrief: true,\n            rolle: ['pb', 'ag'],\n            komm: 'nie',\n            kommFein: 'praktisch nie modellbasiert',\n            kommWarum: 'Eine kommunale Genehmigung nimmt Papier oder PDF an, ein modellbasierter Pr\u00fcflauf ist im Regelfall nicht vorgesehen.',\n            braucht: ['genehmigungsreifer Planungsstand', 'Beh\u00f6rde, die das Format \u00fcberhaupt annimmt'],\n            liefert: ['Genehmigungsunterlagen', 'dokumentierter Stand der eingereichten Fassung'],\n            verweis: 'Themenfeld 2, Wem das Modell geh\u00f6rt',\n            tags: 'genehmigung planfeststellung antrag behoerde beteiligung einreichung'\n        },\n        {\n            nr: '100',\n            titel: 'Mengen- und Kostenermittlung',\n            kurz: 'Mengen kommen aus dem Modell statt aus der Handrechnung, daraus wird die Kostensch\u00e4tzung. Der st\u00e4rkste Hebel, und zugleich der Punkt, an dem die Pr\u00fcff\u00e4higkeit endet, sobald die Abrechnungsregeln ein anderes Aufma\u00df verlangen.',\n            phasen: ['Bedarf', 'Vorplanung', 'Entwurfsplanung', 'Ausf\u00fchrungsplanung', 'Unterst\u00fctzung der Vergabe'],\n            steckbrief: true,\n            rolle: ['pb'],\n            komm: 'regel',\n            kommFein: 'regelm\u00e4\u00dfig, mit Vorbehalt',\n            kommWarum: 'Mengen aus dem Modell sind der st\u00e4rkste Hebel, die Pr\u00fcff\u00e4higkeit endet aber dort, wo die Abrechnungsregeln ein anderes Aufma\u00df verlangen.',\n            braucht: ['Modell mit sauberen K\u00f6rpern und eindeutigem Mengenbezug', 'vereinbarte Zuordnung Bauteil zu Kostengruppe'],\n            liefert: ['Mengenauszug mit Herkunft je Menge', 'Kostensch\u00e4tzung auf dieser Grundlage'],\n            verweis: 'Themenfeld 5, Die letzte Meile',\n            tags: 'menge massen kosten kostenschaetzung volumen erdbau aufmass mengenermittlung'\n        },\n        {\n            nr: '110',\n            titel: 'Leistungsverzeichnis, Ausschreibung, Vergabe',\n            kurz: 'Die Modellmengen werden in Positionen eines Leistungsverzeichnisses \u00fcberf\u00fchrt. In der Praxis bricht die Kette an der Positionsstruktur, weil Modell und Leistungsverzeichnis verschieden sortiert sind.',\n            phasen: ['Unterst\u00fctzung der Vergabe'],\n            steckbrief: true,\n            rolle: ['pb', 'ag'],\n            komm: 'nie',\n            kommFein: 'selten',\n            kommWarum: 'Die Kette vom Modell ins Leistungsverzeichnis bricht in der Praxis an der Positionsstruktur, und im kommunalen Projekt gibt es selten jemanden, der sie ausrichtet.',\n            braucht: ['Mengen aus 100', 'abgestimmte Positionsstruktur', 'Standardleistungskatalog des Auftraggebers'],\n            liefert: ['Leistungsverzeichnis mit Bezug zum Bauteil', 'Vergabeunterlagen'],\n            verweis: 'Themenfeld 5, Die letzte Meile',\n            tags: 'leistungsverzeichnis lv ausschreibung vergabe gaeb position standardleistungskatalog'\n        },\n        {\n            nr: '120',\n            titel: 'Terminplanung der Ausf\u00fchrung',\n            kurz: 'Bauteile werden mit Vorg\u00e4ngen und Terminen verkn\u00fcpft, der Bauablauf wird am Modell sichtbar. Der Fall sitzt beim Bauunternehmen, das Planungsb\u00fcro liefert daf\u00fcr h\u00f6chstens das Modell.',\n            phasen: ['Bedarf', 'Vorplanung', 'Entwurfsplanung', 'Ausf\u00fchrungsplanung', 'Bauvorbereitung', 'Bauausf\u00fchrung'],\n            steckbrief: true,\n            rolle: ['bu'],\n            komm: 'nie',\n            kommFein: 'selten',\n            kommWarum: 'Die Terminplanung sitzt beim Bauunternehmen, das Planungsb\u00fcro liefert daf\u00fcr h\u00f6chstens das Modell.',\n            braucht: ['Modell mit brauchbarer Bauteilgliederung', 'Terminplan mit Vorg\u00e4ngen'],\n            liefert: ['Modell mit Terminbezug', 'Ablaufsimulation der Bauphasen'],\n            verweis: 'BIM-Lexikon, 4D',\n            tags: 'termin bauablauf bauzeit simulation vorgang bauphasen zeitplan'\n        },\n        {\n            nr: '130',\n            titel: 'Logistikplanung',\n            kurz: 'Baustelleneinrichtung, Verkehrsf\u00fchrung, Zufahrten und Lagerfl\u00e4chen werden am Modell geplant. Im inner\u00f6rtlichen Stra\u00dfenbau w\u00e4re das der klassische Nutzen, beauftragt wird es trotzdem kaum.',\n            phasen: ['Bedarf', 'Vorplanung', 'Entwurfsplanung', 'Ausf\u00fchrungsplanung', 'Bauvorbereitung', 'Bauausf\u00fchrung'],\n            steckbrief: true,\n            rolle: ['bu', 'pb'],\n            komm: 'gele',\n            kommFein: 'selten, aber untersch\u00e4tzt',\n            kommWarum: 'Verkehrsf\u00fchrung und Bauphasen im inner\u00f6rtlichen Stra\u00dfenbau w\u00e4ren der klassische Nutzen, beauftragt wird der Fall trotzdem kaum.',\n            braucht: ['Bestandsmodell mit Anliegern und Zufahrten', 'Bauphasenkonzept'],\n            liefert: ['Modell der Baustelleneinrichtung und Verkehrsf\u00fchrung', 'Phasenpl\u00e4ne f\u00fcr Anlieger und Rettungswege'],\n            verweis: '',\n            tags: 'logistik baustelleneinrichtung verkehrsfuehrung umleitung zufahrt anlieger lagerflaeche'\n        },\n        {\n            nr: '140',\n            titel: 'Baufortschrittskontrolle',\n            kurz: 'Der gebaute Stand wird mit dem geplanten verglichen, \u00fcber Aufma\u00df, Foto oder Befliegung. Kontrolliert wird das von denen, die bauen oder die Ausf\u00fchrung \u00fcberwachen.',\n            phasen: ['Bauausf\u00fchrung'],\n            steckbrief: true,\n            rolle: ['bu', 'ag'],\n            komm: 'nie',\n            kommFein: 'Auftragnehmerseite',\n            kommWarum: 'Baufortschritt kontrolliert, wer baut oder \u00fcberwacht, nicht das planende B\u00fcro.',\n            braucht: ['Ausf\u00fchrungsmodell als Soll', 'regelm\u00e4\u00dfige Aufnahme des Ist-Stands'],\n            liefert: ['Soll-Ist-Vergleich je Bauabschnitt', 'belegter Fortschritt f\u00fcr Abschlagszahlungen'],\n            verweis: 'BIM-Lexikon, 4D',\n            tags: 'baufortschritt soll ist baustelle ueberwachung drohne befliegung fortschritt'\n        },\n        {\n            nr: '150',\n            titel: '\u00c4nderungs- und Nachtragsmanagement',\n            kurz: '\u00c4nderungen w\u00e4hrend der Bauzeit werden nachvollziehbar gef\u00fchrt, samt ihrer Folgen f\u00fcr Menge, Termin und Kosten. Kommunal l\u00e4uft das vertraglich und nicht am Modell.',\n            phasen: ['Bauausf\u00fchrung', 'Bau- und Projektdokumentation', 'Erhaltung'],\n            steckbrief: true,\n            rolle: ['bu', 'ag'],\n            komm: 'nie',\n            kommFein: 'Auftragnehmer- und Bauherrenseite',\n            kommWarum: 'Nachtr\u00e4ge werden im kommunalen Projekt vertraglich und nicht am Modell gef\u00fchrt.',\n            braucht: ['eindeutiger Ausgangsstand mit Datum', 'Regel, wer eine \u00c4nderung freigibt'],\n            liefert: ['dokumentierte \u00c4nderungen mit Begr\u00fcndung', 'Nachtr\u00e4ge mit Bezug zum Bauteil'],\n            verweis: 'Themenfeld 2, Was die BIM-Leistung kostet',\n            tags: 'nachtrag aenderung claim bauzeit mehrkosten stand versionierung'\n        },\n        {\n            nr: '160',\n            titel: 'Abrechnung von Bauleistungen',\n            kurz: 'Abgerechnet wird auf Grundlage von Mengen aus dem Modell. Die Abrechnung folgt aber den vereinbarten Aufma\u00dfregeln, ein Modellvolumen ersetzt sie nicht.',\n            phasen: ['Bauausf\u00fchrung'],\n            steckbrief: true,\n            rolle: ['bu', 'ag'],\n            komm: 'nie',\n            kommFein: 'praktisch nie modellbasiert',\n            kommWarum: 'Die Abrechnung folgt den vereinbarten Aufma\u00dfregeln, ein Modellvolumen ersetzt sie nicht.',\n            braucht: ['vereinbarte Aufma\u00dfregel', 'Modellstand, den beide Seiten anerkennen'],\n            liefert: ['pr\u00fcfbare Abrechnungsmengen', 'Nachweis der Herkunft je Menge'],\n            verweis: 'Themenfeld 5, Die letzte Meile',\n            tags: 'abrechnung aufmass reb vob volumen erdmassen pruefbar rechnung'\n        },\n        {\n            nr: '170',\n            titel: 'Abnahme- und M\u00e4ngelmanagement',\n            kurz: 'M\u00e4ngel werden als Vorgang mit Ort und Sichtpunkt gef\u00fchrt statt auf einem Zettel. M\u00f6glich w\u00e4re es, gefordert wird es kommunal so gut wie nie.',\n            phasen: ['Bauausf\u00fchrung'],\n            steckbrief: true,\n            rolle: ['ag', 'bu'],\n            komm: 'nie',\n            kommFein: 'selten',\n            kommWarum: 'M\u00e4ngel als Vorgang mit Sichtpunkt zu f\u00fchren w\u00e4re m\u00f6glich, gefordert wird es kommunal so gut wie nie.',\n            braucht: ['Modell auf der Baustelle verf\u00fcgbar', 'Vorgangsverwaltung, die alle Beteiligten bedienen'],\n            liefert: ['M\u00e4ngel als Vorgang mit Ort, Frist und Zust\u00e4ndigem', 'Abnahmeprotokoll mit Modellbezug'],\n            verweis: 'Themenfeld 6, Vorg\u00e4nge f\u00fchren',\n            tags: 'abnahme maengel vorgang sichtpunkt bcf restleistung protokoll'\n        },\n        {\n            nr: '180',\n            titel: 'Inbetriebnahmemanagement',\n            kurz: 'Technische Anlagen werden gepr\u00fcft, eingeregelt und \u00fcbergeben. Im Stra\u00dfen- und Kanalbau einer Gemeinde gibt es daf\u00fcr wenig Substanz.',\n            phasen: ['Bauausf\u00fchrung'],\n            steckbrief: true,\n            rolle: ['bu', 'be'],\n            komm: 'nie',\n            kommFein: 'praktisch nie',\n            kommWarum: 'Der Fall zielt auf technische Ausstattung und Leit- und Steuerungstechnik, im Stra\u00dfen- und Kanalbau einer Gemeinde gibt es daf\u00fcr wenig Substanz.',\n            braucht: ['Anlagendaten am Bauteil', 'Pr\u00fcf- und Einweisungsplan'],\n            liefert: ['Inbetriebnahmeprotokolle am Objekt', '\u00dcbergabe an den Betrieb'],\n            verweis: '',\n            tags: 'inbetriebnahme anlagen leittechnik pumpwerk einweisung uebergabe technik'\n        },\n        {\n            nr: '190',\n            titel: 'Projekt- und Bauwerksdokumentation',\n            kurz: 'Am Ende steht die Dokumentation des gebauten Zustands, im Idealfall als Modell mit den Daten, die der Betrieb braucht. Genau hier hat die Kommune wirklich etwas vom Modell, und genau hier wird am Projektende am meisten verschlampt.',\n            phasen: ['Bau- und Projektdokumentation'],\n            steckbrief: true,\n            rolle: ['pb', 'bu'],\n            komm: 'regel',\n            kommFein: 'regelm\u00e4\u00dfig und untersch\u00e4tzt',\n            kommWarum: 'Die Bestandsdokumentation ist der Punkt, an dem der kommunale Betrieb wirklich etwas vom Modell hat, und zugleich der, den man am Projektende am ehesten verschlampt.',\n            braucht: ['Aufma\u00df des gebauten Zustands', 'vereinbarte Abgabestruktur und Benennungsregel'],\n            liefert: ['Bestandsmodell mit Bauteildaten', 'geordnete Dokumentenablage mit Stand und Datum'],\n            verweis: 'Themenfeld 5, Die letzte Meile',\n            tags: 'dokumentation bestand asbuilt uebergabe revision bauwerksbuch abgabe archiv'\n        },\n        {\n            nr: '200',\n            titel: 'Nutzung f\u00fcr Betrieb und Erhaltung',\n            kurz: 'Der Betrieb \u00fcbernimmt die Daten in sein Kataster oder sein Erhaltungsmanagement. F\u00fcr ein Planungsb\u00fcro ist der Fall nur als Datenlieferant relevant, und im Regelprozess des Bundes kommt er nicht vor.',\n            phasen: [],\n            steckbrief: false,\n            rolle: ['be', 'ag'],\n            komm: 'nie',\n            kommFein: 'Auftraggeber-Fall',\n            kommWarum: 'F\u00fcr das B\u00fcro nur als Datenlieferant relevant, etwa wenn der Betreiber des Kanalnetzes die Daten in sein Kataster \u00fcbernimmt.',\n            braucht: ['Zielsystem beim Betreiber, das die Daten annimmt', 'abgestimmte Merkmale f\u00fcr den Betrieb'],\n            liefert: ['Daten\u00fcbernahme in Kataster oder Erhaltungsmanagement'],\n            verweis: 'Themenfeld 5, Die letzte Meile',\n            tags: 'betrieb erhaltung kataster fm instandhaltung netzinformation uebernahme'\n        }\n    ];\n\n    \/* ---------- Vergleichskataloge: gleiche Nummer, anderer Inhalt ---------- *\/\n\n    var DB_FAHRWEG = {\n        '000': null,\n        '010': 'Bestandsaufnahme',\n        '020': 'Bestandsmodellierung',\n        '030': 'BIM-Modell',\n        '040': 'Variantenvergleiche',\n        '050': 'Visualisierung',\n        '060': 'Koordination der Fachgewerke',\n        '070': 'Erstellen von Pl\u00e4nen',\n        '080': 'Freigabe- und Genehmigungsprozesse',\n        '090': 'Kostenplanung',\n        '100': 'Leistungsverzeichnisse',\n        '110': 'Ausschreibung und Vergabe',\n        '120': 'Termin- und Bauphasenplanung',\n        '130': 'Baulogistikplanung',\n        '140': 'Baufortschrittskontrolle',\n        '150': 'Bauabrechnung',\n        '160': 'M\u00e4ngelmanagement',\n        '170': 'As-built Modell',\n        '180': 'Digitale Bau- und Inbetriebnahmeakte',\n        '190': 'Betreiben, Instandhaltung und -setzung',\n        '200': null\n    };\n\n    var BUNDESBAU = {\n        '000': null,\n        '030': 'Erstellung von Bau- und Projektunterlagen',\n        '110': 'Leistungsverzeichnis',\n        '140': 'Baufortschrittkontrolle und Qualit\u00e4tspr\u00fcfung',\n        '190': 'Bauwerksdokumentation',\n        '200': null\n    };\n\n    \/* ---------- Zustand ---------- *\/\n\n    var VERWEIS_URL = {\n        'Themenfeld 2, Der BAP im kleinen B\u00fcro': 'https:\/\/cad-kompass.de\/?p=2583',\n        'Themenfeld 2, Wem das Modell geh\u00f6rt': 'https:\/\/cad-kompass.de\/?p=2587',\n        'Themenfeld 2, Was die BIM-Leistung kostet': 'https:\/\/cad-kompass.de\/?p=2585',\n        'Themenfeld 3, Bestandsdaten annehmen': 'https:\/\/cad-kompass.de\/?p=2595',\n        'Themenfeld 5, Die letzte Meile': 'https:\/\/cad-kompass.de\/?p=2621',\n        'Themenfeld 6, Kollisionspr\u00fcfung im Tiefbau': 'https:\/\/cad-kompass.de\/?p=2629',\n        'Themenfeld 6, Vorg\u00e4nge f\u00fchren': 'https:\/\/cad-kompass.de\/?p=2631',\n        'Themenfeld 6, Pr\u00fcfen, bevor jemand anderes pr\u00fcft': 'https:\/\/cad-kompass.de\/?p=2633',\n        'BIM-Lexikon, 4D': 'https:\/\/cad-kompass.de\/?p=2641#dim-4d'\n    };\n\n    var state = {\n        q: '',\n        qWorte: [],\n        phaseGrob: 'alle',\n        phaseFein: '',\n        rolle: 'pb',\n        komm: 'alle',\n        katalog: 'harm'\n    };\n\n    var ZAHLWORT = ['null', 'ein', 'zwei', 'drei', 'vier', 'f\u00fcnf', 'sechs', 'sieben', 'acht', 'neun', 'zehn',\n        'elf', 'zw\u00f6lf', 'dreizehn', 'vierzehn', 'f\u00fcnfzehn', 'sechzehn', 'siebzehn', 'achtzehn', 'neunzehn',\n        'zwanzig', 'einundzwanzig'];\n\n    function wort(n) {\n        if (n < ZAHLWORT.length) { return ZAHLWORT[n]; }\n        return String(n);\n    }\n\n    \/* Zaehlwort ohne Bezugswort: \"einer\" statt \"ein\" *\/\n    function anzahlwort(n) {\n        if (n === 1) { return 'einer'; }\n        return wort(n);\n    }\n\n    function gross(s) { return s.charAt(0).toUpperCase() + s.slice(1); }\n\n    function el(tag, cls, text) {\n        var n = document.createElement(tag);\n        if (cls) { n.className = cls; }\n        if (text !== undefined) { if (text !== null) { n.textContent = text; } }\n        return n;\n    }\n\n    function gruppeVon(id) {\n        var g = null;\n        GRUPPEN.forEach(function (x) { if (x.id === id) { g = x; } });\n        return g;\n    }\n\n    function rolleVon(id) {\n        var r = null;\n        ROLLEN.forEach(function (x) { if (x.id === id) { r = x; } });\n        return r;\n    }\n\n    function stufeVon(id) {\n        var s = null;\n        STUFEN.forEach(function (x) { if (x.id === id) { s = x; } });\n        return s;\n    }\n\n    function katalogVon(id) {\n        var k = null;\n        KATALOGE.forEach(function (x) { if (x.id === id) { k = x; } });\n        return k;\n    }\n\n    function grobIds(e) {\n        var out = [];\n        GRUPPEN.forEach(function (g) {\n            var treffer = e.phasen.some(function (p) { return g.fein.indexOf(p) !== -1; });\n            if (treffer) { out.push(g.id); }\n        });\n        return out;\n    }\n\n    function heuhaufen(e) {\n        return (e.nr + ' ' + e.titel + ' ' + e.kurz + ' ' + e.kommWarum + ' ' + e.kommFein + ' ' +\n            e.braucht.join(' ') + ' ' + e.liefert.join(' ') + ' ' + e.tags).toLowerCase();\n    }\n\n    \/* ---------- Filter, ohne Doppel-Und ---------- *\/\n\n    function passt(e, s) {\n        if (s.rolle !== 'alle') {\n            if (e.rolle.indexOf(s.rolle) === -1) { return false; }\n        }\n        if (s.komm !== 'alle') {\n            if (e.komm !== s.komm) { return false; }\n        }\n        if (s.phaseFein !== '') {\n            if (e.phasen.indexOf(s.phaseFein) === -1) { return false; }\n        } else if (s.phaseGrob !== 'alle') {\n            if (grobIds(e).indexOf(s.phaseGrob) === -1) { return false; }\n        }\n        if (s.qWorte.length > 0) {\n            var hay = heuhaufen(e);\n            var alleDrin = s.qWorte.every(function (w) { return hay.indexOf(w) !== -1; });\n            if (!alleDrin) { return false; }\n        }\n        return true;\n    }\n\n    function filtern(s) {\n        return DATEN.filter(function (e) { return passt(e, s); });\n    }\n\n    function kopie(over) {\n        var c = { q: state.q, qWorte: state.qWorte, phaseGrob: state.phaseGrob, phaseFein: state.phaseFein, rolle: state.rolle, komm: state.komm, katalog: state.katalog };\n        Object.keys(over).forEach(function (k) { c[k] = over[k]; });\n        return c;\n    }\n\n    \/* ---------- Schaltflaechen bauen ---------- *\/\n\n    function segButton(label, aktiv, fn) {\n        var b = el('button', 'awf-segbtn', label);\n        b.type = 'button';\n        if (aktiv) { b.className = 'awf-segbtn is-active'; }\n        b.setAttribute('aria-pressed', aktiv ? 'true' : 'false');\n        b.addEventListener('click', fn);\n        return b;\n    }\n\n    function baueAchsen() {\n        var wrapP = document.getElementById('awfPhaseGrob');\n        wrapP.innerHTML = '';\n        wrapP.appendChild(segButton('alle Phasen', state.phaseGrob === 'alle', function () {\n            state.phaseGrob = 'alle'; state.phaseFein = ''; zeichnen();\n        }));\n        GRUPPEN.forEach(function (g) {\n            wrapP.appendChild(segButton(g.label, state.phaseGrob === g.id, function () {\n                state.phaseGrob = g.id; state.phaseFein = ''; zeichnen();\n            }));\n        });\n\n        var wrapF = document.getElementById('awfPhaseFein');\n        wrapF.innerHTML = '';\n        if (state.phaseGrob === 'alle') {\n            wrapF.style.display = 'none';\n        } else {\n            wrapF.style.display = 'flex';\n            var g = gruppeVon(state.phaseGrob);\n            wrapF.appendChild(segButton('ganze Gruppe', state.phaseFein === '', function () {\n                state.phaseFein = ''; zeichnen();\n            }));\n            g.fein.forEach(function (p) {\n                wrapF.appendChild(segButton(p, state.phaseFein === p, function () {\n                    state.phaseFein = p; zeichnen();\n                }));\n            });\n        }\n\n        var wrapR = document.getElementById('awfRolle');\n        wrapR.innerHTML = '';\n        ROLLEN.forEach(function (r) {\n            wrapR.appendChild(segButton(r.label, state.rolle === r.id, function () {\n                state.rolle = r.id; zeichnen();\n            }));\n        });\n        wrapR.appendChild(segButton('alle Rollen', state.rolle === 'alle', function () {\n            state.rolle = 'alle'; zeichnen();\n        }));\n\n        var wrapK = document.getElementById('awfKomm');\n        wrapK.innerHTML = '';\n        wrapK.appendChild(segButton('alle zeigen', state.komm === 'alle', function () {\n            state.komm = 'alle'; zeichnen();\n        }));\n        STUFEN.forEach(function (s) {\n            wrapK.appendChild(segButton(s.label, state.komm === s.id, function () {\n                state.komm = s.id; zeichnen();\n            }));\n        });\n\n        var wrapKat = document.getElementById('awfKatalog');\n        wrapKat.innerHTML = '';\n        KATALOGE.forEach(function (k) {\n            wrapKat.appendChild(segButton(k.label, state.katalog === k.id, function () {\n                state.katalog = k.id; zeichnen();\n            }));\n        });\n    }\n\n    \/* ---------- Ergebnissatz in ganzen Worten ---------- *\/\n\n    function phasenTeil() {\n        if (state.phaseFein !== '') { return ' in der Phase ' + state.phaseFein; }\n        if (state.phaseGrob !== 'alle') { return ' ' + gruppeVon(state.phaseGrob).satz; }\n        return '';\n    }\n\n    function rollenTeil() {\n        if (state.rolle === 'alle') { return 'alle Beteiligten'; }\n        return rolleVon(state.rolle).satz;\n    }\n\n    function suchTeil() {\n        if (state.q === '') { return ''; }\n        return ' mit dem Suchwort \u201e' + state.q + '\u201c';\n    }\n\n    function satzBauen(treffer) {\n        var n = treffer.length;\n        var kopf = 'F\u00fcr ' + rollenTeil() + phasenTeil() + suchTeil();\n        var s1;\n        if (n === 1) {\n            s1 = kopf + ' bleibt von 21 Anwendungsf\u00e4llen genau einer \u00fcbrig.';\n        } else {\n            s1 = kopf + ' bleiben von 21 Anwendungsf\u00e4llen ' + wort(n) + ' \u00fcbrig.';\n        }\n\n        var s2 = '';\n        if (state.komm === 'alle') {\n            var gruppen = [];\n            STUFEN.forEach(function (st) {\n                var c = treffer.filter(function (e) { return e.komm === st.id; }).length;\n                if (c > 0) { gruppen.push({ c: c, satz: st.satz }); }\n            });\n            if (gruppen.length === 1) {\n                if (n === 1) {\n                    s2 = 'Der Fall ist in einem kommunalen Projekt ' + gruppen[0].satz + '. Eine Einsch\u00e4tzung ohne Vorgabe im Regelwerk.';\n                } else {\n                    s2 = 'Alle ' + wort(n) + ' sind in einem kommunalen Projekt ' + gruppen[0].satz + '. Eine Einsch\u00e4tzung ohne Vorgabe im Regelwerk.';\n                }\n            } else if (gruppen.length > 1) {\n                var teile = gruppen.map(function (g) { return anzahlwort(g.c) + ' ' + g.satz; });\n                var letzte = teile.pop();\n                s2 = 'Davon sind in einem kommunalen Projekt ' + teile.join(', ') + ' und ' + letzte + '. Eine Einsch\u00e4tzung ohne Vorgabe im Regelwerk.';\n            }\n        } else {\n            s2 = 'Gezeigt werden nur die F\u00e4lle, die in einem kommunalen Projekt ' + stufeVon(state.komm).label + ' gemeint sind. Eine Einsch\u00e4tzung ohne Vorgabe im Regelwerk.';\n        }\n        return { s1: s1, s2: s2 };\n    }\n\n    \/* ---------- Karte ---------- *\/\n\n    function faktZeile(key, valNode) {\n        var row = el('div', 'awf-fact');\n        row.appendChild(el('div', 'awf-fact-key', key));\n        var v = el('div', 'awf-fact-val');\n        v.appendChild(valNode);\n        row.appendChild(v);\n        return row;\n    }\n\n    function textNode(t) { return document.createTextNode(t); }\n\n    function baueKarte(e) {\n        var card = el('article', 'awf-card');\n\n        var head = el('div', 'awf-card-head');\n        head.appendChild(el('span', 'awf-nr', e.nr));\n        head.appendChild(el('h3', 'awf-card-title', e.titel));\n        if (e.rahmen === true) {\n            head.appendChild(el('span', 'awf-flag awf-flag-rahmen', 'Rahmen, kein Arbeitsschritt'));\n        }\n        if (e.steckbrief === false) {\n            head.appendChild(el('span', 'awf-flag', 'kein Steckbrief in V3.0'));\n        }\n        card.appendChild(head);\n\n        card.appendChild(el('p', 'awf-kurz', e.kurz));\n\n        var facts = el('div', 'awf-facts');\n\n        facts.appendChild(faktZeile('braucht', textNode(e.braucht.join(' \u00b7 '))));\n        facts.appendChild(faktZeile('liefert', textNode(e.liefert.join(' \u00b7 '))));\n\n        var kommWrap = document.createDocumentFragment();\n        var mark = el('span', 'awf-mark ' + stufeVon(e.komm).mark);\n        mark.setAttribute('aria-hidden', 'true');\n        kommWrap.appendChild(mark);\n        var kb = el('em', null, e.kommFein);\n        kommWrap.appendChild(kb);\n        kommWrap.appendChild(textNode('. ' + e.kommWarum));\n        kommWrap.appendChild(el('span', 'awf-est', 'Einsch\u00e4tzung'));\n        var kommBox = el('span');\n        kommBox.appendChild(kommWrap);\n        facts.appendChild(faktZeile('kommunal', kommBox));\n\n        var rollenTxt = e.rolle.map(function (r) { return rolleVon(r).label; }).join(', ');\n        var rWrap = el('span');\n        rWrap.appendChild(textNode(rollenTxt));\n        rWrap.appendChild(el('span', 'awf-est', 'eigene Zuordnung'));\n        facts.appendChild(faktZeile('liefert wer', rWrap));\n\n        var pWrap = el('span');\n        if (e.phasen.length === 0) {\n            pWrap.appendChild(textNode('Keine Phasenmarkierung. Der Fall hat im Rahmendokument V3.0 keinen Steckbrief, deshalb gibt es dort auch kein Phasenraster f\u00fcr ihn.'));\n        } else {\n            e.phasen.forEach(function (p) {\n                var treffer = false;\n                if (state.phaseFein === p) { treffer = true; }\n                var chip = el('span', treffer ? 'awf-phase-chip is-hit' : 'awf-phase-chip', p);\n                pWrap.appendChild(chip);\n            });\n            pWrap.appendChild(el('span', 'awf-est', 'unverbindlich'));\n        }\n        facts.appendChild(faktZeile('Phasen V3.0', pWrap));\n\n        card.appendChild(facts);\n\n        if (state.katalog === 'db') {\n            var db = DB_FAHRWEG[e.nr];\n            var kb1 = el('p', 'awf-katalog');\n            if (db === null) {\n                kb1.appendChild(textNode('Bei DB InfraGO Fahrweg gibt es die Nummer ' + e.nr + ' nicht. Der Katalog l\u00e4uft von 010 bis 190.'));\n            } else {\n                kb1.appendChild(textNode('Dieselbe Nummer ' + e.nr + ' hei\u00dft bei DB InfraGO Fahrweg: '));\n                kb1.appendChild(el('strong', null, db));\n                kb1.appendChild(textNode('. Das ist als Warnhinweis gemeint.'));\n            }\n            card.appendChild(kb1);\n        } else if (state.katalog === 'bb') {\n            var bbT = BUNDESBAU[e.nr];\n            var kb2 = el('p', 'awf-katalog');\n            if (bbT === null) {\n                kb2.appendChild(textNode('Bei BIM f\u00fcr Bundesbauten gibt es die Nummer ' + e.nr + ' nicht. Die Arbeitshilfe f\u00fchrt 010 bis 190.'));\n                card.appendChild(kb2);\n            } else if (bbT === undefined) {\n                kb2.className = 'awf-katalog awf-katalog-same';\n                kb2.appendChild(textNode('Bei BIM f\u00fcr Bundesbauten hat die ' + e.nr + ' denselben Titel. Der Steckbrief dazu ist trotzdem ein eigener.'));\n                card.appendChild(kb2);\n            } else {\n                kb2.appendChild(textNode('Bei BIM f\u00fcr Bundesbauten hei\u00dft die ' + e.nr + ': '));\n                kb2.appendChild(el('strong', null, bbT));\n                kb2.appendChild(textNode('. Abweichender Titel, eigener Katalog.'));\n                card.appendChild(kb2);\n            }\n        }\n\n        if (e.verweis !== '') {\n            var vw = el('p', 'awf-verweis');\n            vw.appendChild(textNode('Weiterlesen: '));\n            var ziel = VERWEIS_URL[e.verweis];\n            if (ziel === undefined) {\n                vw.appendChild(el('strong', null, e.verweis));\n            } else {\n                var link = el('a', null, e.verweis);\n                link.setAttribute('href', ziel);\n                vw.appendChild(link);\n            }\n            card.appendChild(vw);\n        }\n\n        return card;\n    }\n\n    \/* ---------- Leerfall mit erklaerendem Satz ---------- *\/\n\n    function nummernListe(liste) {\n        var nrs = liste.map(function (e) { return e.nr; });\n        if (nrs.length === 1) { return nrs[0]; }\n        var letzte = nrs.pop();\n        return nrs.join(', ') + ' und ' + letzte;\n    }\n\n    function rollenListe(liste) {\n        var ids = [];\n        liste.forEach(function (e) {\n            e.rolle.forEach(function (r) { if (ids.indexOf(r) === -1) { ids.push(r); } });\n        });\n        var namen = ids.map(function (r) { return rolleVon(r).label; });\n        if (namen.length === 1) { return namen[0]; }\n        var letzt = namen.pop();\n        return namen.join(', ') + ' oder ' + letzt;\n    }\n\n    function baueLeerfall(ziel) {\n        var box = el('div', 'awf-empty');\n        box.appendChild(el('p', 'awf-empty-head', 'Kein Anwendungsfall passt zu dieser Kombination.'));\n\n        var text = '';\n        var ohneRolle = filtern(kopie({ rolle: 'alle' }));\n\n        if (state.rolle !== 'alle') {\n            if (ohneRolle.length > 0) {\n                var hatPhase = phasenTeil() !== '';\n                var wo = hatPhase ? gross(phasenTeil().trim()) : 'In dieser Auswahl';\n                var schluss = hatPhase ? 'Die Lieferpflicht sitzt in dieser Phase bei einer anderen Partei.' : 'Die Lieferpflicht sitzt hier bei einer anderen Partei.';\n                text = wo + ' liegt kein Anwendungsfall bei ' + rolleVon(state.rolle).dativ + '. ' +\n                    (ohneRolle.length === 1 ? 'Die Nummer ' : 'Die Nummern ') + nummernListe(ohneRolle) +\n                    (ohneRolle.length === 1 ? ' liegt' : ' liegen') + ' bei ' + rollenListe(ohneRolle) +\n                    '. Die leere Liste ist hier die Aussage: ' + schluss;\n            }\n        }\n        if (text === '') {\n            if (state.q !== '') {\n                text = 'Zum Suchwort \u201e' + state.q + '\u201c gibt es unter den gesetzten Filtern keinen Treffer. ' +\n                    'Pr\u00fcf die Schreibweise, oder nimm einen Filter heraus. Nummern sind dreistellig, also 050 und nicht 50.';\n            } else {\n                text = 'Diese Kombination kommt in der Liste nicht vor. Nimm einen Filter heraus, dann siehst du, welche Achse die Liste leer gemacht hat.';\n            }\n        }\n        box.appendChild(el('p', 'awf-empty-text', text));\n\n        var actions = el('div', 'awf-empty-actions');\n        var kandidaten = [\n            { key: 'rolle', wert: 'alle', label: 'ohne Rollenfilter', aktiv: state.rolle !== 'alle' },\n            { key: 'komm', wert: 'alle', label: 'alle kommunalen Stufen', aktiv: state.komm !== 'alle' },\n            { key: 'phaseFein', wert: '', label: 'ganze Phasengruppe', aktiv: state.phaseFein !== '' },\n            { key: 'phaseGrob', wert: 'alle', label: 'alle Phasen', aktiv: state.phaseGrob !== 'alle' },\n            { key: 'q', wert: '', label: 'ohne Suchwort', aktiv: state.q !== '' }\n        ];\n        kandidaten.forEach(function (k) {\n            if (!k.aktiv) { return; }\n            var over = {};\n            over[k.key] = k.wert;\n            if (k.key === 'phaseGrob') { over.phaseFein = ''; }\n            if (k.key === 'q') { over.qWorte = []; }\n            var probe = filtern(kopie(over));\n            if (probe.length === 0) { return; }\n            var b = el('button', 'awf-btn', k.label + ' (' + anzahlwort(probe.length) + ')');\n            b.type = 'button';\n            b.addEventListener('click', function () {\n                if (k.key === 'q') {\n                    state.q = '';\n                    state.qWorte = [];\n                    var inp = document.getElementById('awfSuche');\n                    if (inp) { inp.value = ''; }\n                } else {\n                    state[k.key] = k.wert;\n                    if (k.key === 'phaseGrob') { state.phaseFein = ''; }\n                }\n                zeichnen();\n            });\n            actions.appendChild(b);\n        });\n        if (actions.childNodes.length > 0) { box.appendChild(actions); }\n\n        ziel.appendChild(box);\n    }\n\n    \/* ---------- Hinweisstreifen ueber der Liste ---------- *\/\n\n    function baueFlash() {\n        var flash = document.getElementById('awfFlash');\n        flash.innerHTML = '';\n\n        if (state.katalog === 'kom') {\n            var f1 = el('div', 'awf-flash');\n            f1.appendChild(el('strong', null, 'Kommunaler Auftraggeber: kein vorgegebener Anwendungsfall-Satz. '));\n            f1.appendChild(textNode('F\u00fcr eine Kommune gibt es keine Liste, die von oben vorgeschrieben w\u00e4re. Was gilt, steht in der AIA, oder es steht nirgends. ' +\n                'Tauchen im Vergabe-PDF trotzdem Nummern auf, stammen sie in der Regel aus der harmonisierten Liste des Bundes, die die Landesleitf\u00e4den \u00fcbernehmen. ' +\n                'Die Bieterfrage lautet dann: Aus welchem Katalog stammen diese Nummern, und in welcher Ausgabe?'));\n            flash.appendChild(f1);\n        } else if (state.katalog !== 'harm') {\n            var kat = katalogVon(state.katalog);\n            var f2 = el('div', 'awf-flash');\n            f2.appendChild(el('strong', null, 'Vergleich mit ' + kat.label + ': '));\n            f2.appendChild(textNode('Unter jeder Karte steht, was dieselbe Nummer in diesem Katalog bedeutet. Das ist als Warnung gemeint. ' +\n                'Es gibt zwischen den Katalogen keine Entsprechung, aus der man umrechnen k\u00f6nnte.'));\n            flash.appendChild(f2);\n        }\n\n        var phaseGesetzt = state.phaseGrob !== 'alle';\n        if (phaseGesetzt) {\n            var f3 = el('div', 'awf-flash');\n            f3.appendChild(el('strong', null, 'Phasenfilter aktiv. '));\n            f3.appendChild(textNode('000, 020 und 200 haben im Rahmendokument V3.0 keinen Steckbrief und damit keine Phasenmarkierung. ' +\n                'Sie erscheinen deshalb hier nicht, obwohl 020 Bedarfsplanung inhaltlich in die Bedarfsphase geh\u00f6ren w\u00fcrde und 200 in Betrieb und Erhaltung. ' +\n                'Die Zuordnung selbst ist eine Anregung der Quelle, keine Vorgabe.'));\n            flash.appendChild(f3);\n        }\n    }\n\n    \/* ---------- Zeichnen ---------- *\/\n\n    function zeichnen() {\n        baueAchsen();\n        baueFlash();\n\n        var treffer = filtern(state);\n        var liste = document.getElementById('awfListe');\n        liste.innerHTML = '';\n\n        var satzEl = document.getElementById('awfSatz');\n        satzEl.innerHTML = '';\n\n        if (treffer.length === 0) {\n            var kopf = el('strong', null, 'Kein Treffer.');\n            satzEl.appendChild(kopf);\n            satzEl.appendChild(textNode(' F\u00fcr ' + rollenTeil() + phasenTeil() + suchTeil() + ' bleibt von 21 Anwendungsf\u00e4llen keiner \u00fcbrig.'));\n            baueLeerfall(liste);\n            return;\n        }\n\n        var s = satzBauen(treffer);\n        satzEl.appendChild(el('strong', null, s.s1));\n        if (s.s2 !== '') {\n            satzEl.appendChild(el('span', 'awf-satz-sub', s.s2));\n        }\n\n        treffer.forEach(function (e) { liste.appendChild(baueKarte(e)); });\n    }\n\n    \/* ---------- Bedienung ---------- *\/\n\n    var sucheEl = document.getElementById('awfSuche');\n    sucheEl.addEventListener('input', function () {\n        state.q = sucheEl.value.trim();\n        state.qWorte = state.q.toLowerCase().split(\/\\s+\/).filter(function (w) { return w.length > 0; });\n        zeichnen();\n    });\n\n    document.getElementById('awfReset').addEventListener('click', function () {\n        state.q = '';\n        state.qWorte = [];\n        state.phaseGrob = 'alle';\n        state.phaseFein = '';\n        state.rolle = 'pb';\n        state.komm = 'alle';\n        state.katalog = 'harm';\n        sucheEl.value = '';\n        zeichnen();\n    });\n\n    zeichnen();\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Anwendungsfall-W&auml;hler 000 bis 200 In einer kommunalen Ausschreibung stehen die Anwendungsf&auml;lle oft nur als Nummern, zum Beispiel 010, 050 und [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"disabled","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[50],"tags":[],"class_list":["post-2560","post","type-post","status-publish","format-standard","hentry","category-tf1-zuerst-verstehen"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":false,"author_link":"https:\/\/cad-kompass.de\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":"Anwendungsfall-W&auml;hler 000 bis 200 In einer kommunalen Ausschreibung stehen die Anwendungsf&auml;lle oft nur als Nummern, zum Beispiel 010, 050 und [&hellip;]","_links":{"self":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2560"}],"version-history":[{"count":4,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2560\/revisions"}],"predecessor-version":[{"id":2709,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2560\/revisions\/2709"}],"wp:attachment":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}