{"id":2083,"date":"2026-05-24T13:05:50","date_gmt":"2026-05-24T11:05:50","guid":{"rendered":"https:\/\/cad-kompass.de\/?p=2083"},"modified":"2026-06-26T17:56:22","modified_gmt":"2026-06-26T15:56:22","slug":"elementkanten-geometrie-dgm-und-praxis","status":"publish","type":"post","link":"https:\/\/cad-kompass.de\/?p=2083","title":{"rendered":"Elementkanten Quelle, Ziel und Ergebnis"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"de\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Civil 3D | Elementkanten als Quelle, Ziel und Ergebnis<\/title>\n    <style>\n        :root {\n            --primary: #3f5f75;\n            --primary-dark: #2d4d63;\n            --primary-light: #edf3f7;\n            --primary-pale: #f5f8fb;\n            --accent: #e8913a;\n            --text: #2d3748;\n            --text-light: #64748b;\n            --heading: #1a2332;\n            --bg: #ffffff;\n            --bg-offset: #f8fafc;\n            --border: #e2e8f0;\n            --border-light: #f1f5f9;\n            --green: #059669;\n            --green-bg: #ecfdf5;\n            --green-border: #a7f3d0;\n            --amber: #d97706;\n            --amber-bg: #fffbeb;\n            --amber-border: #fde68a;\n            --radius: 4px;\n            --radius-lg: 6px;\n            --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);\n            --shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);\n            --shadow-md: 0 4px 6px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);\n            --transition: 0.2s ease;\n        }\n        .page-wrapper, .page-wrapper *, .page-wrapper *::before, .page-wrapper *::after { box-sizing: border-box; }\n        .page-wrapper { color: var(--text); line-height: 1.7; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }\n        .reading-progress { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(90deg, var(--primary), var(--accent)); width: 0%; z-index: 1000; transition: width 0.15s linear; border-radius: 0 2px 2px 0; }\n        .page-wrapper { max-width: 840px; margin: 0 auto; padding: 32px 36px 100px; }\n        .page-title { font-size: 1.7rem; font-weight: 700; color: var(--heading); margin-bottom: 32px; line-height: 1.3; letter-spacing: -0.02em; }\n        .toc { background: var(--primary-pale); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px 28px 24px 32px; margin-bottom: 44px; position: relative; overflow: hidden; }\n        .toc::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, var(--primary), var(--accent)); }\n        .toc-title { font-size: 0.72rem; font-weight: 700; color: var(--primary); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 14px; }\n        .toc ol { padding-left: 22px; }\n        .toc li { margin-bottom: 5px; font-size: 0.88rem; line-height: 1.5; }\n        .toc a { color: var(--text); text-decoration: none; transition: color var(--transition); }\n        .toc a:hover { color: var(--primary); }\n        .toc ol ol { margin-top: 5px; }\n        .tutorial-content h2 { font-size: 1.15rem; font-weight: 700; color: var(--heading); margin: 56px 0 18px; padding-bottom: 12px; border-bottom: 2px solid var(--border); letter-spacing: -0.01em; }\n        .tutorial-content h2:first-child { margin-top: 0; }\n        .tutorial-content h2 .label { display: inline-block; font-size: 0.68rem; font-weight: 700; color: var(--primary); background: var(--primary-light); padding: 3px 10px; border-radius: 20px; letter-spacing: 0.06em; text-transform: uppercase; margin-right: 10px; vertical-align: middle; position: relative; top: -1px; }\n        .tutorial-content h3 { font-size: 1rem; font-weight: 600; color: var(--heading); margin: 30px 0 12px; }\n        .tutorial-content p { font-size: 0.93rem; line-height: 1.85; color: var(--text); margin-bottom: 16px; }\n        .tutorial-content strong { color: var(--heading); }\n        .tutorial-content ul, .tutorial-content ol { padding-left: 24px; margin-bottom: 16px; }\n        .tutorial-content li { font-size: 0.93rem; line-height: 1.8; color: var(--text); margin-bottom: 6px; }\n        .tutorial-content code { font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 0.84em; background: var(--bg-offset); border: 1px solid var(--border); padding: 2px 7px; border-radius: 4px; color: var(--primary-dark); font-weight: 500; }\n        .tutorial-content table { width: 100%; border-collapse: separate; border-spacing: 0; margin: 20px 0 24px; font-size: 0.88rem; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }\n        .tutorial-content th { background: var(--primary); color: #fff; padding: 12px 16px; text-align: left; font-weight: 600; font-size: 0.82rem; letter-spacing: 0.02em; }\n        .tutorial-content td { padding: 11px 16px; border-bottom: 1px solid var(--border-light); vertical-align: top; }\n        .tutorial-content tr:last-child td { border-bottom: none; }\n        .tutorial-content tbody tr:nth-child(even) { background: var(--bg-offset); }\n        .tutorial-content tbody tr:hover { background: var(--primary-pale); transition: background var(--transition); }\n        .hint-box { background: var(--primary-light); border-left: 4px solid var(--primary); border-radius: 0 var(--radius) var(--radius) 0; padding: 16px 20px; margin: 20px 0 24px; font-size: 0.88rem; color: var(--text); line-height: 1.7; box-shadow: var(--shadow-sm); display: flex; gap: 12px; align-items: flex-start; }\n        .hint-box .box-icon { flex-shrink: 0; margin-top: 1px; }\n        .hint-box strong { color: var(--primary-dark); }\n        .warning-box { background: var(--amber-bg); border-left: 4px solid var(--amber); border-radius: 0 var(--radius) var(--radius) 0; padding: 16px 20px; margin: 20px 0 24px; font-size: 0.88rem; color: var(--text); line-height: 1.7; box-shadow: var(--shadow-sm); display: flex; gap: 12px; align-items: flex-start; }\n        .warning-box .box-icon { flex-shrink: 0; margin-top: 1px; }\n        .warning-box strong { color: #92700c; }\n        .checkpoint { background: var(--green-bg); border-left: 4px solid var(--green); border-radius: 0 var(--radius) var(--radius) 0; padding: 16px 20px; margin: 28px 0; font-size: 0.88rem; color: var(--text); line-height: 1.7; box-shadow: var(--shadow-sm); display: flex; gap: 12px; align-items: flex-start; }\n        .checkpoint .box-icon { flex-shrink: 0; margin-top: 1px; }\n        .checkpoint strong { color: #047857; }\n        .step-list { counter-reset: steps; list-style: none; padding-left: 0; position: relative; margin: 20px 0 28px; }\n        .step-list::before { content: ''; position: absolute; left: 15px; top: 20px; bottom: 20px; width: 2px; background: linear-gradient(180deg, var(--primary), var(--border)); border-radius: 1px; }\n        .step-list li { counter-increment: steps; padding: 10px 0 10px 52px; position: relative; font-size: 0.93rem; line-height: 1.8; border-bottom: none; }\n        .step-list li::before { content: counter(steps); position: absolute; left: 3px; top: 10px; width: 26px; height: 26px; background: var(--primary); color: #fff; border-radius: 50%; font-size: 0.75rem; font-weight: 600; display: flex; align-items: center; justify-content: center; z-index: 1; box-shadow: 0 0 0 4px var(--bg), var(--shadow); }\n        .step-list li + li { margin-top: 2px; }\n        .step-list details { margin-top: 10px; }\n        .step-list details summary { font-size: 0.8rem; color: var(--primary); cursor: pointer; font-weight: 600; display: inline-flex; align-items: center; gap: 7px; padding: 6px 14px; transition: all var(--transition); list-style: none; background: var(--primary-light); border: 1px solid #c5d5e0; border-radius: 20px; letter-spacing: 0.01em; }\n        .step-list details summary::-webkit-details-marker { display: none; }\n        .step-list details summary::before { content: '\\25B8'; font-size: 0.7rem; transition: transform var(--transition); display: inline-block; }\n        .step-list details[open] summary::before { transform: rotate(90deg); }\n        .step-list details summary:hover { background: var(--primary); color: #fff; border-color: var(--primary); }\n        .step-list details summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }\n        .reading-jumps a:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }\n        .toc a:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 2px; }\n        .lightbox-close:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }\n        .step-list details[open] summary { margin-bottom: 8px; }\n        .step-list details figure { margin: 8px 0 4px; }\n        .step-list details figure img { cursor: zoom-in; }\n        .lightbox-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.85); z-index: 2000; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.25s ease, visibility 0.25s ease; cursor: zoom-out; padding: 24px; }\n        .lightbox-overlay.active { opacity: 1; visibility: visible; }\n        .lightbox-overlay img { max-width: 95vw; max-height: 92vh; border-radius: var(--radius-lg); box-shadow: 0 8px 40px rgba(0,0,0,0.5); transform: scale(0.92); transition: transform 0.25s ease; }\n        .lightbox-overlay.active img { transform: scale(1); }\n        .lightbox-close { position: fixed; top: 20px; right: 24px; width: 40px; height: 40px; background: rgba(255,255,255,0.15); border: none; border-radius: 50%; color: #fff; font-size: 1.3rem; cursor: pointer; z-index: 2001; display: flex; align-items: center; justify-content: center; transition: background 0.2s ease; }\n        .lightbox-close:hover { background: rgba(255,255,255,0.3); }\n        figure { margin: 24px 0; }\n        figure img { max-width: 100%; border-radius: var(--radius); border: 1px solid var(--border); box-shadow: var(--shadow); transition: box-shadow 0.3s ease, transform 0.3s ease; }\n        figure img:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }\n        figcaption { font-size: 0.8rem; color: var(--text-light); margin-top: 10px; padding-left: 2px; font-style: normal; line-height: 1.5; }\n        figure video { max-width: 100%; border-radius: var(--radius); border: 1px solid var(--border); box-shadow: var(--shadow); }\n        .reading-map { background: var(--primary-pale); border: 1px solid var(--border); border-left: 4px solid var(--accent); border-radius: 0 var(--radius-lg) var(--radius-lg) 0; padding: 16px 18px; margin: 20px 0 24px; box-shadow: var(--shadow-sm); }\n        .reading-map:hover { box-shadow: var(--shadow-sm); transform: none; }\n        .reading-map-title { font-size: 0.72rem; font-weight: 700; color: var(--primary); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 8px; }\n        .reading-map p { font-size: 0.88rem; line-height: 1.65; margin: 0 0 12px; color: var(--text); }\n        .reading-jumps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 10px; max-width: 650px; margin: 0 auto; }\n        .reading-jumps a { display: inline-flex; align-items: center; justify-content: center; background: #fff; border: 1px solid #c5d5e0; border-radius: var(--radius); color: var(--primary-dark); padding: 8px 12px; min-height: 42px; font-size: 0.82rem; font-weight: 600; line-height: 1.35; text-align: center; text-decoration: none; box-shadow: none; transform: none; transition: background-color var(--transition), border-color var(--transition), color var(--transition); }\n        .reading-jumps a:hover { background: var(--primary-light); border-color: var(--primary); color: var(--primary-dark); box-shadow: none; transform: none; }\n        .section-divider { border: none; height: 1px; background: var(--border); margin: 48px 0 0; }\n        .relation-demo { background: var(--primary-pale); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 18px 20px 20px; margin: 24px 0 34px; box-shadow: var(--shadow-sm); }\n        .relation-demo-title { font-size: 0.72rem; font-weight: 700; color: var(--primary); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 8px; }\n        .relation-demo > p { font-size: 0.88rem; line-height: 1.65; margin-bottom: 14px; }\n        .relation-controls { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }\n        .relation-controls button { appearance: none; border: 1px solid #c5d5e0; background: #fff; color: var(--primary-dark); border-radius: var(--radius); padding: 8px 10px; min-height: 38px; font: inherit; font-size: 0.8rem; font-weight: 700; cursor: pointer; transition: background-color var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition); }\n        .relation-controls button:hover { background: var(--primary-light); border-color: var(--primary); }\n        .relation-controls button:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }\n        .relation-controls button.active { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: var(--shadow-sm); }\n        .relation-layout { display: block; }\n        .relation-svg-wrap { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 8px; display: flex; align-items: center; justify-content: center; }\n        .relation-svg { width: 100%; max-width: 680px; height: auto; display: block; }\n        .relation-svg-mobile { display: none; }\n        .relation-flow { opacity: 0.16; transition: opacity var(--transition), stroke-width var(--transition); }\n        .relation-flow path { fill: none; stroke: #3f5f75; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }\n        .relation-node rect { fill: #fff; stroke: #c5d5e0; stroke-width: 1.3; transition: fill var(--transition), stroke var(--transition), stroke-width var(--transition); }\n        .relation-node text { font-family: sans-serif; fill: var(--primary-dark); }\n        .relation-node .sub { fill: var(--text-light); font-size: 10px; }\n        .relation-node .main { font-size: 12px; font-weight: 700; }\n        .relation-demo[data-mode=\"quelle\"] .flow-quelle,\n        .relation-demo[data-mode=\"ziel\"] .flow-ziel,\n        .relation-demo[data-mode=\"ergebnis\"] .flow-ergebnis,\n        .relation-demo[data-mode=\"kette\"] .flow-kette { opacity: 1; }\n        .relation-demo[data-mode=\"quelle\"] .node-core rect,\n        .relation-demo[data-mode=\"quelle\"] .node-source rect,\n        .relation-demo[data-mode=\"ziel\"] .node-core rect,\n        .relation-demo[data-mode=\"ziel\"] .node-target rect,\n        .relation-demo[data-mode=\"ergebnis\"] .node-core rect,\n        .relation-demo[data-mode=\"ergebnis\"] .node-result rect,\n        .relation-demo[data-mode=\"kette\"] .node-core rect,\n        .relation-demo[data-mode=\"kette\"] .node-chain rect { stroke-width: 2.2; }\n        .relation-demo[data-mode=\"quelle\"] .node-core rect,\n        .relation-demo[data-mode=\"quelle\"] .node-source rect { fill: #edf3f7; stroke: var(--primary); }\n        .relation-demo[data-mode=\"ziel\"] .node-core rect,\n        .relation-demo[data-mode=\"ziel\"] .node-target rect { fill: #fff7ed; stroke: var(--accent); }\n        .relation-demo[data-mode=\"ergebnis\"] .node-core rect,\n        .relation-demo[data-mode=\"ergebnis\"] .node-result rect { fill: #ecfdf5; stroke: var(--green); }\n        .relation-demo[data-mode=\"kette\"] .node-core rect,\n        .relation-demo[data-mode=\"kette\"] .node-chain rect { fill: #f5f8fb; stroke: var(--primary-dark); }\n        .relation-caption { background: #fff; border: 1px solid var(--border); border-left: 4px solid var(--primary); border-radius: 0 var(--radius) var(--radius) 0; padding: 14px 16px; margin-top: 12px; }\n        .relation-caption h3 { margin: 0 0 8px; font-size: 0.95rem; }\n        .relation-caption p { font-size: 0.86rem; line-height: 1.7; margin: 0; color: var(--text); }\n        .relation-explain { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; border-top: 1px solid var(--border-light); padding-top: 12px; }\n        .relation-explain strong { display: block; font-size: 0.72rem; color: var(--primary-dark); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }\n        @media (max-width: 680px) {\n            .page-wrapper { padding: 20px 18px 60px; }\n            .page-title { font-size: 1.35rem; }\n            .step-list li { padding-left: 46px; }\n            .toc { padding: 18px 20px 18px 24px; }\n            .reading-jumps { grid-template-columns: 1fr; max-width: none; }\n            .relation-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n            .relation-demo { padding: 16px; }\n            .relation-explain { grid-template-columns: 1fr; gap: 10px; }\n            .relation-svg-desktop { display: none; }\n            .relation-svg-mobile { display: block; max-width: 360px; }\n            .tutorial-content table { table-layout: fixed; font-size: 0.78rem; }\n            .tutorial-content th, .tutorial-content td { padding: 8px 9px; overflow-wrap: anywhere; hyphens: auto; }\n        }\n        @media (prefers-reduced-motion: no-preference) {\n            .tutorial-content h2, .hint-box, .warning-box, .checkpoint, figure { animation: fadeInUp 0.4s ease both; }\n            @keyframes fadeInUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }\n        }\n    <\/style>\n<\/head>\n<body>\n\n<div class=\"reading-progress\" id=\"readingProgress\"><\/div>\n\n<div class=\"page-wrapper\">\n\n    <h1 class=\"page-title\">Elementkanten als Quelle, Ziel und Ergebnis: Was damit in Civil 3D m\u00f6glich ist<\/h1>\n\n    <nav class=\"toc\">\n        <div class=\"toc-title\">Inhalt<\/div>\n        <ol>\n            <li><a href=\"#rollenmodell\">Das Rollenmodell: Quelle, Ziel, Ergebnis<\/a><\/li>\n            <li><a href=\"#quelle\">Elementkante als Quelle<\/a><\/li>\n            <li><a href=\"#ziel\">Elementkante als Ziel<\/a><\/li>\n            <li><a href=\"#abgeleitet\">Abgeleitete Elementkanten<\/a><\/li>\n            <li><a href=\"#aufbau\">Beziehungsketten sauber aufbauen<\/a><\/li>\n        <\/ol>\n    <\/nav>\n\n    <div class=\"tutorial-content\">\n\n        <p>Tutorial 1 hat gezeigt, wie Elementkanten entstehen. Tutorial 2 hat gezeigt, wie du ihre H\u00f6hen bearbeitest. Jetzt geht es nicht mehr um den n\u00e4chsten Klick, sondern um die Frage: <strong>Welche Rolle kann eine Elementkante in einem Civil-3D-Modell \u00fcbernehmen?<\/strong><\/p>\n\n        <p>Die wichtigste Erkenntnis: Eine Elementkante ist selten nur eine Linie. Sie kann eine Berechnung starten, sie kann Ziel f\u00fcr ein anderes Objekt sein oder sie kann selbst aus einem \u00fcbergeordneten Objekt abgeleitet werden. Wer diese Beziehungen versteht, verliert sp\u00e4ter bei Verschneidung, DGM und Profilk\u00f6rper nicht den \u00dcberblick.<\/p>\n\n        <div class=\"relation-demo\" id=\"relationDemo\" data-mode=\"quelle\">\n            <div class=\"relation-demo-title\">Modellbild<\/div>\n            <p>Eine Elementkante hat Lage und H\u00f6he. In Civil 3D kann sie drei Jobs \u00fcbernehmen: Sie kann etwas berechnen lassen, als Zielobjekt dienen oder aus einem anderen Objekt entstehen. Die Pfeile zeigen, in welche Richtung die Abh\u00e4ngigkeit l\u00e4uft.<\/p>\n            <div class=\"relation-controls\" role=\"group\" aria-label=\"Rolle der Elementkante ausw\u00e4hlen\">\n                <button type=\"button\" class=\"active\" data-relation-mode=\"quelle\" aria-pressed=\"true\">Quelle<\/button>\n                <button type=\"button\" data-relation-mode=\"ziel\" aria-pressed=\"false\">Ziel<\/button>\n                <button type=\"button\" data-relation-mode=\"ergebnis\" aria-pressed=\"false\">Ergebnis<\/button>\n                <button type=\"button\" data-relation-mode=\"kette\" aria-pressed=\"false\">Kette<\/button>\n            <\/div>\n            <div class=\"relation-layout\">\n                <div class=\"relation-svg-wrap\">\n                    <svg class=\"relation-svg relation-svg-desktop\" viewBox=\"0 0 720 430\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-label=\"Interaktive \u00dcbersicht der Elementkanten-Beziehungen\">\n                        <defs>\n                            <marker id=\"relationArrow\" markerWidth=\"9\" markerHeight=\"9\" refX=\"7\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n                                <path d=\"M0,0 L0,7 L7,3.5 z\" fill=\"#3f5f75\"\/>\n                            <\/marker>\n                        <\/defs>\n\n                        <g class=\"relation-flow flow-ergebnis\">\n                            <path d=\"M146 118 C190 132 238 164 286 195\" marker-end=\"url(#relationArrow)\"\/>\n                            <path d=\"M360 118 L360 195\" marker-end=\"url(#relationArrow)\"\/>\n                            <path d=\"M574 118 C530 132 482 164 434 195\" marker-end=\"url(#relationArrow)\"\/>\n                        <\/g>\n                        <g class=\"relation-flow flow-quelle\">\n                            <path d=\"M288 252 C220 275 170 302 122 337\" marker-end=\"url(#relationArrow)\"\/>\n                            <path d=\"M360 260 L360 337\" marker-end=\"url(#relationArrow)\"\/>\n                            <path d=\"M432 252 C500 275 550 302 598 337\" marker-end=\"url(#relationArrow)\"\/>\n                        <\/g>\n                        <g class=\"relation-flow flow-ziel\">\n                            <path d=\"M598 337 C548 292 490 250 434 225\" marker-end=\"url(#relationArrow)\"\/>\n                        <\/g>\n                        <g class=\"relation-flow flow-kette\">\n                            <path d=\"M434 225 L490 225\" marker-end=\"url(#relationArrow)\"\/>\n                            <path d=\"M574 255 C530 292 470 318 410 337\" marker-end=\"url(#relationArrow)\"\/>\n                            <path d=\"M526 255 C390 278 230 310 122 337\" marker-end=\"url(#relationArrow)\"\/>\n                        <\/g>\n\n                        <g class=\"relation-node node-result\" transform=\"translate(40 58)\">\n                            <rect width=\"170\" height=\"60\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"85\" y=\"24\" text-anchor=\"middle\">DGM-H\u00f6hen<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"42\" text-anchor=\"middle\">einmalig oder relativ<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-result\" transform=\"translate(275 58)\">\n                            <rect width=\"170\" height=\"60\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"85\" y=\"24\" text-anchor=\"middle\">3D-Versatz<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"42\" text-anchor=\"middle\">Folgekante ableiten<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-result\" transform=\"translate(510 58)\">\n                            <rect width=\"170\" height=\"60\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"85\" y=\"24\" text-anchor=\"middle\">Profilk\u00f6rper<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"42\" text-anchor=\"middle\">Kante extrahieren<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-core\" transform=\"translate(275 195)\">\n                            <rect width=\"170\" height=\"64\" rx=\"7\"\/>\n                            <text class=\"main\" x=\"85\" y=\"26\" text-anchor=\"middle\">Elementkante<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"44\" text-anchor=\"middle\">z. B. Rinne<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-chain\" transform=\"translate(490 197)\">\n                            <rect width=\"170\" height=\"56\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"85\" y=\"24\" text-anchor=\"middle\">Folgekante<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"42\" text-anchor=\"middle\">z. B. Bord<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-source node-chain\" transform=\"translate(40 337)\">\n                            <rect width=\"170\" height=\"64\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"85\" y=\"24\" text-anchor=\"middle\">Verschneidung<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"42\" text-anchor=\"middle\">Grundriss \/ Basislinie<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-source node-chain\" transform=\"translate(275 337)\">\n                            <rect width=\"170\" height=\"64\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"85\" y=\"24\" text-anchor=\"middle\">TIN-DGM<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"42\" text-anchor=\"middle\">Kante als Bruchkante<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-source node-target\" transform=\"translate(510 337)\">\n                            <rect width=\"170\" height=\"64\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"85\" y=\"24\" text-anchor=\"middle\">Profilk\u00f6rper<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"42\" text-anchor=\"middle\">Basislinie oder Zielobjekt<\/text>\n                        <\/g>\n                    <\/svg>\n                    <svg class=\"relation-svg relation-svg-mobile\" viewBox=\"0 0 360 560\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-label=\"Mobile \u00dcbersicht der Elementkanten-Beziehungen\">\n                        <defs>\n                            <marker id=\"relationArrowMobile\" markerWidth=\"9\" markerHeight=\"9\" refX=\"7\" refY=\"3.5\" orient=\"auto\" markerUnits=\"strokeWidth\">\n                                <path d=\"M0,0 L0,7 L7,3.5 z\" fill=\"#3f5f75\"\/>\n                            <\/marker>\n                        <\/defs>\n\n                        <g class=\"relation-flow flow-ergebnis\">\n                            <path d=\"M92 70 C112 110 136 148 156 188\" marker-end=\"url(#relationArrowMobile)\"\/>\n                            <path d=\"M268 70 C248 110 224 148 204 188\" marker-end=\"url(#relationArrowMobile)\"\/>\n                        <\/g>\n                        <g class=\"relation-flow flow-quelle\">\n                            <path d=\"M144 248 C100 285 72 320 70 355\" marker-end=\"url(#relationArrowMobile)\"\/>\n                            <path d=\"M180 248 L180 355\" marker-end=\"url(#relationArrowMobile)\"\/>\n                            <path d=\"M216 248 C260 285 288 320 290 355\" marker-end=\"url(#relationArrowMobile)\"\/>\n                        <\/g>\n                        <g class=\"relation-flow flow-ziel\">\n                            <path d=\"M290 415 C260 340 232 285 210 248\" marker-end=\"url(#relationArrowMobile)\"\/>\n                        <\/g>\n                        <g class=\"relation-flow flow-kette\">\n                            <path d=\"M180 248 L180 302\" marker-end=\"url(#relationArrowMobile)\"\/>\n                            <path d=\"M180 354 C132 374 96 392 70 415\" marker-end=\"url(#relationArrowMobile)\"\/>\n                            <path d=\"M180 354 C228 374 264 392 290 415\" marker-end=\"url(#relationArrowMobile)\"\/>\n                        <\/g>\n\n                        <g class=\"relation-node node-result\" transform=\"translate(20 22)\">\n                            <rect width=\"140\" height=\"52\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"70\" y=\"23\" text-anchor=\"middle\">DGM-H\u00f6hen<\/text>\n                            <text class=\"sub\" x=\"70\" y=\"40\" text-anchor=\"middle\">oder 3D-Versatz<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-result\" transform=\"translate(200 22)\">\n                            <rect width=\"140\" height=\"52\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"70\" y=\"23\" text-anchor=\"middle\">Profilk\u00f6rper<\/text>\n                            <text class=\"sub\" x=\"70\" y=\"40\" text-anchor=\"middle\">Kante extrahieren<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-core\" transform=\"translate(80 188)\">\n                            <rect width=\"200\" height=\"60\" rx=\"7\"\/>\n                            <text class=\"main\" x=\"100\" y=\"25\" text-anchor=\"middle\">Elementkante<\/text>\n                            <text class=\"sub\" x=\"100\" y=\"42\" text-anchor=\"middle\">z. B. Rinne<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-chain\" transform=\"translate(95 302)\">\n                            <rect width=\"170\" height=\"52\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"85\" y=\"23\" text-anchor=\"middle\">Folgekante<\/text>\n                            <text class=\"sub\" x=\"85\" y=\"40\" text-anchor=\"middle\">z. B. Bord<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-source node-chain\" transform=\"translate(20 415)\">\n                            <rect width=\"140\" height=\"58\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"70\" y=\"24\" text-anchor=\"middle\">Verschneidung<\/text>\n                            <text class=\"sub\" x=\"70\" y=\"42\" text-anchor=\"middle\">Grundriss<\/text>\n                        <\/g>\n                        <g class=\"relation-node node-source node-target node-chain\" transform=\"translate(200 415)\">\n                            <rect width=\"140\" height=\"58\" rx=\"6\"\/>\n                            <text class=\"main\" x=\"70\" y=\"24\" text-anchor=\"middle\">TIN-DGM \/<\/text>\n                            <text class=\"main\" x=\"70\" y=\"39\" text-anchor=\"middle\">Profilk\u00f6rper<\/text>\n                            <text class=\"sub\" x=\"70\" y=\"53\" text-anchor=\"middle\">Bruchkante \/ Ziel<\/text>\n                        <\/g>\n                    <\/svg>\n                <\/div>\n                <div class=\"relation-caption\" aria-live=\"polite\">\n                    <h3 data-relation-title>Quelle: Die Elementkante steuert Folgeobjekte<\/h3>\n                    <div class=\"relation-explain\">\n                        <p><strong>Was passiert?<\/strong> <span data-relation-happens>Die Elementkante gibt Lage und H\u00f6he vor.<\/span><\/p>\n                        <p><strong>Civil-3D-Beispiel:<\/strong> <span data-relation-example>Aus der Kante wird eine Verschneidung berechnet, sie wird als Bruchkante in ein TIN-DGM aufgenommen oder als Profilk\u00f6rper-Basislinie verwendet.<\/span><\/p>\n                        <p><strong>Merke:<\/strong> <span data-relation-note>Die Kante ist der Ausgangspunkt. \u00c4nderungen an ihr k\u00f6nnen die nachgelagerten Objekte beeinflussen, aber oft erst nach Aktualisierung oder DGM-Neuaufbau.<\/span><\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"reading-map\" aria-label=\"Schnelleinstieg\">\n            <div class=\"reading-map-title\">Schnelleinstieg<\/div>\n            <p>Spring direkt zu deinem Thema:<\/p>\n            <div class=\"reading-jumps\">\n                <a href=\"#rollenmodell\">Rollenmodell<\/a>\n                <a href=\"#quelle\">Als Quelle<\/a>\n                <a href=\"#ziel\">Als Ziel<\/a>\n                <a href=\"#abgeleitet\">Abgeleitet<\/a>\n                <a href=\"#aufbau\">Aufbau<\/a>\n            <\/div>\n        <\/div>\n\n        <hr class=\"section-divider\">\n        <h2 id=\"rollenmodell\"><span class=\"label\">Modell<\/span> Das Rollenmodell: Quelle, Ziel, Ergebnis<\/h2>\n\n        <p>F\u00fcr die Praxis reichen drei Rollen. Die Namen sind kein zus\u00e4tzlicher Civil-3D-Befehl, sondern ein Denkmodell: Du beschreibst damit, in welche Richtung die Abh\u00e4ngigkeit l\u00e4uft.<\/p>\n\n        <table>\n            <thead>\n            <tr><th>Rolle<\/th><th>Bedeutung<\/th><th>Typisches Beispiel<\/th><\/tr>\n            <\/thead>\n            <tbody>\n            <tr><td><strong>Quelle<\/strong><\/td><td>Die Elementkante gibt Lage und H\u00f6he vor. Andere Objekte werden daraus berechnet.<\/td><td>Rinnenlinie als Grundriss f\u00fcr eine Verschneidung, Elementkante als Bruchkante in der TIN-DGM-Definition, freie Gel\u00e4ndekante als Profilk\u00f6rper-Basislinie.<\/td><\/tr>\n            <tr><td><strong>Ziel<\/strong><\/td><td>Ein anderes Objekt verwendet die Elementkante als Zielobjekt oder H\u00f6henreferenz.<\/td><td>Ein Profilk\u00f6rper-Querschnittsbestandteil zielt auf eine vorhandene Asphaltkante, Grundst\u00fccksgrenze oder B\u00f6schungskante.<\/td><\/tr>\n            <tr><td><strong>Ergebnis<\/strong><\/td><td>Die Elementkante entsteht aus einem anderen Objekt und kann statisch oder dynamisch verbunden sein.<\/td><td>Aus einem Profilk\u00f6rper extrahierte Asphaltkante, aus Versatz erzeugte Bordkante, aus DGM-H\u00f6hen abgeleitete Gel\u00e4ndekante.<\/td><\/tr>\n            <\/tbody>\n        <\/table>\n\n        <div class=\"hint-box\">\n            <svg class=\"box-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"#3f5f75\" stroke-width=\"1.5\"\/><path d=\"M10 6v4.5\" stroke=\"#3f5f75\" stroke-width=\"1.7\" stroke-linecap=\"round\"\/><circle cx=\"10\" cy=\"14\" r=\"1.1\" fill=\"#3f5f75\"\/><\/svg>\n            <div><strong>Leitfrage:<\/strong> Wer f\u00fchrt wen? F\u00fchrt die Elementkante ein anderes Objekt, zielt ein anderes Objekt auf sie, oder ist sie selbst aus einer Quelle entstanden?<\/div>\n        <\/div>\n\n        <hr class=\"section-divider\">\n        <h2 id=\"quelle\"><span class=\"label\">Quelle<\/span> Elementkante als Quelle<\/h2>\n\n        <p>Als Quelle ist die Elementkante die f\u00fchrende Geometrie. Du zeichnest oder bearbeitest sie bewusst, und Civil 3D erzeugt daraus ein anderes Modellobjekt.<\/p>\n\n        <table>\n            <thead>\n            <tr><th>Was daraus entstehen kann<\/th><th>Wof\u00fcr das praktisch ist<\/th><th>Was daran wichtig ist<\/th><\/tr>\n            <\/thead>\n            <tbody>\n            <tr><td><strong>Verschneidung<\/strong><\/td><td>B\u00f6schung, Baugrube, Rampe, Plattform oder Mulde aus einer Kante berechnen.<\/td><td>Die Elementkante ist der Grundriss der Verschneidung. Daf\u00fcr muss sie in einem passenden Gebiet liegen.<\/td><\/tr>\n            <tr><td><strong>Bruchkante im TIN-DGM<\/strong><\/td><td>Rinnen, Bordsteine, Gr\u00e4ben, B\u00f6schungskanten oder Plateaur\u00e4nder in einer Oberfl\u00e4che erzwingen.<\/td><td>Die Kante ver\u00e4ndert das DGM erst, wenn sie in der DGM-Definition als Bruchkante enthalten ist und das DGM neu aufgebaut wird.<\/td><\/tr>\n            <tr><td><strong>Profilk\u00f6rper-Basislinie<\/strong><\/td><td>Einen 3D-Profilk\u00f6rper entlang einer r\u00e4umlich freien Kante aufbauen, auch ohne klassische Achse mit L\u00e4ngsschnitt.<\/td><td>Die Elementkante f\u00fchrt Lage und H\u00f6he. Der Profilk\u00f6rper braucht trotzdem Querschnittsbestandteile und passende Bereiche.<\/td><\/tr>\n            <\/tbody>\n        <\/table>\n\n        <div class=\"hint-box\">\n            <svg class=\"box-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"#3f5f75\" stroke-width=\"1.5\"\/><path d=\"M10 6v4.5\" stroke=\"#3f5f75\" stroke-width=\"1.7\" stroke-linecap=\"round\"\/><circle cx=\"10\" cy=\"14\" r=\"1.1\" fill=\"#3f5f75\"\/><\/svg>\n            <div><strong>Praxisbild:<\/strong> Eine sauber gef\u00fchrte Rinne kann gleichzeitig beschriftet werden, als Bruchkante ins Planungs-DGM gehen und als Ausgang f\u00fcr eine Bordkante oder Verschneidung dienen. Die Kante ist dann nicht mehr Dekoration, sondern zentrale Modelllogik.<\/div>\n        <\/div>\n\n        <hr class=\"section-divider\">\n        <h2 id=\"ziel\"><span class=\"label\">Ziel<\/span> Elementkante als Ziel<\/h2>\n\n        <p>Als Ziel wird die Elementkante nicht selbst berechnet. Gemeint ist hier vor allem das Zielobjekt eines Profilk\u00f6rper-Querschnittsbestandteils oder eine H\u00f6henreferenz f\u00fcr eine andere Elementkante. Bei Verschneidungen ist die Elementkante dagegen der Grundriss, nicht das Verschneidungsziel.<\/p>\n\n        <table>\n            <thead>\n            <tr><th>Wer zielt auf die Elementkante?<\/th><th>M\u00f6gliche Wirkung<\/th><th>Typischer Einsatz<\/th><\/tr>\n            <\/thead>\n            <tbody>\n            <tr><td><strong>Profilk\u00f6rper-Querschnitt<\/strong><\/td><td>Ein Punkt oder Querschnittsbestandteil kann Breite, Versatz oder H\u00f6he an einer Elementkante ausrichten.<\/td><td>Fahrbahnrand an vorhandene Asphaltkante anbinden, Gehweg an Grundst\u00fccksgrenze f\u00fchren, B\u00f6schung bis zu einer geplanten Kante laufen lassen.<\/td><\/tr>\n            <tr><td><strong>Andere Elementkante<\/strong><\/td><td>Eine Nachbarkante kann H\u00f6hen oder Gef\u00e4lle aus der Zielkante ableiten.<\/td><td>Bordoberkante erh\u00e4lt eine feste H\u00f6hendifferenz zur Rinne; Grabenoberkante folgt der Grabensohle.<\/td><\/tr>\n            <\/tbody>\n        <\/table>\n\n        <div class=\"warning-box\">\n            <svg class=\"box-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 2L18.5 17H1.5L10 2z\" stroke=\"#d97706\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><line x1=\"10\" y1=\"8\" x2=\"10\" y2=\"12\" stroke=\"#d97706\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><circle cx=\"10\" cy=\"14.5\" r=\"1\" fill=\"#d97706\"\/><\/svg>\n            <div><strong>Nicht verwechseln:<\/strong> Eine Elementkante als Ziel ist nicht automatisch eine abgeleitete Elementkante. Der Profilk\u00f6rper kann auf sie reagieren, aber die Zielkante bleibt ein eigenes Objekt mit eigener Pflege.<\/div>\n        <\/div>\n\n        <hr class=\"section-divider\">\n        <h2 id=\"abgeleitet\"><span class=\"label\">Ergebnis<\/span> Abgeleitete Elementkanten<\/h2>\n\n        <p>Eine Elementkante kann auch Ergebnis einer anderen Quelle sein. Genau hier entstehen die meisten Missverst\u00e4ndnisse: Abgeleitet hei\u00dft nicht automatisch dauerhaft dynamisch.<\/p>\n\n        <table>\n            <thead>\n            <tr><th>Herkunft<\/th><th>Was entsteht<\/th><th>Handhabung<\/th><\/tr>\n            <\/thead>\n            <tbody>\n            <tr><td><strong>3D-Versatz aus Elementkante<\/strong><\/td><td>Eine neue parallele Elementkante, etwa Bord aus Rinne oder Grabenoberkante aus Grabensohle.<\/td><td>Die abgeleitete Kante ist gut lesbar und frei bearbeitbar. Sp\u00e4tere \u00c4nderungen an der Ausgangskante werden nicht automatisch \u00fcbernommen; das Nachf\u00fchren bleibt manuell.<\/td><\/tr>\n            <tr><td><strong>H\u00f6hen aus DGM<\/strong><\/td><td>Eine Kante, deren H\u00f6hen aus einer Oberfl\u00e4che stammen.<\/td><td>Sehr praktisch f\u00fcr Bestandsgel\u00e4nde. Entscheidend ist, ob du eine einmalige H\u00f6hen\u00fcbernahme oder eine relative Beziehung verwendest. Referenz-DGM und Ziel-DGM m\u00fcssen sauber getrennt bleiben.<\/td><\/tr>\n            <tr><td><strong>Aus Profilk\u00f6rper extrahiert<\/strong><\/td><td>Asphaltkante, B\u00f6schungskante, Grabenlinie oder andere Profilk\u00f6rper-Elementkante.<\/td><td>Dynamisch verkn\u00fcpft folgt sie dem Profilk\u00f6rper, direkte Elementkantenbearbeitung ist weitgehend gesperrt. Statisch gel\u00f6st ist sie frei editierbar, folgt aber nicht mehr automatisch.<\/td><\/tr>\n            <\/tbody>\n        <\/table>\n\n        <div class=\"warning-box\">\n            <svg class=\"box-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><path d=\"M10 2L18.5 17H1.5L10 2z\" stroke=\"#d97706\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><line x1=\"10\" y1=\"8\" x2=\"10\" y2=\"12\" stroke=\"#d97706\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><circle cx=\"10\" cy=\"14.5\" r=\"1\" fill=\"#d97706\"\/><\/svg>\n            <div><strong>Wichtige Grenze:<\/strong> Frei bearbeitbar und dynamisch verkn\u00fcpft sind Gegens\u00e4tze. Eine relativ zu einem DGM gef\u00fchrte Elementkante sollte nicht zugleich als Bruchkante genau dieses DGM steuern.<\/div>\n        <\/div>\n\n        <hr class=\"section-divider\">\n        <h2 id=\"aufbau\"><span class=\"label\">Aufbau<\/span> Beziehungsketten sauber aufbauen<\/h2>\n\n        <p>Praktisch relevant wird der Rollenwechsel, wenn eine Elementkante mehrere Aufgaben nacheinander \u00fcbernimmt. Eine aus dem Profilk\u00f6rper extrahierte Asphaltkante kann Ziel f\u00fcr einen zweiten Profilk\u00f6rper sein oder als Bruchkante in ein DGM gehen. Eine Rinnenlinie kann Quelle f\u00fcr eine Bordkante und gleichzeitig Grundriss einer Verschneidung sein.<\/p>\n\n        <table>\n            <thead>\n            <tr><th>Aufbaufrage<\/th><th>Gute Entscheidung<\/th><th>Warum das hilft<\/th><\/tr>\n            <\/thead>\n            <tbody>\n            <tr><td><strong>Was ist die f\u00fchrende Geometrie?<\/strong><\/td><td>Nur wenige Kanten bewusst als Quelle definieren.<\/td><td>\u00c4nderungen laufen von dort aus nachvollziehbar weiter.<\/td><\/tr>\n            <tr><td><strong>Was soll nur folgen?<\/strong><\/td><td>Profilk\u00f6rperziele, Referenzh\u00f6hen oder abgeleitete Kanten verwenden.<\/td><td>Du vermeidest doppelte Eingaben und widerspr\u00fcchliche H\u00f6hen.<\/td><\/tr>\n            <tr><td><strong>Was soll frei korrigierbar bleiben?<\/strong><\/td><td>Dynamische Verbindung l\u00f6sen oder bewusst statisch arbeiten.<\/td><td>Die Kante l\u00e4sst sich direkt bearbeiten, verliert aber automatische Aktualisierung.<\/td><\/tr>\n            <tr><td><strong>Was soll ins Gel\u00e4nde wirken?<\/strong><\/td><td>Elementkante als Verschneidungs-Grundriss oder als Bruchkante in einem TIN-DGM einsetzen.<\/td><td>Die Linie wird Teil des Modells, nicht nur sichtbare Zeichnungsgeometrie.<\/td><\/tr>\n            <\/tbody>\n        <\/table>\n\n        <ol class=\"step-list\">\n            <li><strong>Quelle festlegen:<\/strong> Entscheide, welche Kante fachlich f\u00fchrt, zum Beispiel Rinne, Fahrbahnrand, Grabenachse oder B\u00f6schungsoberkante.<\/li>\n            <li><strong>Folgeobjekt w\u00e4hlen:<\/strong> Brauchst du eine zweite Kante, eine Verschneidung, ein DGM, einen Profilk\u00f6rper oder ein Profilk\u00f6rperziel?<\/li>\n            <li><strong>Dynamik bewusst w\u00e4hlen:<\/strong> Soll die Beziehung bei \u00c4nderungen mitgehen, oder ist eine freie, statische Elementkante besser?<\/li>\n            <li><strong>Kette kurz halten:<\/strong> Je l\u00e4nger die Abh\u00e4ngigkeit Quelle \u2192 Ziel \u2192 Ergebnis \u2192 neue Quelle wird, desto wichtiger ist eine klare Benennung und saubere Gebietszuordnung.<\/li>\n        <\/ol>\n\n        <div class=\"checkpoint\">\n            <svg class=\"box-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"><circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"#059669\" stroke-width=\"1.5\"\/><path d=\"M6 10.5l3 3 5-6\" stroke=\"#059669\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n            <div><strong>Kurzfazit:<\/strong> Elementkanten sind Verbindungsst\u00fccke zwischen Zeichnung und Modell. Sie k\u00f6nnen Quelle f\u00fcr Verschneidung, DGM und Profilk\u00f6rper sein, Ziel f\u00fcr Profilk\u00f6rper-Querschnitte werden oder selbst aus Profilk\u00f6rper, DGM oder Versatz abgeleitet sein. Der Mehrwert liegt nicht in einem einzelnen Befehl, sondern darin, diese Beziehungen bewusst aufzubauen.<\/div>\n        <\/div>\n\n    <\/div>\n<\/div>\n\n<div class=\"lightbox-overlay\" id=\"lightbox\">\n    <button class=\"lightbox-close\" id=\"lightboxClose\" aria-label=\"Bild schlie\u00dfen\">&#10005;<\/button>\n    <img decoding=\"async\" id=\"lightboxImg\" src=\"\" alt=\"\">\n<\/div>\n\n<script>\n    const progressBar = document.getElementById('readingProgress');\n    window.addEventListener('scroll', function() {\n        const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n        const scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;\n        const progress = (scrollHeight > 0) ? (scrollTop \/ scrollHeight) * 100 : 0;\n        progressBar.style.width = progress + '%';\n    });\n\n    const lightbox = document.getElementById('lightbox');\n    const lightboxImg = document.getElementById('lightboxImg');\n    const lightboxClose = document.getElementById('lightboxClose');\n    document.querySelectorAll('.step-list details figure img, .tutorial-content > figure img').forEach(function(img) {\n        img.style.cursor = 'zoom-in';\n        img.addEventListener('click', function() {\n            \/\/ Guard: nur Bilder mit echtem src triggern die Lightbox (leere Slots warten auf S3-Backfill).\n            if (!img.src || img.getAttribute('src') === '') return;\n            lightboxImg.src = img.src;\n            lightboxImg.alt = img.alt || '';\n            lightbox.classList.add('active');\n        });\n    });\n    function closeLightbox() {\n        lightbox.classList.remove('active');\n    }\n    lightbox.addEventListener('click', function(e) {\n        \/\/ Nur Klick auf das Overlay selbst schlie\u00dft; Klick auf das Bild bleibt f\u00fcr Zoom\/Inspektion offen.\n        if (e.target === lightbox) closeLightbox();\n    });\n    lightboxClose.addEventListener('click', closeLightbox);\n    document.addEventListener('keydown', function(e) {\n        if (e.key === 'Escape' && lightbox.classList.contains('active')) closeLightbox();\n    });\n\n    const relationDemo = document.getElementById('relationDemo');\n    if (relationDemo) {\n        const relationTexts = {\n            quelle: {\n                title: 'Quelle: Die Elementkante steuert Folgeobjekte',\n                happens: 'Die Elementkante gibt Lage und H\u00f6he vor.',\n                example: 'Aus der Kante wird eine Verschneidung berechnet, sie wird als Bruchkante in ein TIN-DGM aufgenommen oder als Profilk\u00f6rper-Basislinie verwendet.',\n                note: 'Die Kante ist der Ausgangspunkt. \u00c4nderungen an ihr k\u00f6nnen nachgelagerte Objekte beeinflussen, aber oft erst nach Aktualisierung oder DGM-Neuaufbau.'\n            },\n            ziel: {\n                title: 'Ziel: Ein anderes Objekt richtet sich an ihr aus',\n                happens: 'Die Elementkante bleibt eigenst\u00e4ndig, wird aber von einem anderen Objekt als Zielobjekt oder H\u00f6henreferenz verwendet.',\n                example: 'Ein Profilk\u00f6rper-Querschnittsbestandteil zielt mit Breite, Versatz oder H\u00f6he auf die Elementkante. Eine Nachbarkante kann H\u00f6hen aus ihr ableiten.',\n                note: 'Typischer Fall: Ein Profilk\u00f6rper soll sich an eine geplante Beckenkante anpassen, deren Lage oder H\u00f6he sich noch \u00e4ndern kann. F\u00fchrst du diese Beckenkante als Elementkante, kann der Profilk\u00f6rper darauf zielen und nach Aktualisierung mitgehen.'\n            },\n            ergebnis: {\n                title: 'Ergebnis: Die Elementkante entsteht aus einer Quelle',\n                happens: 'Die Elementkante wird aus einem anderen Civil-3D-Zusammenhang erzeugt oder erh\u00e4lt daraus ihre H\u00f6hen.',\n                example: 'Sie entsteht aus 3D-Versatz, aus H\u00f6hen eines DGM oder als aus dem Profilk\u00f6rper extrahierte Asphalt-, B\u00f6schungs- oder Grabenlinie.',\n                note: 'Dynamisch extrahiert folgt sie der Quelle, ist aber kaum frei editierbar. Statisch ist sie frei bearbeitbar, verliert aber die automatische Aktualisierung.'\n            },\n            kette: {\n                title: 'Kette: Eine Elementkante kann die Rolle wechseln',\n                happens: 'Eine Kante kann zuerst Ergebnis sein und danach selbst Quelle oder Ziel werden.',\n                example: 'Aus einer Rinnenkante entsteht per 3D-Versatz eine Bordkante. Danach k\u00f6nnen Rinne und Bord als Bruchkanten in ein TIN-DGM gehen oder als Grundrisse f\u00fcr Verschneidungen dienen.',\n                note: 'Je l\u00e4nger die Kette wird, desto wichtiger sind klare Namen, saubere Gebiete und die bewusste Entscheidung zwischen dynamisch und statisch.'\n            }\n        };\n        const relationTitle = relationDemo.querySelector('[data-relation-title]');\n        const relationHappens = relationDemo.querySelector('[data-relation-happens]');\n        const relationExample = relationDemo.querySelector('[data-relation-example]');\n        const relationNote = relationDemo.querySelector('[data-relation-note]');\n        relationDemo.querySelectorAll('[data-relation-mode]').forEach(function(button) {\n            button.addEventListener('click', function() {\n                const mode = button.getAttribute('data-relation-mode');\n                relationDemo.setAttribute('data-mode', mode);\n                relationDemo.querySelectorAll('[data-relation-mode]').forEach(function(other) {\n                    const active = other === button;\n                    other.classList.toggle('active', active);\n                    other.setAttribute('aria-pressed', active ? 'true' : 'false');\n                });\n                relationTitle.textContent = relationTexts[mode].title;\n                relationHappens.textContent = relationTexts[mode].happens;\n                relationExample.textContent = relationTexts[mode].example;\n                relationNote.textContent = relationTexts[mode].note;\n            });\n        });\n    }\n<\/script>\n\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>Civil 3D | Elementkanten als Quelle, Ziel und Ergebnis Elementkanten als Quelle, Ziel und Ergebnis: Was damit in Civil 3D [&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":[28],"tags":[],"class_list":["post-2083","post","type-post","status-publish","format-standard","hentry","category-elementkanten"],"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":"Civil 3D | Elementkanten als Quelle, Ziel und Ergebnis Elementkanten als Quelle, Ziel und Ergebnis: Was damit in Civil 3D [&hellip;]","_links":{"self":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2083","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=2083"}],"version-history":[{"count":3,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2083\/revisions"}],"predecessor-version":[{"id":2102,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/posts\/2083\/revisions\/2102"}],"wp:attachment":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}