Merge remote-tracking branch 'origin/dev' into main_desktop_1

This commit is contained in:
2026-10-06 16:59:35 +09:00
128 changed files with 16780 additions and 1474 deletions
+135 -85
View File
@@ -1,5 +1,5 @@
{
"판": 14,
"판": 17,
"schema_version": 1,
"comment": "B05 구조물 타입 레지스트리 정본. 근거·옵션 상세는 PLAN.md 구조물 리스트와 resources/knowledge/technical_info/01_임도 참조. 2026-08-17 선택지 재편: B군(종단배수)·F군(생태/녹화)·G군(노면공)은 enabled:false 보존 — B05 선택지에서 빠지고 B06 개별 횡단도 옵션으로 재사용한다. 바닥막이(bed_sill)·생태연못(eco_pond)은 임도 미사용 확정으로 삭제. 배관·BOX암거·물넘이·세월교는 pipe_points.json 정본 관리(managed_by) — structures.json에 저장하지 않으며, 배관 부속(유형/집수정/기슭막이/돌붙임)·날개벽 옵션 정의는 B06/B07 필수 승격의 선언 근거다. ★기본값 원칙(2026-08-16 크로스체크 2차): default를 두는 것은 ①법정이 등급과 무관하게 못박은 단일 수치 ②사용자가 개발 단계에서 확정한 값 ③도메인 수치가 아닌 표시용 문자열, 이 셋뿐이다. 재료·형식 같은 설계자 판단 선택지와 미확정 제원은 default 없이 required로 두어 사용자가 직접 고르게 한다 (pipe_diameter_mm 1000 = 별표2 원칙값+사용자 확정 — 화이트리스트 등재). BOX암거 본체 2.0×2.0·날개벽 유입/유출 있음·짧은쪽 높이 1m·길이 2m·각도 45°는 2026-08-17 사용자 확정값이다 — 본체 규격은 실무 관측 규격(2.0×2.0·3.0×3.0)을 폼에서 프리셋 select로 받고 필요 시 사용자 지정으로 자유 입력하되, 저장 키는 body_width_m·body_height_m 숫자 그대로다(프리셋 전용 키를 만들지 않는다). 이 값들은 B05 서브폼이 실제로 받으므로 phase를 detail로 두지 않는다. ★보호공 개편(2026-08-17 사용자 지시): 구 `*_pitching`(있음/없음) + `*_pitching_finish`(찰/메) 두 축을 `*_protection` 한 축(돌붙임(찰)·돌붙임(메)·도수로)으로 합쳤다 — 도수로·산비탈수로(B4)는 유출부에서 돌붙임 대신 쓰는 공종이라 별도 구조물이 아니라 보호공 선택지로 받는다. \"없음\"은 삭제(물이 흐르는 자리라 보호공 필수). 치수는 배타 — 돌붙임이면 `*_protection_area_m2`(10㎡), 도수로면 `*_protection_width_m`(1m, 지식DB 수치 근거 없음·사용자 확정, 실무 확인 후 개선). 구 저장분은 `common_util_drainage_pipes.parse_pipe_points`가 새 키로 옮긴다.",
"구조물군": {
@@ -75,8 +75,9 @@
"기슭막이",
"집수정"
],
"default": "기슭막이",
"required": false
"default": "집수정",
"required": false,
"default_basis": "사용자 확정 2026-10-06 배관 기본값 표(docs/raw/사용자요구/2026-10-05_수정요구.md)"
},
{
"key": "wing_wall_type",
@@ -147,6 +148,16 @@
"required": false,
"phase": "detail"
},
{
"key": "inlet_basin_height_m",
"label": "집수정 높이",
"input": "number",
"unit": "m",
"default": 1.5,
"required": false,
"phase": "detail",
"default_basis": "사용자 확정 2026-10-06 배관 기본값 표(docs/raw/사용자요구/2026-10-05_수정요구.md)"
},
{
"key": "inlet_revet_form",
"label": "유입 기슭막이 형태",
@@ -194,10 +205,11 @@
"label": "유입 기슭막이 높이",
"input": "number",
"unit": "m",
"default": null,
"default": 1.5,
"required": false,
"phase": "detail",
"empty_means": "비우면 관경 기준 최소 높이(관경 + 여유 0.5 를 0.1m 로 올림 + 근입 0.5)로 그리고 셈 — 횡단도·구조물도·표가 같은 값 · 최소라 수량은 미확정(금액 밖) · 2026-09-14 브레인 판정(옛 기본 2.5 걷음)"
"empty_means": "비우면 관경 기준 최소 높이(관경 + 여유 0.5 를 0.1m 로 올림 + 근입 0.5)로 그리고 셈 — 횡단도·구조물도·표가 같은 값 · 최소라 수량은 미확정(금액 밖) · 2026-09-14 브레인 판정(옛 기본 2.5 걷음)",
"default_basis": "사용자 확정 2026-10-06 배관 기본값 표(docs/raw/사용자요구/2026-10-05_수정요구.md)"
},
{
"key": "outlet_type",
@@ -221,9 +233,10 @@
"통나무·목재틀",
"바자"
],
"default": "돌쌓기(메)",
"default": "돌쌓기(찰)",
"required": false,
"phase": "detail"
"phase": "detail",
"default_basis": "사용자 확정 2026-10-06 배관 기본값 표(docs/raw/사용자요구/2026-10-05_수정요구.md)"
},
{
"key": "outlet_revet_length_m",
@@ -256,10 +269,11 @@
"label": "유출 기슭막이 높이",
"input": "number",
"unit": "m",
"default": null,
"default": 1.5,
"required": false,
"phase": "detail",
"empty_means": "비우면 관경 기준 최소 높이(관경 + 여유 0.5 를 0.1m 로 올림 + 근입 0.5)로 그리고 셈 — 횡단도·구조물도·표가 같은 값 · 최소라 수량은 미확정(금액 밖) · 2026-09-14 브레인 판정(옛 기본 2.5 걷음)"
"empty_means": "비우면 관경 기준 최소 높이(관경 + 여유 0.5 를 0.1m 로 올림 + 근입 0.5)로 그리고 셈 — 횡단도·구조물도·표가 같은 값 · 최소라 수량은 미확정(금액 밖) · 2026-09-14 브레인 판정(옛 기본 2.5 걷음)",
"default_basis": "사용자 확정 2026-10-06 배관 기본값 표(docs/raw/사용자요구/2026-10-05_수정요구.md)"
},
{
"key": "revet_foundation",
@@ -975,15 +989,15 @@
],
"options": [
{
"key": "height_m",
"label": "높이",
"input": "number",
"unit": "m",
"default": 2,
"default_basis": "기본값 · 소광리 도면 H=2.0 · 바꿀 수 있음",
"required": false,
"phase": "b05",
"empty_means": "비워도 놓임 — 줄만 서고 미확정이라 금액에 안 들어감(높이를 적으면 섬 · 2026-09-14 브레인 판정 ①)"
"key": "wall_form",
"label": "형태",
"input": "select",
"choices": [
"콘크리트"
],
"default": "콘크리트",
"default_basis": "표 09 — 선택지 하나(콘크리트)",
"required": false
},
{
"key": "length_m",
@@ -994,6 +1008,17 @@
"required": false,
"phase": "b05"
},
{
"key": "height_m",
"label": "높이",
"input": "number",
"unit": "m",
"default": 2,
"default_basis": "기본값 · 소광리 도면 H=2.0 · 바꿀 수 있음",
"required": false,
"phase": "b05",
"empty_means": "비워도 놓임 — 줄만 서고 미확정이라 금액에 안 들어감(높이를 적으면 섬 · 2026-09-14 브레인 판정 ①)"
},
{
"key": "before_m",
"label": "기준측점 전",
@@ -1525,13 +1550,21 @@
],
"options": [
{
"key": "height_m",
"label": "높이",
"input": "number",
"unit": "m",
"default": 2.5,
"key": "form",
"label": "형태",
"input": "select",
"choices": [
"돌쌓기(찰)",
"돌쌓기(메)",
"콘크리트",
"돌망태",
"통나무·목재틀",
"바자"
],
"default": "돌쌓기(찰)",
"required": false,
"phase": "b05"
"empty_means": "비우면 통나무·목재틀로 그림(횡단 기본 형태) — B05 로 옮긴 칸이라 필수로 안 막음(옛 흙막이 저장 보호)",
"default_basis": "사용자 확정 2026-10-06 배관 기본값 표(docs/raw/사용자요구/2026-10-05_수정요구.md)"
},
{
"key": "length_m",
@@ -1542,6 +1575,16 @@
"required": false,
"phase": "b05"
},
{
"key": "height_m",
"label": "높이",
"input": "number",
"unit": "m",
"default": 1.5,
"required": false,
"phase": "b05",
"default_basis": "사용자 확정 2026-10-06 배관 기본값 표(docs/raw/사용자요구/2026-10-05_수정요구.md)"
},
{
"key": "before_m",
"label": "기준측점 전",
@@ -1560,24 +1603,6 @@
"required": false,
"phase": "b05"
},
{
"key": "form",
"label": "형식",
"input": "select",
"choices": [
"콘크리트",
"돌(찰)",
"돌(메)",
"블록쌓기",
"돌망태",
"흙포대",
"통나무쌓기",
"떼"
],
"default": null,
"required": true,
"phase": "detail"
},
{
"key": "side",
"label": "설치 측",
@@ -1969,6 +1994,24 @@
"quantity"
],
"options": [
{
"key": "width_m",
"label": "소단 폭",
"input": "number",
"unit": "m",
"default": 0.5,
"required": false,
"phase": "b05"
},
{
"key": "height_m",
"label": "소단 높이",
"input": "number",
"unit": "m",
"default": null,
"required": false,
"empty_means": "비워도 놓임 — 아직 계산(소단 간격 · 횡단)에 안 쓰임(표 09 새 칸)"
},
{
"key": "length_m",
"label": "길이",
@@ -1996,15 +2039,6 @@
"required": false,
"phase": "b05"
},
{
"key": "width_m",
"label": "폭",
"input": "number",
"unit": "m",
"default": 0.5,
"required": false,
"phase": "b05"
},
{
"key": "interval_m",
"label": "간격(사면길이)",
@@ -3313,8 +3347,6 @@
"outlet.before": "기준측점 전 (m)",
"outlet.after": "기준측점 후 (m)",
"soil_add": "흙막이 추가",
"soil_add.structure": "구조",
"soil_add.structure=기슭막이": "흙막이",
"soil_add.form": "형태",
"soil_add.form=돌쌓기(찰)": "돌 쌓기(찰)",
"soil_add.form=돌쌓기(메)": "돌 쌓기(메)",
@@ -3396,11 +3428,51 @@
"동작": [
"포장_물넘이_겹침"
]
},
"soil_guard": {
"이름": {
"form=돌쌓기(찰)": "돌 쌓기(찰)",
"form=돌쌓기(메)": "돌 쌓기(메)",
"form=콘크리트": "콘크리트",
"form=돌망태": "돌망태",
"form=통나무·목재틀": "통나무/목재틀",
"form=바자": "바자"
}
}
},
"표시": {
"pipe": {
"pipe_kind": false
},
"soil_guard": {
"side": false,
"tiers": false,
"lift_m": false,
"shift_m": false,
"thickness_top_m": false,
"thickness_bottom_m": false,
"back_len_cm": false,
"stone_kind": false,
"stone_supply": false,
"stone_coeff_basis": false,
"fill_concrete_mpa": false,
"face_slope_ratio": false,
"foundation": false,
"weep_hole_diameter_mm": false,
"weep_hole_area_m2": false
},
"retaining_wall": {
"form": false,
"side": false,
"weep_hole_diameter_mm": false,
"weep_hole_area_m2": false
},
"berm": {
"length_m": false,
"before_m": false,
"after_m": false,
"interval_m": false,
"slope_deg": false
}
},
"그룹": {
@@ -3521,16 +3593,13 @@
"retaining_wall": [
{
"id": "gretaindetail",
"이름": "상세 내용",
"이름": "옹벽",
"옵션": [
"height_m",
"wall_form",
"length_m",
"height_m",
"before_m",
"after_m",
"form",
"side",
"weep_hole_diameter_mm",
"weep_hole_area_m2"
"after_m"
],
"형상": {}
}
@@ -3592,28 +3661,13 @@
"soil_guard": [
{
"id": "gsoilgdetail",
"이름": "상세 내용",
"이름": "흙막이",
"옵션": [
"height_m",
"length_m",
"before_m",
"after_m",
"form",
"side",
"tiers",
"lift_m",
"shift_m",
"thickness_top_m",
"thickness_bottom_m",
"back_len_cm",
"stone_kind",
"stone_supply",
"stone_coeff_basis",
"fill_concrete_mpa",
"face_slope_ratio",
"foundation",
"weep_hole_diameter_mm",
"weep_hole_area_m2"
"length_m",
"height_m",
"before_m",
"after_m"
],
"형상": {}
}
@@ -3647,12 +3701,8 @@
"id": "gbermdetail",
"이름": "상세 내용",
"옵션": [
"length_m",
"before_m",
"after_m",
"width_m",
"interval_m",
"slope_deg"
"height_m"
],
"형상": {}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff