From 7a1f6a01ef1828328970c826f99ff4d59e440e11 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Thu, 17 Sep 2026 18:34:17 +0900 Subject: [PATCH] =?UTF-8?q?feat(b08):=20=EA=B1=B4=EC=84=A4=20=EA=B0=88?= =?UTF-8?q?=EB=9E=98=20=ED=8E=B4=EA=B8=B0=20=E2=80=94=20=EC=82=B0=EB=A6=BC?= =?UTF-8?q?=EA=B3=BC=20=EA=B0=99=EC=9D=80=20B09=20=ED=91=9C=20=EC=9D=BD?= =?UTF-8?q?=EA=B8=B0=20=ED=95=9C=20=EB=B2=8C=EB=A1=9C=20=EA=B0=88=EB=9E=98?= =?UTF-8?q?=EB=A5=BC=20=EA=B0=80=EB=A6=84(111=20=EA=B3=B5=EC=A2=85=20?= =?UTF-8?q?=C2=B7=20=EA=B0=88=EB=9E=98=20407)=20=C2=B7=20=EA=B0=88?= =?UTF-8?q?=EB=9E=98=20=EB=B6=88=EB=B3=80=20=EC=97=B4=EC=87=A0=EB=8A=94=20?= =?UTF-8?q?=EC=9E=A5=EB=B6=80(CW-00063#01=20=C2=B7=20=EB=8D=B0=EC=8A=A4?= =?UTF-8?q?=ED=81=AC=ED=83=91=20=EC=84=9C=EB=B8=8C=20=EA=BC=B4=20=EA=B7=B8?= =?UTF-8?q?=EB=8C=80=EB=A1=9C)=20=C2=B7=20Z01=20=EA=B1=B4=EC=84=A4=20?= =?UTF-8?q?=EA=B3=B5=EC=A2=85=20997=20=E2=86=92=20=EC=A4=84=201,293=20?= =?UTF-8?q?=C2=B7=20=EC=9D=B4=EB=A6=84=EC=9D=84=20=EB=8B=A4=EB=93=AC?= =?UTF-8?q?=EC=96=B4=EB=8F=84(=EC=9E=90=EA=B0=84=C2=B7=EB=AC=BC=EA=B2=B0?= =?UTF-8?q?=ED=91=9C)=20=EC=83=88=20=EB=B2=88=ED=98=B8=200=20=EC=8B=9C?= =?UTF-8?q?=ED=97=98=20=C2=B7=20=EA=B1=B4=EC=84=A4=20=EC=97=B4=EC=87=A0=20?= =?UTF-8?q?=EC=9E=A5=EB=B6=80=20=EA=B0=88=EB=9E=98=20=ED=91=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=ED=91=9C(=EB=B8=8C=EB=A0=88=EC=9D=B8=20=E2=91=A3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn --- ...B08_Quantity_Build_WorkItemMaster_Const.py | 11 +- .../data_master_labels/labels_2026-01-01.json | 32 +- .../data_work_item_master/_manifest.json | 4 +- .../_manifest_const.json | 6 +- .../const_work_item_master_2026-01-01.json | 3867 +++++++++++++++-- .../work_item_keys_const.json | 964 ++++ .../work_item_master_2026-01-01.json | 2 +- .../tester/test_work_item_master_const.py | 26 + resources/tester/test_z01_master_data.py | 3 +- resources/tester/test_z01_work_items.py | 12 +- 10 files changed, 4571 insertions(+), 356 deletions(-) diff --git a/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Const.py b/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Const.py index c96182de..77273c82 100644 --- a/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Const.py +++ b/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Const.py @@ -13,7 +13,7 @@ 장 파일 경계가 쪽 기준이라(원문 머리 경고) 앞뒤 장 제목도 받고, 파일 첫머리 표는 앞 장 파일 꼬리까지 봄. ⚠ 못 붙인 표는 조용히 버리지 않고 `orphan_tables` 목록. ⚠ 총칙·묶는 마디 덜어내기 안 함(가름만) — 총칙 뿌리는 `axis_policy.json` 건설 축(데스크탑 서브 잣대) · 미확정 둘은 안 넣음. -⚠ 갈래 키 안 붙임 — B09 표 읽기가 산림 표로만 검증됨(빈칸 = 못 가름). +갈래 = 산림과 같은 B09 표 읽기로 가름(못 가른 공종은 빈칸) · 갈래 불변 열쇠는 장부(`CW-00001#01`). """ from __future__ import annotations @@ -284,8 +284,11 @@ def build_const() -> tuple: node["tables"].append(entry) attached += 1 apply_parent_modes(nodes, {}) # 합산형은 사람이 적은 것만 — 건설은 아직 없음(전부 choose_one) - for node in nodes: - node["variant_keys"] = [] # 못 가름 — B09 표 읽기가 산림 표로만 검증됨 + # 갈래 — 산림과 **같은 표 읽기 한 벌**(B09 `build_resource_axis`)로 가름 · 못 가른 공종은 빈칸. + # 갈래 불변 열쇠(`CW-00001#01`)는 `finish` 가 장부로 줌(데스크탑 서브 · 2026-09-17 브레인 ④). + from B08_Quantity.B08_Quantity_Build_WorkItemMaster_Variants import attach_variant_keys + + attach_variant_keys(nodes, data["effective_date"]) return finish( data, source=SOURCE, @@ -303,7 +306,7 @@ def build_const() -> tuple: "divisions": list(DIVISIONS), "toc_source": BOOK_NAME + " 머리 「목 차」", "section_from_body": True, - "variant_keys_attached": False, + "variant_keys_attached": True, # 산림과 같은 표 읽기 — 못 가른 공종은 빈칸 "general_provision_roots": list(general_roots()), }, ) diff --git a/resources/data_master_labels/labels_2026-01-01.json b/resources/data_master_labels/labels_2026-01-01.json index c279dd06..0cee9a99 100644 --- a/resources/data_master_labels/labels_2026-01-01.json +++ b/resources/data_master_labels/labels_2026-01-01.json @@ -1976,8 +1976,8 @@ "merged_tables": 17, "merged_columns": 178, "files": 41, - "tables": 101, - "columns": 540, + "tables": 102, + "columns": 543, "value_groups": 203, "unknown": 0, "value_groups_by_kind": { @@ -7532,6 +7532,34 @@ "visible": true } ] + }, + { + "key": "variants", + "name_ko": "갈래 열쇠 장부", + "summary": "공종 열쇠 아래 갈래마다 번호를 매긴 것. 사라진 갈래의 번호는 다시 쓰지 않는다.", + "shape": "map", + "rows": 111, + "columns": [ + { + "key": "@key", + "name_ko": "갈래를 지닌 건설 공종", + "unit": "", + "visible": true, + "is_row_key": true + }, + { + "key": "next_serial", + "name_ko": "다음 갈래 번호", + "unit": "", + "visible": true + }, + { + "key": "slots", + "name_ko": "갈래 자리→번호", + "unit": "", + "visible": true + } + ] } ], "value_groups": [ diff --git a/resources/data_work_item_master/_manifest.json b/resources/data_work_item_master/_manifest.json index baa22131..73bc0cab 100644 --- a/resources/data_work_item_master/_manifest.json +++ b/resources/data_work_item_master/_manifest.json @@ -1,7 +1,7 @@ { "schema_version": "1.0", "dataset_id": "data_work_item_master_manifest", - "generated_at": "2026-09-17T18:21:40+09:00", + "generated_at": "2026-09-17T18:25:05+09:00", "built_by": "B08_Quantity/B08_Quantity_Build_WorkItemMaster.py", "source": { "dataset_id": "pum_forest", @@ -12,7 +12,7 @@ "files": [ { "file": "work_item_master_2026-01-01.json", - "sha256": "1cae4b3cdba4b7c13b1d0e7854a2754da3bda9402754263e801287fe20d019c7", + "sha256": "97d4c0a12d5cb811d10d3c4108bc1a20acf97748b572db026847b603804f7598", "size_bytes": 925084 }, { diff --git a/resources/data_work_item_master/_manifest_const.json b/resources/data_work_item_master/_manifest_const.json index 94c33a0d..f3b15dd4 100644 --- a/resources/data_work_item_master/_manifest_const.json +++ b/resources/data_work_item_master/_manifest_const.json @@ -1,7 +1,7 @@ { "schema_version": "1.0", "dataset_id": "data_work_item_master_manifest", - "generated_at": "2026-09-17T18:21:40+09:00", + "generated_at": "2026-09-17T18:25:40+09:00", "built_by": "B08_Quantity/B08_Quantity_Build_WorkItemMaster.py", "source": { "dataset_id": "pum_const", @@ -12,8 +12,8 @@ "files": [ { "file": "const_work_item_master_2026-01-01.json", - "sha256": "52ac9f352106e61cbb0d548763808f967afb152e17eb6dce4a1cd1dd51f59e7d", - "size_bytes": 3780649 + "sha256": "f01928541cd24f8cfa6f46036d8d988479d8649796d6630d5b70179c485001bd", + "size_bytes": 3839561 }, { "file": "const_form_undetermined_2026-01-01.json", diff --git a/resources/data_work_item_master/const_work_item_master_2026-01-01.json b/resources/data_work_item_master/const_work_item_master_2026-01-01.json index 29afac6d..613cc89e 100644 --- a/resources/data_work_item_master/const_work_item_master_2026-01-01.json +++ b/resources/data_work_item_master/const_work_item_master_2026-01-01.json @@ -4,7 +4,7 @@ "effective_date": "2026-01-01", "pum_edition": "2026-01-01", "toc_edition": "2026-01-01", - "generated_at": "2026-09-17T18:21:40+09:00", + "generated_at": "2026-09-17T18:25:40+09:00", "dataset_version": { "dataset_id": "pum_const", "effective_date": "2026-01-01", @@ -27,7 +27,7 @@ ], "toc_source": "2026년_건설공사_표준품셈.md 머리 「목 차」", "section_from_body": true, - "variant_keys_attached": false, + "variant_keys_attached": true, "general_provision_roots": [ "CP-01-01", "CP-01-08" @@ -49,8 +49,8 @@ "empty": 74 }, "keys_newly_issued": 0, - "variant_keys_newly_issued": 0, - "variant_keys": 0, + "variant_keys_newly_issued": 407, + "variant_keys": 407, "toc_duplicate_rows": 0, "toc_corrections": 0 }, @@ -5581,7 +5581,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "5m이하", + "10m이하" + ], "condition_note": [ "구 분", "단 위", @@ -5610,9 +5613,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "5m이하", + "10m이하" + ], "work_item_key": "CW-00063", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "5m이하", + "name_clean": "5m이하" + }, + { + "variant_key": "02", + "name": "10m이하", + "name_clean": "10m이하" + } + ], "toc_code": "CP-01-02-05-03", "toc_number": "2-5-3", "toc_edition": "2026-01-01", @@ -5648,7 +5665,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "평 규 준 틀", + "귀 규 준 틀" + ], "condition_note": [ "구 분", "단 위", @@ -5683,9 +5703,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "평 규 준 틀", + "귀 규 준 틀" + ], "work_item_key": "CW-00064", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "평 규 준 틀", + "name_clean": "평 규 준 틀" + }, + { + "variant_key": "02", + "name": "귀 규 준 틀", + "name_clean": "귀 규 준 틀" + } + ], "toc_code": "CP-01-02-05-04", "toc_number": "2-5-4", "toc_edition": "2026-01-01", @@ -6568,7 +6602,10 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "10m이하", + "10m초과∼20m이하" + ], "condition_note": [ "구 분", "규 격", @@ -6601,9 +6638,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "10m이하", + "10m초과∼20m이하" + ], "work_item_key": "CW-00075", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "10m이하", + "name_clean": "10m이하" + }, + { + "variant_key": "02", + "name": "10m초과∼20m이하", + "name_clean": "10m초과∼20m이하" + } + ], "toc_code": "CP-01-02-07-04", "toc_number": "2-7-4", "toc_edition": "2026-01-01", @@ -6696,7 +6747,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "높이 2m", + "높이 4m" + ], "condition_note": [ "구 분", "규 격", @@ -6766,9 +6820,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "높이 2m", + "높이 4m" + ], "work_item_key": "CW-00077", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "높이 2m", + "name_clean": "높이 2m" + }, + { + "variant_key": "02", + "name": "높이 4m", + "name_clean": "높이 4m" + } + ], "toc_code": "CP-01-02-07-06", "toc_number": "2-7-6", "toc_edition": "2026-01-01", @@ -6931,7 +6999,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "벽 용", + "슬래브발코니, 난간용" + ], "condition_note": [ "구 분", "규 격", @@ -6970,9 +7041,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "벽 용", + "슬래브발코니, 난간용" + ], "work_item_key": "CW-00080", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "벽 용", + "name_clean": "벽 용" + }, + { + "variant_key": "02", + "name": "슬래브발코니, 난간용", + "name_clean": "슬래브발코니, 난간용" + } + ], "toc_code": "CP-01-02-07-09", "toc_number": "2-7-9", "toc_edition": "2026-01-01", @@ -7378,7 +7463,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "보행자 출입구", + "차량 출입구" + ], "condition_note": [ "구 분", "단 위", @@ -7401,9 +7489,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "보행자 출입구", + "차량 출입구" + ], "work_item_key": "CW-00087", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "보행자 출입구", + "name_clean": "보행자 출입구" + }, + { + "variant_key": "02", + "name": "차량 출입구", + "name_clean": "차량 출입구" + } + ], "toc_code": "CP-01-02-08-06", "toc_number": "2-8-6", "toc_edition": "2026-01-01", @@ -9076,7 +9178,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "설치", + "해체" + ], "condition_note": [ "구 분", "규 격", @@ -9130,9 +9235,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "설치", + "해체" + ], "work_item_key": "CW-00116", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "설치", + "name_clean": "설치" + }, + { + "variant_key": "02", + "name": "해체", + "name_clean": "해체" + } + ], "toc_code": "CP-01-02-10-03", "toc_number": "2-10-3", "toc_edition": "2026-01-01", @@ -9168,7 +9287,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "H=3.0m이하", + "4.0m이하" + ], "condition_note": [ "구 분", "규 격", @@ -9208,9 +9330,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "H=3.0m이하", + "4.0m이하" + ], "work_item_key": "CW-00117", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "H=3.0m이하", + "name_clean": "H=3.0m이하" + }, + { + "variant_key": "02", + "name": "4.0m이하", + "name_clean": "4.0m이하" + } + ], "toc_code": "CP-01-02-10-04", "toc_number": "2-10-4", "toc_edition": "2026-01-01", @@ -9246,7 +9382,12 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "H=3.0m이하", + "H=4.0m이하", + "H=5.0m이하", + "H=6.0m이하" + ], "condition_note": [ "구 분", "규격", @@ -9294,9 +9435,35 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "H=3.0m이하", + "H=4.0m이하", + "H=5.0m이하", + "H=6.0m이하" + ], "work_item_key": "CW-00118", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "H=3.0m이하", + "name_clean": "H=3.0m이하" + }, + { + "variant_key": "02", + "name": "H=4.0m이하", + "name_clean": "H=4.0m이하" + }, + { + "variant_key": "03", + "name": "H=5.0m이하", + "name_clean": "H=5.0m이하" + }, + { + "variant_key": "04", + "name": "H=6.0m이하", + "name_clean": "H=6.0m이하" + } + ], "toc_code": "CP-01-02-10-05", "toc_number": "2-10-5", "toc_edition": "2026-01-01", @@ -9767,7 +9934,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "설치", + "해체" + ], "condition_note": [ "구 분", "규 격", @@ -9800,9 +9970,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "설치", + "해체" + ], "work_item_key": "CW-00127", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "설치", + "name_clean": "설치" + }, + { + "variant_key": "02", + "name": "해체", + "name_clean": "해체" + } + ], "toc_code": "CP-01-02-11-06", "toc_number": "2-11-6", "toc_edition": "2026-01-01", @@ -9852,7 +10036,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "지상 또는 건물 설치", + "타워크레인 설치" + ], "condition_note": [ "구 분", "규 격", @@ -9892,9 +10079,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "지상 또는 건물 설치", + "타워크레인 설치" + ], "work_item_key": "CW-00129", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "지상 또는 건물 설치", + "name_clean": "지상 또는 건물 설치" + }, + { + "variant_key": "02", + "name": "타워크레인 설치", + "name_clean": "타워크레인 설치" + } + ], "toc_code": "CP-01-02-11-08", "toc_number": "2-11-8", "toc_edition": "2026-01-01", @@ -10293,7 +10494,11 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "300∼600㎜", + "700∼900㎜", + "1,000∼1,200㎜" + ], "condition_note": [ "명 칭", "단 위", @@ -10431,9 +10636,29 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "300∼600㎜", + "700∼900㎜", + "1,000∼1,200㎜" + ], "work_item_key": "CW-00135", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "300∼600㎜", + "name_clean": "300∼600㎜" + }, + { + "variant_key": "02", + "name": "700∼900㎜", + "name_clean": "700∼900㎜" + }, + { + "variant_key": "03", + "name": "1,000∼1,200㎜", + "name_clean": "1,000∼1,200㎜" + } + ], "toc_code": "CP-01-02-12-04", "toc_number": "2-12-4", "toc_edition": "2026-01-01", @@ -11842,7 +12067,10 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "30㎝ 미만", + "30㎝ 이상" + ], "condition_note": [ "구 분", "규 격", @@ -11865,9 +12093,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "30㎝ 미만", + "30㎝ 이상" + ], "work_item_key": "CW-00151", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "30㎝ 미만", + "name_clean": "30㎝ 미만" + }, + { + "variant_key": "02", + "name": "30㎝ 이상", + "name_clean": "30㎝ 이상" + } + ], "toc_code": "CP-01-03-03-06", "toc_number": "3-3-6", "toc_edition": "2026-01-01", @@ -12130,7 +12372,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "우물통발파", + "우물통발파 이외" + ], "condition_note": [ "구 분", "규 격", @@ -12212,9 +12457,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "우물통발파", + "우물통발파 이외" + ], "work_item_key": "CW-00154", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "우물통발파", + "name_clean": "우물통발파" + }, + { + "variant_key": "02", + "name": "우물통발파 이외", + "name_clean": "우물통발파 이외" + } + ], "toc_code": "CP-01-03-03-09", "toc_number": "3-3-9", "toc_edition": "2026-01-01", @@ -12516,7 +12775,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "15cm", + "30cm" + ], "condition_note": [ "구 분", "규 격", @@ -12593,9 +12855,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "15cm", + "30cm" + ], "work_item_key": "CW-00158", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "15cm", + "name_clean": "15cm" + }, + { + "variant_key": "02", + "name": "30cm", + "name_clean": "30cm" + } + ], "toc_code": "CP-01-03-04-03", "toc_number": "3-4-3", "toc_edition": "2026-01-01", @@ -14593,7 +14869,11 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "5m미만", + "5m이상∼8m미만", + "8m이상" + ], "condition_note": [ "구 분", "규 격", @@ -14645,9 +14925,29 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "5m미만", + "5m이상∼8m미만", + "8m이상" + ], "work_item_key": "CW-00182", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "5m미만", + "name_clean": "5m미만" + }, + { + "variant_key": "02", + "name": "5m이상∼8m미만", + "name_clean": "5m이상∼8m미만" + }, + { + "variant_key": "03", + "name": "8m이상", + "name_clean": "8m이상" + } + ], "toc_code": "CP-01-03-09-01", "toc_number": "3-9-1", "toc_edition": "2026-01-01", @@ -16839,7 +17139,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "쌓기", + "놓기" + ], "condition_note": [ "구 분", "규 격", @@ -16887,9 +17190,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "쌓기", + "놓기" + ], "work_item_key": "CW-00210", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "쌓기", + "name_clean": "쌓기" + }, + { + "variant_key": "02", + "name": "놓기", + "name_clean": "놓기" + } + ], "toc_code": "CP-01-04-04-01", "toc_number": "4-4-1", "toc_edition": "2026-01-01", @@ -19139,7 +19456,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "토사", + "자갈/호박돌" + ], "condition_note": [ "직 종", "단 위", @@ -19197,7 +19517,10 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "토사", + "자갈/호박돌" + ], "condition_note": [ "구 분", "규 격", @@ -19421,9 +19744,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "토사", + "자갈/호박돌" + ], "work_item_key": "CW-00231", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "토사", + "name_clean": "토사" + }, + { + "variant_key": "02", + "name": "자갈/호박돌", + "name_clean": "자갈/호박돌" + } + ], "toc_code": "CP-01-05-02-02", "toc_number": "5-2-2", "toc_edition": "2026-01-01", @@ -19759,7 +20096,10 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ℓ=20m이하", + "ℓ=20m∼35m" + ], "condition_note": [ "구 분", "규 격", @@ -19851,9 +20191,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "ℓ=20m이하", + "ℓ=20m∼35m" + ], "work_item_key": "CW-00233", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ℓ=20m이하", + "name_clean": "ℓ=20m이하" + }, + { + "variant_key": "02", + "name": "ℓ=20m∼35m", + "name_clean": "ℓ=20m∼35m" + } + ], "toc_code": "CP-01-05-02-04", "toc_number": "5-2-4", "toc_edition": "2026-01-01", @@ -20619,7 +20973,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "외부 반입/반출", + "작업구간 이동" + ], "condition_note": [ "구 분", "단 위", @@ -20995,9 +21352,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "외부 반입/반출", + "작업구간 이동" + ], "work_item_key": "CW-00236", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "외부 반입/반출", + "name_clean": "외부 반입/반출" + }, + { + "variant_key": "02", + "name": "작업구간 이동", + "name_clean": "작업구간 이동" + } + ], "toc_code": "CP-01-05-03-02", "toc_number": "5-3-2", "toc_edition": "2026-01-01", @@ -21875,7 +22246,10 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "요동식", + "전회전식" + ], "condition_note": [ "명 칭", "규 격", @@ -22082,9 +22456,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "요동식", + "전회전식" + ], "work_item_key": "CW-00239", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "요동식", + "name_clean": "요동식" + }, + { + "variant_key": "02", + "name": "전회전식", + "name_clean": "전회전식" + } + ], "toc_code": "CP-01-05-03-05", "toc_number": "5-3-5", "toc_edition": "2026-01-01", @@ -22596,7 +22984,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "무근콘크리트", + "철근콘크리트" + ], "condition_note": [ "구 분", "단위", @@ -22886,9 +23277,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "무근콘크리트", + "철근콘크리트" + ], "work_item_key": "CW-00247", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "무근콘크리트", + "name_clean": "무근콘크리트" + }, + { + "variant_key": "02", + "name": "철근콘크리트", + "name_clean": "철근콘크리트" + } + ], "toc_code": "CP-01-06-01-04", "toc_number": "6-1-4", "toc_edition": "2026-01-01", @@ -25294,7 +25699,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø12.7㎜", + "ø15.2㎜" + ], "condition_note": [ "구 분", "단 위", @@ -25478,9 +25886,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "ø12.7㎜", + "ø15.2㎜" + ], "work_item_key": "CW-00271", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø12.7㎜", + "name_clean": "ø12.7㎜" + }, + { + "variant_key": "02", + "name": "ø15.2㎜", + "name_clean": "ø15.2㎜" + } + ], "toc_code": "CP-01-06-04-02", "toc_number": "6-4-2", "toc_edition": "2026-01-01", @@ -26872,7 +27294,12 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "D900", + "D1,200", + "D1,500", + "D1,800" + ], "condition_note": [ "구 분", "규 격", @@ -26962,9 +27389,35 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "D900", + "D1,200", + "D1,500", + "D1,800" + ], "work_item_key": "CW-00286", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "D900", + "name_clean": "D900" + }, + { + "variant_key": "02", + "name": "D1,200", + "name_clean": "D1,200" + }, + { + "variant_key": "03", + "name": "D1,500", + "name_clean": "D1,500" + }, + { + "variant_key": "04", + "name": "D1,800", + "name_clean": "D1,800" + } + ], "toc_code": "CP-01-06-07-02", "toc_number": "6-7-2", "toc_edition": "2026-01-01", @@ -34646,7 +35099,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "2" + ], "condition_note": [ "비 계 공", "보 통 인 부", @@ -35065,7 +35520,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "1" + ], "condition_note": [ "작 업 반 장", "비 계 공", @@ -35081,9 +35538,23 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "2", + "1" + ], "work_item_key": "CW-00341", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "2", + "name_clean": "2" + }, + { + "variant_key": "02", + "name": "1", + "name_clean": "1" + } + ], "toc_code": "CP-01-08-02-24", "toc_number": "8-2-24", "toc_edition": "2026-01-01", @@ -35417,7 +35888,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "2" + ], "condition_note": [ "비 계 공", "보 통 인 부", @@ -35435,9 +35908,17 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "2" + ], "work_item_key": "CW-00342", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "2", + "name_clean": "2" + } + ], "toc_code": "CP-01-08-02-25", "toc_number": "8-2-25", "toc_edition": "2026-01-01", @@ -35624,7 +36105,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "2" + ], "condition_note": [ "비 계 공", "특 별 인 부", @@ -35712,9 +36195,17 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "2" + ], "work_item_key": "CW-00343", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "2", + "name_clean": "2" + } + ], "toc_code": "CP-01-08-02-26", "toc_number": "8-2-26", "toc_edition": "2026-01-01", @@ -51315,7 +51806,9 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "㎾" + ], "condition_note": [ "명 칭", "단위", @@ -52014,9 +52507,17 @@ } ], "division": "공통부문", - "variant_keys": [], + "variant_keys": [ + "㎾" + ], "work_item_key": "CW-00371", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "㎾", + "name_clean": "㎾" + } + ], "toc_code": "CP-01-08-04-09", "toc_number": "8-4-9", "toc_edition": "2026-01-01", @@ -58450,7 +58951,13 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "40㎝", + "45㎝", + "50㎝", + "60㎝", + "70㎝" + ], "condition_note": [ "구 분", "규 격", @@ -58512,9 +59019,41 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "40㎝", + "45㎝", + "50㎝", + "60㎝", + "70㎝" + ], "work_item_key": "CW-00450", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "40㎝", + "name_clean": "40㎝" + }, + { + "variant_key": "02", + "name": "45㎝", + "name_clean": "45㎝" + }, + { + "variant_key": "03", + "name": "50㎝", + "name_clean": "50㎝" + }, + { + "variant_key": "04", + "name": "60㎝", + "name_clean": "60㎝" + }, + { + "variant_key": "05", + "name": "70㎝", + "name_clean": "70㎝" + } + ], "toc_code": "CP-02-02-02-01", "toc_number": "2-2-1", "toc_edition": "2026-01-01", @@ -58662,7 +59201,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "식생매트설치", + "복토" + ], "condition_note": [ "구 분", "규 격", @@ -58702,9 +59244,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "식생매트설치", + "복토" + ], "work_item_key": "CW-00454", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "식생매트설치", + "name_clean": "식생매트설치" + }, + { + "variant_key": "02", + "name": "복토", + "name_clean": "복토" + } + ], "toc_code": "CP-02-02-03-01", "toc_number": "2-3-1", "toc_edition": "2026-01-01", @@ -60032,7 +60588,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "공동구", + "바닥/인버트" + ], "condition_note": [ "구 분", "규 격", @@ -60093,9 +60652,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "공동구", + "바닥/인버트" + ], "work_item_key": "CW-00472", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "공동구", + "name_clean": "공동구" + }, + { + "variant_key": "02", + "name": "바닥/인버트", + "name_clean": "바닥/인버트" + } + ], "toc_code": "CP-02-03-04-03", "toc_number": "3-4-3", "toc_edition": "2026-01-01", @@ -61006,7 +61579,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "일단", + "양단" + ], "condition_note": [ "구 분", "규 격", @@ -61053,9 +61629,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "일단", + "양단" + ], "work_item_key": "CW-00487", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "일단", + "name_clean": "일단" + }, + { + "variant_key": "02", + "name": "양단", + "name_clean": "양단" + } + ], "toc_code": "CP-02-04-04-02", "toc_number": "4-4-2", "toc_edition": "2026-01-01", @@ -61110,7 +61700,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "50㎏", + "60㎏" + ], "condition_note": [ "구 분", "단 위", @@ -61248,9 +61841,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "50㎏", + "60㎏" + ], "work_item_key": "CW-00489", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "50㎏", + "name_clean": "50㎏" + }, + { + "variant_key": "02", + "name": "60㎏", + "name_clean": "60㎏" + } + ], "toc_code": "CP-02-04-05-01", "toc_number": "4-5-1", "toc_edition": "2026-01-01", @@ -61396,7 +62003,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "레일인장법", + "자연대기온도법" + ], "condition_note": [ "구 분", "단 위", @@ -61431,9 +62041,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "레일인장법", + "자연대기온도법" + ], "work_item_key": "CW-00491", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "레일인장법", + "name_clean": "레일인장법" + }, + { + "variant_key": "02", + "name": "자연대기온도법", + "name_clean": "자연대기온도법" + } + ], "toc_code": "CP-02-04-05-03", "toc_number": "4-5-3", "toc_edition": "2026-01-01", @@ -61575,7 +62199,11 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "37㎏", + "50㎏", + "60㎏" + ], "condition_note": [ "구 분", "규 격", @@ -61619,9 +62247,29 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "37㎏", + "50㎏", + "60㎏" + ], "work_item_key": "CW-00494", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "37㎏", + "name_clean": "37㎏" + }, + { + "variant_key": "02", + "name": "50㎏", + "name_clean": "50㎏" + }, + { + "variant_key": "03", + "name": "60㎏", + "name_clean": "60㎏" + } + ], "toc_code": "CP-02-04-06-02", "toc_number": "4-6-2", "toc_edition": "2026-01-01", @@ -61786,7 +62434,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "조임", + "해체" + ], "condition_note": [ "구 분", "규 격", @@ -61826,9 +62477,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "조임", + "해체" + ], "work_item_key": "CW-00497", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "조임", + "name_clean": "조임" + }, + { + "variant_key": "02", + "name": "해체", + "name_clean": "해체" + } + ], "toc_code": "CP-02-04-06-05", "toc_number": "4-6-5", "toc_edition": "2026-01-01", @@ -64229,7 +64894,20 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "800", + "900", + "1,000", + "1,100", + "1,200", + "1,350", + "1,500", + "1.650", + "1,800", + "2,000", + "2,200", + "2,400" + ], "condition_note": [ "관경(㎜)", "내부도장", @@ -64380,9 +65058,83 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "800", + "900", + "1,000", + "1,100", + "1,200", + "1,350", + "1,500", + "1.650", + "1,800", + "2,000", + "2,200", + "2,400" + ], "work_item_key": "CW-00527", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "800", + "name_clean": "800" + }, + { + "variant_key": "02", + "name": "900", + "name_clean": "900" + }, + { + "variant_key": "03", + "name": "1,000", + "name_clean": "1,000" + }, + { + "variant_key": "04", + "name": "1,100", + "name_clean": "1,100" + }, + { + "variant_key": "05", + "name": "1,200", + "name_clean": "1,200" + }, + { + "variant_key": "06", + "name": "1,350", + "name_clean": "1,350" + }, + { + "variant_key": "07", + "name": "1,500", + "name_clean": "1,500" + }, + { + "variant_key": "08", + "name": "1.650", + "name_clean": "1.650" + }, + { + "variant_key": "09", + "name": "1,800", + "name_clean": "1,800" + }, + { + "variant_key": "10", + "name": "2,000", + "name_clean": "2,000" + }, + { + "variant_key": "11", + "name": "2,200", + "name_clean": "2,200" + }, + { + "variant_key": "12", + "name": "2,400", + "name_clean": "2,400" + } + ], "toc_code": "CP-02-06-03-03", "toc_number": "6-3-3", "toc_edition": "2026-01-01", @@ -64918,7 +65670,14 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "75", + "100", + "150", + "200", + "250", + "300" + ], "condition_note": [ "분기관 관경", "배관공(수도)", @@ -64964,9 +65723,47 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "75", + "100", + "150", + "200", + "250", + "300" + ], "work_item_key": "CW-00537", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "75", + "name_clean": "75" + }, + { + "variant_key": "02", + "name": "100", + "name_clean": "100" + }, + { + "variant_key": "03", + "name": "150", + "name_clean": "150" + }, + { + "variant_key": "04", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "05", + "name": "250", + "name_clean": "250" + }, + { + "variant_key": "06", + "name": "300", + "name_clean": "300" + } + ], "toc_code": "CP-02-06-05-05", "toc_number": "6-5-5", "toc_edition": "2026-01-01", @@ -65982,7 +66779,15 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "50", + "75", + "100", + "150", + "200", + "250", + "300" + ], "condition_note": [ "관경", "배관공(수도)", @@ -66033,9 +66838,53 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "50", + "75", + "100", + "150", + "200", + "250", + "300" + ], "work_item_key": "CW-00547", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "50", + "name_clean": "50" + }, + { + "variant_key": "02", + "name": "75", + "name_clean": "75" + }, + { + "variant_key": "03", + "name": "100", + "name_clean": "100" + }, + { + "variant_key": "04", + "name": "150", + "name_clean": "150" + }, + { + "variant_key": "05", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "06", + "name": "250", + "name_clean": "250" + }, + { + "variant_key": "07", + "name": "300", + "name_clean": "300" + } + ], "toc_code": "CP-02-06-07-04", "toc_number": "6-7-4", "toc_edition": "2026-01-01", @@ -66171,7 +67020,12 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "800∼1,100", + "1,200∼1,800", + "2,000∼2,200", + "2,400∼3,000" + ], "condition_note": [ "명 칭", "단 위", @@ -66614,9 +67468,35 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "800∼1,100", + "1,200∼1,800", + "2,000∼2,200", + "2,400∼3,000" + ], "work_item_key": "CW-00548", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "800∼1,100", + "name_clean": "800∼1,100" + }, + { + "variant_key": "02", + "name": "1,200∼1,800", + "name_clean": "1,200∼1,800" + }, + { + "variant_key": "03", + "name": "2,000∼2,200", + "name_clean": "2,000∼2,200" + }, + { + "variant_key": "04", + "name": "2,400∼3,000", + "name_clean": "2,400∼3,000" + } + ], "toc_code": "CP-02-06-07-05", "toc_number": "6-7-5", "toc_edition": "2026-01-01", @@ -67332,7 +68212,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "80", + "100" + ], "condition_note": [ "관경", "배관공(수도)", @@ -67510,9 +68393,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "80", + "100" + ], "work_item_key": "CW-00553", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "80", + "name_clean": "80" + }, + { + "variant_key": "02", + "name": "100", + "name_clean": "100" + } + ], "toc_code": "CP-02-06-08-04", "toc_number": "6-8-4", "toc_edition": "2026-01-01", @@ -68594,7 +69491,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "0.1㎥ 이상" + ], "condition_note": [ "종 류", "적재방법", @@ -68655,9 +69554,17 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "0.1㎥ 이상" + ], "work_item_key": "CW-00564", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "0.1㎥ 이상", + "name_clean": "0.1㎥ 이상" + } + ], "toc_code": "CP-02-07-02-01", "toc_number": "7-2-1", "toc_edition": "2026-01-01", @@ -68710,7 +69617,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "0.1㎥ 이상", + "0.03㎥ 이하" + ], "condition_note": [ "구 분", "단 위", @@ -68751,9 +69661,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "0.1㎥ 이상", + "0.03㎥ 이하" + ], "work_item_key": "CW-00566", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "0.1㎥ 이상", + "name_clean": "0.1㎥ 이상" + }, + { + "variant_key": "02", + "name": "0.03㎥ 이하", + "name_clean": "0.03㎥ 이하" + } + ], "toc_code": "CP-02-07-02-03", "toc_number": "7-2-3", "toc_edition": "2026-01-01", @@ -68790,7 +69714,13 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "기초고르기", + "피복석 고르기", + "피복석 거친고르기", + "내부사석 고르기", + "필터사석 고르기" + ], "condition_note": [ "구 분", "규 격", @@ -68852,9 +69782,41 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "기초고르기", + "피복석 고르기", + "피복석 거친고르기", + "내부사석 고르기", + "필터사석 고르기" + ], "work_item_key": "CW-00567", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "기초고르기", + "name_clean": "기초고르기" + }, + { + "variant_key": "02", + "name": "피복석 고르기", + "name_clean": "피복석 고르기" + }, + { + "variant_key": "03", + "name": "피복석 거친고르기", + "name_clean": "피복석 거친고르기" + }, + { + "variant_key": "04", + "name": "내부사석 고르기", + "name_clean": "내부사석 고르기" + }, + { + "variant_key": "05", + "name": "필터사석 고르기", + "name_clean": "필터사석 고르기" + } + ], "toc_code": "CP-02-07-02-04", "toc_number": "7-2-4", "toc_edition": "2026-01-01", @@ -70589,7 +71551,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "BX", + "NX" + ], "condition_note": [ "종 별", "단위", @@ -70730,9 +71695,23 @@ } ], "division": "토목부문", - "variant_keys": [], + "variant_keys": [ + "BX", + "NX" + ], "work_item_key": "CW-00586", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "BX", + "name_clean": "BX" + }, + { + "variant_key": "02", + "name": "NX", + "name_clean": "NX" + } + ], "toc_code": "CP-02-08-01-03", "toc_number": "8-1-3", "toc_edition": "2026-01-01", @@ -102991,7 +103970,14 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø16이하", + "ø20이하", + "ø24이하", + "ø28이하", + "ø32이하", + "ø40이하" + ], "condition_note": [ "구 분", "단위", @@ -103032,9 +104018,47 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "ø16이하", + "ø20이하", + "ø24이하", + "ø28이하", + "ø32이하", + "ø40이하" + ], "work_item_key": "CW-00700", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø16이하", + "name_clean": "ø16이하" + }, + { + "variant_key": "02", + "name": "ø20이하", + "name_clean": "ø20이하" + }, + { + "variant_key": "03", + "name": "ø24이하", + "name_clean": "ø24이하" + }, + { + "variant_key": "04", + "name": "ø28이하", + "name_clean": "ø28이하" + }, + { + "variant_key": "05", + "name": "ø32이하", + "name_clean": "ø32이하" + }, + { + "variant_key": "06", + "name": "ø40이하", + "name_clean": "ø40이하" + } + ], "toc_code": "CP-03-01-02-06", "toc_number": "1-2-6", "toc_edition": "2026-01-01", @@ -103185,7 +104209,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "판두께 1.6㎜", + "판두께 2.3㎜" + ], "condition_note": [ "구 분", "단 위", @@ -103247,9 +104274,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "판두께 1.6㎜", + "판두께 2.3㎜" + ], "work_item_key": "CW-00703", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "판두께 1.6㎜", + "name_clean": "판두께 1.6㎜" + }, + { + "variant_key": "02", + "name": "판두께 2.3㎜", + "name_clean": "판두께 2.3㎜" + } + ], "toc_code": "CP-03-01-03-01", "toc_number": "1-3-1", "toc_edition": "2026-01-01", @@ -103498,7 +104539,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "자동용접", + "수동용접" + ], "condition_note": [ "구분", "단위", @@ -103534,9 +104578,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "자동용접", + "수동용접" + ], "work_item_key": "CW-00708", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "자동용접", + "name_clean": "자동용접" + }, + { + "variant_key": "02", + "name": "수동용접", + "name_clean": "수동용접" + } + ], "toc_code": "CP-03-01-04-02", "toc_number": "1-4-2", "toc_edition": "2026-01-01", @@ -104022,7 +105080,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "1.0B", + "1.5B" + ], "condition_note": [ "구 분", "단 위", @@ -104051,9 +105112,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "1.0B", + "1.5B" + ], "work_item_key": "CW-00715", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "1.0B", + "name_clean": "1.0B" + }, + { + "variant_key": "02", + "name": "1.5B", + "name_clean": "1.5B" + } + ], "toc_code": "CP-03-02-01-03", "toc_number": "2-1-3", "toc_edition": "2026-01-01", @@ -104153,7 +105228,12 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "벽돌", + "치장벽돌", + "블록", + "ALC블록" + ], "condition_note": [ "구 분", "단 위", @@ -104221,9 +105301,35 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "벽돌", + "치장벽돌", + "블록", + "ALC블록" + ], "work_item_key": "CW-00717", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "벽돌", + "name_clean": "벽돌" + }, + { + "variant_key": "02", + "name": "치장벽돌", + "name_clean": "치장벽돌" + }, + { + "variant_key": "03", + "name": "블록", + "name_clean": "블록" + }, + { + "variant_key": "04", + "name": "ALC블록", + "name_clean": "ALC블록" + } + ], "toc_code": "CP-03-02-01-05", "toc_number": "2-1-5", "toc_edition": "2026-01-01", @@ -105255,7 +106361,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "주택", + "일반" + ], "condition_note": [ "구 분", "단 위", @@ -105283,9 +106392,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "주택", + "일반" + ], "work_item_key": "CW-00735", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "주택", + "name_clean": "주택" + }, + { + "variant_key": "02", + "name": "일반", + "name_clean": "일반" + } + ], "toc_code": "CP-03-04-01-01", "toc_number": "4-1-1", "toc_edition": "2026-01-01", @@ -108212,7 +109335,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "바닥", + "수직부" + ], "condition_note": [ "구 분", "단 위", @@ -108279,9 +109405,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "바닥", + "수직부" + ], "work_item_key": "CW-00782", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "바닥", + "name_clean": "바닥" + }, + { + "variant_key": "02", + "name": "수직부", + "name_clean": "수직부" + } + ], "toc_code": "CP-03-06-01-01", "toc_number": "6-1-1", "toc_edition": "2026-01-01", @@ -108374,7 +109514,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "바닥", + "수직부" + ], "condition_note": [ "구 분", "단 위", @@ -108410,9 +109553,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "바닥", + "수직부" + ], "work_item_key": "CW-00784", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "바닥", + "name_clean": "바닥" + }, + { + "variant_key": "02", + "name": "수직부", + "name_clean": "수직부" + } + ], "toc_code": "CP-03-06-01-03", "toc_number": "6-1-3", "toc_edition": "2026-01-01", @@ -109285,7 +110442,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "1층(회)", + "2층(회)" + ], "condition_note": [ "구 분", "단 위", @@ -109360,9 +110520,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "1층(회)", + "2층(회)" + ], "work_item_key": "CW-00801", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "1층(회)", + "name_clean": "1층(회)" + }, + { + "variant_key": "02", + "name": "2층(회)", + "name_clean": "2층(회)" + } + ], "toc_code": "CP-03-06-05-02", "toc_number": "6-5-2", "toc_edition": "2026-01-01", @@ -109397,7 +110571,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "바닥", + "수직부" + ], "condition_note": [ "구 분", "단 위", @@ -109481,9 +110658,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "바닥", + "수직부" + ], "work_item_key": "CW-00802", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "바닥", + "name_clean": "바닥" + }, + { + "variant_key": "02", + "name": "수직부", + "name_clean": "수직부" + } + ], "toc_code": "CP-03-06-05-03", "toc_number": "6-5-3", "toc_edition": "2026-01-01", @@ -111046,7 +112237,10 @@ "×(U+00D7)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "450×450", + "600×600" + ], "condition_note": [ "구 분", "단 위", @@ -111075,9 +112269,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "450×450", + "600×600" + ], "work_item_key": "CW-00831", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "450×450", + "name_clean": "450×450" + }, + { + "variant_key": "02", + "name": "600×600", + "name_clean": "600×600" + } + ], "toc_code": "CP-03-08-01-06", "toc_number": "8-1-6", "toc_edition": "2026-01-01", @@ -111662,7 +112870,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "일반철재", + "경량철재" + ], "condition_note": [ "구 분", "단 위", @@ -111771,9 +112982,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "일반철재", + "경량철재" + ], "work_item_key": "CW-00841", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "일반철재", + "name_clean": "일반철재" + }, + { + "variant_key": "02", + "name": "경량철재", + "name_clean": "경량철재" + } + ], "toc_code": "CP-03-08-03-01", "toc_number": "8-3-1", "toc_edition": "2026-01-01", @@ -111845,7 +113070,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "모래체가름 포함", + "모래체가름 제외" + ], "condition_note": [ "구 분", "단 위", @@ -111923,9 +113151,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "모래체가름 포함", + "모래체가름 제외" + ], "work_item_key": "CW-00844", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "모래체가름 포함", + "name_clean": "모래체가름 포함" + }, + { + "variant_key": "02", + "name": "모래체가름 제외", + "name_clean": "모래체가름 제외" + } + ], "toc_code": "CP-03-09-01-01", "toc_number": "9-1-1", "toc_edition": "2026-01-01", @@ -112350,7 +113592,10 @@ "~(U+007E)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "3.6m이하", + "3.6m초과~7.2m이하" + ], "condition_note": [ "구 분", "단 위", @@ -112379,9 +113624,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "3.6m이하", + "3.6m초과~7.2m이하" + ], "work_item_key": "CW-00850", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "3.6m이하", + "name_clean": "3.6m이하" + }, + { + "variant_key": "02", + "name": "3.6m초과~7.2m이하", + "name_clean": "3.6m초과∼7.2m이하" + } + ], "toc_code": "CP-03-09-02-01", "toc_number": "9-2-1", "toc_edition": "2026-01-01", @@ -113062,7 +114321,12 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "1.0㎡이하", + "1.0∼3.0㎡이하", + "3.0∼6.0㎡이하", + "6.0∼8.0㎡이하" + ], "condition_note": [ "구 분", "단 위", @@ -113097,9 +114361,35 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "1.0㎡이하", + "1.0∼3.0㎡이하", + "3.0∼6.0㎡이하", + "6.0∼8.0㎡이하" + ], "work_item_key": "CW-00861", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "1.0㎡이하", + "name_clean": "1.0㎡이하" + }, + { + "variant_key": "02", + "name": "1.0∼3.0㎡이하", + "name_clean": "1.0∼3.0㎡이하" + }, + { + "variant_key": "03", + "name": "3.0∼6.0㎡이하", + "name_clean": "3.0∼6.0㎡이하" + }, + { + "variant_key": "04", + "name": "6.0∼8.0㎡이하", + "name_clean": "6.0∼8.0㎡이하" + } + ], "toc_code": "CP-03-10-01-02", "toc_number": "10-1-2", "toc_edition": "2026-01-01", @@ -113136,7 +114426,13 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "1.0㎡이하", + "1.0∼3.0㎡ 이하", + "3.0∼6.0㎡ 이하", + "6.0∼9.0㎡ 이하", + "9.0∼12.0㎡ 이하" + ], "condition_note": [ "구 분", "단 위", @@ -113183,9 +114479,41 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "1.0㎡이하", + "1.0∼3.0㎡ 이하", + "3.0∼6.0㎡ 이하", + "6.0∼9.0㎡ 이하", + "9.0∼12.0㎡ 이하" + ], "work_item_key": "CW-00862", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "1.0㎡이하", + "name_clean": "1.0㎡이하" + }, + { + "variant_key": "02", + "name": "1.0∼3.0㎡ 이하", + "name_clean": "1.0∼3.0㎡ 이하" + }, + { + "variant_key": "03", + "name": "3.0∼6.0㎡ 이하", + "name_clean": "3.0∼6.0㎡ 이하" + }, + { + "variant_key": "04", + "name": "6.0∼9.0㎡ 이하", + "name_clean": "6.0∼9.0㎡ 이하" + }, + { + "variant_key": "05", + "name": "9.0∼12.0㎡ 이하", + "name_clean": "9.0∼12.0㎡ 이하" + } + ], "toc_code": "CP-03-10-01-03", "toc_number": "10-1-3", "toc_edition": "2026-01-01", @@ -113357,7 +114685,13 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "5㎡미만", + "5∼10㎡미만", + "10∼15㎡미만", + "15∼20㎡미만", + "20∼25㎡미만" + ], "condition_note": [ "구 분", "단 위", @@ -113395,9 +114729,41 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "5㎡미만", + "5∼10㎡미만", + "10∼15㎡미만", + "15∼20㎡미만", + "20∼25㎡미만" + ], "work_item_key": "CW-00865", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "5㎡미만", + "name_clean": "5㎡미만" + }, + { + "variant_key": "02", + "name": "5∼10㎡미만", + "name_clean": "5∼10㎡미만" + }, + { + "variant_key": "03", + "name": "10∼15㎡미만", + "name_clean": "10∼15㎡미만" + }, + { + "variant_key": "04", + "name": "15∼20㎡미만", + "name_clean": "15∼20㎡미만" + }, + { + "variant_key": "05", + "name": "20∼25㎡미만", + "name_clean": "20∼25㎡미만" + } + ], "toc_code": "CP-03-10-01-06", "toc_number": "10-1-6", "toc_edition": "2026-01-01", @@ -113690,7 +115056,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "일반도어록", + "디지털도어록" + ], "condition_note": [ "구 분", "단 위", @@ -113753,9 +115122,23 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "일반도어록", + "디지털도어록" + ], "work_item_key": "CW-00871", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "일반도어록", + "name_clean": "일반도어록" + }, + { + "variant_key": "02", + "name": "디지털도어록", + "name_clean": "디지털도어록" + } + ], "toc_code": "CP-03-10-02-03", "toc_number": "10-2-3", "toc_edition": "2026-01-01", @@ -113806,7 +115189,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "12mm이하" + ], "condition_note": [ "구 분 (두께)", "판유리", @@ -113922,9 +115307,17 @@ } ], "division": "건축부문", - "variant_keys": [], + "variant_keys": [ + "12mm이하" + ], "work_item_key": "CW-00873", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "12mm이하", + "name_clean": "12mm이하" + } + ], "toc_code": "CP-03-10-03-01", "toc_number": "10-3-1", "toc_edition": "2026-01-01", @@ -116978,7 +118371,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø16mm", + "ø20mm" + ], "condition_note": [ "구 분", "단 위", @@ -117007,9 +118403,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø16mm", + "ø20mm" + ], "work_item_key": "CW-00922", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø16mm", + "name_clean": "ø16mm" + }, + { + "variant_key": "02", + "name": "ø20mm", + "name_clean": "ø20mm" + } + ], "toc_code": "CP-04-01-06-01", "toc_number": "1-6-1", "toc_edition": "2026-01-01", @@ -118583,7 +119993,17 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø50 이하", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300" + ], "condition_note": [ "규 격 (㎜)", "단 위", @@ -118649,9 +120069,65 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø50 이하", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300" + ], "work_item_key": "CW-00946", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø50 이하", + "name_clean": "ø50 이하" + }, + { + "variant_key": "02", + "name": "65", + "name_clean": "65" + }, + { + "variant_key": "03", + "name": "80", + "name_clean": "80" + }, + { + "variant_key": "04", + "name": "100", + "name_clean": "100" + }, + { + "variant_key": "05", + "name": "125", + "name_clean": "125" + }, + { + "variant_key": "06", + "name": "150", + "name_clean": "150" + }, + { + "variant_key": "07", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "08", + "name": "250", + "name_clean": "250" + }, + { + "variant_key": "09", + "name": "300", + "name_clean": "300" + } + ], "toc_code": "CP-04-03-02-02", "toc_number": "3-2-2", "toc_edition": "2026-01-01", @@ -118805,7 +120281,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "세대내", + "공용부위" + ], "condition_note": [ "구 분", "단 위", @@ -118866,9 +120345,23 @@ ], "division": "기계설비부문", "parent_mode": "choose_one", - "variant_keys": [], + "variant_keys": [ + "세대내", + "공용부위" + ], "work_item_key": "CW-00950", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "세대내", + "name_clean": "세대내" + }, + { + "variant_key": "02", + "name": "공용부위", + "name_clean": "공용부위" + } + ], "toc_code": "CP-04-03-04", "toc_number": "3-4", "toc_edition": "2026-01-01", @@ -118974,7 +120467,20 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "0.75 ㎾ 이하", + "1.5 ㎾ 이하", + "2.2 ㎾ 이하", + "3.7 ㎾ 이하", + "5.5 ㎾ 이하", + "7.5 ㎾ 이하", + "11 ㎾ 이하", + "15 ㎾ 이하", + "22 ㎾ 이하", + "37 ㎾ 이하", + "55 ㎾ 이하", + "75 ㎾ 이하" + ], "condition_note": [ "규 격", "단 위", @@ -119058,9 +120564,83 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "0.75 ㎾ 이하", + "1.5 ㎾ 이하", + "2.2 ㎾ 이하", + "3.7 ㎾ 이하", + "5.5 ㎾ 이하", + "7.5 ㎾ 이하", + "11 ㎾ 이하", + "15 ㎾ 이하", + "22 ㎾ 이하", + "37 ㎾ 이하", + "55 ㎾ 이하", + "75 ㎾ 이하" + ], "work_item_key": "CW-00955", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "0.75 ㎾ 이하", + "name_clean": "0.75 ㎾ 이하" + }, + { + "variant_key": "02", + "name": "1.5 ㎾ 이하", + "name_clean": "1.5 ㎾ 이하" + }, + { + "variant_key": "03", + "name": "2.2 ㎾ 이하", + "name_clean": "2.2 ㎾ 이하" + }, + { + "variant_key": "04", + "name": "3.7 ㎾ 이하", + "name_clean": "3.7 ㎾ 이하" + }, + { + "variant_key": "05", + "name": "5.5 ㎾ 이하", + "name_clean": "5.5 ㎾ 이하" + }, + { + "variant_key": "06", + "name": "7.5 ㎾ 이하", + "name_clean": "7.5 ㎾ 이하" + }, + { + "variant_key": "07", + "name": "11 ㎾ 이하", + "name_clean": "11 ㎾ 이하" + }, + { + "variant_key": "08", + "name": "15 ㎾ 이하", + "name_clean": "15 ㎾ 이하" + }, + { + "variant_key": "09", + "name": "22 ㎾ 이하", + "name_clean": "22 ㎾ 이하" + }, + { + "variant_key": "10", + "name": "37 ㎾ 이하", + "name_clean": "37 ㎾ 이하" + }, + { + "variant_key": "11", + "name": "55 ㎾ 이하", + "name_clean": "55 ㎾ 이하" + }, + { + "variant_key": "12", + "name": "75 ㎾ 이하", + "name_clean": "75 ㎾ 이하" + } + ], "toc_code": "CP-04-04-01-01", "toc_number": "4-1-1", "toc_edition": "2026-01-01", @@ -119092,7 +120672,14 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "0.75 ㎾이하", + "1.5 ㎾이하", + "2.2 ㎾이하", + "3.7 ㎾이하", + "5.5 ㎾이하", + "7.5 ㎾이하" + ], "condition_note": [ "규 격", "단 위", @@ -119140,9 +120727,47 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "0.75 ㎾이하", + "1.5 ㎾이하", + "2.2 ㎾이하", + "3.7 ㎾이하", + "5.5 ㎾이하", + "7.5 ㎾이하" + ], "work_item_key": "CW-00956", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "0.75 ㎾이하", + "name_clean": "0.75 ㎾이하" + }, + { + "variant_key": "02", + "name": "1.5 ㎾이하", + "name_clean": "1.5 ㎾이하" + }, + { + "variant_key": "03", + "name": "2.2 ㎾이하", + "name_clean": "2.2 ㎾이하" + }, + { + "variant_key": "04", + "name": "3.7 ㎾이하", + "name_clean": "3.7 ㎾이하" + }, + { + "variant_key": "05", + "name": "5.5 ㎾이하", + "name_clean": "5.5 ㎾이하" + }, + { + "variant_key": "06", + "name": "7.5 ㎾이하", + "name_clean": "7.5 ㎾이하" + } + ], "toc_code": "CP-04-04-01-02", "toc_number": "4-1-2", "toc_edition": "2026-01-01", @@ -119174,7 +120799,20 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "0.75 ㎾ 이하", + "1.5 ㎾ 이하", + "2.2 ㎾ 이하", + "3.7 ㎾ 이하", + "5.5 ㎾ 이하", + "7.5 ㎾ 이하", + "11 ㎾ 이하", + "15 ㎾ 이하", + "22 ㎾ 이하", + "37 ㎾ 이하", + "55 ㎾ 이하", + "75 ㎾ 이하" + ], "condition_note": [ "규 격", "단 위", @@ -119258,9 +120896,83 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "0.75 ㎾ 이하", + "1.5 ㎾ 이하", + "2.2 ㎾ 이하", + "3.7 ㎾ 이하", + "5.5 ㎾ 이하", + "7.5 ㎾ 이하", + "11 ㎾ 이하", + "15 ㎾ 이하", + "22 ㎾ 이하", + "37 ㎾ 이하", + "55 ㎾ 이하", + "75 ㎾ 이하" + ], "work_item_key": "CW-00957", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "0.75 ㎾ 이하", + "name_clean": "0.75 ㎾ 이하" + }, + { + "variant_key": "02", + "name": "1.5 ㎾ 이하", + "name_clean": "1.5 ㎾ 이하" + }, + { + "variant_key": "03", + "name": "2.2 ㎾ 이하", + "name_clean": "2.2 ㎾ 이하" + }, + { + "variant_key": "04", + "name": "3.7 ㎾ 이하", + "name_clean": "3.7 ㎾ 이하" + }, + { + "variant_key": "05", + "name": "5.5 ㎾ 이하", + "name_clean": "5.5 ㎾ 이하" + }, + { + "variant_key": "06", + "name": "7.5 ㎾ 이하", + "name_clean": "7.5 ㎾ 이하" + }, + { + "variant_key": "07", + "name": "11 ㎾ 이하", + "name_clean": "11 ㎾ 이하" + }, + { + "variant_key": "08", + "name": "15 ㎾ 이하", + "name_clean": "15 ㎾ 이하" + }, + { + "variant_key": "09", + "name": "22 ㎾ 이하", + "name_clean": "22 ㎾ 이하" + }, + { + "variant_key": "10", + "name": "37 ㎾ 이하", + "name_clean": "37 ㎾ 이하" + }, + { + "variant_key": "11", + "name": "55 ㎾ 이하", + "name_clean": "55 ㎾ 이하" + }, + { + "variant_key": "12", + "name": "75 ㎾ 이하", + "name_clean": "75 ㎾ 이하" + } + ], "toc_code": "CP-04-04-01-03", "toc_number": "4-1-3", "toc_edition": "2026-01-01", @@ -119665,7 +121377,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "700㎜이하", + "900㎜이하" + ], "condition_note": [ "구 분", "단 위", @@ -119694,9 +121409,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "700㎜이하", + "900㎜이하" + ], "work_item_key": "CW-00963", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "700㎜이하", + "name_clean": "700㎜이하" + }, + { + "variant_key": "02", + "name": "900㎜이하", + "name_clean": "900㎜이하" + } + ], "toc_code": "CP-04-04-02-05", "toc_number": "4-2-5", "toc_edition": "2026-01-01", @@ -119994,7 +121723,14 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø15mm", + "ø20mm", + "ø25mm", + "ø32mm", + "ø40mm", + "ø50mm" + ], "condition_note": [ "구 분", "단 위", @@ -120035,9 +121771,47 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø15mm", + "ø20mm", + "ø25mm", + "ø32mm", + "ø40mm", + "ø50mm" + ], "work_item_key": "CW-00969", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø15mm", + "name_clean": "ø15mm" + }, + { + "variant_key": "02", + "name": "ø20mm", + "name_clean": "ø20mm" + }, + { + "variant_key": "03", + "name": "ø25mm", + "name_clean": "ø25mm" + }, + { + "variant_key": "04", + "name": "ø32mm", + "name_clean": "ø32mm" + }, + { + "variant_key": "05", + "name": "ø40mm", + "name_clean": "ø40mm" + }, + { + "variant_key": "06", + "name": "ø50mm", + "name_clean": "ø50mm" + } + ], "toc_code": "CP-04-05-02-01", "toc_number": "5-2-1", "toc_edition": "2026-01-01", @@ -120220,7 +121994,18 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø15∼25", + "32∼50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300" + ], "condition_note": [ "규 격", "수 량" @@ -120285,9 +122070,71 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø15∼25", + "32∼50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300" + ], "work_item_key": "CW-00972", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø15∼25", + "name_clean": "ø15∼25" + }, + { + "variant_key": "02", + "name": "32∼50", + "name_clean": "32∼50" + }, + { + "variant_key": "03", + "name": "65", + "name_clean": "65" + }, + { + "variant_key": "04", + "name": "80", + "name_clean": "80" + }, + { + "variant_key": "05", + "name": "100", + "name_clean": "100" + }, + { + "variant_key": "06", + "name": "125", + "name_clean": "125" + }, + { + "variant_key": "07", + "name": "150", + "name_clean": "150" + }, + { + "variant_key": "08", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "09", + "name": "250", + "name_clean": "250" + }, + { + "variant_key": "10", + "name": "300", + "name_clean": "300" + } + ], "toc_code": "CP-04-05-03-02", "toc_number": "5-3-2", "toc_edition": "2026-01-01", @@ -120396,7 +122243,11 @@ "~(U+007E)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø13~15", + "20~32", + "40~50" + ], "condition_note": [ "규 격 (mm)", "보호통", @@ -120470,9 +122321,29 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø13~15", + "20~32", + "40~50" + ], "work_item_key": "CW-00977", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø13~15", + "name_clean": "ø13∼15" + }, + { + "variant_key": "02", + "name": "20~32", + "name_clean": "20∼32" + }, + { + "variant_key": "03", + "name": "40~50", + "name_clean": "40∼50" + } + ], "toc_code": "CP-04-06-01-01", "toc_number": "6-1-1", "toc_edition": "2026-01-01", @@ -120509,7 +122380,10 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø13∼15mm", + "ø20∼32mm" + ], "condition_note": [ "구 분", "단 위", @@ -120538,9 +122412,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø13∼15mm", + "ø20∼32mm" + ], "work_item_key": "CW-00978", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø13∼15mm", + "name_clean": "ø13∼15mm" + }, + { + "variant_key": "02", + "name": "ø20∼32mm", + "name_clean": "ø20∼32mm" + } + ], "toc_code": "CP-04-06-01-02", "toc_number": "6-1-2", "toc_edition": "2026-01-01", @@ -120614,7 +122502,10 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø13∼15mm", + "ø20∼32mm" + ], "condition_note": [ "구 분", "단 위", @@ -120643,9 +122534,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø13∼15mm", + "ø20∼32mm" + ], "work_item_key": "CW-00981", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø13∼15mm", + "name_clean": "ø13∼15mm" + }, + { + "variant_key": "02", + "name": "ø20∼32mm", + "name_clean": "ø20∼32mm" + } + ], "toc_code": "CP-04-06-02-01", "toc_number": "6-2-1", "toc_edition": "2026-01-01", @@ -120682,7 +122587,12 @@ "~(U+007E)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø50mm", + "ø65~80mm", + "ø100~125mm", + "ø150mm" + ], "condition_note": [ "구 분", "단 위", @@ -120717,9 +122627,35 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø50mm", + "ø65~80mm", + "ø100~125mm", + "ø150mm" + ], "work_item_key": "CW-00982", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø50mm", + "name_clean": "ø50mm" + }, + { + "variant_key": "02", + "name": "ø65~80mm", + "name_clean": "ø65∼80mm" + }, + { + "variant_key": "03", + "name": "ø100~125mm", + "name_clean": "ø100∼125mm" + }, + { + "variant_key": "04", + "name": "ø150mm", + "name_clean": "ø150mm" + } + ], "toc_code": "CP-04-06-02-02", "toc_number": "6-2-2", "toc_edition": "2026-01-01", @@ -120810,7 +122746,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "거치형", + "벽걸이형" + ], "condition_note": [ "구 분", "단 위", @@ -120860,9 +122799,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "거치형", + "벽걸이형" + ], "work_item_key": "CW-00986", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "거치형", + "name_clean": "거치형" + }, + { + "variant_key": "02", + "name": "벽걸이형", + "name_clean": "벽걸이형" + } + ], "toc_code": "CP-04-07-01-01", "toc_number": "7-1-1", "toc_edition": "2026-01-01", @@ -121633,7 +123586,11 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "0.5㎡미만", + "1.0㎡미만", + "1.5㎡미만" + ], "condition_note": [ "구 분", "단 위", @@ -121665,9 +123622,29 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "0.5㎡미만", + "1.0㎡미만", + "1.5㎡미만" + ], "work_item_key": "CW-01000", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "0.5㎡미만", + "name_clean": "0.5㎡미만" + }, + { + "variant_key": "02", + "name": "1.0㎡미만", + "name_clean": "1.0㎡미만" + }, + { + "variant_key": "03", + "name": "1.5㎡미만", + "name_clean": "1.5㎡미만" + } + ], "toc_code": "CP-04-07-03-01", "toc_number": "7-3-1", "toc_edition": "2026-01-01", @@ -121789,7 +123766,11 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø50㎜", + "ø75㎜", + "ø100㎜" + ], "condition_note": [ "구 분", "단 위", @@ -121821,9 +123802,29 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø50㎜", + "ø75㎜", + "ø100㎜" + ], "work_item_key": "CW-01002", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø50㎜", + "name_clean": "ø50㎜" + }, + { + "variant_key": "02", + "name": "ø75㎜", + "name_clean": "ø75㎜" + }, + { + "variant_key": "03", + "name": "ø100㎜", + "name_clean": "ø100㎜" + } + ], "toc_code": "CP-04-07-03-03", "toc_number": "7-3-3", "toc_edition": "2026-01-01", @@ -123241,7 +125242,24 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "유효길이 610㎜", + "762〃", + "914〃", + "1,067〃", + "1,219〃", + "1,372〃", + "1,524〃", + "1,676〃", + "1,829〃", + "1,981〃", + "2,134〃", + "2,286〃", + "2,438〃", + "2,591〃", + "2,875〃", + "3,048〃" + ], "condition_note": [ "규 격", "기계설비공(인)", @@ -123332,9 +125350,107 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "유효길이 610㎜", + "762〃", + "914〃", + "1,067〃", + "1,219〃", + "1,372〃", + "1,524〃", + "1,676〃", + "1,829〃", + "1,981〃", + "2,134〃", + "2,286〃", + "2,438〃", + "2,591〃", + "2,875〃", + "3,048〃" + ], "work_item_key": "CW-01011", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "유효길이 610㎜", + "name_clean": "유효길이 610㎜" + }, + { + "variant_key": "02", + "name": "762〃", + "name_clean": "762〃" + }, + { + "variant_key": "03", + "name": "914〃", + "name_clean": "914〃" + }, + { + "variant_key": "04", + "name": "1,067〃", + "name_clean": "1,067〃" + }, + { + "variant_key": "05", + "name": "1,219〃", + "name_clean": "1,219〃" + }, + { + "variant_key": "06", + "name": "1,372〃", + "name_clean": "1,372〃" + }, + { + "variant_key": "07", + "name": "1,524〃", + "name_clean": "1,524〃" + }, + { + "variant_key": "08", + "name": "1,676〃", + "name_clean": "1,676〃" + }, + { + "variant_key": "09", + "name": "1,829〃", + "name_clean": "1,829〃" + }, + { + "variant_key": "10", + "name": "1,981〃", + "name_clean": "1,981〃" + }, + { + "variant_key": "11", + "name": "2,134〃", + "name_clean": "2,134〃" + }, + { + "variant_key": "12", + "name": "2,286〃", + "name_clean": "2,286〃" + }, + { + "variant_key": "13", + "name": "2,438〃", + "name_clean": "2,438〃" + }, + { + "variant_key": "14", + "name": "2,591〃", + "name_clean": "2,591〃" + }, + { + "variant_key": "15", + "name": "2,875〃", + "name_clean": "2,875〃" + }, + { + "variant_key": "16", + "name": "3,048〃", + "name_clean": "3,048〃" + } + ], "toc_code": "CP-04-08-02-01", "toc_number": "8-2-1", "toc_edition": "2026-01-01", @@ -123858,7 +125974,10 @@ "~(U+007E)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "실내기", + "실외기" + ], "condition_note": [ "구 분", "단 위", @@ -123904,9 +126023,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "실내기", + "실외기" + ], "work_item_key": "CW-01014", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "실내기", + "name_clean": "실내기" + }, + { + "variant_key": "02", + "name": "실외기", + "name_clean": "실외기" + } + ], "toc_code": "CP-04-08-02-04", "toc_number": "8-2-4", "toc_edition": "2026-01-01", @@ -124044,7 +126177,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "15,000 Kcal/hr" + ], "condition_note": [ "규 격", "배관공", @@ -124060,9 +126195,17 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "15,000 Kcal/hr" + ], "work_item_key": "CW-01018", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "15,000 Kcal/hr", + "name_clean": "15,000 Kcal/hr" + } + ], "toc_code": "CP-04-08-03-02", "toc_number": "8-3-2", "toc_edition": "2026-01-01", @@ -124114,7 +126257,13 @@ "×(U+00D7)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "70×1,000kcal/hr이하", + "120 〃", + "150 〃", + "240 〃", + "360 〃" + ], "condition_note": [ "규 격", "보일러공", @@ -124150,9 +126299,41 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "70×1,000kcal/hr이하", + "120 〃", + "150 〃", + "240 〃", + "360 〃" + ], "work_item_key": "CW-01020", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "70×1,000kcal/hr이하", + "name_clean": "70×1,000kcal/hr이하" + }, + { + "variant_key": "02", + "name": "120 〃", + "name_clean": "120 〃" + }, + { + "variant_key": "03", + "name": "150 〃", + "name_clean": "150 〃" + }, + { + "variant_key": "04", + "name": "240 〃", + "name_clean": "240 〃" + }, + { + "variant_key": "05", + "name": "360 〃", + "name_clean": "360 〃" + } + ], "toc_code": "CP-04-08-03-04", "toc_number": "8-3-4", "toc_edition": "2026-01-01", @@ -124265,7 +126446,17 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "주 철 재 바 닥 설 치 20절 이하", + "21절 이상", + "벽 걸 이 3절", + "천 장 달 기 3절", + "1 m 길 트", + "콘백터 길이 1m 미만", + "베이스보드 1단형길이 2m 미만", + "2m이상", + "강판제 및 알루미늄제 방열기 1m 미만" + ], "condition_note": [ "규 격", "단 위", @@ -124343,9 +126534,65 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "주 철 재 바 닥 설 치 20절 이하", + "21절 이상", + "벽 걸 이 3절", + "천 장 달 기 3절", + "1 m 길 트", + "콘백터 길이 1m 미만", + "베이스보드 1단형길이 2m 미만", + "2m이상", + "강판제 및 알루미늄제 방열기 1m 미만" + ], "work_item_key": "CW-01022", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "주 철 재 바 닥 설 치 20절 이하", + "name_clean": "주 철 재 바 닥 설 치 20절 이하" + }, + { + "variant_key": "02", + "name": "21절 이상", + "name_clean": "21절 이상" + }, + { + "variant_key": "03", + "name": "벽 걸 이 3절", + "name_clean": "벽 걸 이 3절" + }, + { + "variant_key": "04", + "name": "천 장 달 기 3절", + "name_clean": "천 장 달 기 3절" + }, + { + "variant_key": "05", + "name": "1 m 길 트", + "name_clean": "1 m 길 트" + }, + { + "variant_key": "06", + "name": "콘백터 길이 1m 미만", + "name_clean": "콘백터 길이 1m 미만" + }, + { + "variant_key": "07", + "name": "베이스보드 1단형길이 2m 미만", + "name_clean": "베이스보드 1단형길이 2m 미만" + }, + { + "variant_key": "08", + "name": "2m이상", + "name_clean": "2m이상" + }, + { + "variant_key": "09", + "name": "강판제 및 알루미늄제 방열기 1m 미만", + "name_clean": "강판제 및 알루미늄제 방열기 1m 미만" + } + ], "toc_code": "CP-04-08-03-06", "toc_number": "8-3-6", "toc_edition": "2026-01-01", @@ -124518,7 +126765,14 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "2구", + "3구", + "4구", + "5구", + "6구", + "7구" + ], "condition_note": [ "구 분", "단 위", @@ -124559,9 +126813,47 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "2구", + "3구", + "4구", + "5구", + "6구", + "7구" + ], "work_item_key": "CW-01027", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "2구", + "name_clean": "2구" + }, + { + "variant_key": "02", + "name": "3구", + "name_clean": "3구" + }, + { + "variant_key": "03", + "name": "4구", + "name_clean": "4구" + }, + { + "variant_key": "04", + "name": "5구", + "name_clean": "5구" + }, + { + "variant_key": "05", + "name": "6구", + "name_clean": "6구" + }, + { + "variant_key": "06", + "name": "7구", + "name_clean": "7구" + } + ], "toc_code": "CP-04-08-04-03", "toc_number": "8-4-3", "toc_edition": "2026-01-01", @@ -124612,7 +126904,15 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "100", + "200", + "300", + "400", + "500", + "750", + "1,000" + ], "condition_note": [ "탱 크 용 량 (ℓ)", "배 관 공", @@ -124658,9 +126958,53 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "100", + "200", + "300", + "400", + "500", + "750", + "1,000" + ], "work_item_key": "CW-01029", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "100", + "name_clean": "100" + }, + { + "variant_key": "02", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "03", + "name": "300", + "name_clean": "300" + }, + { + "variant_key": "04", + "name": "400", + "name_clean": "400" + }, + { + "variant_key": "05", + "name": "500", + "name_clean": "500" + }, + { + "variant_key": "06", + "name": "750", + "name_clean": "750" + }, + { + "variant_key": "07", + "name": "1,000", + "name_clean": "1,000" + } + ], "toc_code": "CP-04-08-05-01", "toc_number": "8-5-1", "toc_edition": "2026-01-01", @@ -124729,7 +127073,12 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "건타입 오일버너 0.75㎾", + "1.5", + "(전자동방식) 2.2", + "3.7" + ], "condition_note": [ "규 격", "보일러공", @@ -124760,9 +127109,35 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "건타입 오일버너 0.75㎾", + "1.5", + "(전자동방식) 2.2", + "3.7" + ], "work_item_key": "CW-01032", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "건타입 오일버너 0.75㎾", + "name_clean": "건타입 오일버너 0.75㎾" + }, + { + "variant_key": "02", + "name": "1.5", + "name_clean": "1.5" + }, + { + "variant_key": "03", + "name": "(전자동방식) 2.2", + "name_clean": "(전자동방식) 2.2" + }, + { + "variant_key": "04", + "name": "3.7", + "name_clean": "3.7" + } + ], "toc_code": "CP-04-08-06-02", "toc_number": "8-6-2", "toc_edition": "2026-01-01", @@ -124832,7 +127207,18 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300", + "350" + ], "condition_note": [ "규격(㎜)", "배관공(인)", @@ -124893,9 +127279,71 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300", + "350" + ], "work_item_key": "CW-01035", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø50", + "name_clean": "ø50" + }, + { + "variant_key": "02", + "name": "65", + "name_clean": "65" + }, + { + "variant_key": "03", + "name": "80", + "name_clean": "80" + }, + { + "variant_key": "04", + "name": "100", + "name_clean": "100" + }, + { + "variant_key": "05", + "name": "125", + "name_clean": "125" + }, + { + "variant_key": "06", + "name": "150", + "name_clean": "150" + }, + { + "variant_key": "07", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "08", + "name": "250", + "name_clean": "250" + }, + { + "variant_key": "09", + "name": "300", + "name_clean": "300" + }, + { + "variant_key": "10", + "name": "350", + "name_clean": "350" + } + ], "toc_code": "CP-04-09-01-01", "toc_number": "9-1-1", "toc_edition": "2026-01-01", @@ -124932,7 +127380,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "일반철재", + "경량철재" + ], "condition_note": [ "구 분", "단 위", @@ -125041,9 +127492,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "일반철재", + "경량철재" + ], "work_item_key": "CW-01036", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "일반철재", + "name_clean": "일반철재" + }, + { + "variant_key": "02", + "name": "경량철재", + "name_clean": "경량철재" + } + ], "toc_code": "CP-04-09-01-02", "toc_number": "9-1-2", "toc_edition": "2026-01-01", @@ -125622,7 +128087,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "지상노출관", + "지하매설관" + ], "condition_note": [ "구 분", "단 위", @@ -125651,9 +128119,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "지상노출관", + "지하매설관" + ], "work_item_key": "CW-01045", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "지상노출관", + "name_clean": "지상노출관" + }, + { + "variant_key": "02", + "name": "지하매설관", + "name_clean": "지하매설관" + } + ], "toc_code": "CP-04-09-04-01", "toc_number": "9-4-1", "toc_edition": "2026-01-01", @@ -125928,7 +128410,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "소화용구 격납상자" + ], "condition_note": [ "구 분", "단 위", @@ -125951,9 +128435,17 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "소화용구 격납상자" + ], "work_item_key": "CW-01053", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "소화용구 격납상자", + "name_clean": "소화용구 격납상자" + } + ], "toc_code": "CP-04-10-01-02", "toc_number": "10-1-2", "toc_edition": "2026-01-01", @@ -126160,7 +128652,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "관말시험밸브" + ], "condition_note": [ "구 분", "배 관 공", @@ -126176,9 +128670,17 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "관말시험밸브" + ], "work_item_key": "CW-01058", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "관말시험밸브", + "name_clean": "관말시험밸브" + } + ], "toc_code": "CP-04-10-02-04", "toc_number": "10-2-4", "toc_edition": "2026-01-01", @@ -126525,7 +129027,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "압력공기탱크" + ], "condition_note": [ "구 분", "배 관 공(인)", @@ -126541,9 +129045,17 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "압력공기탱크" + ], "work_item_key": "CW-01067", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "압력공기탱크", + "name_clean": "압력공기탱크" + } + ], "toc_code": "CP-04-10-05-01", "toc_number": "10-5-1", "toc_edition": "2026-01-01", @@ -126681,7 +129193,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "스프링클러 헤드" + ], "condition_note": [ "구 분", "단 위", @@ -126699,9 +129213,17 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "스프링클러 헤드" + ], "work_item_key": "CW-01072", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "스프링클러 헤드", + "name_clean": "스프링클러 헤드" + } + ], "toc_code": "CP-04-10-07-01", "toc_number": "10-7-1", "toc_edition": "2026-01-01", @@ -127357,7 +129879,13 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø20", + "25", + "32", + "40", + "50" + ], "condition_note": [ "규 격(㎜)", "배관공(인)", @@ -127449,9 +129977,41 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø20", + "25", + "32", + "40", + "50" + ], "work_item_key": "CW-01083", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø20", + "name_clean": "ø20" + }, + { + "variant_key": "02", + "name": "25", + "name_clean": "25" + }, + { + "variant_key": "03", + "name": "32", + "name_clean": "32" + }, + { + "variant_key": "04", + "name": "40", + "name_clean": "40" + }, + { + "variant_key": "05", + "name": "50", + "name_clean": "50" + } + ], "toc_code": "CP-04-11-01-03", "toc_number": "11-1-3", "toc_edition": "2026-01-01", @@ -127502,7 +130062,12 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø 25", + "32", + "40", + "50" + ], "condition_note": [ "관 경(㎜)", "배 관 공(인)", @@ -127548,7 +130113,23 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "63", + "75", + "90", + "110", + "125", + "140", + "160", + "180", + "200", + "225", + "250", + "280", + "315", + "355", + "400" + ], "condition_note": [ "관 경(㎜)", "배 관 공(인)", @@ -127634,9 +130215,125 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø 25", + "32", + "40", + "50", + "63", + "75", + "90", + "110", + "125", + "140", + "160", + "180", + "200", + "225", + "250", + "280", + "315", + "355", + "400" + ], "work_item_key": "CW-01085", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø 25", + "name_clean": "ø 25" + }, + { + "variant_key": "02", + "name": "32", + "name_clean": "32" + }, + { + "variant_key": "03", + "name": "40", + "name_clean": "40" + }, + { + "variant_key": "04", + "name": "50", + "name_clean": "50" + }, + { + "variant_key": "05", + "name": "63", + "name_clean": "63" + }, + { + "variant_key": "06", + "name": "75", + "name_clean": "75" + }, + { + "variant_key": "07", + "name": "90", + "name_clean": "90" + }, + { + "variant_key": "08", + "name": "110", + "name_clean": "110" + }, + { + "variant_key": "09", + "name": "125", + "name_clean": "125" + }, + { + "variant_key": "10", + "name": "140", + "name_clean": "140" + }, + { + "variant_key": "11", + "name": "160", + "name_clean": "160" + }, + { + "variant_key": "12", + "name": "180", + "name_clean": "180" + }, + { + "variant_key": "13", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "14", + "name": "225", + "name_clean": "225" + }, + { + "variant_key": "15", + "name": "250", + "name_clean": "250" + }, + { + "variant_key": "16", + "name": "280", + "name_clean": "280" + }, + { + "variant_key": "17", + "name": "315", + "name_clean": "315" + }, + { + "variant_key": "18", + "name": "355", + "name_clean": "355" + }, + { + "variant_key": "19", + "name": "400", + "name_clean": "400" + } + ], "toc_code": "CP-04-11-02-01", "toc_number": "11-2-1", "toc_edition": "2026-01-01", @@ -127689,7 +130386,20 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø20∼25", + "40∼50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300", + "350", + "400" + ], "condition_note": [ "구경(㎜)", "배관공(인)", @@ -127773,9 +130483,83 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø20∼25", + "40∼50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300", + "350", + "400" + ], "work_item_key": "CW-01087", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø20∼25", + "name_clean": "ø20∼25" + }, + { + "variant_key": "02", + "name": "40∼50", + "name_clean": "40∼50" + }, + { + "variant_key": "03", + "name": "65", + "name_clean": "65" + }, + { + "variant_key": "04", + "name": "80", + "name_clean": "80" + }, + { + "variant_key": "05", + "name": "100", + "name_clean": "100" + }, + { + "variant_key": "06", + "name": "125", + "name_clean": "125" + }, + { + "variant_key": "07", + "name": "150", + "name_clean": "150" + }, + { + "variant_key": "08", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "09", + "name": "250", + "name_clean": "250" + }, + { + "variant_key": "10", + "name": "300", + "name_clean": "300" + }, + { + "variant_key": "11", + "name": "350", + "name_clean": "350" + }, + { + "variant_key": "12", + "name": "400", + "name_clean": "400" + } + ], "toc_code": "CP-04-11-03-01", "toc_number": "11-3-1", "toc_edition": "2026-01-01", @@ -128108,7 +130892,14 @@ "×(U+00D7)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "분 전 반", + "조 작 반", + "계 기 반 ( 자 립 개 방 )", + "계 기 반 ( 자 립 밀 폐 )", + "계 기 반 ( 현 장 )", + "〃 ( 발 신 기 수 납 상 )" + ], "condition_note": [ "명 칭", "규 격", @@ -128226,9 +131017,47 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "분 전 반", + "조 작 반", + "계 기 반 ( 자 립 개 방 )", + "계 기 반 ( 자 립 밀 폐 )", + "계 기 반 ( 현 장 )", + "〃 ( 발 신 기 수 납 상 )" + ], "work_item_key": "CW-01093", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "분 전 반", + "name_clean": "분 전 반" + }, + { + "variant_key": "02", + "name": "조 작 반", + "name_clean": "조 작 반" + }, + { + "variant_key": "03", + "name": "계 기 반 ( 자 립 개 방 )", + "name_clean": "계 기 반 ( 자 립 개 방 )" + }, + { + "variant_key": "04", + "name": "계 기 반 ( 자 립 밀 폐 )", + "name_clean": "계 기 반 ( 자 립 밀 폐 )" + }, + { + "variant_key": "05", + "name": "계 기 반 ( 현 장 )", + "name_clean": "계 기 반 ( 현 장 )" + }, + { + "variant_key": "06", + "name": "〃 ( 발 신 기 수 납 상 )", + "name_clean": "〃 ( 발 신 기 수 납 상 )" + } + ], "toc_code": "CP-04-12-01-01", "toc_number": "12-1-1", "toc_edition": "2026-01-01", @@ -128977,7 +131806,11 @@ "∼(U+223C)" ], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "유 니 온 엘 보", + "공 기 압 축 기 시 험", + "조 작 함 ( 설 비 물 )" + ], "condition_note": [ "명 칭", "규 격", @@ -129067,9 +131900,29 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "유 니 온 엘 보", + "공 기 압 축 기 시 험", + "조 작 함 ( 설 비 물 )" + ], "work_item_key": "CW-01100", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "유 니 온 엘 보", + "name_clean": "유 니 온 엘 보" + }, + { + "variant_key": "02", + "name": "공 기 압 축 기 시 험", + "name_clean": "공 기 압 축 기 시 험" + }, + { + "variant_key": "03", + "name": "조 작 함 ( 설 비 물 )", + "name_clean": "조 작 함 ( 설 비 물 )" + } + ], "toc_code": "CP-04-12-02-05", "toc_number": "12-2-5", "toc_edition": "2026-01-01", @@ -134045,7 +136898,12 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø20(90)", + "25(90)", + "32(110)", + "40(110)" + ], "condition_note": [ "구 분 관 경 (외경)(㎜)", "개당중량 (㎏) (12m기준)", @@ -134640,9 +137498,35 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø20(90)", + "25(90)", + "32(110)", + "40(110)" + ], "work_item_key": "CW-01114", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø20(90)", + "name_clean": "ø20(90)" + }, + { + "variant_key": "02", + "name": "25(90)", + "name_clean": "25(90)" + }, + { + "variant_key": "03", + "name": "32(110)", + "name_clean": "32(110)" + }, + { + "variant_key": "04", + "name": "40(110)", + "name_clean": "40(110)" + } + ], "toc_code": "CP-04-13-01-08", "toc_number": "13-1-8", "toc_edition": "2026-01-01", @@ -140629,7 +143513,14 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø16이하", + "ø20이하", + "ø24이하", + "ø28이하", + "ø32이하", + "ø40이하" + ], "condition_note": [ "구 분", "단위", @@ -140670,9 +143561,47 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "ø16이하", + "ø20이하", + "ø24이하", + "ø28이하", + "ø32이하", + "ø40이하" + ], "work_item_key": "CW-01128", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø16이하", + "name_clean": "ø16이하" + }, + { + "variant_key": "02", + "name": "ø20이하", + "name_clean": "ø20이하" + }, + { + "variant_key": "03", + "name": "ø24이하", + "name_clean": "ø24이하" + }, + { + "variant_key": "04", + "name": "ø28이하", + "name_clean": "ø28이하" + }, + { + "variant_key": "05", + "name": "ø32이하", + "name_clean": "ø32이하" + }, + { + "variant_key": "06", + "name": "ø40이하", + "name_clean": "ø40이하" + } + ], "toc_code": "CP-04-13-04-02", "toc_number": "13-4-2", "toc_edition": "2026-01-01", @@ -150972,7 +153901,11 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "7.5㎾", + "15㎾", + "30㎾" + ], "condition_note": [ "규 격", "기계설비공", @@ -151056,9 +153989,29 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "7.5㎾", + "15㎾", + "30㎾" + ], "work_item_key": "CW-01199", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "7.5㎾", + "name_clean": "7.5㎾" + }, + { + "variant_key": "02", + "name": "15㎾", + "name_clean": "15㎾" + }, + { + "variant_key": "03", + "name": "30㎾", + "name_clean": "30㎾" + } + ], "toc_code": "CP-04-13-09-01", "toc_number": "13-9-1", "toc_edition": "2026-01-01", @@ -151090,7 +154043,9 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "0.5" + ], "condition_note": [ "측량사", "비계공", @@ -151148,9 +154103,17 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "0.5" + ], "work_item_key": "CW-01200", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "0.5", + "name_clean": "0.5" + } + ], "toc_code": "CP-04-13-09-02", "toc_number": "13-9-2", "toc_edition": "2026-01-01", @@ -151182,7 +154145,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "산 기 분 기 관 제 작", + "분기관 및 산기장치 설치" + ], "condition_note": [ "구 분", "단 위", @@ -151264,9 +154230,23 @@ } ], "division": "기계설비부문", - "variant_keys": [], + "variant_keys": [ + "산 기 분 기 관 제 작", + "분기관 및 산기장치 설치" + ], "work_item_key": "CW-01201", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "산 기 분 기 관 제 작", + "name_clean": "산 기 분 기 관 제 작" + }, + { + "variant_key": "02", + "name": "분기관 및 산기장치 설치", + "name_clean": "분기관 및 산기장치 설치" + } + ], "toc_code": "CP-04-13-09-03", "toc_number": "13-9-3", "toc_edition": "2026-01-01", @@ -160868,7 +163848,12 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "#8번", + "#10번", + "#12번", + "#15번" + ], "condition_note": [ "구 분", "규 격", @@ -160925,9 +163910,35 @@ } ], "division": "유지관리부문", - "variant_keys": [], + "variant_keys": [ + "#8번", + "#10번", + "#12번", + "#15번" + ], "work_item_key": "CW-01291", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "#8번", + "name_clean": "#8번" + }, + { + "variant_key": "02", + "name": "#10번", + "name_clean": "#10번" + }, + { + "variant_key": "03", + "name": "#12번", + "name_clean": "#12번" + }, + { + "variant_key": "04", + "name": "#15번", + "name_clean": "#15번" + } + ], "toc_code": "CP-05-02-02-03", "toc_number": "2-2-3", "toc_edition": "2026-01-01", @@ -162071,7 +165082,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "3시간 차단", + "4시간 차단" + ], "condition_note": [ "구 분", "규 격", @@ -162111,9 +165125,23 @@ } ], "division": "유지관리부문", - "variant_keys": [], + "variant_keys": [ + "3시간 차단", + "4시간 차단" + ], "work_item_key": "CW-01300", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "3시간 차단", + "name_clean": "3시간 차단" + }, + { + "variant_key": "02", + "name": "4시간 차단", + "name_clean": "4시간 차단" + } + ], "toc_code": "CP-05-02-02-12", "toc_number": "2-2-12", "toc_edition": "2026-01-01", @@ -162194,7 +165222,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "판넬설치(개당)", + "가받침 해체 및 설치(m당)" + ], "condition_note": [ "구 분", "단 위", @@ -162279,9 +165310,23 @@ } ], "division": "유지관리부문", - "variant_keys": [], + "variant_keys": [ + "판넬설치(개당)", + "가받침 해체 및 설치(m당)" + ], "work_item_key": "CW-01301", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "판넬설치(개당)", + "name_clean": "판넬설치(개당)" + }, + { + "variant_key": "02", + "name": "가받침 해체 및 설치(m당)", + "name_clean": "가받침 해체 및 설치(m당)" + } + ], "toc_code": "CP-05-02-02-13", "toc_number": "2-2-13", "toc_edition": "2026-01-01", @@ -162318,7 +165363,10 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "궤도정정", + "궤도이설" + ], "condition_note": [ "구 분", "규 격", @@ -162372,9 +165420,23 @@ } ], "division": "유지관리부문", - "variant_keys": [], + "variant_keys": [ + "궤도정정", + "궤도이설" + ], "work_item_key": "CW-01302", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "궤도정정", + "name_clean": "궤도정정" + }, + { + "variant_key": "02", + "name": "궤도이설", + "name_clean": "궤도이설" + } + ], "toc_code": "CP-05-02-02-14", "toc_number": "2-2-14", "toc_edition": "2026-01-01", @@ -162464,7 +165526,11 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "A급", + "B급", + "C급" + ], "condition_note": [ "구 분", "규 격", @@ -162508,9 +165574,29 @@ } ], "division": "유지관리부문", - "variant_keys": [], + "variant_keys": [ + "A급", + "B급", + "C급" + ], "work_item_key": "CW-01306", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "A급", + "name_clean": "A급" + }, + { + "variant_key": "02", + "name": "B급", + "name_clean": "B급" + }, + { + "variant_key": "03", + "name": "C급", + "name_clean": "C급" + } + ], "toc_code": "CP-05-02-03-01", "toc_number": "2-3-1", "toc_edition": "2026-01-01", @@ -165957,7 +169043,22 @@ "formula_rows": [], "special_glyphs": [], "capacity_formula_here": false, - "variant_key": [], + "variant_key": [ + "ø15", + "20", + "25", + "32", + "40", + "50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300" + ], "condition_note": [ "규격 (㎜)", "고무발포보온재", @@ -166104,9 +169205,95 @@ } ], "division": "유지관리부문", - "variant_keys": [], + "variant_keys": [ + "ø15", + "20", + "25", + "32", + "40", + "50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300" + ], "work_item_key": "CW-01358", - "variants": [], + "variants": [ + { + "variant_key": "01", + "name": "ø15", + "name_clean": "ø15" + }, + { + "variant_key": "02", + "name": "20", + "name_clean": "20" + }, + { + "variant_key": "03", + "name": "25", + "name_clean": "25" + }, + { + "variant_key": "04", + "name": "32", + "name_clean": "32" + }, + { + "variant_key": "05", + "name": "40", + "name_clean": "40" + }, + { + "variant_key": "06", + "name": "50", + "name_clean": "50" + }, + { + "variant_key": "07", + "name": "65", + "name_clean": "65" + }, + { + "variant_key": "08", + "name": "80", + "name_clean": "80" + }, + { + "variant_key": "09", + "name": "100", + "name_clean": "100" + }, + { + "variant_key": "10", + "name": "125", + "name_clean": "125" + }, + { + "variant_key": "11", + "name": "150", + "name_clean": "150" + }, + { + "variant_key": "12", + "name": "200", + "name_clean": "200" + }, + { + "variant_key": "13", + "name": "250", + "name_clean": "250" + }, + { + "variant_key": "14", + "name": "300", + "name_clean": "300" + } + ], "toc_code": "CP-05-04-01-04", "toc_number": "4-1-4", "toc_edition": "2026-01-01", diff --git a/resources/data_work_item_master/work_item_keys_const.json b/resources/data_work_item_master/work_item_keys_const.json index 6ee7eb10..b1719514 100644 --- a/resources/data_work_item_master/work_item_keys_const.json +++ b/resources/data_work_item_master/work_item_keys_const.json @@ -10951,5 +10951,969 @@ "first_toc_number": "4-3-3", "first_name": "배관누수 검사" } + }, + "variants": { + "CW-00063": { + "next_serial": 3, + "slots": { + "5m이하": "01", + "10m이하": "02" + } + }, + "CW-00064": { + "next_serial": 3, + "slots": { + "평규준틀": "01", + "귀규준틀": "02" + } + }, + "CW-00075": { + "next_serial": 3, + "slots": { + "10m이하": "01", + "10m초과∼20m이하": "02" + } + }, + "CW-00077": { + "next_serial": 3, + "slots": { + "높이2m": "01", + "높이4m": "02" + } + }, + "CW-00080": { + "next_serial": 3, + "slots": { + "벽용": "01", + "슬래브발코니,난간용": "02" + } + }, + "CW-00087": { + "next_serial": 3, + "slots": { + "보행자출입구": "01", + "차량출입구": "02" + } + }, + "CW-00116": { + "next_serial": 3, + "slots": { + "설치": "01", + "해체": "02" + } + }, + "CW-00117": { + "next_serial": 3, + "slots": { + "H=3.0m이하": "01", + "4.0m이하": "02" + } + }, + "CW-00118": { + "next_serial": 5, + "slots": { + "H=3.0m이하": "01", + "H=4.0m이하": "02", + "H=5.0m이하": "03", + "H=6.0m이하": "04" + } + }, + "CW-00127": { + "next_serial": 3, + "slots": { + "설치": "01", + "해체": "02" + } + }, + "CW-00129": { + "next_serial": 3, + "slots": { + "지상또는건물설치": "01", + "타워크레인설치": "02" + } + }, + "CW-00135": { + "next_serial": 4, + "slots": { + "300∼600㎜": "01", + "700∼900㎜": "02", + "1,000∼1,200㎜": "03" + } + }, + "CW-00151": { + "next_serial": 3, + "slots": { + "30㎝미만": "01", + "30㎝이상": "02" + } + }, + "CW-00154": { + "next_serial": 3, + "slots": { + "우물통발파": "01", + "우물통발파이외": "02" + } + }, + "CW-00158": { + "next_serial": 3, + "slots": { + "15cm": "01", + "30cm": "02" + } + }, + "CW-00182": { + "next_serial": 4, + "slots": { + "5m미만": "01", + "5m이상∼8m미만": "02", + "8m이상": "03" + } + }, + "CW-00210": { + "next_serial": 3, + "slots": { + "쌓기": "01", + "놓기": "02" + } + }, + "CW-00231": { + "next_serial": 3, + "slots": { + "토사": "01", + "자갈/호박돌": "02" + } + }, + "CW-00233": { + "next_serial": 3, + "slots": { + "ℓ=20m이하": "01", + "ℓ=20m∼35m": "02" + } + }, + "CW-00236": { + "next_serial": 3, + "slots": { + "외부반입/반출": "01", + "작업구간이동": "02" + } + }, + "CW-00239": { + "next_serial": 3, + "slots": { + "요동식": "01", + "전회전식": "02" + } + }, + "CW-00247": { + "next_serial": 3, + "slots": { + "무근콘크리트": "01", + "철근콘크리트": "02" + } + }, + "CW-00271": { + "next_serial": 3, + "slots": { + "ø12.7㎜": "01", + "ø15.2㎜": "02" + } + }, + "CW-00286": { + "next_serial": 5, + "slots": { + "D900": "01", + "D1,200": "02", + "D1,500": "03", + "D1,800": "04" + } + }, + "CW-00341": { + "next_serial": 3, + "slots": { + "2": "01", + "1": "02" + } + }, + "CW-00342": { + "next_serial": 2, + "slots": { + "2": "01" + } + }, + "CW-00343": { + "next_serial": 2, + "slots": { + "2": "01" + } + }, + "CW-00371": { + "next_serial": 2, + "slots": { + "㎾": "01" + } + }, + "CW-00450": { + "next_serial": 6, + "slots": { + "40㎝": "01", + "45㎝": "02", + "50㎝": "03", + "60㎝": "04", + "70㎝": "05" + } + }, + "CW-00454": { + "next_serial": 3, + "slots": { + "식생매트설치": "01", + "복토": "02" + } + }, + "CW-00472": { + "next_serial": 3, + "slots": { + "공동구": "01", + "바닥/인버트": "02" + } + }, + "CW-00487": { + "next_serial": 3, + "slots": { + "일단": "01", + "양단": "02" + } + }, + "CW-00489": { + "next_serial": 3, + "slots": { + "50㎏": "01", + "60㎏": "02" + } + }, + "CW-00491": { + "next_serial": 3, + "slots": { + "레일인장법": "01", + "자연대기온도법": "02" + } + }, + "CW-00494": { + "next_serial": 4, + "slots": { + "37㎏": "01", + "50㎏": "02", + "60㎏": "03" + } + }, + "CW-00497": { + "next_serial": 3, + "slots": { + "조임": "01", + "해체": "02" + } + }, + "CW-00527": { + "next_serial": 13, + "slots": { + "800": "01", + "900": "02", + "1,000": "03", + "1,100": "04", + "1,200": "05", + "1,350": "06", + "1,500": "07", + "1.650": "08", + "1,800": "09", + "2,000": "10", + "2,200": "11", + "2,400": "12" + } + }, + "CW-00537": { + "next_serial": 7, + "slots": { + "75": "01", + "100": "02", + "150": "03", + "200": "04", + "250": "05", + "300": "06" + } + }, + "CW-00547": { + "next_serial": 8, + "slots": { + "50": "01", + "75": "02", + "100": "03", + "150": "04", + "200": "05", + "250": "06", + "300": "07" + } + }, + "CW-00548": { + "next_serial": 5, + "slots": { + "800∼1,100": "01", + "1,200∼1,800": "02", + "2,000∼2,200": "03", + "2,400∼3,000": "04" + } + }, + "CW-00553": { + "next_serial": 3, + "slots": { + "80": "01", + "100": "02" + } + }, + "CW-00564": { + "next_serial": 2, + "slots": { + "0.1㎥이상": "01" + } + }, + "CW-00566": { + "next_serial": 3, + "slots": { + "0.1㎥이상": "01", + "0.03㎥이하": "02" + } + }, + "CW-00567": { + "next_serial": 6, + "slots": { + "기초고르기": "01", + "피복석고르기": "02", + "피복석거친고르기": "03", + "내부사석고르기": "04", + "필터사석고르기": "05" + } + }, + "CW-00586": { + "next_serial": 3, + "slots": { + "BX": "01", + "NX": "02" + } + }, + "CW-00700": { + "next_serial": 7, + "slots": { + "ø16이하": "01", + "ø20이하": "02", + "ø24이하": "03", + "ø28이하": "04", + "ø32이하": "05", + "ø40이하": "06" + } + }, + "CW-00703": { + "next_serial": 3, + "slots": { + "판두께1.6㎜": "01", + "판두께2.3㎜": "02" + } + }, + "CW-00708": { + "next_serial": 3, + "slots": { + "자동용접": "01", + "수동용접": "02" + } + }, + "CW-00715": { + "next_serial": 3, + "slots": { + "1.0B": "01", + "1.5B": "02" + } + }, + "CW-00717": { + "next_serial": 5, + "slots": { + "벽돌": "01", + "치장벽돌": "02", + "블록": "03", + "ALC블록": "04" + } + }, + "CW-00735": { + "next_serial": 3, + "slots": { + "주택": "01", + "일반": "02" + } + }, + "CW-00782": { + "next_serial": 3, + "slots": { + "바닥": "01", + "수직부": "02" + } + }, + "CW-00784": { + "next_serial": 3, + "slots": { + "바닥": "01", + "수직부": "02" + } + }, + "CW-00801": { + "next_serial": 3, + "slots": { + "1층(회)": "01", + "2층(회)": "02" + } + }, + "CW-00802": { + "next_serial": 3, + "slots": { + "바닥": "01", + "수직부": "02" + } + }, + "CW-00831": { + "next_serial": 3, + "slots": { + "450×450": "01", + "600×600": "02" + } + }, + "CW-00841": { + "next_serial": 3, + "slots": { + "일반철재": "01", + "경량철재": "02" + } + }, + "CW-00844": { + "next_serial": 3, + "slots": { + "모래체가름포함": "01", + "모래체가름제외": "02" + } + }, + "CW-00850": { + "next_serial": 3, + "slots": { + "3.6m이하": "01", + "3.6m초과∼7.2m이하": "02" + } + }, + "CW-00861": { + "next_serial": 5, + "slots": { + "1.0㎡이하": "01", + "1.0∼3.0㎡이하": "02", + "3.0∼6.0㎡이하": "03", + "6.0∼8.0㎡이하": "04" + } + }, + "CW-00862": { + "next_serial": 6, + "slots": { + "1.0㎡이하": "01", + "1.0∼3.0㎡이하": "02", + "3.0∼6.0㎡이하": "03", + "6.0∼9.0㎡이하": "04", + "9.0∼12.0㎡이하": "05" + } + }, + "CW-00865": { + "next_serial": 6, + "slots": { + "5㎡미만": "01", + "5∼10㎡미만": "02", + "10∼15㎡미만": "03", + "15∼20㎡미만": "04", + "20∼25㎡미만": "05" + } + }, + "CW-00871": { + "next_serial": 3, + "slots": { + "일반도어록": "01", + "디지털도어록": "02" + } + }, + "CW-00873": { + "next_serial": 2, + "slots": { + "12mm이하": "01" + } + }, + "CW-00922": { + "next_serial": 3, + "slots": { + "ø16mm": "01", + "ø20mm": "02" + } + }, + "CW-00946": { + "next_serial": 10, + "slots": { + "ø50이하": "01", + "65": "02", + "80": "03", + "100": "04", + "125": "05", + "150": "06", + "200": "07", + "250": "08", + "300": "09" + } + }, + "CW-00950": { + "next_serial": 3, + "slots": { + "세대내": "01", + "공용부위": "02" + } + }, + "CW-00955": { + "next_serial": 13, + "slots": { + "0.75㎾이하": "01", + "1.5㎾이하": "02", + "2.2㎾이하": "03", + "3.7㎾이하": "04", + "5.5㎾이하": "05", + "7.5㎾이하": "06", + "11㎾이하": "07", + "15㎾이하": "08", + "22㎾이하": "09", + "37㎾이하": "10", + "55㎾이하": "11", + "75㎾이하": "12" + } + }, + "CW-00956": { + "next_serial": 7, + "slots": { + "0.75㎾이하": "01", + "1.5㎾이하": "02", + "2.2㎾이하": "03", + "3.7㎾이하": "04", + "5.5㎾이하": "05", + "7.5㎾이하": "06" + } + }, + "CW-00957": { + "next_serial": 13, + "slots": { + "0.75㎾이하": "01", + "1.5㎾이하": "02", + "2.2㎾이하": "03", + "3.7㎾이하": "04", + "5.5㎾이하": "05", + "7.5㎾이하": "06", + "11㎾이하": "07", + "15㎾이하": "08", + "22㎾이하": "09", + "37㎾이하": "10", + "55㎾이하": "11", + "75㎾이하": "12" + } + }, + "CW-00963": { + "next_serial": 3, + "slots": { + "700㎜이하": "01", + "900㎜이하": "02" + } + }, + "CW-00969": { + "next_serial": 7, + "slots": { + "ø15mm": "01", + "ø20mm": "02", + "ø25mm": "03", + "ø32mm": "04", + "ø40mm": "05", + "ø50mm": "06" + } + }, + "CW-00972": { + "next_serial": 11, + "slots": { + "ø15∼25": "01", + "32∼50": "02", + "65": "03", + "80": "04", + "100": "05", + "125": "06", + "150": "07", + "200": "08", + "250": "09", + "300": "10" + } + }, + "CW-00977": { + "next_serial": 4, + "slots": { + "ø13∼15": "01", + "20∼32": "02", + "40∼50": "03" + } + }, + "CW-00978": { + "next_serial": 3, + "slots": { + "ø13∼15mm": "01", + "ø20∼32mm": "02" + } + }, + "CW-00981": { + "next_serial": 3, + "slots": { + "ø13∼15mm": "01", + "ø20∼32mm": "02" + } + }, + "CW-00982": { + "next_serial": 5, + "slots": { + "ø50mm": "01", + "ø65∼80mm": "02", + "ø100∼125mm": "03", + "ø150mm": "04" + } + }, + "CW-00986": { + "next_serial": 3, + "slots": { + "거치형": "01", + "벽걸이형": "02" + } + }, + "CW-01000": { + "next_serial": 4, + "slots": { + "0.5㎡미만": "01", + "1.0㎡미만": "02", + "1.5㎡미만": "03" + } + }, + "CW-01002": { + "next_serial": 4, + "slots": { + "ø50㎜": "01", + "ø75㎜": "02", + "ø100㎜": "03" + } + }, + "CW-01011": { + "next_serial": 17, + "slots": { + "유효길이610㎜": "01", + "762〃": "02", + "914〃": "03", + "1,067〃": "04", + "1,219〃": "05", + "1,372〃": "06", + "1,524〃": "07", + "1,676〃": "08", + "1,829〃": "09", + "1,981〃": "10", + "2,134〃": "11", + "2,286〃": "12", + "2,438〃": "13", + "2,591〃": "14", + "2,875〃": "15", + "3,048〃": "16" + } + }, + "CW-01014": { + "next_serial": 3, + "slots": { + "실내기": "01", + "실외기": "02" + } + }, + "CW-01018": { + "next_serial": 2, + "slots": { + "15,000Kcal/hr": "01" + } + }, + "CW-01020": { + "next_serial": 6, + "slots": { + "70×1,000kcal/hr이하": "01", + "120〃": "02", + "150〃": "03", + "240〃": "04", + "360〃": "05" + } + }, + "CW-01022": { + "next_serial": 10, + "slots": { + "주철재바닥설치20절이하": "01", + "21절이상": "02", + "벽걸이3절": "03", + "천장달기3절": "04", + "1m길트": "05", + "콘백터길이1m미만": "06", + "베이스보드1단형길이2m미만": "07", + "2m이상": "08", + "강판제및알루미늄제방열기1m미만": "09" + } + }, + "CW-01027": { + "next_serial": 7, + "slots": { + "2구": "01", + "3구": "02", + "4구": "03", + "5구": "04", + "6구": "05", + "7구": "06" + } + }, + "CW-01029": { + "next_serial": 8, + "slots": { + "100": "01", + "200": "02", + "300": "03", + "400": "04", + "500": "05", + "750": "06", + "1,000": "07" + } + }, + "CW-01032": { + "next_serial": 5, + "slots": { + "건타입오일버너0.75㎾": "01", + "1.5": "02", + "(전자동방식)2.2": "03", + "3.7": "04" + } + }, + "CW-01035": { + "next_serial": 11, + "slots": { + "ø50": "01", + "65": "02", + "80": "03", + "100": "04", + "125": "05", + "150": "06", + "200": "07", + "250": "08", + "300": "09", + "350": "10" + } + }, + "CW-01036": { + "next_serial": 3, + "slots": { + "일반철재": "01", + "경량철재": "02" + } + }, + "CW-01045": { + "next_serial": 3, + "slots": { + "지상노출관": "01", + "지하매설관": "02" + } + }, + "CW-01053": { + "next_serial": 2, + "slots": { + "소화용구격납상자": "01" + } + }, + "CW-01058": { + "next_serial": 2, + "slots": { + "관말시험밸브": "01" + } + }, + "CW-01067": { + "next_serial": 2, + "slots": { + "압력공기탱크": "01" + } + }, + "CW-01072": { + "next_serial": 2, + "slots": { + "스프링클러헤드": "01" + } + }, + "CW-01083": { + "next_serial": 6, + "slots": { + "ø20": "01", + "25": "02", + "32": "03", + "40": "04", + "50": "05" + } + }, + "CW-01085": { + "next_serial": 20, + "slots": { + "ø25": "01", + "32": "02", + "40": "03", + "50": "04", + "63": "05", + "75": "06", + "90": "07", + "110": "08", + "125": "09", + "140": "10", + "160": "11", + "180": "12", + "200": "13", + "225": "14", + "250": "15", + "280": "16", + "315": "17", + "355": "18", + "400": "19" + } + }, + "CW-01087": { + "next_serial": 13, + "slots": { + "ø20∼25": "01", + "40∼50": "02", + "65": "03", + "80": "04", + "100": "05", + "125": "06", + "150": "07", + "200": "08", + "250": "09", + "300": "10", + "350": "11", + "400": "12" + } + }, + "CW-01093": { + "next_serial": 7, + "slots": { + "분전반": "01", + "조작반": "02", + "계기반(자립개방)": "03", + "계기반(자립밀폐)": "04", + "계기반(현장)": "05", + "〃(발신기수납상)": "06" + } + }, + "CW-01100": { + "next_serial": 4, + "slots": { + "유니온엘보": "01", + "공기압축기시험": "02", + "조작함(설비물)": "03" + } + }, + "CW-01114": { + "next_serial": 5, + "slots": { + "ø20(90)": "01", + "25(90)": "02", + "32(110)": "03", + "40(110)": "04" + } + }, + "CW-01128": { + "next_serial": 7, + "slots": { + "ø16이하": "01", + "ø20이하": "02", + "ø24이하": "03", + "ø28이하": "04", + "ø32이하": "05", + "ø40이하": "06" + } + }, + "CW-01199": { + "next_serial": 4, + "slots": { + "7.5㎾": "01", + "15㎾": "02", + "30㎾": "03" + } + }, + "CW-01200": { + "next_serial": 2, + "slots": { + "0.5": "01" + } + }, + "CW-01201": { + "next_serial": 3, + "slots": { + "산기분기관제작": "01", + "분기관및산기장치설치": "02" + } + }, + "CW-01291": { + "next_serial": 5, + "slots": { + "#8번": "01", + "#10번": "02", + "#12번": "03", + "#15번": "04" + } + }, + "CW-01300": { + "next_serial": 3, + "slots": { + "3시간차단": "01", + "4시간차단": "02" + } + }, + "CW-01301": { + "next_serial": 3, + "slots": { + "판넬설치(개당)": "01", + "가받침해체및설치(m당)": "02" + } + }, + "CW-01302": { + "next_serial": 3, + "slots": { + "궤도정정": "01", + "궤도이설": "02" + } + }, + "CW-01306": { + "next_serial": 4, + "slots": { + "A급": "01", + "B급": "02", + "C급": "03" + } + }, + "CW-01358": { + "next_serial": 15, + "slots": { + "ø15": "01", + "20": "02", + "25": "03", + "32": "04", + "40": "05", + "50": "06", + "65": "07", + "80": "08", + "100": "09", + "125": "10", + "150": "11", + "200": "12", + "250": "13", + "300": "14" + } + } } } diff --git a/resources/data_work_item_master/work_item_master_2026-01-01.json b/resources/data_work_item_master/work_item_master_2026-01-01.json index 649274cf..9b7f3a82 100644 --- a/resources/data_work_item_master/work_item_master_2026-01-01.json +++ b/resources/data_work_item_master/work_item_master_2026-01-01.json @@ -4,7 +4,7 @@ "effective_date": "2026-01-01", "pum_edition": "2026-01-01", "toc_edition": "산림청고시제2025-82호", - "generated_at": "2026-09-17T18:21:40+09:00", + "generated_at": "2026-09-17T18:25:05+09:00", "dataset_version": { "dataset_id": "pum_forest", "effective_date": "2026-01-01", diff --git a/resources/tester/test_work_item_master_const.py b/resources/tester/test_work_item_master_const.py index 9922d478..7f054cb1 100644 --- a/resources/tester/test_work_item_master_const.py +++ b/resources/tester/test_work_item_master_const.py @@ -38,6 +38,7 @@ def _same_except_time(fresh: dict, saved: dict) -> None: for doc in (fresh, saved): doc.pop("generated_at") doc["stats"].pop("keys_newly_issued") # 첫 뽑기만 발급 · 다시 뽑으면 0 + doc["stats"].pop("variant_keys_newly_issued", None) # 갈래 열쇠도 같음 assert fresh == saved @@ -149,3 +150,28 @@ def test_산림을_고르는_쪽이_건설_파일을_안_집음() -> None: assert load_master()["dataset_id"] == "work_item_master_forest" assert not list(OUT.glob("work_item_master_*const*.json")) + + +def test_건설_갈래도_이름을_다듬어도_같은_열쇠(master: dict) -> None: + """④ 건설 갈래 펴기(2026-09-17) — 갈래 열쇠는 번호(`CW-00063#01`) · 자간·물결표를 손질해도 새로 안 남.""" + import copy + + from B08_Quantity.B08_Quantity_Build_WorkItemMaster_Keys import ( + assign_variant_keys, + load_registry, + ) + + items = master["work_items"] + spread = [it for it in items if it.get("variants")] + assert len(spread) > 100 and sum(len(it["variants"]) for it in spread) > 400 + registry = load_registry(const.CONST_KEY_REGISTRY, const.KEY_PREFIX) + nodes = copy.deepcopy(spread) + for node in nodes: # 사람이 이름을 다듬은 날 — 자간 한 칸 · 물결표 다른 벌 + node["variant_keys"] = [ + " ".join(k.split()).replace("∼", "~") for k in node["variant_keys"] + ] + assert assign_variant_keys(nodes, registry) == [] # 새 번호 0 + for before, after in zip(spread, nodes): + assert [v["variant_key"] for v in after["variants"]] == [ + v["variant_key"] for v in before["variants"] + ] diff --git a/resources/tester/test_z01_master_data.py b/resources/tester/test_z01_master_data.py index 47d53e0d..112a68b6 100644 --- a/resources/tester/test_z01_master_data.py +++ b/resources/tester/test_z01_master_data.py @@ -85,7 +85,8 @@ def test_트리_표_id_와_이름표_표_id_는_양쪽으로_같음(client: Test assert not_labelled == [], not_labelled assert label_only == [], label_only # 2026-09-17 92 → 101 — 공종 축 산출 일곱 + 갈래 열쇠 장부 표. - assert sum(len(t) for t in files.values()) == LABELS["counts"]["tables"] == 101 + # 2026-09-17 101 → 102 — 건설 열쇠 장부에도 갈래 표(건설 갈래 펴기 ④). + assert sum(len(t) for t in files.values()) == LABELS["counts"]["tables"] == 102 for entry in LABELS["files"]: # 이름이 실제로 붙음 · 줄 수도 이름표 셈과 같음 named = {t["key"]: t for t in entry["tables"]} for t in files[entry["file_id"]]: diff --git a/resources/tester/test_z01_work_items.py b/resources/tester/test_z01_work_items.py index bd051de1..7b9e4b0b 100644 --- a/resources/tester/test_z01_work_items.py +++ b/resources/tester/test_z01_work_items.py @@ -76,9 +76,11 @@ def test_산림_평평한_잎_목록과_계산_규칙(client: TestClient) -> Non def test_건설_공종_축도_같은_길(client: TestClient) -> None: - """건설(2026-09-17 뽑음) — 부문이 뿌리라 경로가 부문부터 · 열쇠 CW- · 계산 규칙은 전부 choose_one.""" + """건설(2026-09-17 뽑음) — 부문이 뿌리라 경로가 부문부터 · 열쇠 CW- · 계산 규칙은 전부 choose_one. + 갈래도 산림과 같은 표 읽기로 폄(④ · 공종 997 → 줄 1,293 · 갈래 열쇠 `CW-00063#01`).""" table = _get(client, "work_item_const", size=500, axis_role="") - assert table["total"] == table["stats"]["work_items"] > 900 + assert table["stats"] == {"work_items": 997, "units": 1293} and table["total"] == 1293 + assert sum(1 for r in table["rows"] if "#" in r["@id"]) > 0 rows = table["rows"] assert all(r["@id"].startswith("CW-") for r in rows) assert all(r["name"].split(" › ")[0].endswith("부문") for r in rows) @@ -200,7 +202,11 @@ def test_연결고리_표가_이은_줄에_연결됨_감추지_않고_표시만( } - confirmed for kind, prefix in (("work_item_const", "CW-"), ("work_item_forest", "FW-")): every = _get(client, kind, size=500, axis_role="") - rows = every["rows"] + _get(client, kind, size=500, page=2, axis_role="")["rows"] + rows = [ + row + for page in range(1, every["total"] // 500 + 2) + for row in _get(client, kind, size=500, page=page, axis_role="")["rows"] + ] assert len(rows) == every["total"] # 연결 거르기 기본은 「전부」 — 다 보임 marked = {r["@key"] for r in rows if r["link"] == "연결됨"} # 갈래 줄은 공종 열쇠로 listed = {r["@key"] for r in rows} # 표가 안 붙은 묶는 마디(CW-01329 따위)는 목록 밖