Merge origin/sub_laptop_4 into sub_laptop_3 — 본뜬키 칸 · 자재 조합 표는 sub4 판 기준

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RoyUwuTFiDJfvCfHpvKKzp
This commit is contained in:
2026-09-28 19:01:22 +09:00
co-authored by Claude Sonnet 5
17 changed files with 697 additions and 57 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
{
"다음": {"LB": 409, "EQ": 655, "RT": 20, "MN": 7000, "MT": 30719, "MO": 74, "MP": 364, "FX": 6, "CF": 159, "QF": 477, "GF": 252, "CC": 341, "GC": 1104, "QC": 2060, "GX": 1, "UA": 38},
"다음": {"LB": 409, "EQ": 655, "RT": 20, "MN": 7000, "MT": 30719, "MO": 74, "MP": 364, "FX": 6, "CF": 159, "QF": 477, "GF": 252, "CC": 341, "GC": 1104, "QC": 2060, "GX": 1, "UA": 38, "UM": 1},
"폐기": {"MT000001": "자재품목 휘발유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000002": "자재품목 경유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000003": "자재품목 선박용경유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000004": "자재품목 중유 — 값이 비고 글뿐 · 유가 테이블로 감", "MT000005": "자재품목 등유 — 값이 비고 글뿐 · 유가 테이블로 감", "LB000399": "이름 「〃」 — 직종이 아니라 되풀이 기호 · 소요량 13-6-9 에서 윗줄 직종으로 바로잡음", "MN": "재료_나라장터자재 — old 로 옮김 · 로직은 자재품목·품셈재료로 갈아 끼움", "LB000372": "미확보 고급기능사 — 측량노임 항공사진고급기능사 옛이름으로 옮김", "LB000393": "미확보 리베팅공 — 건설노임 철골공 옛이름으로 옮김(2010 통합표 연번10)", "LB000405": "미확보 Belt Conveyor 설치공 — 품셈 13-10-1 주② 배분으로 다섯 직종에 나눔", "MT000006": "자재품목 전력 — 재료_유가전력 전력 줄로 감", "MT000007": "자재품목 전력 — 재료_유가전력 전력 줄로 감", "LB000368": "미확보 기술사 — 기술사(건설) 옛이름으로 옮김", "LB000369": "미확보 특급기술자 — 특급기술자(건설) 옛이름으로 옮김", "LB000370": "미확보 고급기술자 — 고급기술자(건설) 옛이름으로 옮김", "LB000361": "미확보 중급기술자 — 중급기술자(건설) 옛이름으로 옮김", "LB000364": "미확보 초급기술자 — 초급기술자(건설) 옛이름으로 옮김", "LB000365": "미확보 고급숙련기술자 — 고급숙련기술자(건설) 옛이름으로 옮김", "LB000366": "미확보 중급숙련기술자 — 중급숙련기술자(건설) 옛이름으로 옮김", "LB000367": "미확보 초급숙련기술자 — 초급숙련기술자(건설) 옛이름으로 옮김", "LB000389": "미확보 기계기사 — 초급기술자(기계·설비) 옛이름으로 옮김", "LB000388": "미확보 기계산업기사 — 초급숙련기술자(기계·설비) 옛이름으로 옮김", "MO000055": {"원문번호": "주택용저압:기본_200이하", "파일": "재료_유가전력.json"}, "MO000056": {"원문번호": "주택용저압:기본_201~400", "파일": "재료_유가전력.json"}, "MO000057": {"원문번호": "주택용저압:기본_400초과", "파일": "재료_유가전력.json"}, "MO000059": {"원문번호": "주택용저압:전력량_다음200", "파일": "재료_유가전력.json"}, "MO000060": {"원문번호": "주택용저압:전력량_400초과", "파일": "재료_유가전력.json"}, "MO000061": {"원문번호": "주택용저압:월간최저요금", "파일": "재료_유가전력.json"}, "MO000062": {"원문번호": "일반용갑I저압:기본", "파일": "재료_유가전력.json"}, "MO000063": {"원문번호": "일반용갑I저압:전력량_여름철", "파일": "재료_유가전력.json"}, "MO000064": {"원문번호": "일반용갑I저압:전력량_봄가을철", "파일": "재료_유가전력.json"}, "MO000065": {"원문번호": "일반용갑I저압:전력량_겨울철", "파일": "재료_유가전력.json"}, "MO000066": {"원문번호": "산업용갑I저압:기본", "파일": "재료_유가전력.json"}, "MO000067": {"원문번호": "산업용갑I저압:전력량_여름철", "파일": "재료_유가전력.json"}, "MO000068": {"원문번호": "산업용갑I저압:전력량_봄가을철", "파일": "재료_유가전력.json"}, "MO000069": {"원문번호": "산업용갑I저압:전력량_겨울철", "파일": "재료_유가전력.json"}, "MO000070": {"원문번호": "임시전력갑:기본요금적용", "파일": "재료_유가전력.json"}, "MO000071": {"원문번호": "임시전력갑:전력량요금적용", "파일": "재료_유가전력.json"}, "MO000072": {"원문번호": "임시전력갑:월간최저요금", "파일": "재료_유가전력.json"}},
"키": {
"CC000001": {"원문번호": "공통 1-3-1 콘크리트 및 포장용 재료", "파일": "계수_건설품셈_01장_적용기준.json"},
+14 -4
View File
@@ -38,7 +38,7 @@
| MT | 재료 자재품목 | CF · CC | 계수 산림 · 건설 |
| MO | 재료 유가 | RT | 요율 |
| MP | 재료 품셈재료(old/ — PLAN 7-4b) | GF · GC · GX | 로직 산림 · 건설 · 자체 |
| EQ | 기계 | | |
| EQ | 기계 | UA · UM | 일위대가 조합 · 자재 조합 |
- 빌더는 옛 모양(`열쇠` · 원문별 파일)으로 쓰고 끝에 `scripts/master_keys.py` 의 `adopt` 를 부름 — 키·원문번호·한 테이블·장 파일 이름으로 받음. 옛 이름으로 읽기는 `old_view`.
@@ -279,17 +279,17 @@
{ "로직": "GF000219", "메모": "인력 메쌓기" },
{ "로직": "GF000220", "메모": null }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": null
}
]
}
```
- 열 한 벌 — `키` · `이름` · `구분` · `상세구분` · `단위` · `담은로직` · `출처` · `소유` · `본뜬키` · `비고`(차례까지 이대로 · 안 채운 칸은 `null`).
- `본뜬키` = 이 조합을 본떠 만든 원본 조합 키(같은 파일의 다른 UA) · `null` 이면 원본 · 자기 키 안 됨 · M02 가 열 몫으로 갈라 낼 때 채움.
- 열 한 벌 — `키` · `이름` · `구분` · `상세구분` · `단위` · `담은로직` · `본뜬키` · `출처` · `소유` · `비고`(차례까지 이대로 · 안 채운 칸은 `null`).
- `본뜬키` = 갈라 낸 원래 조합 키(M02 조합 갈라 내기) · 없으면 `null` · M01 고치기는 안 보내도 그대로 둠.
- **담은 로직 목록만 둠** — 수량 · 비율 · 계산 칸을 두지 않음. 로직마다 하는 일이 달라 수량은 로직마다 따로 들어가고, 그 대입과 합계는 프로젝트 몫(B08 · B09).
- `담은로직` 줄 = `{로직, 메모}` 뿐 · 목록 차례가 곧 조합 안 차례. `메모` = 글자 또는 `null` — 수량 같은 값을 넣는 자리가 아님.
- `키` = `UA` + 6자리 — 대장 `_키대장.json` 의 `UA` 다음 번호(서버가 줌). 원문이 없어 **줄에 `원문번호` 를 두지 않음**(대장 열쇠는 조합 이름).
@@ -297,3 +297,13 @@
- `이름` = 글자 · 빈 이름 안 됨 · 60자까지(`master_combo.MAX_이름`) · 같은 파일 안에서 안 겹침.
- 검사(`check_master.py 조합` · 엔진 `scripts/master_combo.py`) — 없는 로직 키 · 단가산출 로직이 아닌 키 · 같은 로직 두 번 · 빈 조합 · **조합이 조합을 담음**(1단만) · 메모가 글자·`null` 아님 · 이름이 글자 아니거나 없음·너무 김·겹침.
- 「이 로직을 쓰는 조합」 은 로직 줄에 칸으로 박지 않고 물을 때 훑어 찾음(`master_combo.using`) — 조합은 관리자가 그때그때 만드는 것이라 박아 두면 낡음. 소요량 「용도」 와 결은 같되 자리가 다름.
## 11. 자재 조합 파일
`자재조합.json` 하나 — 구조물 열 재료산출이 쓰는 **자재 목록 묶음**. 머리 `그룹` · `판` · `비고` · `줄`(원문 없음).
- 열 한 벌 — `키` · `이름` · `담은자재` · `본뜬키` · `소유` · `비고`(차례까지 이대로 · 엔진 `scripts/master_material_combo.py`).
- `키` = `UM` + 6자리 — 대장 `UM` 다음 번호 · 줄에 `원문번호` 를 두지 않음.
- `담은자재` 줄 = `{코드, 이름, 규격, 단위}` 뿐 · 빈 목록 안 됨 · 같은 코드 두 번 안 됨 · 수량 · 계산은 두지 않음(재료산출 몫).
- `본뜬키` = 갈라 낸 원래 자재 조합 키 · 없으면 `null` · `소유` = `현장` · `공용`.
- 새 줄은 M02 갈라 내기(`POST /api/m02/structures/{열}/material-combo`)가 만듦 — 같은 자재 집합이 있으면 그 키.
@@ -30,6 +30,7 @@ sys.path.insert(0, str(ROOT / "resources/knowledge/original/_pipeline"))
import master_combo as mcb # noqa: E402
import master_formula as mf # noqa: E402
import master_keys as mk # noqa: E402
import master_material_combo as mmc # noqa: E402
from pum_md_tool import _NUM, md_lines # noqa: E402
BOOKS = (
@@ -226,7 +227,6 @@ def check_combo_form(name: str, data: dict) -> list[str]:
if not isinstance(rows_, list):
return out + [f"{name} · 머리 「줄」 목록 없음"]
seen_names: dict[str, str] = {}
own = {str(r.get("키")) for r in rows_}
for row in rows_:
key = str(row.get("키"))
where = f"{name} · {key} {row.get('이름') or ''}".strip()
@@ -251,14 +251,16 @@ def check_combo_form(name: str, data: dict) -> list[str]:
if not _source_ok(row.get("출처")):
out.append(f"{where} · 출처 모양 「{row.get('출처')}」")
origin = row.get("본뜬키")
if origin is not None and (origin == key or origin not in own):
out.append(f"{where} · 본뜬키 「{origin}」 — 비었거나 이 파일의 다른 조합 키여야 함")
if origin is not None and not (mk.KEY.fullmatch(str(origin)) and origin[:2] == mcb.TID):
out.append(f"{where} · 본뜬키 모양 「{origin}」")
return out
def check_form(name: str, data: dict) -> list[str]:
if name == mcb.FILE:
return check_combo_form(name, data)
if name == mmc.FILE:
return mmc.check_form(name, data)
if name in SPECIAL_FILES:
return []
m = _FILE.match(name)
@@ -18,8 +18,8 @@ FILE = "일위대가조합.json"
TID = "UA"
OWNERS = ("현장", "공용")
MAX_이름 = 60 # 조합 이름 최대 글자 수 — 관리자가 짓는 짧은 이름이라 이보다 길면 저장 막음
# 줄 열 한 벌 — 차례까지 이대로(`_틀.md` 10장)
COLS = ("키", "이름", "구분", "상세구분", "단위", "담은로직", "출처", "소유", "본뜬키", "비고")
# 줄 열 한 벌 — 차례까지 이대로(`_틀.md` 10장) · 본뜬키 = 갈라 낸 원래 조합 키(없으면 null)
COLS = ("키", "이름", "구분", "상세구분", "단위", "담은로직", "본뜬키", "출처", "소유", "비고")
ITEM_COLS = ("로직", "메모")
+4 -2
View File
@@ -32,12 +32,13 @@ TABLES = {
("로직", "건설품셈"): "GC",
("로직", "자체"): "GX",
("일위대가조합", None): "UA",
("자재조합", None): "UM",
}
GROUP_OF = {tid: group for (group, _), tid in TABLES.items()}
IDS = tuple(GROUP_OF)
# 줄에 원문번호를 두지 않는 테이블 — 자재품목은 번호가 남의 품번이라 이름 몫을 못 하고,
# 조합은 원문이 없어 번호 자체가 없음(대조는 대장에만)
NO_NUMBER = ("MT", "UA")
NO_NUMBER = ("MT", "UA", "UM")
def table_id(group: str, book: str | None) -> str:
@@ -181,11 +182,12 @@ ROW_ORDER = {
"상세구분",
"단위",
"담은로직",
"본뜬키",
"출처",
"소유",
"본뜬키",
"비고",
),
"자재조합": ("키", "이름", "담은자재", "본뜬키", "소유", "비고"),
}
OLD_CHAPTER = re.compile(r"^(소요량|계수|로직)_(산림품셈|건설품셈)_(\D*)(\d+)장\.json$")
CHAPTER = re.compile(r"^(소요량|계수|로직)_(산림품셈|건설품셈|자체)_(\d\d)장_.+\.json$")
@@ -0,0 +1,66 @@
# -*- coding: utf-8 -*-
"""자재 조합 — 구조물 열 재료산출이 쓰는 자재 목록 묶음(키 UM · `_틀.md` 11장).
담은 자재 목록만 지님(수량 · 계산은 재료산출 몫). 일위대가 조합(`master_combo`)과 같은 결 —
갈라 내기(M02) 때 새 줄 · 본뜬키 = 원래 키.
"""
from __future__ import annotations
import master_combo as mcb
import master_keys as mk
GROUP = "자재조합"
FILE = "자재조합.json"
TID = "UM"
OWNERS = mcb.OWNERS
MAX_이름 = mcb.MAX_이름
COLS = mk.ROW_ORDER[GROUP] # 키 · 이름 · 담은자재 · 본뜬키 · 소유 · 비고
ITEM_COLS = ("코드", "이름", "규격", "단위")
def items(row: dict) -> list[dict]:
got = row.get("담은자재")
return got if isinstance(got, list) else []
def check_form(name: str, data: dict) -> list[str]:
"""파일 틀 + 줄 — 키 모양 · 열 한 벌 · 이름 · 소유 · 담은 자재(빈 목록 · 모양 · 같은 코드 두 번)."""
out = [] if data.get("그룹") == GROUP else [f"{name} · 머리 그룹이 「{GROUP}」 아님"]
rows = data.get("줄")
if not isinstance(rows, list):
return out + [f"{name} · 머리 「줄」 목록 없음"]
seen_names: dict[str, str] = {}
for row in rows:
key = str(row.get("키"))
where = f"{name} · {key} {row.get('이름') or ''}".strip()
if not mk.KEY.fullmatch(key) or key[:2] != TID:
out.append(f"{where} · 키 모양이 「{TID}」 + 6자리 아님")
if tuple(row) != COLS:
out.append(f"{where} · 열이 한 벌이 아님 — 「{' · '.join(COLS)}」")
plain = row.get("이름").strip() if isinstance(row.get("이름"), str) else ""
if not plain or len(plain) > MAX_이름:
out.append(f"{where} · 「이름」 이 없거나 {MAX_이름}자 넘음")
elif plain in seen_names:
out.append(f"{where} · 「이름」 이 같은 조합과 겹침 — {seen_names[plain]}")
seen_names.setdefault(plain, key)
if row.get("소유") not in OWNERS:
out.append(f"{where} · 소유 「{row.get('소유')}」 — {' · '.join(OWNERS)} 아님")
origin = row.get("본뜬키")
if origin is not None and not (mk.KEY.fullmatch(str(origin)) and origin[:2] == TID):
out.append(f"{where} · 본뜬키 모양 「{origin}」")
got = items(row)
if not got:
out.append(f"{where} · 빈 조합 — 담은 자재가 없음")
codes: set[str] = set()
for at, one in enumerate(got, start=1):
if not isinstance(one, dict) or set(one) - set(ITEM_COLS):
out.append(f"{where} 줄{at} · 담은 자재 줄 모양 「{one}」")
continue
code = str(one.get("코드") or "")
if not mk.KEY.fullmatch(code):
out.append(f"{where} 줄{at} · 자재 코드 모양 아님 「{code}」")
elif code in codes:
out.append(f"{where} 줄{at} · 같은 자재를 두 번 담음 「{code}」")
codes.add(code)
return out
+37 -37
View File
@@ -10,9 +10,9 @@
"상세구분": null,
"단위": "식",
"담은로직": [{ "로직": "GF000219", "메모": "메쌓기 — 돌쌓기 인력" }, { "로직": "GF000119", "메모": "노체포설 — 굴착기 0.7㎥" }, { "로직": "GF000137", "메모": "운반 — 중기운반 트레일러(20ton)" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "브레인이 넣은 견본 · 조합 화면을 바로 볼 수 있게 함 · 지워도 됨"
},
{
@@ -29,9 +29,9 @@
{ "로직": "GF000156", "메모": "콘크리트비빔 채움재 (실무 수는 옛 판 값)" },
{ "로직": "GC000214", "메모": "유로폼 설치 및 해체 간단" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "글자새김 자당 6*6 — 우리 로직에 없음\n잔토처리 굴삭기 0.2m3 — 우리 로직에 없음\n실무 호표 — 봉화 B00005 · 울진대흥 B01224"
},
{
@@ -51,9 +51,9 @@
{ "로직": "GF000218", "메모": "잡석운반및다짐 (실무 수는 옛 판 값)" },
{ "로직": "GF000124", "메모": "면고르기" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "깬잡석채집 L=30cm 내외 — 후보 「막돌 채집」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 기계(0.7㎥,100%) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n잔토처리 굴삭기 0.7m3 — 우리 로직에 없음\n측구수로관부설 500∼700kg미만 — 우리 로직에 없음\n기초잡석채집및운반부설 4.5톤(L=500) — 우리 로직에 없음\n실무 호표 — 봉화 B00008 · 봉화 B00030 · 영월 B02019 · 영월 B02052 · 영월 B02134"
},
{
@@ -75,9 +75,9 @@
{ "로직": "GC000088", "메모": "구조물터파기(토사) 굴착기0.6m3" },
{ "로직": "GF000113", "메모": "구조물되메우기 굴착기0.6m3 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "깬잡석채집 L=45cm 내외 — 후보 「막돌 채집」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 기계(0.7㎥,100%) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n막자갈채집 기계(0.7㎥,100%) — 후보 「모래·자갈·약돌 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 기계 — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n막자갈채집 기계 — 후보 「모래·자갈·약돌 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 굴삭기0.7m3 — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n막자갈채우기 150mm내외 — 후보 「자갈고르기」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n구조물잔토처리 굴착기0.6m3 — 우리 로직에 없음\n실무 호표 — 봉화 B00010 · 봉화 B00011 · 봉화 B00022 · 봉화 B00047 · 울진대흥 B01212 · 울진대흥 B01213 · 울진대흥 B01214 · 울진대흥 B01215 · 울진대흥 B01216 · 울진대흥 B01225 · 울진대흥 B01226 · 울진대흥 B01227 · 울진대흥 B01231 · 울진소광 B02122"
},
{
@@ -99,9 +99,9 @@
{ "로직": "GC000015", "메모": "강관동바리 2.5m이하(1개월) (실무 수는 옛 판 값)" },
{ "로직": "GC000821", "메모": "잡철물제작및설치(현장) 일반철재" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "PE관 부설 및 접합 D50 — 후보 「부단수 할정자관 부설 및 접합」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n기초잡석채집및운반부설 4.5톤(L=500) — 우리 로직에 없음\n실무 호표 — 봉화 B00012 · 영월 B02002 · 거창 제12호표"
},
{
@@ -116,9 +116,9 @@
{ "로직": "GF000156", "메모": "콘크리트믹서사용 0.45 m3 (실무 수는 옛 판 값)" },
{ "로직": "GF000162", "메모": "콘크리트포장(B-type) t=20cm (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 봉화 B00014 · 울진대흥 B01232"
},
{
@@ -128,9 +128,9 @@
"상세구분": null,
"단위": "m",
"담은로직": [{ "로직": "GF000162", "메모": "콘크리트포장(인력) T=20㎝" }, { "로직": "GC000211", "메모": "합판거푸집(6회) 간단" }, { "로직": "GF000163", "메모": "콘크리트포장절단공 임도 (실무 수는 옛 판 값)" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "기초잡석채집및운반부설 4.5톤(L=500) — 우리 로직에 없음\n실무 호표 — 영월 B02059"
},
{
@@ -155,9 +155,9 @@
{ "로직": "GC000088", "메모": "구조물터파기(토사) 굴착기0.6m3" },
{ "로직": "GF000113", "메모": "구조물되메우기 굴착기0.6m3 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "막자갈채집 기계(0.7㎥,100%) — 후보 「모래·자갈·약돌 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n깬잡석채집 L=30cm 내외 — 후보 「막돌 채집」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 기계(0.7㎥,100%) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n기초잡석채집및운반부설 4.5톤(L=500) — 우리 로직에 없음\n야면석 채집 운반 (25x25x35㎝)장비 — 후보 「야면석 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집운반 4.5톤덤프(L=500) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n큰돌채집운반(뒷길이 0.6~0.8m) 장비(80%) + 인력(20%) — 후보 「모래·자갈·약돌 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n녹생토(종자배합) 암절개지 및 특수지반 녹화용 (700kg/㎥) — 우리 로직에 없음\n막자갈채집 기계 — 후보 「모래·자갈·약돌 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 기계 — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 굴삭기0.7m3 — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n막자갈(파쇄석)채집 — 후보 「막돌 채집」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n막자갈채우기 150mm내외 — 후보 「자갈고르기」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n구조물잔토처리 굴착기0.6m3 — 우리 로직에 없음\n실무 호표 — 봉화 B00017 · 봉화 B00018 · 봉화 B00029 · 봉화 B00048 · 봉화 B00049 · 봉화 B00055 · 봉화 B00056 · 영월 B01981 · 영월 B01983 · 영월 B01988 · 영월 B02045 · 영월 B02155 · 울진대흥 B01219 · 울진대흥 B01220 · 울진소광 B02120"
},
{
@@ -176,9 +176,9 @@
{ "로직": "GC000677", "메모": "모르터바르기 1:3" },
{ "로직": "GC000088", "메모": "구조물터파기(토사) 굴착기0.6m3" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "깬잡석채집 L=30cm 내외 — 후보 「막돌 채집」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 기계(0.7㎥,100%) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n잔토처리 굴삭기 0.7m3 — 우리 로직에 없음\n깬잡석채집 L=60cm 내외 — 후보 「막돌 채집」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 기계 — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n파쇄석 채집 L3=35cm내외 — 후보 「막돌 채집」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 굴삭기0.2m3 — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n구조물잔토처리 굴착기0.6m3 — 우리 로직에 없음\n실무 호표 — 봉화 B00020 · 봉화 B00032 · 봉화 B00036 · 봉화 B00064 · 울진대흥 B01222 · 울진대흥 B01223 · 울진대흥 B01229 · 울진대흥 B01230 · 울진소광 B02125"
},
{
@@ -198,9 +198,9 @@
{ "로직": "GC000088", "메모": "구조물 터파기(토사) 굴삭기 0.2m3" },
{ "로직": "GF000113", "메모": "구조물 되메우기 굴삭기 0.2m3 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "잔토처리 굴삭기 0.2m3 — 우리 로직에 없음\n실무 호표 — 봉화 B00025"
},
{
@@ -217,9 +217,9 @@
{ "로직": "GC000677", "메모": "모르타르배합 1:3" },
{ "로직": "GC000088", "메모": "구조물터파기(토사) 굴착기0.6m3" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "깬잡석채집 L=35cm 내외 — 후보 「막돌 채집」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집 기계(0.7㎥,100%) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n야면석 채집 운반 (25x25x35㎝)장비 — 후보 「야면석 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집운반 4.5톤덤프(L=500) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n야면석소운반(L=35CM) (L=20m) — 우리 로직에 없음\n콘크리트소운반 (L=20m) — 우리 로직에 없음\n고임돌채집 굴삭기0.7m3 — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n구조물잔토처리 굴착기0.6m3 — 우리 로직에 없음\n실무 호표 — 봉화 B00034 · 영월 B02016 · 영월 B02017 · 울진소광 B02124"
},
{
@@ -234,9 +234,9 @@
{ "로직": "GC000206", "메모": "철근가공및조립(현장) 일반(Type-Ⅰ-1)" },
{ "로직": "GC000207", "메모": "철근가공및조립(현장) 일반(Type-Ⅰ-1)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 봉화 B00038"
},
{
@@ -252,9 +252,9 @@
{ "로직": "GC000207", "메모": "철근가공 및 조립 Type-Ⅰ-1,현장가공조립" },
{ "로직": "GC000712", "메모": "유성페인트칠(붓칠)-황색 콘크리트,모르타르면3회 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 봉화 B00041"
},
{
@@ -272,9 +272,9 @@
{ "로직": "GC000022", "메모": "강관비계 3개월사용 (실무 수는 옛 판 값)" },
{ "로직": "GC000211", "메모": "합판거푸집 6회 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 봉화 B00058 · 거창 제5호표 · 거창 제6호표"
},
{
@@ -289,9 +289,9 @@
{ "로직": "GC000206", "메모": "철근가공 및 조립 Type-Ⅰ-1,현장가공조립" },
{ "로직": "GC000207", "메모": "철근가공 및 조립 Type-Ⅰ-1,현장가공조립" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 봉화 B00062 · 거창 제9호표"
},
{
@@ -306,9 +306,9 @@
{ "로직": "GF000101", "메모": "구조물터파기(인력) 경질토사 (실무 수는 옛 판 값)" },
{ "로직": "GF000113", "메모": "구조물되메우기 (인력) (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "잔토처리 인력100% — 우리 로직에 없음\n실무 호표 — 영월 B00704"
},
{
@@ -324,9 +324,9 @@
{ "로직": "GF000101", "메모": "구조물터파기(인력) 경질토사 (실무 수는 옛 판 값)" },
{ "로직": "GF000113", "메모": "구조물되메우기 (인력) (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "기초잡석채집및운반부설 4.5톤(L=500) — 우리 로직에 없음\n잔토처리 인력100% — 우리 로직에 없음\n실무 호표 — 영월 B01982"
},
{
@@ -342,9 +342,9 @@
{ "로직": "GF000113", "메모": "구조물되메우기 (인력) (실무 수는 옛 판 값)" },
{ "로직": "GC000310", "메모": "도로반사경설치 D=1000(STS)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "기초잡석채집및운반부설 4.5톤(L=500) — 우리 로직에 없음\n잔토처리 인력100% — 우리 로직에 없음\n실무 호표 — 영월 B01997"
},
{
@@ -359,9 +359,9 @@
{ "로직": "GF000101", "메모": "구조물터파기(인력) 경질토사 (실무 수는 옛 판 값)" },
{ "로직": "GF000113", "메모": "구조물되메우기 (인력) (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "기초잡석채집및운반부설 4.5톤(L=500) — 우리 로직에 없음\n잔토처리 인력100% — 우리 로직에 없음\n실무 호표 — 영월 B02152"
},
{
@@ -371,9 +371,9 @@
"상세구분": null,
"단위": "㎡",
"담은로직": [{ "로직": "GC000149", "메모": "관목식재(단식) H=0.3~0.7m" }, { "로직": "GC000148", "메모": "굴취(관목) H=0.3~0.7m" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "인력운반 기타 — 우리 로직에 없음\n실무 호표 — 계류보전 B01099"
},
{
@@ -388,9 +388,9 @@
{ "로직": "GC000088", "메모": "구조물터파기(토사) 굴착기0.6m3" },
{ "로직": "GF000113", "메모": "구조물되메우기 굴착기0.6m3 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "구조물잔토처리 굴착기0.6m3 — 우리 로직에 없음\n실무 호표 — 울진소광 B02121"
},
{
@@ -400,9 +400,9 @@
"상세구분": null,
"단위": "개소",
"담은로직": [{ "로직": "GC000198", "메모": "레미콘타설 무근(장비)" }, { "로직": "GC000214", "메모": "유로폼 설치 및 해체 간단" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 울진소광 B02129"
},
{
@@ -416,9 +416,9 @@
{ "로직": "GC000088", "메모": "구조물터파기(토사) 굴착기0.6m3" },
{ "로직": "GF000113", "메모": "구조물되메우기 굴착기0.6m3 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "고임돌채집 굴삭기0.7m3 — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n막자갈채우기 150mm내외 — 후보 「자갈고르기」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n구조물잔토처리 굴착기0.6m3 — 우리 로직에 없음\n실무 호표 — 울진소광 B02123"
},
{
@@ -436,9 +436,9 @@
{ "로직": "GC000088", "메모": "구조물터파기(토사) 굴착기0.6m3" },
{ "로직": "GF000113", "메모": "구조물되메우기 굴착기0.6m3 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "물구멍설치 D=50mm — 우리 로직에 없음\n실무 호표 — 울진소광 B02128"
},
{
@@ -453,9 +453,9 @@
{ "로직": "GC000206", "메모": "철근가공및조립(현장) Type-Ⅱ-1" },
{ "로직": "GC000207", "메모": "철근가공및조립(현장) Type-Ⅱ-1" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 거창 제7호표 · 거창 제8호표"
},
{
@@ -465,9 +465,9 @@
"상세구분": null,
"단위": "m",
"담은로직": [{ "로직": "GC000088", "메모": "구조물 터파기(토사) 굴삭기 0.2m3" }, { "로직": "GF000113", "메모": "구조물 되메우기 굴삭기 0.2m3 (실무 수는 옛 판 값)" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 봉화 B00007"
},
{
@@ -477,9 +477,9 @@
"상세구분": null,
"단위": "m",
"담은로직": [{ "로직": "GC000088", "메모": "구조물 터파기(토사) 굴삭기 0.2m3" }, { "로직": "GF000113", "메모": "구조물 되메우기 굴삭기 0.2m3 (실무 수는 옛 판 값)" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "PE관 부설 및 접합 D50 — 후보 「부단수 할정자관 부설 및 접합」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n실무 호표 — 봉화 B00039"
},
{
@@ -489,9 +489,9 @@
"상세구분": null,
"단위": "m",
"담은로직": [{ "로직": "GC000143", "메모": "평떼붙임 (실무 수는 옛 판 값)" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "단끊기 — 우리 로직에 없음\n단끊기 절취없음 — 우리 로직에 없음\n떼 하차비 — 우리 로직에 없음\n실무 호표 — 봉화 B00052 · 울진소광 B02130"
},
{
@@ -501,9 +501,9 @@
"상세구분": null,
"단위": "m",
"담은로직": [{ "로직": "GF000101", "메모": "구조물터파기 토사(B/H 90%+인력10%)" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "잔토처리 토사(B/H 100%) — 우리 로직에 없음\n실무 호표 — 영월 B01963"
},
{
@@ -513,9 +513,9 @@
"상세구분": null,
"단위": "m",
"담은로직": [{ "로직": "GF000218", "메모": "잡석운반및다짐 (실무 수는 옛 판 값)" }, { "로직": "GF000124", "메모": "면고르기" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 영월 B01984"
},
{
@@ -525,9 +525,9 @@
"상세구분": null,
"단위": "㎡",
"담은로직": [{ "로직": "GF000218", "메모": "뒷채움돌채집운반부설 4.5톤 덤프트럭(L=500m) (실무 수는 옛 판 값)" }, { "로직": "GF000226", "메모": "큰돌메쌓기 뒷길이 0.6~0.8m" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "고임돌채집운반 4.5톤덤프(L=500) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n큰돌채집운반(뒷길이 0.6~0.8m) 장비(80%) + 인력(20%) — 후보 「모래·자갈·약돌 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n녹생토(종자배합) 암절개지 및 특수지반 녹화용 (700kg/㎥) — 우리 로직에 없음\n실무 호표 — 영월 B02133"
},
{
@@ -537,9 +537,9 @@
"상세구분": null,
"단위": "㎡",
"담은로직": [{ "로직": "GF000218", "메모": "뒷채움돌채집운반부설 4.5톤 덤프트럭(L=500m) (실무 수는 옛 판 값)" }, { "로직": "GF000226", "메모": "큰돌메쌓기 뒷길이 0.6~0.8m" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "큰돌채집운반(뒷길이 0.6~0.8m) 장비(80%) + 인력(20%) — 후보 「모래·자갈·약돌 채집(인력)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n고임돌채집운반 4.5톤덤프(L=500) — 후보 「큰돌 채집(기계)」 와 수가 다름(옛 판 값) · 이름이 달라 뺌\n녹생토(종자배합) 암절개지 및 특수지반 녹화용 (700kg/㎥) — 우리 로직에 없음\n실무 호표 — 영월 B02156"
},
{
@@ -549,9 +549,9 @@
"상세구분": null,
"단위": "개소",
"담은로직": [{ "로직": "GF000101", "메모": "구조물터파기(토사) 굴삭기0.7m3 (실무 수는 옛 판 값)" }, { "로직": "GC000105", "메모": "다지기 굴삭기0.7m3 (실무 수는 옛 판 값)" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 울진대흥 B01221"
},
{
@@ -566,9 +566,9 @@
{ "로직": "GF000156", "메모": "콘크리트믹서사용 0.45 m3 (실무 수는 옛 판 값)" },
{ "로직": "GC000214", "메모": "유로폼 설치 및 해체 보통" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 울진대흥 B01234"
},
{
@@ -578,9 +578,9 @@
"상세구분": null,
"단위": "kg",
"담은로직": [{ "로직": "GC000206", "메모": "철근(현장)가공 Type-Ⅰ-----아님 (실무 수는 옛 판 값)" }, { "로직": "GC000207", "메모": "철근(현장)조립 Type-Ⅰ-----아님" }],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 울진소광 B00287"
},
{
@@ -594,9 +594,9 @@
{ "로직": "GC000088", "메모": "구조물터파기(토사) 굴착기0.6m3" },
{ "로직": "GF000113", "메모": "구조물되메우기 굴착기0.6m3 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "구조물잔토처리 굴착기0.6m3 — 우리 로직에 없음\n실무 호표 — 울진소광 B02119"
},
{
@@ -610,9 +610,9 @@
{ "로직": "GF000155", "메모": "레미콘타설(인력운반타설) 소형구조물" },
{ "로직": "GC000211", "메모": "합판거푸집 6회, 간단 (실무 수는 옛 판 값)" }
],
"본뜬키": null,
"출처": "자체",
"소유": "현장",
"본뜬키": null,
"비고": "실무 호표 — 거창 제13호표"
}
]
+6
View File
@@ -0,0 +1,6 @@
{
"그룹": "자재조합",
"판": "2026",
"비고": ["자재 조합 = 구조물 열 재료산출이 쓰는 자재 목록 묶음 · 수량·계산은 두지 않음(재료산출 몫)"],
"줄": []
}