From 7a3098c2715f83b0103fd85b38fae555755a36b9 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:08:03 +0900 Subject: [PATCH 01/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B1=B4=EC=B6=95=207=EC=9E=A5=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=2013=EA=B0=9C=20=E2=80=94=20=EC=A7=80?= =?UTF-8?q?=EB=B6=95=20=EB=B0=8F=20=ED=99=88=ED=86=B5=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 지붕경사 30° 이상 17% 감 · 급경사 20% · 상하층 연결고정 80% - 아스팔트싱글(나라장터 고르기) · 폴리카보네이트 · 후레싱 재료 줄 + 잡재료 덧줄 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../master_data/로직_건설품셈_건축7장.json | 800 ++++++++++++++++++ resources/master_data/재료_자체.json | 4 +- 2 files changed, 803 insertions(+), 1 deletion(-) create mode 100644 resources/master_data/로직_건설품셈_건축7장.json diff --git a/resources/master_data/로직_건설품셈_건축7장.json b/resources/master_data/로직_건설품셈_건축7장.json new file mode 100644 index 00000000..343a9548 --- /dev/null +++ b/resources/master_data/로직_건설품셈_건축7장.json @@ -0,0 +1,800 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "건축", + "판": "2026", + "줄": [ + { + "열쇠": "7-1-1 금속기와 잇기", + "이름": "금속기와 잇기", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 7-1-1", + "소유": "공용", + "입력": [ + { + "이름": "지붕재규격", + "고르기": [ + "1.0㎡이하", + "1.0㎡초과" + ] + }, + { + "이름": "지붕경사", + "고르기": [ + "30° 미만", + "30° 이상" + ], + "출처": "건설품셈 건축 7-1-1 비고" + }, + { + "이름": "주재료비", + "단위": "원/㎡", + "출처": "건설품셈 건축 7-1-1 주⑦", + "비고": "주재료(설계수량)의 단위당 재료비 — 설계자 입력" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:7-1-1 금속기와 잇기, '지붕재 규격(㎡)'=지붕재규격).시공량 * (1 - (만약(지붕경사 == '30° 이상', 17, 0)) / 100)", + "출처": "건설품셈 건축 7-1-1" + }, + { + "이름": "지붕잇기공", + "식": "찾기(소요량:건설품셈:7-1-1 금속기와 잇기, '지붕재 규격(㎡)'=지붕재규격).지붕잇기공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-1 금속기와 잇기, '지붕재 규격(㎡)'=지붕재규격).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1036", + "이름": "지붕잇기공", + "단위": "인", + "수량": "지붕잇기공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(지붕잇기공 * 인력:건설노임:1036 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-1-1 주⑥" + }, + { + "이름": "잡재료 및 소모재료", + "식": "주재료비 * 2 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-1 주⑦" + } + ], + "끝수": null, + "비고": "지붕경사 30° 이상은 시공량 17% 감 · 후레싱은 7-1-7 · 방수 · 기와걸이 별도 · 가설비계 · 안전난간 · 추락방지시설은 작업여건 따라 별도 · 지붕재 수량은 설계수량" + }, + { + "열쇠": "7-1-2 금속판 평잇기", + "이름": "금속판 평잇기", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 7-1-2", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "지붕", + "벽" + ] + }, + { + "이름": "지붕경사", + "고르기": [ + "30° 미만", + "30° 이상" + ], + "출처": "건설품셈 건축 7-1-2 비고" + }, + { + "이름": "주재료비", + "단위": "원/㎡", + "출처": "건설품셈 건축 7-1-2 주⑦", + "비고": "주재료(설계수량)의 단위당 재료비 — 설계자 입력" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:7-1-2 금속판 평잇기, 시공면=시공면).시공량 * (1 - (만약(지붕경사 == '30° 이상', 17, 0)) / 100)", + "출처": "건설품셈 건축 7-1-2" + }, + { + "이름": "지붕잇기공", + "식": "찾기(소요량:건설품셈:7-1-2 금속판 평잇기, 시공면=시공면).지붕잇기공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-2 금속판 평잇기, 시공면=시공면).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1036", + "이름": "지붕잇기공", + "단위": "인", + "수량": "지붕잇기공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(지붕잇기공 * 인력:건설노임:1036 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-1-2 주⑥" + }, + { + "이름": "잡재료 및 소모재료", + "식": "주재료비 * 5 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-2 주⑦" + } + ], + "끝수": null, + "비고": "금속판 1.0㎡ 이하 · 거멀접기 포함 · 지붕경사 30° 이상은 시공량 17% 감 · 해석: 원문 시공량 단위 빈칸 — ㎡(평잇기 면적) · 후레싱은 7-1-7 · 방수 · 기와걸이 별도 · 가설비계 · 안전난간 · 추락방지시설은 작업여건 따라 별도 · 지붕재 수량은 설계수량" + }, + { + "열쇠": "7-1-3 금속판 돌출잇기 현장제작", + "이름": "금속판 돌출잇기 현장제작", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 7-1-3", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "지붕잇기공", + "식": "찾기(소요량:건설품셈:7-1-3 금속판 돌출잇기 현장제작).지붕잇기공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-3 금속판 돌출잇기 현장제작).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1036", + "이름": "지붕잇기공", + "단위": "인", + "수량": "지붕잇기공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(지붕잇기공 * 인력:건설노임:1036 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-1-3 주④" + } + ], + "끝수": null, + "비고": "두께 1.0㎜ 이하 · 절단 · 절곡 · 거멀접기 · 제작대 별도" + }, + { + "열쇠": "7-1-4 금속판 돌출잇기", + "이름": "금속판 돌출잇기", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 7-1-4", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "지붕", + "벽" + ] + }, + { + "이름": "지붕경사", + "고르기": [ + "30° 미만", + "30° 이상" + ], + "출처": "건설품셈 건축 7-1-4 비고" + }, + { + "이름": "주재료비", + "단위": "원/㎡", + "출처": "건설품셈 건축 7-1-4 주⑦", + "비고": "주재료(설계수량)의 단위당 재료비 — 설계자 입력" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:7-1-4 금속판 돌출잇기, 시공면=시공면).시공량 * (1 - (만약(지붕경사 == '30° 이상', 17, 0)) / 100)", + "출처": "건설품셈 건축 7-1-4" + }, + { + "이름": "지붕잇기공", + "식": "찾기(소요량:건설품셈:7-1-4 금속판 돌출잇기, 시공면=시공면).지붕잇기공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-4 금속판 돌출잇기, 시공면=시공면).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1036", + "이름": "지붕잇기공", + "단위": "인", + "수량": "지붕잇기공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(지붕잇기공 * 인력:건설노임:1036 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-1-4 주⑥" + }, + { + "이름": "잡재료 및 소모재료", + "식": "주재료비 * 4 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-4 주⑦" + } + ], + "끝수": null, + "비고": "간격 0.3∼0.5m · 지붕경사 30° 이상은 시공량 17% 감 · 후레싱은 7-1-7 · 방수 · 기와걸이 별도 · 가설비계 · 안전난간 · 추락방지시설은 작업여건 따라 별도 · 지붕재 수량은 설계수량" + }, + { + "열쇠": "7-1-5 아스팔트싱글 설치", + "이름": "아스팔트싱글 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 7-1-5", + "소유": "공용", + "입력": [ + { + "이름": "싱글", + "고르기": [ + "20157534", + "20157537", + "20157538" + ], + "출처": "건설품셈 건축 7-1-5 참고자료", + "비고": "나라장터 아스팔트싱글(칼라 · 이중그림자 · 육각) — 설계자가 고름" + }, + { + "이름": "지붕경사", + "고르기": [ + "30° 미만", + "30° 이상" + ], + "출처": "건설품셈 건축 7-1-5 비고" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:7-1-5 아스팔트싱글 설치).시공량 * (1 - (만약(지붕경사 == '30° 이상', 17, 0)) / 100)", + "출처": "건설품셈 건축 7-1-5" + }, + { + "이름": "지붕잇기공", + "식": "찾기(소요량:건설품셈:7-1-5 아스팔트싱글 설치).지붕잇기공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-5 아스팔트싱글 설치).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1036", + "이름": "지붕잇기공", + "단위": "인", + "수량": "지붕잇기공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:나라장터자재:{싱글}", + "이름": "아스팔트싱글", + "단위": "매", + "수량": "찾기(소요량:건설품셈:7-1-5 아스팔트싱글 재료량, 구분='아스팔트싱글', 규격='336×1.000×3㎜').수량", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-5 참고자료", + "비고": "할증 3% 포함 · 용마루 · 골 싱글 별도" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(지붕잇기공 * 인력:건설노임:1036 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-1-5 주⑥" + }, + { + "이름": "잡재료 및 소모재료(콘크리트 못 등)", + "식": "재료비 * 찾기(소요량:건설품셈:7-1-5 아스팔트싱글 재료량, 구분='잡재료 및 소모재료 (콘크리트 못 등)', 규격='주재료비의').수량 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-5 참고자료" + } + ], + "끝수": null, + "비고": "336 × 1,000 × 3㎜ · 지붕경사 30° 이상은 시공량 17% 감 · 방수 · 프라이머 별도 · 후레싱은 7-1-7" + }, + { + "열쇠": "7-1-6 폴리카보네이트 설치", + "이름": "폴리카보네이트 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 7-1-6", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:7-1-6 폴리카보네이트 설치).시공량", + "출처": "건설품셈 건축 7-1-6" + }, + { + "이름": "지붕잇기공", + "식": "찾기(소요량:건설품셈:7-1-6 폴리카보네이트 설치).지붕잇기공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-6 폴리카보네이트 설치).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1036", + "이름": "지붕잇기공", + "단위": "인", + "수량": "지붕잇기공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:폴리카보네이트 두께 16㎜ 이하", + "이름": "폴리카보네이트", + "단위": "㎡", + "수량": "찾기(소요량:건설품셈:7-1-6 폴리카보네이트 재료량, 구분='폴리카보네이트').수량", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-6 참고자료" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(지붕잇기공 * 인력:건설노임:1036 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-1-6 주④" + }, + { + "이름": "잡재료 및 소모재료(몰딩 · 실리콘 · 덮개Bar 등)", + "식": "재료비 * 찾기(소요량:건설품셈:7-1-6 폴리카보네이트 재료량, 구분='잡재료 및 소모재료 (몰딩, 실리콘, 덮개Bar 등)', 규격='주재료비의').수량 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-6 참고자료" + } + ], + "끝수": null, + "비고": "두께 16㎜ 이하 · 몰딩 · 덮개Bar · 코킹 포함 · 가설비계 등 별도 · 재료는 할증 포함" + }, + { + "열쇠": "7-1-7 후레싱 설치", + "이름": "후레싱 설치(금속재)", + "결과단위": "원/m", + "출처": "건설품셈 건축 7-1-7", + "소유": "공용", + "입력": [ + { + "이름": "지붕경사", + "고르기": [ + "보통", + "급경사(3/4 이상 · 35° 이상)" + ], + "출처": "건설품셈 건축 7-1-7 비고" + } + ], + "중간": [ + { + "이름": "지붕잇기공", + "식": "찾기(소요량:건설품셈:7-1-7 후레싱 설치).지붕잇기공 * 만약(지붕경사 == '보통', 1, 1.2)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1036", + "이름": "지붕잇기공", + "단위": "인", + "수량": "지붕잇기공", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:후레싱 금속재 설치폭 0.25m 이하", + "이름": "후레싱", + "단위": "m", + "수량": "찾기(소요량:건설품셈:7-1-7 후레싱 재료량, 구분='후레싱').수량", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-7 참고자료" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(지붕잇기공 * 인력:건설노임:1036) * 5 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-1-7 주④" + }, + { + "이름": "잡재료 및 소모재료(못 · 실리콘 등)", + "식": "재료비 * 찾기(소요량:건설품셈:7-1-7 후레싱 재료량, 구분='잡재료 및 소모재료 (못, 실리콘 등)', 규격='주재료비의').수량 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 7-1-7 참고자료" + } + ], + "끝수": null, + "비고": "설치폭 0.25m 이하 · 급경사는 본 품 20% 가산 · 가시설물 별도 · 재료는 할증 포함" + }, + { + "열쇠": "7-2-1 금속 처마홈통 설치", + "이름": "금속 처마홈통 설치", + "결과단위": "원/m", + "출처": "건설품셈 건축 7-2-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:7-2-1 금속 처마홈통 설치).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-1 금속 처마홈통 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-2-1 주④" + } + ], + "끝수": null, + "비고": "폭 150㎜ 이하 · 고소작업차 등 장비 별도(주③) · 홈통 수량은 설계수량" + }, + { + "열쇠": "7-2-2 염화비닐 처마홈통 설치", + "이름": "염화비닐 처마홈통 설치", + "결과단위": "원/m", + "출처": "건설품셈 건축 7-2-2", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:7-2-2 염화비닐 처마홈통 설치).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-2 염화비닐 처마홈통 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-2-2 주④" + } + ], + "끝수": null, + "비고": "폭 150㎜ 이하 · 접착제 부착 · 고소작업차 등 장비 별도(주③) · 홈통 수량은 설계수량" + }, + { + "열쇠": "7-2-3 금속 선홈통 설치", + "이름": "금속 선홈통 설치", + "결과단위": "원/m", + "출처": "건설품셈 건축 7-2-3", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:7-2-3 금속 선홈통 설치).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-3 금속 선홈통 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-2-3 주④" + } + ], + "끝수": null, + "비고": "ø150㎜ · T2.0㎜ 이하 · 고소작업차 등 장비 별도(주③) · 홈통 수량은 설계수량" + }, + { + "열쇠": "7-2-4 염화비닐 선홈통 설치", + "이름": "염화비닐 선홈통 설치", + "결과단위": "원/m", + "출처": "건설품셈 건축 7-2-4", + "소유": "공용", + "입력": [ + { + "이름": "고정방식", + "고르기": [ + "일반", + "공동주택 등 상하층간 연결고정방식" + ], + "출처": "건설품셈 건축 7-2-4 비고" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:7-2-4 염화비닐 선홈통 설치).배관공 * 만약(고정방식 == '일반', 1, 0.8)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-4 염화비닐 선홈통 설치).보통인부 * 만약(고정방식 == '일반', 1, 0.8)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 7-2-4 주④" + } + ], + "끝수": null, + "비고": "ø150㎜ 이하 · 접착제 부착 · 상하층간 연결고정은 본 품 80% · 고소작업차 등 장비 별도(주③) · 홈통 수량은 설계수량" + }, + { + "열쇠": "7-2-5 물받이홈통 설치", + "이름": "물받이홈통 설치", + "결과단위": "원/개소", + "출처": "건설품셈 건축 7-2-5", + "소유": "공용", + "입력": [ + { + "이름": "주재료비", + "단위": "원/개소", + "출처": "건설품셈 건축 7-2-5 주④", + "비고": "주재료(설계수량)의 단위당 재료비 — 설계자 입력" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:7-2-5 물받이홈통 설치).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-5 물받이홈통 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "잡재료 및 소모재료", + "식": "주재료비 * 2 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 7-2-5 주④" + } + ], + "끝수": null, + "비고": "처마 · 지붕배수구 연결 · 고소작업차 등 장비 별도(주③) · 홈통 수량은 설계수량" + }, + { + "열쇠": "7-3-1 루프드레인 설치", + "이름": "루프드레인 설치", + "결과단위": "원/개소", + "출처": "건설품셈 건축 7-3-1", + "소유": "공용", + "입력": [ + { + "이름": "주재료비", + "단위": "원/개소", + "출처": "건설품셈 건축 7-3-1 주③", + "비고": "주재료(설계수량)의 단위당 재료비 — 설계자 입력" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:7-3-1 루프드레인 설치).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-3-1 루프드레인 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "잡재료 및 소모재료", + "식": "주재료비 * 2 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 7-3-1 주③" + } + ], + "끝수": null, + "비고": "ø100∼150㎜ · 슬리브 · 방수시멘트 바름 포함 · 루프드레인은 설계수량" + } + ] +} diff --git a/resources/master_data/재료_자체.json b/resources/master_data/재료_자체.json index ba3bff96..edfd56cf 100644 --- a/resources/master_data/재료_자체.json +++ b/resources/master_data/재료_자체.json @@ -190,6 +190,8 @@ {"열쇠": "콘크리트못 32㎜", "이름": "콘크리트못", "규격": "32㎜", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 6-5-3"}, {"열쇠": "와셔", "이름": "와셔", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 6-5-3"}, {"열쇠": "조인트테이프", "이름": "조인트테이프", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 6-5-3"}, - {"열쇠": "실링재 수밀코킹", "이름": "실링재", "규격": "수밀코킹", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 6-6-1"} + {"열쇠": "실링재 수밀코킹", "이름": "실링재", "규격": "수밀코킹", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 6-6-1"}, + {"열쇠": "폴리카보네이트 두께 16㎜ 이하", "이름": "폴리카보네이트", "규격": "두께 16㎜ 이하", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 건축 7-1-6"}, + {"열쇠": "후레싱 금속재 설치폭 0.25m 이하", "이름": "후레싱", "규격": "금속재 설치폭 0.25m 이하", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 7-1-7"} ] } From ebd148c4e61ca7b2cdd2087fa3732685aa8508e3 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:09:02 +0900 Subject: [PATCH 02/19] =?UTF-8?q?fix(paths):=20=EC=98=9B=20=EC=9E=90?= =?UTF-8?q?=EB=A3=8C=20=ED=8F=B4=EB=8D=94=20=EC=9D=B4=EB=8F=99=20=EB=92=A4?= =?UTF-8?q?=20=EC=84=9C=EB=B2=84=20=EB=B6=88=EB=9F=AC=EC=98=A4=EA=B8=B0=20?= =?UTF-8?q?=EB=B3=B5=EA=B5=AC=20-=20=EA=B2=BD=EB=A1=9C=20=EC=83=81?= =?UTF-8?q?=EC=88=98=EB=A7=8C=20old/ref=20=EC=83=88=20=EC=9E=90=EB=A6=AC?= =?UTF-8?q?=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit B05·B06·B08·B09·Z01·common_util 의 data_* 폴더·파일 이름 상수를 master_data/old · ref 의 새 이름으로 돌림. 로직은 그대로. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT --- ...B05_Profile_UI_Drainage_Facility_Fields.ts | 2 +- B06_Section/B06_Section_UI_Cross_Lean.ts | 4 ++-- .../B08_Quantity_Build_WorkItemMaster.py | 4 ++-- ...B08_Quantity_Build_WorkItemMaster_Const.py | 4 ++-- .../B08_Quantity_Build_WorkItemMaster_Keys.py | 3 ++- B08_Quantity/B08_Quantity_Engine_BasisUnit.py | 4 ++-- B08_Quantity/B08_Quantity_Engine_Formwork.py | 4 ++-- .../B08_Quantity_Engine_Handoff_Mapping.py | 16 ++++++------- .../B08_Quantity_Engine_MaterialSummary.py | 4 ++-- .../B08_Quantity_Engine_ObservedUnit.py | 4 ++-- B08_Quantity/B08_Quantity_Engine_Pipe.py | 4 ++-- ..._Quantity_Engine_UnitQuantity_StoneSpec.py | 10 ++++---- B09_Estimation/B09_Estimation_BasisSheet.py | 4 ++-- .../B09_Estimation_Engine_Cost_Input.py | 2 +- .../B09_Estimation_LaborSurcharge.py | 2 +- B09_Estimation/B09_Estimation_MachineCost.py | 6 +++-- .../B09_Estimation_MachineExpenseSheet.py | 6 +++-- .../B09_Estimation_MachineOperating.py | 24 ++++++++++++------- ...B09_Estimation_MachineProductivity_Data.py | 4 ++-- .../B09_Estimation_MaterialCatalog.py | 4 ++-- .../B09_Estimation_MaterialPrices.py | 2 +- B09_Estimation/B09_Estimation_Rates.py | 4 ++-- B09_Estimation/B09_Estimation_ResourceAxis.py | 4 ++-- .../B09_Estimation_ResourceAxis_Dump.py | 2 +- .../B09_Estimation_ResourceAxis_Join.py | 4 ++-- .../B09_Estimation_ResourceAxis_Sources.py | 16 ++++++++----- B09_Estimation/B09_Estimation_RockLoss.py | 2 +- B09_Estimation/B09_Estimation_Router.py | 2 +- B09_Estimation/B09_Estimation_UnitPrice.py | 4 ++-- B09_Estimation/B09_Estimation_WoodChipping.py | 4 +++- .../Z01_MasterData_BasePrices_Machine.py | 8 +++++-- Z01_MasterData/Z01_MasterData_Tables.py | 4 ++-- Z01_MasterData/Z01_MasterData_WorkItems.py | 6 ++--- common_util/common_util_aliases.py | 6 ++++- common_util/common_util_node_bundle.py | 2 +- common_util/common_util_work_item_key.py | 4 ++-- common_util/common_util_work_item_link.py | 4 ++-- 37 files changed, 109 insertions(+), 84 deletions(-) diff --git a/B05_Profile/B05_Profile_UI_Drainage_Facility_Fields.ts b/B05_Profile/B05_Profile_UI_Drainage_Facility_Fields.ts index da745045..0cb5a3a2 100644 --- a/B05_Profile/B05_Profile_UI_Drainage_Facility_Fields.ts +++ b/B05_Profile/B05_Profile_UI_Drainage_Facility_Fields.ts @@ -9,7 +9,7 @@ * ========================================================================== */ import { FORD_MANNING_N, FORD_SLOPE } from "@config/config_frontend"; -import revetmentSabang from "../resources/data_masonry/revetment_sabang_2026-01-01.json"; +import revetmentSabang from "../resources/master_data/ref/수량_사방기슭막이치수_사방기술교본_2026-01-01.json"; /* ── 유입구 구조 ──────────────────────────────────────────────────────────── */ diff --git a/B06_Section/B06_Section_UI_Cross_Lean.ts b/B06_Section/B06_Section_UI_Cross_Lean.ts index e6daa9d8..8804ea3a 100644 --- a/B06_Section/B06_Section_UI_Cross_Lean.ts +++ b/B06_Section/B06_Section_UI_Cross_Lean.ts @@ -1,6 +1,6 @@ /* ============================================================================= * B06_Section_UI_Cross_Lean.ts - * 횡단도 벽 전면 기울기 — 품셈 13-4-4 [주]⑪ 표준경사 표(`resources/data_masonry/masonry_slope_*`)를 + * 횡단도 벽 전면 기울기 — 품셈 13-4-4 [주]⑪ 표준경사 표(`resources/master_data/old/3_품셈_산림_돌쌓기경사_*`)를 * 읽는 자리 하나(2026-09-14 B5 · B08 과 한 벌). 표 읽기 식은 `common_util_masonry_slope.ts`(파이썬 짝). * * 따로 뗀 까닭 — 표(JSON)를 가져오는 모듈을 상수 파일에 두면 그 상수를 쓰는 기하 조각을 Node 로 @@ -10,7 +10,7 @@ * ========================================================================== */ import { type WallLeanInput, wallLeanRatio } from "../common_util/common_util_masonry_slope"; -import masonrySlope from "../resources/data_masonry/masonry_slope_2026-01-01.json"; +import masonrySlope from "../resources/master_data/old/3_품셈_산림_돌쌓기경사_13-4-4_2026-01-01.json"; /** 벽 전면 기울기 n — 표를 못 고르면 종전 0.3. */ export function leanOf(input: WallLeanInput): number { diff --git a/B08_Quantity/B08_Quantity_Build_WorkItemMaster.py b/B08_Quantity/B08_Quantity_Build_WorkItemMaster.py index 6f56ed26..7e449c65 100644 --- a/B08_Quantity/B08_Quantity_Build_WorkItemMaster.py +++ b/B08_Quantity/B08_Quantity_Build_WorkItemMaster.py @@ -56,8 +56,8 @@ from B08_Quantity.B08_Quantity_Build_WorkItemMaster_Table import ( # noqa: F401 ) ROOT = Path(__file__).resolve().parent.parent -SOURCE = ROOT / "resources" / "data_cost_input_value" / "pum_forest_2026.json" -OUT_DIR = ROOT / "resources" / "data_work_item_master" +SOURCE = ROOT / "resources" / "master_data" / "old" / "3_품셈_산림_표전체_2026-01-01.json" +OUT_DIR = ROOT / "resources" / "master_data" / "old" #: 불변 열쇠 장부 — **판이 붙지 않는다.** 판마다 새로 짓는 산출물이 아니라 대대로 잇는 장부다. KEY_REGISTRY = OUT_DIR / "work_item_keys.json" diff --git a/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Const.py b/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Const.py index 77273c82..5683918c 100644 --- a/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Const.py +++ b/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Const.py @@ -25,9 +25,9 @@ from pathlib import Path from typing import Any ROOT = Path(__file__).resolve().parent.parent -SOURCE = ROOT / "resources" / "data_cost_input_value" / "pum_const_2026.json" +SOURCE = ROOT / "resources" / "master_data" / "old" / "3_품셈_건설_표전체_2026-01-01.json" #: 건설 열쇠 장부 — 산림 장부(`work_item_keys.json`)와 일련번호를 안 섞음 -CONST_KEY_REGISTRY = ROOT / "resources" / "data_work_item_master" / "work_item_keys_const.json" +CONST_KEY_REGISTRY = ROOT / "resources" / "master_data" / "old" / "work_item_keys_const.json" KEY_PREFIX = "CW" # Construction Work item BOOK_NAME = "2026년_건설공사_표준품셈.md" CODE_PREFIX = "CP" # Construction Pumsem — 목차 코드 diff --git a/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Keys.py b/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Keys.py index d7a709b2..0e60288d 100644 --- a/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Keys.py +++ b/B08_Quantity/B08_Quantity_Build_WorkItemMaster_Keys.py @@ -33,7 +33,8 @@ PATH_SEP = " › " AXIS_POLICY = ( Path(__file__).resolve().parent.parent / "resources" - / "data_work_item_master" + / "master_data" + / "old" / "axis_policy.json" ) diff --git a/B08_Quantity/B08_Quantity_Engine_BasisUnit.py b/B08_Quantity/B08_Quantity_Engine_BasisUnit.py index c56424cb..bd2b3366 100644 --- a/B08_Quantity/B08_Quantity_Engine_BasisUnit.py +++ b/B08_Quantity/B08_Quantity_Engine_BasisUnit.py @@ -20,8 +20,8 @@ import json from pathlib import Path from typing import Any, Iterable -MASTER_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_work_item_master" -MASTER_PREFIX = "work_item_master_" +MASTER_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "old" +MASTER_PREFIX = "2_공종_산림_마스터_" #: 같은 뜻인데 표기만 다른 단위 — **환산이 아니라 표기 흡수**다. UNIT_ALIASES = { diff --git a/B08_Quantity/B08_Quantity_Engine_Formwork.py b/B08_Quantity/B08_Quantity_Engine_Formwork.py index bc4bc0d1..e595413c 100644 --- a/B08_Quantity/B08_Quantity_Engine_Formwork.py +++ b/B08_Quantity/B08_Quantity_Engine_Formwork.py @@ -23,8 +23,8 @@ from dataclasses import dataclass, field from pathlib import Path from typing import Any -DATASET_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_formwork" -DATASET_PREFIX = "formwork_reuse_" +DATASET_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "old" +DATASET_PREFIX = "3_품셈_산림_거푸집사용횟수_" #: 거푸집으로 보는 성분 이름. 정확히 같은 이름으로만 본다 — 부분일치면 「거푸집씻기」가 걸린다. FORMWORK_NAMES = frozenset({"합판거푸집", "유로폼", "문양거푸집", "거푸집"}) diff --git a/B08_Quantity/B08_Quantity_Engine_Handoff_Mapping.py b/B08_Quantity/B08_Quantity_Engine_Handoff_Mapping.py index b61ab755..c043e310 100644 --- a/B08_Quantity/B08_Quantity_Engine_Handoff_Mapping.py +++ b/B08_Quantity/B08_Quantity_Engine_Handoff_Mapping.py @@ -15,22 +15,22 @@ from dataclasses import dataclass, field from pathlib import Path from typing import Any -DATASET_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_work_item_mapping" -DATASET_PREFIX = "work_item_mapping_" +DATASET_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "ref" +DATASET_PREFIX = "공종_수량연결_실무_" #: 철근 갈래표 — **품셈 12-3 [주]① 원문**이 구조물 예시로 갈라 둔 것이라 사람이 고르는 값이 #: 아니다(거푸집 사용횟수 1-7-1 과 같은 자리). 원문 예시에 안 걸리면 지어내지 않는다. -REBAR_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_rebar" -REBAR_PREFIX = "rebar_complexity_" +REBAR_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "old" +REBAR_PREFIX = "3_품셈_산림_철근가공갈래_" #: 돌쌓기 규격 갈래표 — 저장 제원 값으로 자동 판정한다(사람이 고르는 값이 아니다). -MASONRY_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_masonry" -MASONRY_PREFIX = "masonry_class_" +MASONRY_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "old" +MASONRY_PREFIX = "3_품셈_산림_돌쌓기규격갈래_" #: 목재공작물 구조 갈래표 — 품셈 13-13-1 [주]③ 이 **재료 구성**으로 가른다. -TIMBER_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_timber" -TIMBER_PREFIX = "timber_structure_class_" +TIMBER_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "old" +TIMBER_PREFIX = "3_품셈_산림_목재구조갈래_" def load_timber_table(path: Path | None = None) -> dict[str, Any]: diff --git a/B08_Quantity/B08_Quantity_Engine_MaterialSummary.py b/B08_Quantity/B08_Quantity_Engine_MaterialSummary.py index 5e025581..86489e39 100644 --- a/B08_Quantity/B08_Quantity_Engine_MaterialSummary.py +++ b/B08_Quantity/B08_Quantity_Engine_MaterialSummary.py @@ -53,8 +53,8 @@ from typing import Any, Iterable from common_util.common_util_quantity_spread import spread_by_unit # ── 데이터 자리 ────────────────────────────────────────────────────── -DATASET_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_material_surcharge" -DATASET_PREFIX = "material_surcharge_" +DATASET_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "ref" +DATASET_PREFIX = "품셈_산림_재료할증_울진_" #: 이 표가 받는 성분 갈래. 나머지는 각자 다른 표로 간다. ACCEPTED_DESTINATION = "material" diff --git a/B08_Quantity/B08_Quantity_Engine_ObservedUnit.py b/B08_Quantity/B08_Quantity_Engine_ObservedUnit.py index aab337de..a21ee73c 100644 --- a/B08_Quantity/B08_Quantity_Engine_ObservedUnit.py +++ b/B08_Quantity/B08_Quantity_Engine_ObservedUnit.py @@ -32,8 +32,8 @@ from dataclasses import dataclass, field from pathlib import Path from typing import Any -DATASET_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_structure_unit" -DATASET_PREFIX = "structure_unit_observed_" +DATASET_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "ref" +DATASET_PREFIX = "수량_구조물원단위_울진_" #: 값이 어디서 왔나 — 한 표에 섞이므로 줄마다 단다. BASIS_DERIVED = "derived" # 저장된 치수에서 식으로 diff --git a/B08_Quantity/B08_Quantity_Engine_Pipe.py b/B08_Quantity/B08_Quantity_Engine_Pipe.py index 023b4128..56bbd2a5 100644 --- a/B08_Quantity/B08_Quantity_Engine_Pipe.py +++ b/B08_Quantity/B08_Quantity_Engine_Pipe.py @@ -222,8 +222,8 @@ NOTE_WALL_HEIGHT_PIPE = " · 높이는 횡단도와 같은 관경 기준 최소 #: 독립 기슭막이 치수 **한 벌**(`resources/data_masonry/revetment_sabang_*.json`) — B05 칸 밑 근거와 #: 이 사유가 같은 파일을 읽음(2026-09-14 브레인 판정). 높이는 **설계자 입력** — 등록부 기본 2.5 걷음. -REVET_SABANG_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_masonry" -REVET_SABANG_PREFIX = "revetment_sabang_" +REVET_SABANG_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "ref" +REVET_SABANG_PREFIX = "수량_사방기슭막이치수_사방기술교본_" UNCONFIRMED_OWN_HEIGHT = "높이를 안 적음 — {rule}({source}) 설계자 입력 · 적으면 금액이 섬" diff --git a/B08_Quantity/B08_Quantity_Engine_UnitQuantity_StoneSpec.py b/B08_Quantity/B08_Quantity_Engine_UnitQuantity_StoneSpec.py index e22b0719..667c88af 100644 --- a/B08_Quantity/B08_Quantity_Engine_UnitQuantity_StoneSpec.py +++ b/B08_Quantity/B08_Quantity_Engine_UnitQuantity_StoneSpec.py @@ -131,8 +131,8 @@ STONE_PILE_BASIS = "⚠ 정본에 없는 줄 — 소광리 시트에만 있음( #: ⚠ 지금까지 **건설품셈 참고자료 한 벌**(돌 종류로 안 갈리는 표)로만 돌고 있었다. #: 그 값이 「깬돌」 계열이라, **자재로는 야면석을 내면서 계수는 깬돌**을 쓰는 어긋남이 #: 있었다(2026-09-08 지식DB 대조). 랩탑 창이 `stone_kind` 칸을 만들어 축이 생겼다. -STONE_KIND_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_masonry" -STONE_KIND_PREFIX = "stone_kind_" +STONE_KIND_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "ref" +STONE_KIND_PREFIX = "품셈_산림_돌종류계수_울진_" STONE_KIND_OPTION = "stone_kind" @@ -336,8 +336,8 @@ BLINDING_OPTION_KEYS = ("blinding_concrete", "base_blinding") #: 표준경사표 — 품셈 13-4-4 [주]⑪. 파일이 없으면 종전 기본값(0.3)으로 돈다. -SLOPE_DIR = Path(__file__).resolve().parents[1] / "resources" / "data_masonry" -SLOPE_PREFIX = "masonry_slope_" +SLOPE_DIR = Path(__file__).resolve().parents[1] / "resources" / "master_data" / "old" +SLOPE_PREFIX = "3_품셈_산림_돌쌓기경사_" #: 사용자가 덮어쓰는 칸 — 값이 있으면 **그 값이 이긴다**(확정 ⑨). FACE_SLOPE_KEYS = ("face_slope_ratio",) #: 성토/절토는 **측점 단면유형(`design.section_mode`) + 설치 측**으로 판정한다 @@ -469,7 +469,7 @@ def dry_masonry_height_note(height_m: float) -> str | None: #: 뒷길이 표준표 — 품셈 13-4-4 [주]⑩. 안 고른 돌쌓기는 붙박이 45 가 아니라 이 표의 하한 #: (2026-09-14 브레인 판정 ㉮ 「범위 안에 드는 규격 중 가장 작은 것」). 파일이 없으면 종전 45. -BACK_LENGTH_PREFIX = "masonry_back_length_" +BACK_LENGTH_PREFIX = "3_품셈_산림_돌쌓기뒷길이_" @lru_cache(maxsize=1) diff --git a/B09_Estimation/B09_Estimation_BasisSheet.py b/B09_Estimation/B09_Estimation_BasisSheet.py index ee948bf4..f17d2872 100644 --- a/B09_Estimation/B09_Estimation_BasisSheet.py +++ b/B09_Estimation/B09_Estimation_BasisSheet.py @@ -24,8 +24,8 @@ from typing import Any from B09_Estimation.B09_Estimation_PriceBook import PriceKind from B09_Estimation.B09_Estimation_ResourceAxis_UnitBasis import similar_occupation_note -_MANIFEST = ("resources", "data_cost_input_value", "_manifest.json") -_MASTER_DIR = ("resources", "data_work_item_master") +_MANIFEST = ("resources", "master_data", "old", "_manifest.json") +_MASTER_DIR = ("resources", "master_data", "old") SHEET_NOTE = ( "산출기초는 새로 세는 장이 아니라 **줄에 달린 근거를 한 장으로 모은 것**입니다 —" diff --git a/B09_Estimation/B09_Estimation_Engine_Cost_Input.py b/B09_Estimation/B09_Estimation_Engine_Cost_Input.py index b2d31fc0..c4f4fd80 100644 --- a/B09_Estimation/B09_Estimation_Engine_Cost_Input.py +++ b/B09_Estimation/B09_Estimation_Engine_Cost_Input.py @@ -131,6 +131,6 @@ class CostInput: enabled_items: tuple[str, ...] | str = DEFAULT_ITEMS #: 요율 데이터 파일명. **연도를 갈아끼우는 자리.** - rate_file_name: str = "rates_2026.json" + rate_file_name: str = "1_기초_제비율_토목_조달청_2026-04-13.json" #: 매니페스트 밖 요율 파일(옛 연도 재현 검산 전용). 주면 이쪽이 우선. rate_file_path: str | None = None diff --git a/B09_Estimation/B09_Estimation_LaborSurcharge.py b/B09_Estimation/B09_Estimation_LaborSurcharge.py index dfc8bd67..eeeb59be 100644 --- a/B09_Estimation/B09_Estimation_LaborSurcharge.py +++ b/B09_Estimation/B09_Estimation_LaborSurcharge.py @@ -32,7 +32,7 @@ from decimal import Decimal from functools import lru_cache from typing import Any -_DATASET = ("resources", "data_cost_input_value", "coef_2026.json") +_DATASET = ("resources", "master_data", "old", "3_품셈_산림_계수_2026-01-01.json") _FOREST_SPEC = ( "resources", "knowledge", diff --git a/B09_Estimation/B09_Estimation_MachineCost.py b/B09_Estimation/B09_Estimation_MachineCost.py index 2e62c4cc..0de4ee7a 100644 --- a/B09_Estimation/B09_Estimation_MachineCost.py +++ b/B09_Estimation/B09_Estimation_MachineCost.py @@ -34,7 +34,7 @@ from B09_Estimation.B09_Estimation_Guards import ( ) from B09_Estimation.B09_Estimation_PriceBook import Money3 -_CATALOG_SUBPATH = ("resources", "data_cost_input_value") +_CATALOG_SUBPATH = ("resources", "master_data", "old") _THOUSAND = Decimal(1000) @@ -224,7 +224,9 @@ class MachineCatalog: raise MachineCostError(f"기종 카탈로그에 없는 코드입니다: {machine_code}") from exc -def load_machine_catalog(file_name: str = "mach_base_2026.json") -> MachineCatalog: +def load_machine_catalog( + file_name: str = "3_품셈_건설_기계경비기준_8장_2026-01-01.json", +) -> MachineCatalog: """취득가 613건에 손료계수 387건을 붙여 카탈로그 한 벌을 만든다.""" variables = _read_json(file_name)["variables"] coefficients = { diff --git a/B09_Estimation/B09_Estimation_MachineExpenseSheet.py b/B09_Estimation/B09_Estimation_MachineExpenseSheet.py index 3a15b0f1..b2c8b7d7 100644 --- a/B09_Estimation/B09_Estimation_MachineExpenseSheet.py +++ b/B09_Estimation/B09_Estimation_MachineExpenseSheet.py @@ -33,7 +33,7 @@ from B09_Estimation.B09_Estimation_PriceBook import PriceKind #: 조합 사용(굴착기+부착장비)일 때의 본체 잡재료비율 — 품셈 제8장 [주]⑤. COMBINED_MISC_PERCENT = 16 -_CATALOG_SUBPATH = ("resources", "data_cost_input_value") +_CATALOG_SUBPATH = ("resources", "master_data", "old") _THOUSAND = Decimal(1000) _ZERO = Decimal(0) @@ -66,7 +66,9 @@ def _project_root() -> str: @lru_cache(maxsize=1) def _loss_records() -> dict[str, dict[str, Any]]: """기종코드 → 손료계수 원문 줄(상각·정비·관리 계수까지).""" - path = os.path.join(_project_root(), *_CATALOG_SUBPATH, "mach_base_2026.json") + path = os.path.join( + _project_root(), *_CATALOG_SUBPATH, "3_품셈_건설_기계경비기준_8장_2026-01-01.json" + ) with open(path, encoding="utf-8") as handle: payload = json.load(handle) records = payload["variables"]["mach_loss_coef"]["records"] diff --git a/B09_Estimation/B09_Estimation_MachineOperating.py b/B09_Estimation/B09_Estimation_MachineOperating.py index 6fe7802e..25aa1a63 100644 --- a/B09_Estimation/B09_Estimation_MachineOperating.py +++ b/B09_Estimation/B09_Estimation_MachineOperating.py @@ -27,8 +27,8 @@ from dataclasses import dataclass, field from decimal import Decimal from typing import Any -_CATALOG_SUBPATH = ("resources", "data_cost_input_value") -_OUTPUT_SUBPATH = ("resources", "data_cost_machine_operating") +_CATALOG_SUBPATH = ("resources", "master_data", "old") +_OUTPUT_SUBPATH = ("resources", "master_data", "old") #: 품셈 8-4 운전경비 표의 머리글 — 이 여섯이 다 있어야 그 표로 본다. _REQUIRED_HEADERS = ("분류번호", "기계명", "규격", "주연료", "잡재료", "조종원") @@ -359,8 +359,8 @@ def enrich_with_catalog( def load_operating_records( - pum_file: str = "pum_const_2026.json", - labor_file: str = "labor_const_2026-01-01.json", + pum_file: str = "3_품셈_건설_표전체_2026-01-01.json", + labor_file: str = "1_기초_노임_건설업_대한건설협회_2026-01-01.json", ) -> OperatingParseResult: from B09_Estimation.B09_Estimation_MachineCost import load_machine_catalog @@ -394,7 +394,7 @@ def write_operating_records( """파생 파일로 낸다. **어느 기준자료 판에서 파생됐는지**를 함께 적는다.""" directory = output_dir or os.path.join(_project_root(), *_OUTPUT_SUBPATH) os.makedirs(directory, exist_ok=True) - path = os.path.join(directory, "machine_operating_2026.json") + path = os.path.join(directory, "3_품셈_건설_기계운전경비_8-4_2026-01-01.json") payload = { "schema_version": "1.0", @@ -419,7 +419,7 @@ def write_operating_records( #: 시도별 유가 판 — 품셈 8-1-7 5호 「유류가격은 **해당지역의 가격**으로 한다」. #: ⚠ **파일이 있을 때만 지역을 고를 수 있다** — 없으면 전국평균 한 벌로 돈다(코드로 막지 않음). -REGIONAL_OIL_FILE = "oil_regional_2026-09-09.json" +REGIONAL_OIL_FILE = "1_기초_유가_시도별_오피넷_2026-09-09.json" #: 운전경비표 연료 종류 → 유가 판 변수. ⚠ 종류를 안 읽고 경유로 때우면 휘발유 기계가 싸게 섬 #: (2026-09-14 661 뒤 ② — 플레이트 콤팩터·진동기·믹서·래머·커터가 경유값이었음). FUEL_VARIABLES = {"경유": "oil_diesel", "휘발유": "oil_gasoline"} @@ -455,7 +455,9 @@ def load_regional_fuel_table( def load_fuel_price( - oil_file: str = "oil_2026-08-14.json", region: str | None = None, kind: str = "경유" + oil_file: str = "1_기초_유가_전국평균_오피넷_2026-08-14.json", + region: str | None = None, + kind: str = "경유", ) -> tuple[Decimal, dict[str, str]]: """경유 단가와 그 판의 신원. `region`(시도코드)을 주면 **그 지역 값**으로 선다. @@ -490,7 +492,9 @@ def load_fuel_price( } -def load_operator_wages(labor_file: str = "labor_const_2026-01-01.json") -> dict[str, Decimal]: +def load_operator_wages( + labor_file: str = "1_기초_노임_건설업_대한건설협회_2026-01-01.json", +) -> dict[str, Decimal]: """직종코드 → 일당.""" records = _read_json(*_CATALOG_SUBPATH, labor_file)["variables"]["labor_rate"]["records"] return { @@ -513,7 +517,9 @@ LABOR_RELIABILITY_LABEL = { } -def load_labor_reliability(labor_file: str = "labor_const_2026-01-01.json") -> dict[str, str]: +def load_labor_reliability( + labor_file: str = "1_기초_노임_건설업_대한건설협회_2026-01-01.json", +) -> dict[str, str]: """직종코드 → 신뢰도 기호(`*`·`**`). 정상 공표 직종은 아예 안 담는다.""" records = _read_json(*_CATALOG_SUBPATH, labor_file)["variables"]["labor_rate"]["records"] return { diff --git a/B09_Estimation/B09_Estimation_MachineProductivity_Data.py b/B09_Estimation/B09_Estimation_MachineProductivity_Data.py index 828f1cb9..7605154c 100644 --- a/B09_Estimation/B09_Estimation_MachineProductivity_Data.py +++ b/B09_Estimation/B09_Estimation_MachineProductivity_Data.py @@ -17,8 +17,8 @@ from functools import lru_cache from pathlib import Path from typing import Any -DATA_DIR = Path(__file__).resolve().parent.parent / "resources" / "data_machine_productivity" -PREFIX = "machine_productivity_" +DATA_DIR = Path(__file__).resolve().parent.parent / "resources" / "master_data" / "old" +PREFIX = "3_품셈_산림건설_기계작업량_" class MachineProductivityDataError(FileNotFoundError): diff --git a/B09_Estimation/B09_Estimation_MaterialCatalog.py b/B09_Estimation/B09_Estimation_MaterialCatalog.py index 8fe5721b..ff2401b4 100644 --- a/B09_Estimation/B09_Estimation_MaterialCatalog.py +++ b/B09_Estimation/B09_Estimation_MaterialCatalog.py @@ -27,7 +27,7 @@ from dataclasses import dataclass, field from decimal import Decimal from typing import Any -_CATALOG_SUBPATH = ("resources", "data_cost_input_value") +_CATALOG_SUBPATH = ("resources", "master_data", "old") #: 두 창이 맞춘 구분 이름 — 값을 바꾸면 B08 자재총괄과 안 맞는다. SUPPLY_OWNER = "owner_supplied" @@ -108,7 +108,7 @@ class MaterialCatalog: def load_material_catalog( - public_file: str = "mat_price_public_2026-08-14.json", + public_file: str = "1_기초_자재_시설공통_나라장터_2026-08-14.json", ) -> MaterialCatalog: """관급 자재를 읽고, 사급은 **없다는 사실을 목록으로** 남긴다.""" payload = _read_json(public_file) diff --git a/B09_Estimation/B09_Estimation_MaterialPrices.py b/B09_Estimation/B09_Estimation_MaterialPrices.py index 5cfdf16c..98646339 100644 --- a/B09_Estimation/B09_Estimation_MaterialPrices.py +++ b/B09_Estimation/B09_Estimation_MaterialPrices.py @@ -119,7 +119,7 @@ def material_catalog_rows() -> dict[str, dict[str, str]]: from B09_Estimation.B09_Estimation_ResourceAxis_Join import EXT_CATALOG_FILE root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - path = os.path.join(root, "resources", "data_resource_catalog", EXT_CATALOG_FILE) + path = os.path.join(root, "resources", "master_data", "old", EXT_CATALOG_FILE) if not os.path.isfile(path): return {} with open(path, encoding="utf-8") as handle: diff --git a/B09_Estimation/B09_Estimation_Rates.py b/B09_Estimation/B09_Estimation_Rates.py index 21ea9d21..c9417756 100644 --- a/B09_Estimation/B09_Estimation_Rates.py +++ b/B09_Estimation/B09_Estimation_Rates.py @@ -27,7 +27,7 @@ _UNIT_MULTIPLIER: dict[str, int] = { "billion": 1_000_000_000, } -_RESOURCE_SUBPATH = ("resources", "data_cost_input_value") +_RESOURCE_SUBPATH = ("resources", "master_data", "old") # 라벨 문법 — 숫자 구간만 해석한다. 그 밖(`turnkey_or_alternative` 등)은 명시 선택자로 고른다. _RE_LT = re.compile(r"^lt_(\d+(?:\.\d+)?)_(million|billion)$") @@ -89,7 +89,7 @@ def _manifest_entry(file_name: str) -> dict[str, Any]: @lru_cache(maxsize=8) -def load_rate_dataset(file_name: str = "rates_2026.json") -> RateDataset: +def load_rate_dataset(file_name: str = "1_기초_제비율_토목_조달청_2026-04-13.json") -> RateDataset: """요율 파일 한 벌을 읽는다. 매니페스트의 지문·적용일을 함께 실어 재현성을 남긴다.""" entry = _manifest_entry(file_name) with open(os.path.join(_dataset_dir(), file_name), encoding="utf-8") as handle: diff --git a/B09_Estimation/B09_Estimation_ResourceAxis.py b/B09_Estimation/B09_Estimation_ResourceAxis.py index 65fc60da..b53e3259 100644 --- a/B09_Estimation/B09_Estimation_ResourceAxis.py +++ b/B09_Estimation/B09_Estimation_ResourceAxis.py @@ -44,8 +44,8 @@ NON_WORK_ITEM_FORMS = frozenset({"coefficient", "reference"}) #: 형태 판정이 안 된 표 — 값을 쓰지 않는다. UNUSABLE_FORMS = frozenset({"undetermined"}) -_MASTER_SUBPATH = ("resources", "data_work_item_master") -_CATALOG_SUBPATH = ("resources", "data_cost_input_value") +_MASTER_SUBPATH = ("resources", "master_data", "old") +_CATALOG_SUBPATH = ("resources", "master_data", "old") #: 규격이 이름 안에 붙어 있는 흔한 모양 — 「굴착기(0.7㎥)」·「덤프트럭 15톤」. _RE_SPEC = re.compile(r"[((]([^))]+)[))]|(\d+(?:\.\d+)?\s*(?:톤|ton|㎥|m3|㎡|㎜|mm|HP|kW))") diff --git a/B09_Estimation/B09_Estimation_ResourceAxis_Dump.py b/B09_Estimation/B09_Estimation_ResourceAxis_Dump.py index 3c106022..be17f9c0 100644 --- a/B09_Estimation/B09_Estimation_ResourceAxis_Dump.py +++ b/B09_Estimation/B09_Estimation_ResourceAxis_Dump.py @@ -22,7 +22,7 @@ from B09_Estimation.B09_Estimation_ResourceAxis import ( #: 자원 축 산출물이 나가는 자리 — **메인의 `data_work_item_master/` 안에 넣지 않는다.** #: 메인이 품셈을 다시 돌리면 그 폴더가 덮이므로 섞으면 사라진다. -OUTPUT_SUBPATH = ("resources", "data_cost_resource_axis") +OUTPUT_SUBPATH = ("resources", "master_data", "old") def _master_file_fingerprint(master: dict[str, Any]) -> dict[str, str]: diff --git a/B09_Estimation/B09_Estimation_ResourceAxis_Join.py b/B09_Estimation/B09_Estimation_ResourceAxis_Join.py index 3cd10d63..af5f35b0 100644 --- a/B09_Estimation/B09_Estimation_ResourceAxis_Join.py +++ b/B09_Estimation/B09_Estimation_ResourceAxis_Join.py @@ -36,8 +36,8 @@ from B09_Estimation.B09_Estimation_ResourceAxis_Sources import ( ) from common_util.common_util_aliases import AliasError, in_scope, load_aliases, parse_aliases -_EXT_SUBPATH = ("resources", "data_resource_catalog") -EXT_CATALOG_FILE = "resource_catalog_ext_2026-01-01.json" +_EXT_SUBPATH = ("resources", "master_data", "old") +EXT_CATALOG_FILE = "3_품셈_산림_자원목록보충_2026-01-01.json" #: 명세 §2 ③ — `AR--<8자리 소문자 16진>`. 종류 글자는 PriceKind 글자 그대로. _RE_AR_CODE = re.compile(r"^AR-([MLX])-[0-9a-f]{8}$") diff --git a/B09_Estimation/B09_Estimation_ResourceAxis_Sources.py b/B09_Estimation/B09_Estimation_ResourceAxis_Sources.py index f696c0c6..656bc49c 100644 --- a/B09_Estimation/B09_Estimation_ResourceAxis_Sources.py +++ b/B09_Estimation/B09_Estimation_ResourceAxis_Sources.py @@ -29,11 +29,13 @@ from B09_Estimation.B09_Estimation_ResourceAxis import ( _RE_ALTERNATIVE, ) -_CATALOG_SUBPATH = ("resources", "data_cost_input_value") -_MASTER_SUBPATH = ("resources", "data_work_item_master") +_CATALOG_SUBPATH = ("resources", "master_data", "old") +_MASTER_SUBPATH = ("resources", "master_data", "old") -def load_labor_catalog(file_name: str = "labor_const_2026-01-01.json") -> ResourceCatalog: +def load_labor_catalog( + file_name: str = "1_기초_노임_건설업_대한건설협회_2026-01-01.json", +) -> ResourceCatalog: """노임 카탈로그 132직종 + `aliases`. 코드는 `occupation_code`.""" payload = _read_json(*_CATALOG_SUBPATH, file_name) variables = payload["variables"] @@ -45,7 +47,9 @@ def load_labor_catalog(file_name: str = "labor_const_2026-01-01.json") -> Resour return ResourceCatalog(entries=entries, aliases=dict(variables.get("aliases", {}))) -def load_machine_catalog_entries(file_name: str = "mach_base_2026.json") -> list[CatalogEntry]: +def load_machine_catalog_entries( + file_name: str = "3_품셈_건설_기계경비기준_8장_2026-01-01.json", +) -> list[CatalogEntry]: """기종 카탈로그 613건을 매칭용 항목으로 편다. ⚠ **규격이 매칭의 일부**다 — 「굴착기(무한궤도)」만 23 규격이라 이름만으로는 @@ -61,7 +65,7 @@ def load_machine_catalog_entries(file_name: str = "mach_base_2026.json") -> list def load_material_catalog_entries( - file_name: str = "mat_price_public_2026-08-14.json", + file_name: str = "1_기초_자재_시설공통_나라장터_2026-08-14.json", ) -> list[CatalogEntry]: """관급 자재 6,999건을 매칭용 항목으로 편다. @@ -102,7 +106,7 @@ def load_combined_catalog() -> ResourceCatalog: def load_work_item_master( - file_name: str = "work_item_master_2026-01-01.json", + file_name: str = "2_공종_산림_마스터_2026-01-01.json", ) -> dict[str, Any]: """메인 창 산출물 — **읽기 전용**.""" return _read_json(*_MASTER_SUBPATH, file_name) diff --git a/B09_Estimation/B09_Estimation_RockLoss.py b/B09_Estimation/B09_Estimation_RockLoss.py index 756df6aa..2993517a 100644 --- a/B09_Estimation/B09_Estimation_RockLoss.py +++ b/B09_Estimation/B09_Estimation_RockLoss.py @@ -38,7 +38,7 @@ def _sources() -> tuple[dict[str, dict[str, Any]], dict[str, int]]: """(기계 코드 → 손료 성분 레코드, 규칙 이름 → 암석 가산 %).""" from B09_Estimation.B09_Estimation_MachineCost import _read_json - variables = _read_json("mach_base_2026.json")["variables"] + variables = _read_json("3_품셈_건설_기계경비기준_8장_2026-01-01.json")["variables"] records = {r["machine_code"]: r for r in variables["mach_loss_coef"]["records"]} rules = {r["machine_group"]: int(r["rock_work"]) for r in variables["mach_rock_adj"]["rules"]} return records, rules diff --git a/B09_Estimation/B09_Estimation_Router.py b/B09_Estimation/B09_Estimation_Router.py index 7aa278a3..7e30fb13 100644 --- a/B09_Estimation/B09_Estimation_Router.py +++ b/B09_Estimation/B09_Estimation_Router.py @@ -92,7 +92,7 @@ class CostRequest(BaseModel): equipment_guarantee_work_type: str = "civil_general" subcontract_guarantee_variant: str = "integrated_civil_or_industrial" - rate_file_name: str = "rates_2026.json" + rate_file_name: str = "1_기초_제비율_토목_조달청_2026-04-13.json" #: 공종별 수량 `{공종코드: 수량}`. 주면 **직접비 3분할을 여기서 만들어** 쓴다. #: ⚠ 일위대가 합계를 뭉쳐 넣지 않는다 — 밑수가 항목마다 갈린다(PLAN 8-9 규칙 2). diff --git a/B09_Estimation/B09_Estimation_UnitPrice.py b/B09_Estimation/B09_Estimation_UnitPrice.py index aed1a286..9c06a591 100644 --- a/B09_Estimation/B09_Estimation_UnitPrice.py +++ b/B09_Estimation/B09_Estimation_UnitPrice.py @@ -500,7 +500,7 @@ def _add_machine_layers( @lru_cache(maxsize=1) def load_basis_missing( - file_name: str = "basis_missing_2026-01-01.json", + file_name: str = "2_공종_산림_밑수없음_2026-01-01.json", ) -> dict[str, str]: """B08 이 낸 **밑수 못 찾은 표** 목록 — `{표 번호: 절 이름}`. @@ -512,7 +512,7 @@ def load_basis_missing( import os root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - path = os.path.join(root, "resources", "data_work_item_master", file_name) + path = os.path.join(root, "resources", "master_data", "old", file_name) if not os.path.exists(path): return {} with open(path, encoding="utf-8") as handle: diff --git a/B09_Estimation/B09_Estimation_WoodChipping.py b/B09_Estimation/B09_Estimation_WoodChipping.py index 39b0ccdc..1dc112ba 100644 --- a/B09_Estimation/B09_Estimation_WoodChipping.py +++ b/B09_Estimation/B09_Estimation_WoodChipping.py @@ -57,7 +57,9 @@ def operating_record(node: dict[str, Any] | None = None): values = _table_values(node) if values is None: return None - aliases = _read_json(*_CATALOG_SUBPATH, "labor_const_2026-01-01.json")["variables"]["aliases"] + aliases = _read_json(*_CATALOG_SUBPATH, "1_기초_노임_건설업_대한건설협회_2026-01-01.json")[ + "variables" + ]["aliases"] return OperatingRecord( machine_code=MACHINE, machine_name="이동식 임목파쇄기", diff --git a/Z01_MasterData/Z01_MasterData_BasePrices_Machine.py b/Z01_MasterData/Z01_MasterData_BasePrices_Machine.py index 350a84c8..e125e11c 100644 --- a/Z01_MasterData/Z01_MasterData_BasePrices_Machine.py +++ b/Z01_MasterData/Z01_MasterData_BasePrices_Machine.py @@ -23,7 +23,11 @@ from B09_Estimation.B09_Estimation_MachineOperating import FUEL_VARIABLES, load_ from Z01_MasterData.Z01_MasterData_Tables import RESOURCES #: B09 셈이 여는 원본 셋 — 바뀌면 캐시를 새로 읽음 -_INPUT_FILES = ("mach_base_2026.json", "pum_const_2026.json", "labor_const_2026-01-01.json") +_INPUT_FILES = ( + "3_품셈_건설_기계경비기준_8장_2026-01-01.json", + "3_품셈_건설_표전체_2026-01-01.json", + "1_기초_노임_건설업_대한건설협회_2026-01-01.json", +) EDITABLE = ["price_thousand_krw", "loss_coefficient_per_hour"] COMPUTED = ("hourly_loss_krw", "hourly_fuel_krw", "hourly_operator_krw", "hourly_total_krw") #: 조종원 식 글자 — B09 식 문자열(좌→우 차례)을 사람이 읽게만 바꿈 @@ -90,7 +94,7 @@ def _cached(_mtimes: tuple[int, ...]): def _inputs(): - folder = RESOURCES / "data_cost_input_value" + folder = RESOURCES / "master_data" / "old" return _cached(tuple((folder / name).stat().st_mtime_ns for name in _INPUT_FILES)) diff --git a/Z01_MasterData/Z01_MasterData_Tables.py b/Z01_MasterData/Z01_MasterData_Tables.py index 0bae789f..5b10d92f 100644 --- a/Z01_MasterData/Z01_MasterData_Tables.py +++ b/Z01_MasterData/Z01_MasterData_Tables.py @@ -19,7 +19,7 @@ from typing import Any ROOT = Path(__file__).resolve().parent.parent RESOURCES = ROOT / "resources" -LABEL_DIR = RESOURCES / "data_master_labels" +LABEL_DIR = RESOURCES / "master_data" / "old" DEFAULT_PAGE_SIZE = 50 MAX_PAGE_SIZE = 500 ROW_KEY = "@key" @@ -132,7 +132,7 @@ def _labels_at(path: str, _mtime_ns: int) -> dict[str, Any]: def load_labels() -> dict[str, Any]: """이름표 끝 판(이름 차례) — 없으면 빈 이름표(파일도 안 보임).""" - found = sorted(LABEL_DIR.glob("labels_*.json")) if LABEL_DIR.is_dir() else [] + found = sorted(LABEL_DIR.glob("4_화면_이름표_*.json")) if LABEL_DIR.is_dir() else [] if not found: return {"kinds": {}, "files": [], "columns": {}, "column_overrides": {}} return _labels_at(str(found[-1]), found[-1].stat().st_mtime_ns) diff --git a/Z01_MasterData/Z01_MasterData_WorkItems.py b/Z01_MasterData/Z01_MasterData_WorkItems.py index 23c8d85b..db86b9a3 100644 --- a/Z01_MasterData/Z01_MasterData_WorkItems.py +++ b/Z01_MasterData/Z01_MasterData_WorkItems.py @@ -24,7 +24,7 @@ SOURCE_OF = { "work_item_forest": "pum_forest", "work_item_const": "pum_const", } # 이름표 `work_item_axis` 와 같은 이름 -FOLDER = tables.RESOURCES / "data_work_item_master" +FOLDER = tables.RESOURCES / "master_data" / "old" #: 불변 열쇠 칸 — ⚠ 데스크탑 서브 자료가 오면 칸 이름을 맞출 것(여기 한 곳) KEY_FIELD = "work_item_key" PATH_JOIN = " › " @@ -127,7 +127,7 @@ def base_rows(kind: str) -> list[dict[str, Any]]: return rows -LINK_FOLDER = tables.RESOURCES / "data_work_item_link" +LINK_FOLDER = tables.RESOURCES / "master_data" / "old" LINKED = "연결됨" @@ -136,7 +136,7 @@ def linked_keys() -> frozenset[str]: ⚠ 목록을 코드에 안 둠 — 판정은 그 표 · 미판정은 안 이음(표의 `unconfirmed_action: do_not_link`). """ - found = sorted(LINK_FOLDER.glob("work_item_link_*.json")) if LINK_FOLDER.is_dir() else [] + found = sorted(LINK_FOLDER.glob("2_공종_산림건설_연결_*.json")) if LINK_FOLDER.is_dir() else [] if not found: return frozenset() links = _read(str(found[-1]), found[-1].stat().st_mtime_ns).get("links") or [] diff --git a/common_util/common_util_aliases.py b/common_util/common_util_aliases.py index 71484ea5..119d8aef 100644 --- a/common_util/common_util_aliases.py +++ b/common_util/common_util_aliases.py @@ -22,7 +22,11 @@ from pathlib import Path from typing import Any ALIAS_FILE = ( - Path(__file__).resolve().parents[1] / "resources" / "data_aliases" / "aliases_2026-01-01.json" + Path(__file__).resolve().parents[1] + / "resources" + / "master_data" + / "ref" + / "공종_자원별칭_실무_2026-01-01.json" ) AXES = frozenset({"resource", "variant"}) _FIELDS = ("axis", "from", "to", "scope", "pum_edition") diff --git a/common_util/common_util_node_bundle.py b/common_util/common_util_node_bundle.py index 9584ab0d..ba14dae7 100644 --- a/common_util/common_util_node_bundle.py +++ b/common_util/common_util_node_bundle.py @@ -22,7 +22,7 @@ ROOT = Path(__file__).resolve().parents[1] # 번들이 낡았는지 재는 대상 — 기하 계통이 걸쳐 있는 폴더 + 구조물도 식 풀이(B08, 2026-09-13). SOURCE_DIRS = ("B05_Profile", "B06_Section", "B08_Quantity", "common_util") # 번들에 박히는 자료(JSON) — 벽 전면 기울기 표준경사 표(2026-09-14 B5). 표만 바뀌어도 다시 빌드. -SOURCE_DATA_DIRS = ("resources/data_masonry",) +SOURCE_DATA_DIRS = ("resources/master_data/old",) # 번들 만들기·실행 상한(초). 실측 번들 실행 0.1초, 빌드 3초 수준이라 넉넉하다. BUILD_TIMEOUT_S = 300 RUN_TIMEOUT_S = 600 diff --git a/common_util/common_util_work_item_key.py b/common_util/common_util_work_item_key.py index 94ec26dd..d5e7e531 100644 --- a/common_util/common_util_work_item_key.py +++ b/common_util/common_util_work_item_key.py @@ -20,7 +20,7 @@ from functools import lru_cache from pathlib import Path from typing import Any, Iterable -MASTER_DIR = Path(__file__).resolve().parent.parent / "resources" / "data_work_item_master" +MASTER_DIR = Path(__file__).resolve().parent.parent / "resources" / "master_data" / "old" #: 우리가 세운 공종·구조물 — 난수 코드가 곧 불변 열쇠 _STABLE_CODE = re.compile(r"^AX-(?:WK|ST)-[0-9a-f]{8}$") @@ -38,7 +38,7 @@ def _read(path: str, _mtime_ns: int) -> dict[tuple[str, str], str | None]: def _keys() -> dict[tuple[str, str], str | None]: out: dict[tuple[str, str], str | None] = {} - for path in sorted(MASTER_DIR.glob("*work_item_master_*.json")): # 산림 + 건설(`const_`) + for path in sorted(MASTER_DIR.glob("2_공종_*_마스터_*.json")): # 산림 + 건설(`const_`) out.update(_read(str(path), path.stat().st_mtime_ns)) return out diff --git a/common_util/common_util_work_item_link.py b/common_util/common_util_work_item_link.py index e949ecda..a86783e6 100644 --- a/common_util/common_util_work_item_link.py +++ b/common_util/common_util_work_item_link.py @@ -19,7 +19,7 @@ from functools import lru_cache from pathlib import Path from typing import Any -FOLDER = Path(__file__).resolve().parent.parent / "resources" / "data_work_item_link" +FOLDER = Path(__file__).resolve().parent.parent / "resources" / "master_data" / "old" CONFIRMED = "확정" #: 표 `policy.both_precedence` 낱말 → 그 행의 열쇠 칸 _KEY_COLUMN = {"forest": "forest_key", "construction": "const_key"} @@ -39,7 +39,7 @@ def _read(path: str, _mtime_ns: int) -> dict[str, Any]: def _doc() -> dict[str, Any]: - found = sorted(FOLDER.glob("work_item_link_*.json")) if FOLDER.is_dir() else [] + found = sorted(FOLDER.glob("2_공종_산림건설_연결_*.json")) if FOLDER.is_dir() else [] return _read(str(found[-1]), found[-1].stat().st_mtime_ns) if found else {} From b9f088fc2bab602823c268374f121097d8f5e744 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:09:16 +0900 Subject: [PATCH 03/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B1=B4=EC=B6=95=208=EC=9E=A5=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=2014=EA=B0=9C=20=E2=80=94=20=EA=B8=88?= =?UTF-8?q?=EC=86=8D=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 난간 · 잡철물 공구손료 + 잡재료비(인력품 요율 표) 덧줄 · 와이어메시 · 인서트 · 몰딩 · 앵커 재료 줄 - 경량철물 22% 감 · 톱니형 달대볼트 41% 가산 · 지형 20% · 복잡 30% · 단순설치 10% Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../master_data/로직_건설품셈_건축8장.json | 917 ++++++++++++++++++ resources/master_data/재료_자체.json | 7 +- 2 files changed, 923 insertions(+), 1 deletion(-) create mode 100644 resources/master_data/로직_건설품셈_건축8장.json diff --git a/resources/master_data/로직_건설품셈_건축8장.json b/resources/master_data/로직_건설품셈_건축8장.json new file mode 100644 index 00000000..0175a66b --- /dev/null +++ b/resources/master_data/로직_건설품셈_건축8장.json @@ -0,0 +1,917 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "건축", + "판": "2026", + "줄": [ + { + "열쇠": "8-1-1 계단논슬립 설치", + "이름": "계단논슬립 설치", + "결과단위": "원/m", + "출처": "건설품셈 건축 8-1-1", + "소유": "공용", + "입력": [ + { + "이름": "계단종류", + "고르기": [ + "목조계단", + "콘크리트계단" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:8-1-1 계단논슬립 설치, '계단 종류'=계단종류).시공량", + "출처": "건설품셈 건축 8-1-1" + }, + { + "이름": "내장공", + "식": "찾기(소요량:건설품셈:8-1-1 계단논슬립 설치, '계단 종류'=계단종류).내장공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-1-1 계단논슬립 설치, '계단 종류'=계단종류).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1030", + "이름": "내장공", + "단위": "인", + "수량": "내장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(내장공 * 인력:건설노임:1030 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-1-1 주③" + } + ], + "끝수": null, + "비고": "나사볼트 · 바탕면갈기 · 접착제 포함 · 논슬립 수량은 설계수량" + }, + { + "열쇠": "8-1-2 코너비드 설치", + "이름": "코너비드 설치", + "결과단위": "원/10m", + "출처": "건설품셈 건축 8-1-2", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:8-1-2 코너비드 설치).미장공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "기둥 · 벽 모서리 · 코너비드 수량은 설계수량" + }, + { + "열쇠": "8-1-3 와이어메시 바닥깔기", + "이름": "와이어메시 바닥깔기", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 8-1-3", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:8-1-3 와이어메시 바닥깔기).특별인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:와이어메시 1800×1800㎜", + "이름": "와이어메시", + "단위": "매", + "수량": "찾기(소요량:건설품셈:8-1-3 와이어메시 재료량, 구분='와이어메시', 규격='1,800×1,800㎜').수량", + "비목": "재료비", + "출처": "건설품셈 건축 8-1-3 주②" + } + ], + "덧줄": [ + { + "이름": "잡재료 및 소모재료(결속선 등)", + "식": "재료비 * 찾기(소요량:건설품셈:8-1-3 와이어메시 재료량, 구분='잡재료 및 소모재료 (결속선 등)', 규격='주재료비의').수량 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 8-1-3 주②" + } + ], + "끝수": null, + "비고": "재료는 할증 포함" + }, + { + "열쇠": "8-1-4 인서트 설치", + "이름": "인서트 설치", + "결과단위": "원/개", + "출처": "건설품셈 건축 8-1-4", + "소유": "공용", + "입력": [ + { + "이름": "설치대상", + "고르기": [ + "거푸집", + "데크플레이트", + "콘크리트" + ] + } + ], + "중간": [ + { + "이름": "내장공", + "식": "찾기(소요량:건설품셈:8-1-4 인서트 설치, 설치대상=설치대상).내장공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1030", + "이름": "내장공", + "단위": "인", + "수량": "내장공", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:인서트", + "이름": "인서트", + "단위": "개", + "수량": "찾기(소요량:건설품셈:8-1-4 인서트 재료량, 구분='인서트').수량", + "비목": "재료비", + "출처": "건설품셈 건축 8-1-4 주④", + "비고": "고정용 못 포함 · 할증 포함" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(내장공 * 인력:건설노임:1030) * 만약(설치대상 == '거푸집', 0, 4) / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-1-4 주③" + } + ], + "끝수": null, + "비고": "거푸집은 못 고정 · 데크 · 콘크리트는 구멍 뚫어 설치 · 공구손료 요율은 주③ 표(데크플레이트 · 콘크리트 4% — 거푸집 요율 없음)" + }, + { + "열쇠": "8-1-5 조이너 및 몰딩 설치", + "이름": "조이너 및 몰딩 설치", + "결과단위": "원/m", + "출처": "건설품셈 건축 8-1-5", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "조이너", + "몰딩" + ] + } + ], + "중간": [ + { + "이름": "내장공", + "식": "찾기(소요량:건설품셈:8-1-5 조이너 및 몰딩 설치, 구분=구분).내장공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1030", + "이름": "내장공", + "단위": "인", + "수량": "내장공", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:조이너 및 몰딩", + "이름": "조이너 및 몰딩", + "단위": "m", + "수량": "찾기(소요량:건설품셈:8-1-5 조이너 및 몰딩 재료량, 구분='조이너 및 몰딩').수량", + "비목": "재료비", + "출처": "건설품셈 건축 8-1-5 주④" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(내장공 * 인력:건설노임:1030) * 4 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-1-5 주③" + }, + { + "이름": "잡재료 및 소모재료", + "식": "재료비 * 찾기(소요량:건설품셈:8-1-5 조이너 및 몰딩 재료량, 구분='잡재료 및 소모재료', 규격='주재료비의').수량 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 8-1-5 주④" + } + ], + "끝수": null, + "비고": "몰딩은 천장갓둘레 · 재료는 할증 포함" + }, + { + "열쇠": "8-1-6 천장점검구 설치", + "이름": "천장점검구 설치", + "결과단위": "원/개소", + "출처": "건설품셈 건축 8-1-6", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "450×450", + "600×600" + ] + }, + { + "이름": "주재료비", + "단위": "원/개소", + "출처": "건설품셈 건축 8-1-6 주⑤", + "비고": "주재료(설계수량)의 단위당 재료비 — 설계자 입력" + } + ], + "중간": [ + { + "이름": "내장공", + "식": "찾기(소요량:건설품셈:8-1-6 천장점검구 설치, '규격(㎜)'=규격).내장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-1-6 천장점검구 설치, '규격(㎜)'=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1030", + "이름": "내장공", + "단위": "인", + "수량": "내장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(내장공 * 인력:건설노임:1030 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-1-6 주③" + }, + { + "이름": "잡재료 및 소모재료", + "식": "주재료비 * 3 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 8-1-6 주⑤" + } + ], + "끝수": null, + "비고": "0.6 × 0.6m 이하 · 보강 천장틀 · 받이재 별도(주④) · 점검구는 설계수량" + }, + { + "열쇠": "8-2-1 용접식난간 설치", + "이름": "용접식 철제난간 설치", + "결과단위": "원/ton", + "출처": "건설품셈 건축 8-2-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "현장제작 설치", + "규격철물 설치" + ] + }, + { + "이름": "재질", + "고르기": [ + "일반철물", + "경량철물(스테인리스)" + ], + "출처": "건설품셈 건축 8-2-1 비고" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:8-2-1 용접식난간 설치, 구분=구분).시공량 * (1 - (만약(재질 == '일반철물', 0, 22)) / 100)", + "출처": "건설품셈 건축 8-2-1" + }, + { + "이름": "용접공", + "식": "찾기(소요량:건설품셈:8-2-1 용접식난간 설치, 구분=구분).용접공 / 시공량" + }, + { + "이름": "철공", + "식": "찾기(소요량:건설품셈:8-2-1 용접식난간 설치, 구분=구분).철공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-1 용접식난간 설치, 구분=구분).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1012", + "이름": "용접공", + "단위": "인", + "수량": "용접공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1009", + "이름": "철공", + "단위": "인", + "수량": "철공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(용접공 * 인력:건설노임:1012 + 철공 * 인력:건설노임:1009 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-2-1 주⑦" + }, + { + "이름": "잡재료비(용접봉 등)", + "식": "(용접공 * 인력:건설노임:1012 + 철공 * 인력:건설노임:1009 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "재료비", + "출처": "건설품셈 건축 8-2-1 주⑦" + } + ], + "끝수": null, + "비고": "현장제작 · 규격철물 설치 · 용접부 갈기 · 재도장 · 비계 · 크레인 별도 · 공구손료 2% · 잡재료비 2%(주⑦ 표 — 두 구분 같음)" + }, + { + "열쇠": "8-2-2 앵커고정식난간 설치", + "이름": "앵커고정식 난간 설치(공장제작)", + "결과단위": "원/m", + "출처": "건설품셈 건축 8-2-2", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:8-2-2 앵커고정식난간 설치).시공량", + "출처": "건설품셈 건축 8-2-2" + }, + { + "이름": "철공", + "식": "찾기(소요량:건설품셈:8-2-2 앵커고정식난간 설치).철공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-2 앵커고정식난간 설치).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1009", + "이름": "철공", + "단위": "인", + "수량": "철공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:앵커 ø10㎜", + "이름": "앵커", + "단위": "개", + "수량": "찾기(소요량:건설품셈:8-2-2 앵커고정식난간 재료량, 구분='앵커', 규격='ø 10㎜').수량", + "비목": "재료비", + "출처": "건설품셈 건축 8-2-2 주④" + }, + { + "종류": "재료", + "요소": "재료:자체:AL리벳 ø4.2㎜", + "이름": "AL리벳", + "단위": "개", + "수량": "찾기(소요량:건설품셈:8-2-2 앵커고정식난간 재료량, 구분='AL리벳', 규격='ø 4.2㎜').수량", + "비목": "재료비", + "출처": "건설품셈 건축 8-2-2 주④" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(철공 * 인력:건설노임:1009 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-2-2 주③" + } + ], + "끝수": null, + "비고": "분체도장 난간 · 발코니 · 계단 · 난간 수량은 설계수량" + }, + { + "열쇠": "8-2-3 철조망 울타리 설치", + "이름": "철조망 울타리 설치", + "결과단위": "원/m", + "출처": "건설품셈 건축 8-2-3", + "소유": "공용", + "입력": [ + { + "이름": "지주형식", + "고르기": [ + "일자형 지주", + "Y자형 지주" + ] + }, + { + "이름": "굴착기규격", + "고르기": [ + "0.2㎥" + ] + }, + { + "이름": "지형가산", + "단위": "%", + "범위": [ + 0, + 20 + ], + "출처": "건설품셈 건축 8-2-3 주④", + "비고": "평지 기준 — 지형 따라 품 20% 범위 가산" + }, + { + "이름": "지역", + "고르기": [ + "전국평균", + "전국", + "서울", + "경기", + "강원", + "충북", + "충남", + "전북", + "경북", + "경남", + "부산", + "제주", + "대구", + "인천", + "대전", + "울산", + "세종", + "전남광주" + ], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:8-2-3 철조망 울타리 설치, '지주 형식'=지주형식, '굴착기 규격'=굴착기규격).시공량", + "출처": "건설품셈 건축 8-2-3" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:8-2-3 철조망 울타리 설치, '지주 형식'=지주형식, '굴착기 규격'=굴착기규격).특별인부 / 시공량 * (1 + 지형가산 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-3 철조망 울타리 설치, '지주 형식'=지주형식, '굴착기 규격'=굴착기규격).보통인부 / 시공량 * (1 + 지형가산 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "로직", + "요소": "로직(건설품셈:8 굴착기(무한궤도) 시간당 경비, 기계='0201-0020', 지역=지역, 보정작업='해당 없음')", + "이름": "굴착기 0.2㎥", + "단위": "시간", + "수량": "찾기(소요량:건설품셈:8-2-3 철조망 울타리 설치, '지주 형식'=지주형식, '굴착기 규격'=굴착기규격).굴착기 * 8 / 시공량" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(특별인부 * 인력:건설노임:1003 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-2-3 주⑥" + } + ], + "끝수": null, + "비고": "높이 3m 이하 · 경간 2m · 터파기 · 되메우기 · 지주 매립 포함 · 기초콘크리트 별도(주⑤) · 해석: 지형 가산은 인력품에 · 해석: 기계 1대 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간" + }, + { + "열쇠": "8-2-4 경량천장철골틀 설치", + "이름": "경량천장철골틀 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 8-2-4", + "소유": "공용", + "입력": [ + { + "이름": "BAR간격mm", + "고르기": [ + 300, + 450, + 600 + ] + }, + { + "이름": "달대볼트", + "고르기": [ + "일반", + "톱니형" + ], + "출처": "건설품셈 건축 8-2-4 비고" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:8-2-4 경량천장철골틀 설치, 'BAR간격(mm)'=BAR간격mm).시공량 * (1 - (-만약(달대볼트 == '톱니형', 41, 0)) / 100)", + "출처": "건설품셈 건축 8-2-4" + }, + { + "이름": "내장공", + "식": "찾기(소요량:건설품셈:8-2-4 경량천장철골틀 설치, 'BAR간격(mm)'=BAR간격mm).내장공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-4 경량천장철골틀 설치, 'BAR간격(mm)'=BAR간격mm).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1030", + "이름": "내장공", + "단위": "인", + "수량": "내장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(내장공 * 인력:건설노임:1030 + 보통인부 * 인력:건설노임:1002) * 6 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-2-4 주⑤" + } + ], + "끝수": null, + "비고": "M-BAR · T-BAR · Clip-BAR · 인서트 · 달대 · 행거 포함 · 톱니형 달대볼트는 시공량 41% 가산 · 천장마감 · 몰딩 · 우물천장 별도 · 철골틀 수량은 설계수량" + }, + { + "열쇠": "8-2-5 경량벽체철골틀 설치", + "이름": "경량벽체철골틀 설치(스터드)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 8-2-5", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:8-2-5 경량벽체철골틀 설치).시공량", + "출처": "건설품셈 건축 8-2-5" + }, + { + "이름": "내장공", + "식": "찾기(소요량:건설품셈:8-2-5 경량벽체철골틀 설치).내장공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-5 경량벽체철골틀 설치).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1030", + "이름": "내장공", + "단위": "인", + "수량": "내장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(내장공 * 인력:건설노임:1030 + 보통인부 * 인력:건설노임:1002) * 6 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-2-5 주④" + } + ], + "끝수": null, + "비고": "폭 150㎜ 이하 · 러너 · 스터드 · 단열재 · 마감재 별도" + }, + { + "열쇠": "8-2-6 금속패널 설치", + "이름": "금속패널 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 8-2-6", + "소유": "공용", + "입력": [ + { + "이름": "작업", + "고르기": [ + "하지철물 설치", + "패널설치" + ] + }, + { + "이름": "시공면", + "고르기": [ + "벽", + "천장 및 지붕" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:8-2-6 금속패널 설치, 작업=작업, 시공면=시공면).시공량", + "출처": "건설품셈 건축 8-2-6" + }, + { + "이름": "용접공", + "식": "만약(작업 == '하지철물 설치', 찾기(소요량:건설품셈:8-2-6 금속패널 설치, 작업=작업, 시공면=시공면).용접공 / 시공량, 0)" + }, + { + "이름": "철공", + "식": "찾기(소요량:건설품셈:8-2-6 금속패널 설치, 작업=작업, 시공면=시공면).철공 / 시공량" + }, + { + "이름": "보통인부", + "식": "만약(작업 == '패널설치', 찾기(소요량:건설품셈:8-2-6 금속패널 설치, 작업=작업, 시공면=시공면).보통인부 / 시공량, 0)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1012", + "이름": "용접공", + "단위": "인", + "수량": "용접공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1009", + "이름": "철공", + "단위": "인", + "수량": "철공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(용접공 * 인력:건설노임:1012 + 철공 * 인력:건설노임:1009 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-2-6 주⑥" + } + ], + "끝수": null, + "비고": "하지철물(각관 · 앵글) · 알루미늄 패널 · 단열재는 5-4 · 비계 · 고소작업차 별도 · 외벽 높이 할증은 공통 1-4-5" + }, + { + "열쇠": "8-2-7 금속패널 코킹", + "이름": "금속패널 코킹", + "결과단위": "원/10m", + "출처": "건설품셈 건축 8-2-7", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "코킹공", + "식": "찾기(소요량:건설품셈:8-2-7 금속패널 코킹).코킹공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-7 금속패널 코킹).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:5007", + "이름": "코킹공", + "단위": "인", + "수량": "코킹공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "마스킹 · 백업재 · 줄눈 코킹 포함 · 외벽 높이 할증은 공통 1-4-5" + }, + { + "열쇠": "8-3-1 잡철물 제작 및 설치", + "이름": "잡철물 제작 및 설치", + "결과단위": "원/ton", + "출처": "건설품셈 건축 8-3-1", + "소유": "공용", + "입력": [ + { + "이름": "설치유형", + "고르기": [ + "제품 설치", + "규격철물 설치", + "현장제작 설치" + ] + }, + { + "이름": "재질", + "고르기": [ + "일반철재", + "경량철재" + ] + }, + { + "이름": "단순설치", + "고르기": [ + "아님", + "기성제품 단순 설치(관로뚜껑 · Sole Plate 등)" + ], + "출처": "건설품셈 건축 8-3-1 비고" + }, + { + "이름": "복잡도", + "고르기": [ + "보통", + "복잡(트러스 · 원형 · 곡선 · 절단 · 용접 과다)" + ], + "출처": "건설품셈 건축 8-3-1 비고" + } + ], + "중간": [ + { + "이름": "철공", + "식": "찾기(소요량:건설품셈:8-3-1 잡철물 제작 및 설치, '설치 유형'=설치유형, 재질=재질).철공 * 만약(단순설치 == '아님', 1, 만약(설치유형 == '제품 설치', 0.9, 1)) * 만약(복잡도 == '보통', 1, 1.3)" + }, + { + "이름": "용접공", + "식": "찾기(소요량:건설품셈:8-3-1 잡철물 제작 및 설치, '설치 유형'=설치유형, 재질=재질).용접공 * 만약(단순설치 == '아님', 1, 만약(설치유형 == '제품 설치', 0.9, 1)) * 만약(복잡도 == '보통', 1, 1.3)" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:8-3-1 잡철물 제작 및 설치, '설치 유형'=설치유형, 재질=재질).특별인부 * 만약(단순설치 == '아님', 1, 만약(설치유형 == '제품 설치', 0.9, 1)) * 만약(복잡도 == '보통', 1, 1.3)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-3-1 잡철물 제작 및 설치, '설치 유형'=설치유형, 재질=재질).보통인부 * 만약(단순설치 == '아님', 1, 만약(설치유형 == '제품 설치', 0.9, 1)) * 만약(복잡도 == '보통', 1, 1.3)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1009", + "이름": "철공", + "단위": "인", + "수량": "철공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1012", + "이름": "용접공", + "단위": "인", + "수량": "용접공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(철공 * 인력:건설노임:1009 + 용접공 * 인력:건설노임:1012 + 특별인부 * 인력:건설노임:1003 + 보통인부 * 인력:건설노임:1002) * 만약(재질 == '경량철재', 4, 5) / 100", + "비목": "경비", + "출처": "건설품셈 건축 8-3-1 주⑦" + }, + { + "이름": "잡재료비(용접봉 · 볼트 등)", + "식": "(철공 * 인력:건설노임:1009 + 용접공 * 인력:건설노임:1012 + 특별인부 * 인력:건설노임:1003 + 보통인부 * 인력:건설노임:1002) * 만약(재질 == '경량철재', 2, 3) / 100", + "비목": "재료비", + "출처": "건설품셈 건축 8-3-1 주⑦" + } + ], + "끝수": null, + "비고": "제품 · 규격철물 · 현장제작 · 공장가공 대형부재 · 특수철물 별도(주⑤) · 장비 · 비계 별도 · 공구손료 일반 5% · 경량 4% · 잡재료비 일반 3% · 경량 2%(주⑦ 표) · 해석: 단순설치 10% 감은 제품 설치에만" + } + ] +} diff --git a/resources/master_data/재료_자체.json b/resources/master_data/재료_자체.json index edfd56cf..874025d9 100644 --- a/resources/master_data/재료_자체.json +++ b/resources/master_data/재료_자체.json @@ -192,6 +192,11 @@ {"열쇠": "조인트테이프", "이름": "조인트테이프", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 6-5-3"}, {"열쇠": "실링재 수밀코킹", "이름": "실링재", "규격": "수밀코킹", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 6-6-1"}, {"열쇠": "폴리카보네이트 두께 16㎜ 이하", "이름": "폴리카보네이트", "규격": "두께 16㎜ 이하", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 건축 7-1-6"}, - {"열쇠": "후레싱 금속재 설치폭 0.25m 이하", "이름": "후레싱", "규격": "금속재 설치폭 0.25m 이하", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 7-1-7"} + {"열쇠": "후레싱 금속재 설치폭 0.25m 이하", "이름": "후레싱", "규격": "금속재 설치폭 0.25m 이하", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 7-1-7"}, + {"열쇠": "와이어메시 1800×1800㎜", "이름": "와이어메시", "규격": "1,800×1,800㎜", "단위": "매", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-1-3"}, + {"열쇠": "인서트", "이름": "인서트", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-1-4"}, + {"열쇠": "조이너 및 몰딩", "이름": "조이너 및 몰딩", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-1-5"}, + {"열쇠": "앵커 ø10㎜", "이름": "앵커", "규격": "ø 10㎜", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-2-2"}, + {"열쇠": "AL리벳 ø4.2㎜", "이름": "AL리벳", "규격": "ø 4.2㎜", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-2-2"} ] } From bdbbfe6df93d44271f9160ac4e346a4bfef625c1 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:10:25 +0900 Subject: [PATCH 04/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B1=B4=EC=B6=95=209=EC=9E=A5=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=2012=EA=B0=9C=20=E2=80=94=20=EB=AF=B8?= =?UTF-8?q?=EC=9E=A5=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 시공높이 · 천장 · 폭 30㎝ 이하 감 · 작업대기 할증(마감별 상한) · 기계마감 공구손료 - 배합 · 충전 재료 줄(시멘트 · 모래 · 혼화제 · 무수축모르타르) · 우레탄폼 분사기구 - 막힘: 모르타르 타설장비 3기 주연료가 글 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../master_data/로직_건설품셈_건축9장.json | 699 ++++++++++++++++++ .../master_data/로직_건설품셈_공통8장.json | 2 +- resources/master_data/재료_자체.json | 8 +- 3 files changed, 705 insertions(+), 4 deletions(-) create mode 100644 resources/master_data/로직_건설품셈_건축9장.json diff --git a/resources/master_data/로직_건설품셈_건축9장.json b/resources/master_data/로직_건설품셈_건축9장.json new file mode 100644 index 00000000..d9f9a252 --- /dev/null +++ b/resources/master_data/로직_건설품셈_건축9장.json @@ -0,0 +1,699 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "건축", + "판": "2026", + "줄": [ + { + "열쇠": "9-1-1 모르타르 배합", + "이름": "모르타르 배합(시멘트 · 모래)", + "결과단위": "원/㎥", + "출처": "건설품셈 건축 9-1-1", + "소유": "공용", + "입력": [ + { + "이름": "모래체가름", + "고르기": [ + "모래체가름 포함", + "모래체가름 제외" + ] + }, + { + "이름": "배합용적비", + "고르기": [ + "1 : 1", + "1 : 2", + "1 : 3", + "1 : 4", + "1 : 5" + ], + "출처": "건설품셈 건축 9-1-1 참고자료" + } + ], + "중간": [ + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-1-1 모르타르 배합, 모래체가름=모래체가름).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:시멘트", + "이름": "시멘트", + "단위": "kg", + "수량": "찾기(소요량:건설품셈:9-1-1 모르타르 배합 재료량, 배합용적비=배합용적비).시멘트", + "비목": "재료비", + "출처": "건설품셈 건축 9-1-1 참고자료" + }, + { + "종류": "재료", + "요소": "재료:자체:모래", + "이름": "모래", + "단위": "㎥", + "수량": "찾기(소요량:건설품셈:9-1-1 모르타르 배합 재료량, 배합용적비=배합용적비).모래", + "비목": "재료비", + "출처": "건설품셈 건축 9-1-1 참고자료" + } + ], + "덧줄": [], + "끝수": null, + "비고": "건조시멘트모르타르를 쓰지 않을 때 · 비빔 제외 · 재료는 할증 포함" + }, + { + "열쇠": "9-1-2 모르타르 바름", + "이름": "모르타르 바름(벽체)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 9-1-2", + "소유": "공용", + "입력": [ + { + "이름": "시공높이m", + "단위": "m", + "출처": "건설품셈 건축 9-1-2" + }, + { + "이름": "바름횟수", + "고르기": [ + 1, + 2, + 3 + ] + }, + { + "이름": "바탕", + "고르기": [ + "일반", + "폭 30㎝ 이하 · 원주 바름면" + ], + "출처": "건설품셈 건축 9-1-2 비고" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:9-1-2 모르타르 바름, '시공높이(m)'=최소(시공높이m, 7.2), '바름 횟수'=바름횟수).시공량 * (1 - (만약(시공높이m > 7.2, 올림((시공높이m - 7.2) / 3.6) * 3, 0) + 만약(바탕 == '일반', 0, 17)) / 100)", + "출처": "건설품셈 건축 9-1-2" + }, + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-1-2 모르타르 바름, '시공높이(m)'=최소(시공높이m, 7.2), '바름 횟수'=바름횟수).미장공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-1-2 모르타르 바름, '시공높이(m)'=최소(시공높이m, 7.2), '바름 횟수'=바름횟수).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(미장공 * 인력:건설노임:1027 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 9-1-2 주⑤" + } + ], + "끝수": null, + "비고": "두께 24㎜ 이하 · 쇠흙손 마감 · 건조시멘트모르타르 기준 — 배합은 9-1-1 · 폭 30㎝ 이하 · 원주는 시공량 17% 감 · 해석: 시공높이 7.2m 초과는 3.6∼7.2m 줄의 시공량에서 3.6m마다 3% 감(비계 사용 때 — 올림)" + }, + { + "열쇠": "9-1-3 모르타르 타설", + "이름": "바닥 모르타르 타설(타설장비)", + "결과단위": "원/㎥", + "출처": "건설품셈 건축 9-1-3", + "소유": "공용", + "입력": [ + { + "이름": "타설재료", + "고르기": [ + "모르타르", + "경량기포콘크리트" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:9-1-3 모르타르 타설, '타설 재료'=타설재료).시공량", + "출처": "건설품셈 건축 9-1-3" + }, + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-1-3 모르타르 타설, '타설 재료'=타설재료).미장공 / 시공량" + }, + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:9-1-3 모르타르 타설, '타설 재료'=타설재료).기계설비공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-1-3 모르타르 타설, '타설 재료'=타설재료).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "준비 · 압송관 조립 · 철거 · 고르기 포함 · 기계조합은 9-1-3 표(펌프 37㎾ · 믹서 0.3㎥ · 양수기 1.49㎾ · 배관파이프 ø50-2.6m) · 배관파이프는 기계 요소 없음 · 해석: 기계 1대 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간 · 막힘: 기계 자료로 경비 못 셈 — 모르타르 펌프 37㎾ — 7991-0500 주연료가 글(「37㎾」) · 모르타르 믹서 0.3㎥ — 7992-0001 주연료가 글(「1.87㎾ 휘발유1.3」) · 양수기 1.49㎾ — 7993-0020 주연료가 글(「1.49㎾」) — 그 줄 빠짐" + }, + { + "열쇠": "9-1-4 표면 마무리", + "이름": "바닥 모르타르 표면 마무리", + "결과단위": "원/100㎡", + "출처": "건설품셈 건축 9-1-4", + "소유": "공용", + "입력": [ + { + "이름": "마감", + "고르기": [ + "인력마감", + "기계마감" + ] + }, + { + "이름": "작업대기할증", + "단위": "%", + "범위": [ + 0, + 75 + ], + "출처": "건설품셈 건축 9-1-4 비고", + "비고": "작업대기가 생길 때 — 인력마감 55%까지 · 기계마감 75%까지" + } + ], + "중간": [ + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-1-4 표면 마무리, 마감=마감).미장공 * (1 + 최소(작업대기할증, 만약(마감 == '인력마감', 55, 75)) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(미장공 * 인력:건설노임:1027) * 만약(마감 == '기계마감', 9, 0) / 100", + "비목": "경비", + "출처": "건설품셈 건축 9-1-4 주②" + } + ], + "끝수": null, + "비고": "연속 작업 · 대기 없는 기준 · 공구손료 요율은 주② 표(기계마감 9% — 인력마감 요율 없음) · 해석: 작업대기 할증은 마감별 상한까지" + }, + { + "열쇠": "9-1-5 라스 붙임", + "이름": "라스 붙임(메탈라스 · 유리섬유메쉬)", + "결과단위": "원/10㎡", + "출처": "건설품셈 건축 9-1-5", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-1-5 라스 붙임).미장공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "라스 · 메쉬 수량은 설계수량" + }, + { + "열쇠": "9-2-1 콘크리트면 정리", + "이름": "콘크리트면 정리(연마)", + "결과단위": "원/10㎡", + "출처": "건설품셈 건축 9-2-1", + "소유": "공용", + "입력": [ + { + "이름": "시공높이m", + "단위": "m", + "출처": "건설품셈 건축 9-2-1" + }, + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 9-2-1 비고" + } + ], + "중간": [ + { + "이름": "견출공", + "식": "찾기(소요량:건설품셈:9-2-1 콘크리트면 정리, '시공높이(m)'=최소(시공높이m, 7.2)).견출공 * 만약(시공면 == '천장', 1.2, 1) / (1 - (만약(시공높이m > 7.2, 올림((시공높이m - 7.2) / 3.6) * 3, 0)) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1022", + "이름": "견출공", + "단위": "인", + "수량": "견출공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(견출공 * 인력:건설노임:1022) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 9-2-1 주②" + } + ], + "끝수": null, + "비고": "연마기 · 천장은 본 품 20% 가산 · 해석: 시공높이 7.2m 초과는 3.6∼7.2m 줄의 시공량에서 3.6m마다 3% 감(비계 사용 때 — 올림) — 해석: 단위당 품이라 품 ÷ (1 − 감)" + }, + { + "열쇠": "9-2-2 부분 마감", + "이름": "콘크리트면 부분 마감(시멘트페이스트)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 9-2-2", + "소유": "공용", + "입력": [ + { + "이름": "시공높이m", + "단위": "m", + "출처": "건설품셈 건축 9-2-2" + }, + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 9-2-2 비고" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:9-2-2 부분 마감, '시공높이(m)'=최소(시공높이m, 7.2)).시공량 * (1 - (만약(시공높이m > 7.2, 올림((시공높이m - 7.2) / 3.6) * 3, 0) + 만약(시공면 == '천장', 17, 0)) / 100)", + "출처": "건설품셈 건축 9-2-2" + }, + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-2-2 부분 마감, '시공높이(m)'=최소(시공높이m, 7.2)).미장공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-2-2 부분 마감, '시공높이(m)'=최소(시공높이m, 7.2)).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "홈메우기 · 페이스트 · 붓칠 포함 · 천장은 시공량 17% 감 · 해석: 시공높이 7.2m 초과는 3.6∼7.2m 줄의 시공량에서 3.6m마다 3% 감(비계 사용 때 — 올림)" + }, + { + "열쇠": "9-2-3 전면 마감", + "이름": "콘크리트면 전면 마감(시멘트페이스트)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 9-2-3", + "소유": "공용", + "입력": [ + { + "이름": "시공높이m", + "단위": "m", + "출처": "건설품셈 건축 9-2-3" + }, + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 9-2-3 비고" + }, + { + "이름": "혼화제", + "고르기": [ + "쓰지 않음", + "씀" + ], + "출처": "건설품셈 건축 9-2-3 참고자료", + "비고": "필요에 따라" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:9-2-3 전면 마감, '시공높이(m)'=최소(시공높이m, 7.2)).시공량 * (1 - (만약(시공높이m > 7.2, 올림((시공높이m - 7.2) / 3.6) * 3, 0) + 만약(시공면 == '천장', 17, 0)) / 100)", + "출처": "건설품셈 건축 9-2-3" + }, + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-2-3 전면 마감, '시공높이(m)'=최소(시공높이m, 7.2)).미장공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-2-3 전면 마감, '시공높이(m)'=최소(시공높이m, 7.2)).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:시멘트", + "이름": "시멘트", + "단위": "kg", + "수량": "찾기(소요량:건설품셈:9-2-3 전면 마감 재료량, 구분='시멘트').수량", + "비목": "재료비", + "출처": "건설품셈 건축 9-2-3 참고자료" + }, + { + "종류": "재료", + "요소": "재료:자체:혼화제", + "이름": "혼화제", + "단위": "g", + "수량": "만약(혼화제 == '씀', 찾기(소요량:건설품셈:9-2-3 전면 마감 재료량, 구분='혼화제').수량, 0)", + "비목": "재료비", + "출처": "건설품셈 건축 9-2-3 참고자료" + } + ], + "덧줄": [], + "끝수": null, + "비고": "홈메우기 · 페이스트 · 붓칠 포함 · 천장은 시공량 17% 감 · 해석: 시공높이 7.2m 초과는 3.6∼7.2m 줄의 시공량에서 3.6m마다 3% 감(비계 사용 때 — 올림)" + }, + { + "열쇠": "9-3-1 창호주위 모르타르 충전", + "이름": "창호주위 모르타르 충전", + "결과단위": "원/10m", + "출처": "건설품셈 건축 9-3-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-3-1 창호주위 모르타르 충전).미장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-3-1 창호주위 모르타르 충전).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:시멘트", + "이름": "시멘트", + "단위": "kg", + "수량": "찾기(소요량:건설품셈:9-3-1 창호주위 모르타르 재료량, 구분='시멘트').수량", + "비목": "재료비", + "출처": "건설품셈 건축 9-3-1 주⑤" + }, + { + "종류": "재료", + "요소": "재료:자체:모래", + "이름": "모래", + "단위": "㎥", + "수량": "찾기(소요량:건설품셈:9-3-1 창호주위 모르타르 재료량, 구분='모래').수량", + "비목": "재료비", + "출처": "건설품셈 건축 9-3-1 주⑤" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(미장공 * 인력:건설노임:1027 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 9-3-1 주④" + } + ], + "끝수": null, + "비고": "방수 코킹은 6-6-1" + }, + { + "열쇠": "9-3-2 창호주위 발포우레탄 충전", + "이름": "창호주위 발포우레탄 충전", + "결과단위": "원/10m", + "출처": "건설품셈 건축 9-3-2", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-3-2 창호주위 발포우레탄 충전).미장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-3-2 창호주위 발포우레탄 충전).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "방수 코킹은 6-6-1 · 발포우레탄 수량 원문 없음" + }, + { + "열쇠": "9-3-3 주각부 무수축 모르타르 충전", + "이름": "주각부 무수축 모르타르 충전", + "결과단위": "원/개소", + "출처": "건설품셈 건축 9-3-3", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "400×400(㎜)", + "500×500(㎜)", + "600×600(㎜)", + "700×700(㎜)" + ] + } + ], + "중간": [ + { + "이름": "미장공", + "식": "찾기(소요량:건설품셈:9-3-3 주각부 무수축 모르타르 충전, '규격(㎜)'=규격).미장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-3-3 주각부 무수축 모르타르 충전, '규격(㎜)'=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1027", + "이름": "미장공", + "단위": "인", + "수량": "미장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:무수축모르타르", + "이름": "무수축모르타르", + "단위": "㎏", + "수량": "찾기(소요량:건설품셈:9-3-3 재료량, '규격(㎜)'=규격).무수축모르타르", + "비목": "재료비", + "출처": "건설품셈 건축 9-3-3 주③" + } + ], + "덧줄": [], + "끝수": null, + "비고": "철골 기초부 · 두께 50㎜ · 형틀 설치 포함" + }, + { + "열쇠": "9-3-4 우레탄폼 분사 충전", + "이름": "우레탄폼 분사 충전(단열)", + "결과단위": "원/㎥", + "출처": "건설품셈 건축 9-3-4", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:9-3-4 우레탄폼 분사 충전, 시공면=시공면).시공량", + "출처": "건설품셈 건축 9-3-4" + }, + { + "이름": "내장공", + "식": "찾기(소요량:건설품셈:9-3-4 우레탄폼 분사 충전, 시공면=시공면).내장공 / 시공량" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:9-3-4 우레탄폼 분사 충전, 시공면=시공면).특별인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1030", + "이름": "내장공", + "단위": "인", + "수량": "내장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + }, + { + "종류": "로직", + "요소": "로직(건설품셈:8 기계 시간당 손료, 기계='7830-0081')", + "이름": "우레탄폼 분사용기구 8.1㎏/min", + "단위": "시간", + "수량": "찾기(소요량:건설품셈:9-3-4 우레탄폼 분사 충전, 시공면=시공면).'우레탄폼 분사용기구' * 8 / 시공량" + } + ], + "덧줄": [], + "끝수": null, + "비고": "장비 조립 · 해체 · 충전 · 면정리 포함 · 보양 별도 · 분사용기구 기계경비는 원문 「별도 계상」 — 이 줄로 셈 · 단열재 수량 원문 없음 · 해석: 기계 1대 × 1일 8시간(건설품셈 공통 1-1) ÷ 일당 시공량 = 시간" + } + ] +} diff --git a/resources/master_data/로직_건설품셈_공통8장.json b/resources/master_data/로직_건설품셈_공통8장.json index 5c93806e..007aabb2 100644 --- a/resources/master_data/로직_건설품셈_공통8장.json +++ b/resources/master_data/로직_건설품셈_공통8장.json @@ -385,7 +385,7 @@ "입력": [ { "이름": "기계", - "고르기": ["7620-0003", "7730-0150", "6516-0060", "6516-0120", "6516-0250", "6516-0300", "6105-0190", "6202-0060", "0230-0002", "6410-0080", "6410-0100", "6410-0120", "6410-0150", "6410-0200", "6901-0010", "6530-0090", "6530-0120", "6517-0100", "6517-0150", "6517-0200", "6517-0250", "6517-0300", "6510-0100", "6510-0150", "6510-0200", "6510-0250", "6510-0300", "6518-0100", "6518-0150", "6518-0200", "6518-0250", "6518-0300", "5501-0080", "7750-0016", "7750-0025", "7730-0050", "5401-0017", "5202-0127", "5202-0240", "5202-0300", "7611-0200", "7612-0200", "5204-0200", "5204-0300", "5204-0400", "5204-0500", "5204-0600", "5702-0095", "3430-0400", "7431-1300", "7740-0080", "7740-0150", "2101-0010", "2101-0015", "2101-0020", "2101-0025", "2101-0030", "2101-0035", "2101-0040", "2101-0050", "2101-0070", "2101-0080", "2101-0100", "2101-0150", "2101-0220", "2101-0280", "2101-0300", "2104-0010", "2104-0015", "2104-0020", "2104-0025", "2104-0030", "2104-0035", "2104-0040", "2104-0045", "2104-0050", "2104-0060", "2104-0070", "2104-0080", "2104-0100", "2104-0130", "2104-0160", "2104-0200", "2104-0220", "2104-0250", "2104-0300", "2208-5008", "2208-5010", "2208-5012", "2208-5016", "2208-5020", "2105-0002", "2105-0003", "2105-0005", "2105-0010", "2105-0015", "2105-0018", "0201-0012", "0201-0020", "0201-0040", "0201-0060", "0201-0070", "0201-0080", "0201-0100", "0201-0120", "0201-0200", "6105-0390", "6202-0125"] + "고르기": ["7620-0003", "7730-0150", "6516-0060", "6516-0120", "6516-0250", "6516-0300", "6105-0190", "6202-0060", "0230-0002", "6410-0080", "6410-0100", "6410-0120", "6410-0150", "6410-0200", "6901-0010", "6530-0090", "6530-0120", "6517-0100", "6517-0150", "6517-0200", "6517-0250", "6517-0300", "6510-0100", "6510-0150", "6510-0200", "6510-0250", "6510-0300", "6518-0100", "6518-0150", "6518-0200", "6518-0250", "6518-0300", "5501-0080", "7750-0016", "7750-0025", "7730-0050", "5401-0017", "5202-0127", "5202-0240", "5202-0300", "7611-0200", "7612-0200", "5204-0200", "5204-0300", "5204-0400", "5204-0500", "5204-0600", "5702-0095", "3430-0400", "7431-1300", "7740-0080", "7740-0150", "2101-0010", "2101-0015", "2101-0020", "2101-0025", "2101-0030", "2101-0035", "2101-0040", "2101-0050", "2101-0070", "2101-0080", "2101-0100", "2101-0150", "2101-0220", "2101-0280", "2101-0300", "2104-0010", "2104-0015", "2104-0020", "2104-0025", "2104-0030", "2104-0035", "2104-0040", "2104-0045", "2104-0050", "2104-0060", "2104-0070", "2104-0080", "2104-0100", "2104-0130", "2104-0160", "2104-0200", "2104-0220", "2104-0250", "2104-0300", "2208-5008", "2208-5010", "2208-5012", "2208-5016", "2208-5020", "2105-0002", "2105-0003", "2105-0005", "2105-0010", "2105-0015", "2105-0018", "0201-0012", "0201-0020", "0201-0040", "0201-0060", "0201-0070", "0201-0080", "0201-0100", "0201-0120", "0201-0200", "6105-0390", "6202-0125", "7830-0081"] } ], "중간": [ diff --git a/resources/master_data/재료_자체.json b/resources/master_data/재료_자체.json index 874025d9..4aca108f 100644 --- a/resources/master_data/재료_자체.json +++ b/resources/master_data/재료_자체.json @@ -5,9 +5,9 @@ "비고": "공시에 없는 재료 — 이름·규격·단위만 · 값은 관리자가 물가지·견적으로 채움", "줄": [ {"열쇠": "레미콘", "이름": "레디믹스트콘크리트", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-9-1 · 12-11-1 · 12-11-2-1 · 12-12 · 12-13 · 12-15 · 12-16 · 12-17-2 · 12-17-3 · 13-4-4 주① · 13-4-5 · 13-5-1 주⑤ · 13-5-2 · 규격(강도·골재·슬럼프)별 값이 다르면 관리자가 줄을 나눔 · 건설품셈 공통 7-3-1 주⑥ 채움콘크리트"}, - {"열쇠": "시멘트", "이름": "시멘트", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤⑥ · 12-17-1-2 주③ · 건설품셈 공통 6-3-1 주⑤ · 건설품셈 건축 5-4-9"}, + {"열쇠": "시멘트", "이름": "시멘트", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤⑥ · 12-17-1-2 주③ · 건설품셈 공통 6-3-1 주⑤ · 건설품셈 건축 5-4-9 · 건설품셈 건축 9-1-1 · 건설품셈 건축 9-2-3 · 건설품셈 건축 9-3-1"}, { "열쇠": "모래(중량)", "이름": "모래", "규격": "건조상태", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤" }, - { "열쇠": "모래", "이름": "모래", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 · 12-17-1-2 주③ · 건설품셈 공통 6-3-1 주⑤" }, + {"열쇠": "모래", "이름": "모래", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-11-3 · 12-17-1-2 주③ · 건설품셈 공통 6-3-1 주⑤ · 건설품셈 건축 9-1-1 · 건설품셈 건축 9-3-1"}, { "열쇠": "자갈(중량)", "이름": "자갈 또는 부순돌", "규격": "", "단위": "kg", "값": null, "출처": "자체", "비고": "산림품셈 12-1-3 주⑤" }, { "열쇠": "자갈", "이름": "자갈", "규격": "", "단위": "㎥", "값": null, "출처": "자체", "비고": "산림품셈 12-17-1-2 주③" }, { "열쇠": "이형철근", "이름": "이형철근", "규격": "", "단위": "ton", "값": null, "출처": "자체", "비고": "산림품셈 12-15 · 12-16" }, @@ -197,6 +197,8 @@ {"열쇠": "인서트", "이름": "인서트", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-1-4"}, {"열쇠": "조이너 및 몰딩", "이름": "조이너 및 몰딩", "규격": "", "단위": "m", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-1-5"}, {"열쇠": "앵커 ø10㎜", "이름": "앵커", "규격": "ø 10㎜", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-2-2"}, - {"열쇠": "AL리벳 ø4.2㎜", "이름": "AL리벳", "규격": "ø 4.2㎜", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-2-2"} + {"열쇠": "AL리벳 ø4.2㎜", "이름": "AL리벳", "규격": "ø 4.2㎜", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 건축 8-2-2"}, + {"열쇠": "혼화제", "이름": "혼화제", "규격": "", "단위": "g", "값": null, "출처": "자체", "비고": "건설품셈 건축 9-2-3"}, + {"열쇠": "무수축모르타르", "이름": "무수축모르타르", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 건축 9-3-3"} ] } From b168ef2c51562158ce41a449f919b7de92f5eaeb Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:11:14 +0900 Subject: [PATCH 05/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B1=B4=EC=B6=95=2010=EC=9E=A5=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=2014=EA=B0=9C=20=E2=80=94=20=EC=B0=BD?= =?UTF-8?q?=ED=98=B8=20=EB=B0=8F=20=EC=9C=A0=EB=A6=AC=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 창호 · 문선 · 셔터 · 자동문 · 커튼월 · 창호철물 · 유리 · FIX창 15% 감 · 도어록 창호별 공구손료 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../master_data/로직_건설품셈_건축10장.json | 738 ++++++++++++++++++ 1 file changed, 738 insertions(+) create mode 100644 resources/master_data/로직_건설품셈_건축10장.json diff --git a/resources/master_data/로직_건설품셈_건축10장.json b/resources/master_data/로직_건설품셈_건축10장.json new file mode 100644 index 00000000..83c14c91 --- /dev/null +++ b/resources/master_data/로직_건설품셈_건축10장.json @@ -0,0 +1,738 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "건축", + "판": "2026", + "줄": [ + { + "열쇠": "10-1-1 목재창호 설치", + "이름": "목재창호 설치", + "결과단위": "원/개소", + "출처": "건설품셈 건축 10-1-1", + "소유": "공용", + "입력": [ + { + "이름": "창호형식", + "고르기": [ + "여닫이", + "미서기 (단창)" + ] + }, + { + "이름": "면적", + "단위": "㎡", + "출처": "건설품셈 건축 10-1-1" + } + ], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-1 목재창호 설치, '창호 형식'=창호형식, '면적(㎡)'=면적).창호공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-1 목재창호 설치, '창호 형식'=창호형식, '면적(㎡)'=면적).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-1-1 주③" + } + ], + "끝수": null, + "비고": "창호틀 · 짝 · 경첩 · 문달기 포함 · 문선은 10-1-1 문선 설치 · 창호 · 부속철물 수량은 설계수량" + }, + { + "열쇠": "10-1-1 문선 설치", + "이름": "목재창호 문선 설치", + "결과단위": "원/m", + "출처": "건설품셈 건축 10-1-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-1 문선 설치).창호공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 비고 — 문선을 설치하는 경우 추가 · 문선 수량은 설계수량" + }, + { + "열쇠": "10-1-2 강재창호 설치", + "이름": "강재창호 설치(여닫이)", + "결과단위": "원/개소", + "출처": "건설품셈 건축 10-1-2", + "소유": "공용", + "입력": [ + { + "이름": "면적", + "단위": "㎡", + "출처": "건설품셈 건축 10-1-2" + } + ], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-2 강재창호 설치, '면적(㎡)'=면적).창호공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-2 강재창호 설치, '면적(㎡)'=면적).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-1-2 주③" + } + ], + "끝수": null, + "비고": "창호틀 · 짝 · 경첩 포함 · 창호 · 부속철물 수량은 설계수량" + }, + { + "열쇠": "10-1-3 알루미늄창호 설치", + "이름": "알루미늄창호 설치", + "결과단위": "원/개소", + "출처": "건설품셈 건축 10-1-3", + "소유": "공용", + "입력": [ + { + "이름": "면적", + "단위": "㎡", + "출처": "건설품셈 건축 10-1-3" + }, + { + "이름": "창호짝", + "고르기": [ + "있음", + "없음(FIX창 · 루버창 등)" + ], + "출처": "건설품셈 건축 10-1-3 비고" + } + ], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-3 알루미늄창호 설치, '면적(㎡)'=면적).창호공 * 만약(창호짝 == '있음', 1, 0.85)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-3 알루미늄창호 설치, '면적(㎡)'=면적).보통인부 * 만약(창호짝 == '있음', 1, 0.85)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-1-3 주③" + } + ], + "끝수": null, + "비고": "미서기 · 프로젝트창 · 앵커 · 연결철물 포함 · 창호짝이 없으면 본 품 15% 감 · 창호 · 부속철물 수량은 설계수량" + }, + { + "열쇠": "10-1-4 조립식 알루미늄창호 설치", + "이름": "조립식 알루미늄창호 설치(연창)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 10-1-4", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-4 조립식 알루미늄창호 설치).창호공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-4 조립식 알루미늄창호 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-1-4 주④" + } + ], + "끝수": null, + "비고": "유닛 폭 1.5m 이하 · 스틱월 방식은 10-1-8 · 창호 · 부속철물 수량은 설계수량" + }, + { + "열쇠": "10-1-5 합성수지창호 설치", + "이름": "합성수지창호 설치(미서기)", + "결과단위": "원/개소", + "출처": "건설품셈 건축 10-1-5", + "소유": "공용", + "입력": [ + { + "이름": "창호형식", + "고르기": [ + "단창", + "이중창" + ] + }, + { + "이름": "면적", + "단위": "㎡", + "출처": "건설품셈 건축 10-1-5" + } + ], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-5 합성수지창호 설치, '창호 형식'=창호형식, '면적(㎡)'=면적).창호공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-5 합성수지창호 설치, '창호 형식'=창호형식, '면적(㎡)'=면적).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-1-5 주③" + } + ], + "끝수": null, + "비고": "앵커 · 연결철물 포함 · 창호 · 부속철물 수량은 설계수량" + }, + { + "열쇠": "10-1-6 셔터설치(장치포함)", + "이름": "전동셔터 설치(장치 포함)", + "결과단위": "원/개소", + "출처": "건설품셈 건축 10-1-6", + "소유": "공용", + "입력": [ + { + "이름": "면적", + "단위": "㎡", + "출처": "건설품셈 건축 10-1-6" + } + ], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-6 셔터설치(장치포함), '면적(㎡)'=면적).창호공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-6 셔터설치(장치포함), '면적(㎡)'=면적).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-1-6 주③" + } + ], + "끝수": null, + "비고": "강재 · AL · 가이드레일 · 샤프트 · 개폐기 · 박스 포함 · 셔터는 설계수량" + }, + { + "열쇠": "10-1-7 자동문 설치", + "이름": "자동문 설치(미닫이유리문)", + "결과단위": "원/개소", + "출처": "건설품셈 건축 10-1-7", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-7 자동문 설치).창호공" + }, + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:10-1-7 자동문 설치).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-7 자동문 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 기계설비공 * 인력:건설노임:1051 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-1-7 주④" + } + ], + "끝수": null, + "비고": "프레임 · 구동장치 · 센서 · 작동시험 포함 · 유리 · 전기 · 통신 별도(주③) · 자동문은 설계수량" + }, + { + "열쇠": "10-1-8 커튼월 프레임 설치", + "이름": "커튼월 프레임 설치(스틱월)", + "결과단위": "원/kg", + "출처": "건설품셈 건축 10-1-8", + "소유": "공용", + "입력": [ + { + "이름": "가공방식", + "고르기": [ + "현장가공", + "공장가공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:10-1-8 커튼월 프레임 설치, '가공 방식'=가공방식).시공량", + "출처": "건설품셈 건축 10-1-8" + }, + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-1-8 커튼월 프레임 설치, '가공 방식'=가공방식).창호공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-8 커튼월 프레임 설치, '가공 방식'=가공방식).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-1-8 주⑦" + } + ], + "끝수": null, + "비고": "현장가공 · 공장가공 · 앵커철물 · 브라켓 포함 · 비계 · 고소작업차 별도 · 외벽 높이 할증은 공통 1-4-5 · 해석: 주⑦ 「기계경비는 3%」 = 인력품의 3% · 프레임은 설계수량" + }, + { + "열쇠": "10-2-1 도어체크 설치", + "이름": "도어체크 설치", + "결과단위": "원/10개소", + "출처": "건설품셈 건축 10-2-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-2-1 도어체크 설치).창호공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-2-1 도어체크 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-2-1 주③" + } + ], + "끝수": null, + "비고": "여닫이문 · 도어체크는 설계수량" + }, + { + "열쇠": "10-2-2 플로어힌지 설치", + "이름": "플로어힌지 설치", + "결과단위": "원/10개소", + "출처": "건설품셈 건축 10-2-2", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-2-2 플로어힌지 설치).창호공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-2-2 플로어힌지 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-2-2 주③" + } + ], + "끝수": null, + "비고": "강화유리문 · 로트 포함 · 플로어힌지는 설계수량" + }, + { + "열쇠": "10-2-3 도어록 설치", + "이름": "도어록 설치", + "결과단위": "원/10개소", + "출처": "건설품셈 건축 10-2-3", + "소유": "공용", + "입력": [ + { + "이름": "도어록종류", + "고르기": [ + "일반도어록", + "디지털도어록" + ] + }, + { + "이름": "창호", + "고르기": [ + "목재창호", + "강재창호" + ] + } + ], + "중간": [ + { + "이름": "창호공", + "식": "찾기(소요량:건설품셈:10-2-3 도어록 설치, '도어록 종류'=도어록종류, 창호=창호).창호공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1024", + "이름": "창호공", + "단위": "인", + "수량": "창호공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(창호공 * 인력:건설노임:1024) * 만약(창호 == '목재창호', 4, 2) / 100", + "비목": "경비", + "출처": "건설품셈 건축 10-2-3 주④" + } + ], + "끝수": null, + "비고": "레버 · 원형 · 디지털 · 목재창호는 구멍뚫기 포함 · 공구손료 요율은 주④ 표(목재 4% · 강재 2%) · 도어록은 설계수량" + }, + { + "열쇠": "10-3-1 창호유리 설치", + "이름": "창호유리 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 10-3-1", + "소유": "공용", + "입력": [ + { + "이름": "두께mm이하", + "고르기": [ + 3, + 5, + 9, + 12, + 16, + 18, + 22, + 24, + 28, + 30, + 36, + 40, + 44, + 52 + ] + }, + { + "이름": "유리종류", + "고르기": [ + "판유리", + "복층유리" + ] + } + ], + "중간": [ + { + "이름": "유리공", + "식": "찾기(소요량:건설품셈:10-3-1 창호유리 설치, '두께(mm이하)'=두께mm이하, '유리 종류'=유리종류).유리공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-3-1 창호유리 설치, '두께(mm이하)'=두께mm이하, '유리 종류'=유리종류).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1025", + "이름": "유리공", + "단위": "인", + "수량": "유리공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "실내공사 · 복층 28㎜ 초과는 3중유리 · 누름대 · 실링 · 유리닦기 포함 · 특수창호 · 특수유리 별도 · 유리는 설계수량" + }, + { + "열쇠": "10-3-2 커튼월유리 설치", + "이름": "커튼월유리 설치(구조용실란트)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 10-3-2", + "소유": "공용", + "입력": [ + { + "이름": "두께이하", + "고르기": [ + 12, + 16, + 18, + 22, + 24, + 28 + ] + } + ], + "중간": [ + { + "이름": "유리공", + "식": "찾기(소요량:건설품셈:10-3-2 커튼월유리 설치, '두께(㎜이하)'=두께이하).유리공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-3-2 커튼월유리 설치, '두께(㎜이하)'=두께이하).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1025", + "이름": "유리공", + "단위": "인", + "수량": "유리공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "복층유리 · 노튼테이프 · 구조실란트 · 방수실링 포함 · 비계 · 고소작업차 별도 · 외벽 높이 할증은 공통 1-4-5 · 유리는 설계수량" + } + ] +} From ea7b4095f1c642f13c85a6e7e674d25509b72080 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:12:37 +0900 Subject: [PATCH 06/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B1=B4=EC=B6=95=2011=EC=9E=A5=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=2019=EA=B0=9C=20=E2=80=94=20=EC=B9=A0?= =?UTF-8?q?=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 천장 20% 가산 · 비계 사용 높이 할증(11-1-1 표 · 19층 이상 매 3층 4%) · 공구손료 및 잡재료비 덧줄 - 석재도료칠 고소작업차 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../master_data/로직_건설품셈_건축11장.json | 1162 +++++++++++++++++ 1 file changed, 1162 insertions(+) create mode 100644 resources/master_data/로직_건설품셈_건축11장.json diff --git a/resources/master_data/로직_건설품셈_건축11장.json b/resources/master_data/로직_건설품셈_건축11장.json new file mode 100644 index 00000000..6f2451a5 --- /dev/null +++ b/resources/master_data/로직_건설품셈_건축11장.json @@ -0,0 +1,1162 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "건축", + "판": "2026", + "줄": [ + { + "열쇠": "11-1-1 콘크리트・모르타르면 바탕만들기", + "이름": "콘크리트 · 모르타르면 바탕만들기", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-1-1", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-1-1 비고" + }, + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-1-1 주④", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-1-1 콘크리트・모르타르면 바탕만들기).도장공 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-1-1 콘크리트・모르타르면 바탕만들기).보통인부 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-1-1 주⑥" + } + ], + "끝수": null, + "비고": "하도 전 · 바탕처리 · 퍼티 · 연마 · 견출 · 마감미장 · 프라이머 별도(주③) · 천장은 본 품 20% 가산 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-1-2 석고보드면 바탕만들기", + "이름": "석고보드면 바탕만들기", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-1-2", + "소유": "공용", + "입력": [ + { + "이름": "퍼티종류", + "고르기": [ + "올퍼티", + "줄퍼티" + ] + }, + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-1-2 비고" + } + ], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-1-2 석고보드면 바탕만들기, '퍼티 종류'=퍼티종류).도장공 * 만약(시공면 == '천장', 1.2, 1)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-1-2 석고보드면 바탕만들기, '퍼티 종류'=퍼티종류).보통인부 * 만약(시공면 == '천장', 1.2, 1)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 4 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-1-2 주④" + } + ], + "끝수": null, + "비고": "올퍼티 · 줄퍼티(작업순서 주②③) · 천장은 본 품 20% 가산 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-1-3 철재면 바탕만들기", + "이름": "철재면 바탕만들기", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-1-3", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-1-3 철재면 바탕만들기).도장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-1-3 철재면 바탕만들기).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-1-3 주③" + } + ], + "끝수": null, + "비고": "불순물 제거 · 인산염처리 · 블라스트 별도 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-1-4 목재면 바탕만들기", + "이름": "목재면 바탕만들기", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-1-4", + "소유": "공용", + "입력": [ + { + "이름": "작업", + "고르기": [ + "불순물 제거", + "퍼티 및 연마" + ] + } + ], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-1-4 목재면 바탕만들기, 작업=작업).도장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-1-4 목재면 바탕만들기, 작업=작업).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-1-4 주③" + } + ], + "끝수": null, + "비고": "불순물 제거 · 퍼티 및 연마 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-1-5 도장 후 퍼티 및 연마", + "이름": "도장 후 퍼티 및 연마", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-1-5", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-1-5 비고" + }, + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-1-5 주②", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-1-5 도장 후 퍼티 및 연마).도장공 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-1-5 도장 후 퍼티 및 연마).보통인부 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-1-5 주③" + } + ], + "끝수": null, + "비고": "하도 이후 · 천장은 본 품 20% 가산 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-1-6 비닐 보양", + "이름": "비닐 보양(도장 전)", + "결과단위": "원/보양길이 100m", + "출처": "건설품셈 건축 11-1-6", + "소유": "공용", + "입력": [ + { + "이름": "보양대상", + "고르기": [ + "창호 및 난간류", + "배관류" + ] + } + ], + "중간": [ + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-1-6 비닐 보양, '보양 대상'=보양대상).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "보양길이 = 비닐보양 테이프 접착길이 · 다면 보양 시설물 · 비계 · 장비 별도 · 비닐 · 테이프 수량 원문 없음" + }, + { + "열쇠": "11-2-1 수성페인트 붓칠", + "이름": "수성페인트 붓칠(1회)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-1", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-2-1 비고" + }, + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-2-1 주③", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-1 수성페인트 붓칠).도장공 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-1 수성페인트 붓칠).보통인부 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-1 주③" + } + ], + "끝수": null, + "비고": "바탕만들기는 11-1 · 천장은 본 품 20% 가산 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-2 수성페인트 롤러칠", + "이름": "수성페인트 롤러칠(1회)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-2", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-2-2 비고" + }, + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-2-2 주④", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-2 수성페인트 롤러칠).도장공 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-2 수성페인트 롤러칠).보통인부 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-2 주⑤" + } + ], + "끝수": null, + "비고": "보조 붓칠 포함 · 바탕만들기는 11-1 · 천장은 본 품 20% 가산 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-3 수성페인트 뿜칠", + "이름": "수성페인트 뿜칠(1회)", + "결과단위": "원/10㎡", + "출처": "건설품셈 건축 11-2-3", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-2-3 비고" + }, + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-2-3 주④", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-3 수성페인트 뿜칠).도장공 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-3 수성페인트 뿜칠).보통인부 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 12 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-3 주⑥" + } + ], + "끝수": null, + "비고": "보조 붓칠 포함 · 분진방지 시설 별도(주⑤) · 바탕만들기는 11-1 · 천장은 본 품 20% 가산 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-4 유성페인트 붓칠", + "이름": "유성페인트 붓칠(1회)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-4", + "소유": "공용", + "입력": [ + { + "이름": "바탕면", + "고르기": [ + "철재면", + "콘크리트・모르타르면 석고보드면" + ] + }, + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-2-4 비고" + }, + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-2-4 주③", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-4 유성페인트 붓칠, 바탕면=바탕면).도장공 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-4 유성페인트 붓칠, 바탕면=바탕면).보통인부 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-4 주③" + } + ], + "끝수": null, + "비고": "바탕만들기는 11-1 · 천장은 본 품 20% 가산 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-5 유성페인트 롤러칠", + "이름": "유성페인트 롤러칠(1회)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-5", + "소유": "공용", + "입력": [ + { + "이름": "바탕면", + "고르기": [ + "철재면", + "콘크리트・모르타르면 석고보드면" + ] + }, + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-2-5 비고" + }, + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-2-5 주④", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-5 유성페인트 롤러칠, 바탕면=바탕면).도장공 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-5 유성페인트 롤러칠, 바탕면=바탕면).보통인부 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-5 주⑤" + } + ], + "끝수": null, + "비고": "보조붓칠 포함 · 바탕만들기는 11-1 · 천장은 본 품 20% 가산 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-6 녹막이 페인트칠", + "이름": "녹막이 페인트칠(붓 1회)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-6", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-2-6 비고" + }, + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-2-6 주③", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-6 녹막이 페인트칠).도장공 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-6 녹막이 페인트칠).보통인부 * 만약(시공면 == '천장', 1.2, 1) * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-6 주③" + } + ], + "끝수": null, + "비고": "철재면 방청페인트 · 바탕만들기는 11-1 · 천장은 본 품 20% 가산 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-7 오일스테인칠", + "이름": "오일스테인칠(붓 1회)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-7", + "소유": "공용", + "입력": [ + { + "이름": "비계층수", + "단위": "층", + "출처": "건설품셈 건축 11-2-7 주③", + "비고": "비계를 쓰지 않으면 0 · 층 구분이 없으면 층고 3.6m로 환산" + } + ], + "중간": [ + { + "이름": "비계할증", + "식": "만약(비계층수 < 1, 0, 만약(비계층수 <= 18, 찾기(계수:건설품셈:11-1-1 비계 사용 높이별 할증률, '외벽 층수'=비계층수).가산율, 20 + 올림((비계층수 - 18) / 3) * 4))", + "출처": "건설품셈 건축 11-1-1 주④" + }, + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-7 오일스테인칠).도장공 * (1 + 비계할증 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-7 오일스테인칠).보통인부 * (1 + 비계할증 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-7 주③" + } + ], + "끝수": null, + "비고": "목재면 · 바탕만들기는 11-1 · 비계 사용 높이 할증은 11-1-1 주④ 표(19층 이상 매 3층 4%) · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-8 에폭시 페인트칠", + "이름": "에폭시 페인트칠(바닥)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-8", + "소유": "공용", + "입력": [ + { + "이름": "종류", + "고르기": [ + "에폭시 코팅 (롤러칠)", + "에폭시 라이닝 (레기칠)" + ] + } + ], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-8 에폭시 페인트칠, 종류=종류).도장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-8 에폭시 페인트칠, 종류=종류).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-8 주⑤" + } + ], + "끝수": null, + "비고": "코팅(롤러) · 라이닝(레기 · 3㎜ 이하) · 바닥정리 포함 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-9 낙서방지용 페인트칠", + "이름": "낙서방지용 페인트칠(롤러 2회)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-9", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-9 낙서방지용 페인트칠).도장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-9 낙서방지용 페인트칠).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-9 주③" + } + ], + "끝수": null, + "비고": "바탕만들기는 11-1-1 준용 별도 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-2-10 걸레받이용 페인트칠", + "이름": "걸레받이용 페인트칠(붓 2회)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-2-10", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-2-10 걸레받이용 페인트칠).도장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-10 걸레받이용 페인트칠).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-2-10 주③" + } + ], + "끝수": null, + "비고": "바탕만들기는 11-1-1 준용 별도 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-3-1 무늬코트칠", + "이름": "무늬코트칠(뿜칠)", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-3-1", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-3-1 비고" + } + ], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-3-1 무늬코트칠).도장공 * 만약(시공면 == '천장', 1.2, 1)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-3-1 무늬코트칠).보통인부 * 만약(시공면 == '천장', 1.2, 1)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-3-1 주⑤" + } + ], + "끝수": null, + "비고": "하도 2회 · 퍼티 · 무늬코트 · 상도 · 바탕만들기 · 보양 별도 · 천장은 본 품 20% 가산 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-3-2 탄성코트칠", + "이름": "탄성코트칠", + "결과단위": "원/㎡", + "출처": "건설품셈 건축 11-3-2", + "소유": "공용", + "입력": [ + { + "이름": "시공면", + "고르기": [ + "벽", + "천장" + ], + "출처": "건설품셈 건축 11-3-2 비고" + } + ], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-3-2 탄성코트칠).도장공 * 만약(시공면 == '천장', 1.2, 1)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-3-2 탄성코트칠).보통인부 * 만약(시공면 == '천장', 1.2, 1)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-3-2 주⑤" + } + ], + "끝수": null, + "비고": "하도 1회 · 퍼티 · 탄성코트 · 상도 · 바탕만들기 · 보양 별도 · 천장은 본 품 20% 가산 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + }, + { + "열쇠": "11-3-3 석재도료칠", + "이름": "석재도료칠(뿜칠 1회)", + "결과단위": "원/100㎡", + "출처": "건설품셈 건축 11-3-3", + "소유": "공용", + "입력": [ + { + "이름": "줄눈무늬", + "고르기": [ + "줄눈무늬(無)", + "줄눈무늬(有)" + ] + }, + { + "이름": "고소작업차규격", + "고르기": [ + "3ton" + ] + }, + { + "이름": "지역", + "고르기": [ + "전국평균", + "전국", + "서울", + "경기", + "강원", + "충북", + "충남", + "전북", + "경북", + "경남", + "부산", + "제주", + "대구", + "인천", + "대전", + "울산", + "세종", + "전남광주" + ], + "출처": "건설품셈 공통 8-1-7 5" + }, + { + "이름": "조종원직종", + "고르기": [ + "1048", + "1049", + "1050" + ], + "출처": "건설품셈 공통 8-1-3 5", + "비고": "원문 운전사 구분에 기종 이름 없음 — 설계자가 고름(1048 건설기계운전사 · 1049 화물차운전사 · 1050 일반기계운전사)" + } + ], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:11-3-3 석재도료칠, 줄눈무늬=줄눈무늬, '고소작업차 규격'=고소작업차규격).도장공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-3-3 석재도료칠, 줄눈무늬=줄눈무늬, '고소작업차 규격'=고소작업차규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "로직", + "요소": "로직(건설품셈:8 기계 시간당 경비(조종원직종 입력), 기계='2106-0003', 지역=지역, 조종원직종=조종원직종)", + "이름": "고소작업차 3ton", + "단위": "시간", + "수량": "찾기(소요량:건설품셈:11-3-3 석재도료칠, 줄눈무늬=줄눈무늬, '고소작업차 규격'=고소작업차규격).고소작업차" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 건축 11-3-3 주④" + } + ], + "끝수": null, + "비고": "줄눈테이프 포함 · 바탕만들기 · 하도 · 보양 별도 · 재료(퍼티 · 페인트 등)는 도료 종류에 따라 시방서 · 제조사 수량 — 설계자가 넣음" + } + ] +} From 0d7f6a895085b756cdc4bab1beb3f84c9acd4f0b Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:13:43 +0900 Subject: [PATCH 07/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=201?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=2019=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EB=B0=B0=EA=B4=80=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 강관·동관·스테인리스·주철관·경질관·연질관 접합 및 배관(일당 표는 시공량으로 나눠 m·개소당) - 고소작업대 시공(품 감산·시공량 가산) · 시공위치 요율 · TIG 가산은 입력 고르기 · 겹침은 공통 1-4-2 합산 - 공구손료 및 경장비 덧줄(인력품 %) · Brazing·TIG 소모재료 줄 · 재료_자체 3줄(플럭스·TIG 용접봉·아르곤가스) - 기계설비 1~6장 계수 표 열쇠를 「절 이름 계수」로 — 건축 계수 표와 열쇠 겹침(먼저 읽힌 건축 표가 잡히던 것) - check_master 로직 검사에 열쇠 겹침 · 시험 2개 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ --- resources/master_data/scripts/check_master.py | 13 + .../계수_건설품셈_기계설비1장.json | 38 +- .../계수_건설품셈_기계설비2장.json | 12 +- .../계수_건설품셈_기계설비3장.json | 4 +- .../계수_건설품셈_기계설비4장.json | 6 +- .../계수_건설품셈_기계설비5장.json | 12 +- .../계수_건설품셈_기계설비6장.json | 12 +- .../로직_건설품셈_기계설비1장.json | 1331 +++++++++++++++++ resources/master_data/재료_자체.json | 5 +- resources/tester/test_masterdata_check.py | 30 + 10 files changed, 1420 insertions(+), 43 deletions(-) create mode 100644 resources/master_data/로직_건설품셈_기계설비1장.json diff --git a/resources/master_data/scripts/check_master.py b/resources/master_data/scripts/check_master.py index 84224b7a..611d0d53 100644 --- a/resources/master_data/scripts/check_master.py +++ b/resources/master_data/scripts/check_master.py @@ -276,6 +276,19 @@ def check_logics(files: dict[str, dict], whole: mf.Master) -> list[str]: out += [f"{name} · {x}" for x in found] graph[f"{data.get('원문')}:{row.get('열쇠')}"] = calls out += [f"돌고 도는 참조 · {' → '.join(loop)}" for loop in mf.find_loops(graph)] + return out + duplicate_keys(files) + + +def duplicate_keys(files: dict[str, dict]) -> list[str]: + """같은 그룹·원문에 같은 열쇠 — 먼저 읽힌 파일 것만 찾기에 걸림""" + first, out = {}, [] + for name, data in files.items(): + rows = data.get("표") if data.get("그룹") in mf.TABLE_GROUPS else data.get("줄") + for row in rows or []: + ref = f"{data.get('그룹')}:{data.get('원문')}:{row.get('열쇠')}" + if ref in first and first[ref] != name: + out.append(f"{name} · 열쇠 겹침 「{ref}」 — {first[ref]} 에도 있음") + first.setdefault(ref, name) return out diff --git a/resources/master_data/계수_건설품셈_기계설비1장.json b/resources/master_data/계수_건설품셈_기계설비1장.json index 65d4f6da..3823bca3 100644 --- a/resources/master_data/계수_건설품셈_기계설비1장.json +++ b/resources/master_data/계수_건설품셈_기계설비1장.json @@ -4,7 +4,7 @@ "판": "2026", "표": [ { - "열쇠": "1-1-1 계수", + "열쇠": "1-1-1 강관 용접접합 계수", "이름": "강관 용접접합 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-1-1", @@ -38,7 +38,7 @@ ] }, { - "열쇠": "1-1-2 계수", + "열쇠": "1-1-2 강관 용접배관 계수", "이름": "강관 용접배관 계수", "기준": "본 품", "출처": "건설품셈 기계설비 1-1-2", @@ -80,7 +80,7 @@ ] }, { - "열쇠": "1-1-3 계수", + "열쇠": "1-1-3 강관 나사식 접합 및 배관 계수", "이름": "강관 나사식 접합 및 배관 계수", "기준": "본 품", "출처": "건설품셈 기계설비 1-1-3", @@ -122,7 +122,7 @@ ] }, { - "열쇠": "1-1-4 계수", + "열쇠": "1-1-4 강관 그루브조인트식 접합 및 배관 계수", "이름": "강관 그루브조인트식 접합 및 배관 계수", "기준": "본 품", "출처": "건설품셈 기계설비 1-1-4", @@ -164,7 +164,7 @@ ] }, { - "열쇠": "1-2-1 계수", + "열쇠": "1-2-1 동관 용접접합 계수", "이름": "동관 용접접합 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-2-1", @@ -194,7 +194,7 @@ ] }, { - "열쇠": "1-2-2 계수", + "열쇠": "1-2-2 동관 용접배관 계수", "이름": "동관 용접배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-2-2", @@ -236,7 +236,7 @@ ] }, { - "열쇠": "1-3-1 계수", + "열쇠": "1-3-1 스테인리스 강관 용접접합 계수", "이름": "스테인리스 강관 용접접합 계수", "기준": "본 품", "출처": "건설품셈 기계설비 1-3-1", @@ -266,7 +266,7 @@ ] }, { - "열쇠": "1-3-2 계수", + "열쇠": "1-3-2 스테인리스 강관 용접배관 계수", "이름": "스테인리스 강관 용접배관 계수", "기준": "본 품", "출처": "건설품셈 기계설비 1-3-2", @@ -308,7 +308,7 @@ ] }, { - "열쇠": "1-3-3 계수", + "열쇠": "1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관 계수", "이름": "스테인리스 강관 그루브조인트식 접합 및 배관 계수", "기준": "본 품", "출처": "건설품셈 기계설비 1-3-3", @@ -350,7 +350,7 @@ ] }, { - "열쇠": "1-3-4 계수", + "열쇠": "1-3-4 스테인리스 강관 프레스식 접합 및 배관 계수", "이름": "스테인리스 강관 프레스식 접합 및 배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-3-4", @@ -392,7 +392,7 @@ ] }, { - "열쇠": "1-3-5 계수", + "열쇠": "1-3-5 스테인리스 주름관 접합 및 배관 계수", "이름": "스테인리스 주름관 접합 및 배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-3-5", @@ -422,7 +422,7 @@ ] }, { - "열쇠": "1-4-1 계수", + "열쇠": "1-4-1 주철관 기계식접합 및 배관 계수", "이름": "주철관 기계식접합 및 배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-4-1", @@ -452,7 +452,7 @@ ] }, { - "열쇠": "1-4-2 계수", + "열쇠": "1-4-2 주철관 수밀밴드 접합 및 배관 계수", "이름": "주철관 수밀밴드 접합 및 배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-4-2", @@ -482,7 +482,7 @@ ] }, { - "열쇠": "1-5-1 계수", + "열쇠": "1-5-1 경질관 접착제 접합 및 배관 계수", "이름": "경질관 접착제 접합 및 배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-5-1", @@ -512,7 +512,7 @@ ] }, { - "열쇠": "1-5-2 계수", + "열쇠": "1-5-2 경질관 고무링 캡조임 접합 및 배관(일반 PVC) 계수", "이름": "경질관 고무링 캡조임 접합 및 배관(일반 PVC) 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-5-2", @@ -542,7 +542,7 @@ ] }, { - "열쇠": "1-5-3 계수", + "열쇠": "1-5-3 경질관 고무링 캡조임 접합 및 배관(고강도PVC) 계수", "이름": "경질관 고무링 캡조임 접합 및 배관(고강도PVC) 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-5-3", @@ -572,7 +572,7 @@ ] }, { - "열쇠": "1-6-1 계수", + "열쇠": "1-6-1 폴리부틸렌(PB) 일반접합 및 배관 계수", "이름": "폴리부틸렌(PB) 일반접합 및 배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-6-1", @@ -593,7 +593,7 @@ ] }, { - "열쇠": "1-6-2 계수", + "열쇠": "1-6-2 폴리부틸렌(PB) 이중관 접합 및 배관 계수", "이름": "폴리부틸렌(PB) 이중관 접합 및 배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-6-2", @@ -614,7 +614,7 @@ ] }, { - "열쇠": "1-6-3 계수", + "열쇠": "1-6-3 가교화 폴리에틸렌관 접합 및 배관 계수", "이름": "가교화 폴리에틸렌관 접합 및 배관 계수", "기준": "인력품", "출처": "건설품셈 기계설비 1-6-3", diff --git a/resources/master_data/계수_건설품셈_기계설비2장.json b/resources/master_data/계수_건설품셈_기계설비2장.json index 2ad6b0c3..59f57538 100644 --- a/resources/master_data/계수_건설품셈_기계설비2장.json +++ b/resources/master_data/계수_건설품셈_기계설비2장.json @@ -4,7 +4,7 @@ "판": "2026", "표": [ { - "열쇠": "2-1-1 계수", + "열쇠": "2-1-1 아연도금강판덕트(각형덕트) 설치 계수", "이름": "아연도금강판덕트(각형덕트) 설치 계수", "기준": "", "출처": "건설품셈 기계설비 2-1-1", @@ -33,7 +33,7 @@ ] }, { - "열쇠": "2-1-2 계수", + "열쇠": "2-1-2 아연도금강판덕트(스파이럴덕트) 설치 계수", "이름": "아연도금강판덕트(스파이럴덕트) 설치 계수", "기준": "", "출처": "건설품셈 기계설비 2-1-2", @@ -62,7 +62,7 @@ ] }, { - "열쇠": "2-1-3 계수", + "열쇠": "2-1-3 스테인리스덕트(각형덕트) 설치 계수", "이름": "스테인리스덕트(각형덕트) 설치 계수", "기준": "", "출처": "건설품셈 기계설비 2-1-3", @@ -91,7 +91,7 @@ ] }, { - "열쇠": "2-1-4 계수", + "열쇠": "2-1-4 PVC덕트 설치 계수", "이름": "PVC덕트 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 2-1-4", @@ -112,7 +112,7 @@ ] }, { - "열쇠": "2-1-5 계수", + "열쇠": "2-1-5 세대내 환기덕트 설치 계수", "이름": "세대내 환기덕트 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 2-1-5", @@ -133,7 +133,7 @@ ] }, { - "열쇠": "2-2-6 계수", + "열쇠": "2-2-6 제연댐퍼 설치 계수", "이름": "제연댐퍼 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 2-2-6", diff --git a/resources/master_data/계수_건설품셈_기계설비3장.json b/resources/master_data/계수_건설품셈_기계설비3장.json index fa2f4efd..d47194d5 100644 --- a/resources/master_data/계수_건설품셈_기계설비3장.json +++ b/resources/master_data/계수_건설품셈_기계설비3장.json @@ -4,7 +4,7 @@ "판": "2026", "표": [ { - "열쇠": "3-1-1 계수", + "열쇠": "3-1-1 일반마감 배관보온 계수", "이름": "일반마감 배관보온 계수", "기준": "", "출처": "건설품셈 기계설비 3-1-1", @@ -41,7 +41,7 @@ ] }, { - "열쇠": "3-2-1 계수", + "열쇠": "3-2-1 일반마감 밸브보온 계수", "이름": "일반마감 밸브보온 계수", "기준": "", "출처": "건설품셈 기계설비 3-2-1", diff --git a/resources/master_data/계수_건설품셈_기계설비4장.json b/resources/master_data/계수_건설품셈_기계설비4장.json index 60f6583e..6be7b693 100644 --- a/resources/master_data/계수_건설품셈_기계설비4장.json +++ b/resources/master_data/계수_건설품셈_기계설비4장.json @@ -4,7 +4,7 @@ "판": "2026", "표": [ { - "열쇠": "4-1-1 계수", + "열쇠": "4-1-1 일반펌프 설치 계수", "이름": "일반펌프 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 4-1-1", @@ -25,7 +25,7 @@ ] }, { - "열쇠": "4-1-2 계수", + "열쇠": "4-1-2 집수정 배수펌프 설치 계수", "이름": "집수정 배수펌프 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 4-1-2", @@ -46,7 +46,7 @@ ] }, { - "열쇠": "4-2-1 계수", + "열쇠": "4-2-1 송풍기 설치 계수", "이름": "송풍기 설치 계수", "기준": "", "출처": "건설품셈 기계설비 4-2-1", diff --git a/resources/master_data/계수_건설품셈_기계설비5장.json b/resources/master_data/계수_건설품셈_기계설비5장.json index 444473a1..f70ea0fc 100644 --- a/resources/master_data/계수_건설품셈_기계설비5장.json +++ b/resources/master_data/계수_건설품셈_기계설비5장.json @@ -4,7 +4,7 @@ "판": "2026", "표": [ { - "열쇠": "5-1-1 계수", + "열쇠": "5-1-1 일반밸브 및 콕류 설치 계수", "이름": "일반밸브 및 콕류 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 5-1-1", @@ -25,7 +25,7 @@ ] }, { - "열쇠": "5-1-2 계수", + "열쇠": "5-1-2 감압밸브장치 설치 계수", "이름": "감압밸브장치 설치 계수", "기준": "", "출처": "건설품셈 기계설비 5-1-2", @@ -51,7 +51,7 @@ ] }, { - "열쇠": "5-2-1 계수", + "열쇠": "5-2-1 스팀트랩 장치 설치 계수", "이름": "스팀트랩 장치 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 5-2-1", @@ -72,7 +72,7 @@ ] }, { - "열쇠": "5-3-1 계수", + "열쇠": "5-3-1 익스팬션조인트 설치 계수", "이름": "익스팬션조인트 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 5-3-1", @@ -93,7 +93,7 @@ ] }, { - "열쇠": "5-3-2 계수", + "열쇠": "5-3-2 플랙시블커넥터 설치 계수", "이름": "플랙시블커넥터 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 5-3-2", @@ -114,7 +114,7 @@ ] }, { - "열쇠": "5-4-1 계수", + "열쇠": "5-4-1 수격방지기 설치 계수", "이름": "수격방지기 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 5-4-1", diff --git a/resources/master_data/계수_건설품셈_기계설비6장.json b/resources/master_data/계수_건설품셈_기계설비6장.json index f147e316..06737fd1 100644 --- a/resources/master_data/계수_건설품셈_기계설비6장.json +++ b/resources/master_data/계수_건설품셈_기계설비6장.json @@ -4,7 +4,7 @@ "판": "2026", "표": [ { - "열쇠": "6-1-1 계수", + "열쇠": "6-1-1 유량계(직독식) 설치 계수", "이름": "유량계(직독식) 설치 계수", "기준": "", "출처": "건설품셈 기계설비 6-1-1", @@ -34,7 +34,7 @@ ] }, { - "열쇠": "6-1-2 계수", + "열쇠": "6-1-2 유량계(원격식) 설치 계수", "이름": "유량계(원격식) 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 6-1-2", @@ -55,7 +55,7 @@ ] }, { - "열쇠": "6-1-3 계수", + "열쇠": "6-1-3 세대용 계량기함 설치 계수", "이름": "세대용 계량기함 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 6-1-3", @@ -76,7 +76,7 @@ ] }, { - "열쇠": "6-2-1 계수", + "열쇠": "6-2-1 세대용 적산열량계 설치 계수", "이름": "세대용 적산열량계 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 6-2-1", @@ -97,7 +97,7 @@ ] }, { - "열쇠": "6-2-2 계수", + "열쇠": "6-2-2 건물용 적산열량계 설치 계수", "이름": "건물용 적산열량계 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 6-2-2", @@ -118,7 +118,7 @@ ] }, { - "열쇠": "6-2-3 계수", + "열쇠": "6-2-3 산업용 적산열량계 설치 계수", "이름": "산업용 적산열량계 설치 계수", "기준": "인력품", "출처": "건설품셈 기계설비 6-2-3", diff --git a/resources/master_data/로직_건설품셈_기계설비1장.json b/resources/master_data/로직_건설품셈_기계설비1장.json new file mode 100644 index 00000000..fa554069 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비1장.json @@ -0,0 +1,1331 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "1-1-1 강관 용접접합", + "이름": "강관 용접접합", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 1-1-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + }, + { + "이름": "용접방법", + "고르기": [ + "아크용접", + "TIG용접" + ] + } + ], + "중간": [ + { + "이름": "용접공", + "식": "찾기(소요량:건설품셈:1-1-1 강관 용접접합, '규격(㎜)'=규격).용접공 * (1 + (만약(용접방법 == 'TIG용접', 찾기(계수:건설품셈:1-1-1 강관 용접접합 계수, 항목='TIG용접 시공 품 가산율').값, 0) - 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-1-1 강관 용접접합 계수, 항목='고소작업대(시저형) 시공 품 감산율').값, 0)) / 100)" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-1-1 강관 용접접합 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-1-1 강관 용접접합 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1012", + "이름": "용접공", + "단위": "인", + "수량": "용접공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-1-1 주②" + } + ], + "끝수": null, + "비고": "용접접합 자재는 별도 계상(주③) — 원문 1-1-1 재료표 없음 · 크레인·지게차 이동비 별도(주④) · 고소 감산·TIG 가산이 겹치면 공통 1-4-2 할증 중복가산(합산)" + }, + { + "열쇠": "1-2-1 동관 용접접합", + "이름": "동관 용접접합", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 1-2-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "용접공", + "식": "찾기(소요량:건설품셈:1-2-1 동관 용접접합, '규격(㎜)'=규격).용접공 * (1 - 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-2-1 동관 용접접합 계수, 항목='고소작업대(시저형) 시공 품 감산율').값, 0) / 100)" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-2-1 동관 용접접합 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-2-1 동관 용접접합 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1012", + "이름": "용접공", + "단위": "인", + "수량": "용접공", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:나라장터자재:20080653", + "이름": "동 및 동합금용 용접봉", + "규격": "BCUP3", + "단위": "㎏", + "수량": "찾기(소요량:건설품셈:1-2-1 Brazing 소모재료, '규격(㎜)'=규격).용접봉 / 1000", + "비목": "재료비", + "출처": "건설품셈 기계설비 1-2-1" + }, + { + "종류": "재료", + "요소": "재료:자체:플럭스(브레이징)", + "이름": "플럭스", + "단위": "㎏", + "수량": "찾기(소요량:건설품셈:1-2-1 Brazing 소모재료, '규격(㎜)'=규격).플럭스 / 1000", + "비목": "재료비", + "출처": "건설품셈 기계설비 1-2-1" + }, + { + "종류": "재료", + "요소": "재료:나라장터자재:20204084", + "이름": "산소가스", + "단위": "ℓ", + "수량": "찾기(소요량:건설품셈:1-2-1 Brazing 소모재료, '규격(㎜)'=규격).산소", + "비목": "재료비", + "출처": "건설품셈 기계설비 1-2-1" + }, + { + "종류": "재료", + "요소": "재료:나라장터자재:20204095", + "이름": "아세틸렌가스", + "단위": "㎏", + "수량": "찾기(소요량:건설품셈:1-2-1 Brazing 소모재료, '규격(㎜)'=규격).아세틸렌 / 1000", + "비목": "재료비", + "출처": "건설품셈 기계설비 1-2-1" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-2-1 주②" + } + ], + "끝수": null, + "비고": "소모재료는 1-2-1 Brazing 소모재료 표(g → ㎏ 환산) · 해석: 용접봉 = 인동납 BCuP-3 · 산소는 대기압 기준량 · 규격 250㎜ 는 원문 재료표에 없음(계산 멈춤) · 크레인·지게차 이동비 별도(주④)" + }, + { + "열쇠": "1-3-1 스테인리스 강관 용접접합", + "이름": "스테인리스 강관 용접접합", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 1-3-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "용접공", + "식": "찾기(소요량:건설품셈:1-3-1 스테인리스 강관 용접접합, '규격(㎜)'=규격).용접공 * (1 - 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-3-1 스테인리스 강관 용접접합 계수, 항목='고소작업대(시저형) 시공 품 감산율').값, 0) / 100)" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-3-1 스테인리스 강관 용접접합 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-3-1 스테인리스 강관 용접접합 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1012", + "이름": "용접공", + "단위": "인", + "수량": "용접공", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:TIG 용접봉(스테인리스)", + "이름": "TIG 용접봉", + "규격": "스테인리스", + "단위": "㎏", + "수량": "찾기(소요량:건설품셈:1-3-1 TIG용접 소모재료, '규격(㎜)'=규격).용접봉", + "비목": "재료비", + "출처": "건설품셈 기계설비 1-3-1" + }, + { + "종류": "재료", + "요소": "재료:자체:아르곤가스", + "이름": "아르곤가스", + "단위": "ℓ", + "수량": "찾기(소요량:건설품셈:1-3-1 TIG용접 소모재료, '규격(㎜)'=규격).Argon", + "비목": "재료비", + "출처": "건설품셈 기계설비 1-3-1" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-3-1 주②" + } + ], + "끝수": null, + "비고": "소모재료는 1-3-1 TIG용접 소모재료 표 — 규격 6·8·10·32㎜ 는 원문 재료표에 없음(계산 멈춤) · 크레인·지게차 이동비 별도(주④)" + }, + { + "열쇠": "1-1-2 강관 용접배관", + "이름": "강관 용접배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-1-2", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + }, + { + "이름": "시공위치", + "고르기": [ + "옥내일반배관", + "화장실배관", + "기계실배관", + "옥외배관(암거내)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-1-2 강관 용접배관, '관규격(㎜)'=관규격).시공량 * (1 + (만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-1-2 강관 용접배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) + 만약(시공위치 == '화장실배관', 찾기(계수:건설품셈:1-1-2 강관 용접배관 계수, 항목='시공위치 요율 화장실배관').값, 만약(시공위치 == '기계실배관', 찾기(계수:건설품셈:1-1-2 강관 용접배관 계수, 항목='시공위치 요율 기계실배관').값, 만약(시공위치 == '옥외배관(암거내)', 찾기(계수:건설품셈:1-1-2 강관 용접배관 계수, 항목='시공위치 요율 옥외배관(암거내)').값, 0)))) / 100)", + "출처": "건설품셈 기계설비 1-1-2" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-1-2 강관 용접배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-1-2 강관 용접배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-1-2 강관 용접배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-1-2 강관 용접배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-1-2 주⑥" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-1-3 강관 나사식 접합 및 배관", + "이름": "강관 나사식 접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-1-3", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + }, + { + "이름": "시공위치", + "고르기": [ + "옥내일반배관", + "화장실배관", + "기계실배관", + "옥외배관(암거내)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-1-3 강관 나사식 접합 및 배관, '관규격(㎜)'=관규격).시공량 * (1 + (만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-1-3 강관 나사식 접합 및 배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) + 만약(시공위치 == '화장실배관', 찾기(계수:건설품셈:1-1-3 강관 나사식 접합 및 배관 계수, 항목='시공위치 요율 화장실배관').값, 만약(시공위치 == '기계실배관', 찾기(계수:건설품셈:1-1-3 강관 나사식 접합 및 배관 계수, 항목='시공위치 요율 기계실배관').값, 만약(시공위치 == '옥외배관(암거내)', 찾기(계수:건설품셈:1-1-3 강관 나사식 접합 및 배관 계수, 항목='시공위치 요율 옥외배관(암거내)').값, 0)))) / 100)", + "출처": "건설품셈 기계설비 1-1-3" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-1-3 강관 나사식 접합 및 배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-1-3 강관 나사식 접합 및 배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-1-3 강관 나사식 접합 및 배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-1-3 강관 나사식 접합 및 배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-1-3 주⑥" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-1-4 강관 그루브조인트식 접합 및 배관", + "이름": "강관 그루브조인트식 접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-1-4", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + }, + { + "이름": "시공위치", + "고르기": [ + "옥내일반배관", + "화장실배관", + "기계실배관", + "옥외배관(암거내)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관, '관규격(㎜)'=관규격).시공량 * (1 + (만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) + 만약(시공위치 == '화장실배관', 찾기(계수:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관 계수, 항목='시공위치 요율 화장실배관').값, 만약(시공위치 == '기계실배관', 찾기(계수:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관 계수, 항목='시공위치 요율 기계실배관').값, 만약(시공위치 == '옥외배관(암거내)', 찾기(계수:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관 계수, 항목='시공위치 요율 옥외배관(암거내)').값, 0)))) / 100)", + "출처": "건설품셈 기계설비 1-1-4" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-1-4 강관 그루브조인트식 접합 및 배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-1-4 주⑥" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-2-2 동관 용접배관", + "이름": "동관 용접배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-2-2", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + }, + { + "이름": "시공위치", + "고르기": [ + "옥내일반배관", + "화장실배관", + "기계실배관", + "옥외배관(암거내)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-2-2 동관 용접배관, '관규격(㎜)'=관규격).시공량 * (1 + (만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-2-2 동관 용접배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) + 만약(시공위치 == '화장실배관', 찾기(계수:건설품셈:1-2-2 동관 용접배관 계수, 항목='시공위치 요율 화장실배관').값, 만약(시공위치 == '기계실배관', 찾기(계수:건설품셈:1-2-2 동관 용접배관 계수, 항목='시공위치 요율 기계실배관').값, 만약(시공위치 == '옥외배관(암거내)', 찾기(계수:건설품셈:1-2-2 동관 용접배관 계수, 항목='시공위치 요율 옥외배관(암거내)').값, 0)))) / 100)", + "출처": "건설품셈 기계설비 1-2-2" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-2-2 동관 용접배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-2-2 동관 용접배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-2-2 동관 용접배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-2-2 동관 용접배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-2-2 주⑥" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-3-2 스테인리스 강관 용접배관", + "이름": "스테인리스 강관 용접배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-3-2", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + }, + { + "이름": "시공위치", + "고르기": [ + "옥내일반배관", + "화장실배관", + "기계실배관", + "옥외배관(암거내)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-3-2 스테인리스 강관 용접배관, '관규격(㎜)'=관규격).시공량 * (1 + (만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-3-2 스테인리스 강관 용접배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) + 만약(시공위치 == '화장실배관', 찾기(계수:건설품셈:1-3-2 스테인리스 강관 용접배관 계수, 항목='시공위치 요율 화장실배관').값, 만약(시공위치 == '기계실배관', 찾기(계수:건설품셈:1-3-2 스테인리스 강관 용접배관 계수, 항목='시공위치 요율 기계실배관').값, 만약(시공위치 == '옥외배관(암거내)', 찾기(계수:건설품셈:1-3-2 스테인리스 강관 용접배관 계수, 항목='시공위치 요율 옥외배관(암거내)').값, 0)))) / 100)", + "출처": "건설품셈 기계설비 1-3-2" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-3-2 스테인리스 강관 용접배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-3-2 스테인리스 강관 용접배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-3-2 스테인리스 강관 용접배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-3-2 스테인리스 강관 용접배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-3-2 주⑦" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도 · Bending 가공 별도" + }, + { + "열쇠": "1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관", + "이름": "스테인리스 강관 그루브조인트식 접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-3-3", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + }, + { + "이름": "시공위치", + "고르기": [ + "옥내일반배관", + "화장실배관", + "기계실배관", + "옥외배관(암거내)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관, '관규격(㎜)'=관규격).시공량 * (1 + (만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) + 만약(시공위치 == '화장실배관', 찾기(계수:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관 계수, 항목='시공위치 요율 화장실배관').값, 만약(시공위치 == '기계실배관', 찾기(계수:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관 계수, 항목='시공위치 요율 기계실배관').값, 만약(시공위치 == '옥외배관(암거내)', 찾기(계수:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관 계수, 항목='시공위치 요율 옥외배관(암거내)').값, 0)))) / 100)", + "출처": "건설품셈 기계설비 1-3-3" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-3-3 스테인리스 강관 그루브조인트식 접합 및 배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-3-3 주⑥" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-3-4 스테인리스 강관 프레스식 접합 및 배관", + "이름": "스테인리스 강관 프레스식 접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-3-4", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "고르기": [ + "13SU", + "20", + "25", + "30", + "40", + "50", + "60", + "75", + "80", + "100" + ] + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + }, + { + "이름": "시공위치", + "고르기": [ + "옥내일반배관", + "화장실배관", + "기계실배관", + "옥외배관(암거내)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관, '관규격(㎜)'=관규격).시공량 * (1 + (만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) + 만약(시공위치 == '화장실배관', 찾기(계수:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관 계수, 항목='시공위치 요율 화장실배관').값, 만약(시공위치 == '기계실배관', 찾기(계수:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관 계수, 항목='시공위치 요율 기계실배관').값, 만약(시공위치 == '옥외배관(암거내)', 찾기(계수:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관 계수, 항목='시공위치 요율 옥외배관(암거내)').값, 0)))) / 100)", + "출처": "건설품셈 기계설비 1-3-4" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-3-4 스테인리스 강관 프레스식 접합 및 배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-3-4 주⑦" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 고소 가산과 시공위치 요율이 겹치면 공통 1-4-2 할증 중복가산(합산) · 밸브류는 기계설비 5-1-1 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도 · Bending 가공 별도" + }, + { + "열쇠": "1-3-5 주름관", + "이름": "스테인리스 주름관 접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-3-5", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-3-5 주름관, '관규격(㎜)'=관규격).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-3-5 스테인리스 주름관 접합 및 배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 1-3-5" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-3-5 주름관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-3-5 주름관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-3-5 스테인리스 주름관 접합 및 배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-3-5 스테인리스 주름관 접합 및 배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-3-5 주⑤" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-4-1 주철관 기계식접합 및 배관", + "이름": "주철관 기계식접합 및 배관", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 1-4-1", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-4-1 주철관 기계식접합 및 배관, '관규격(㎜)'=관규격).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-4-1 주철관 기계식접합 및 배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 1-4-1" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-4-1 주철관 기계식접합 및 배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-4-1 주철관 기계식접합 및 배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-4-1 주철관 기계식접합 및 배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-4-1 주철관 기계식접합 및 배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-4-1 주⑤" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-4-2 주철관 수밀밴드 접합 및 배관", + "이름": "주철관 수밀밴드 접합 및 배관", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 1-4-2", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-4-2 주철관 수밀밴드 접합 및 배관, '관규격(㎜)'=관규격).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-4-2 주철관 수밀밴드 접합 및 배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 1-4-2" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-4-2 주철관 수밀밴드 접합 및 배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-4-2 주철관 수밀밴드 접합 및 배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-4-2 주철관 수밀밴드 접합 및 배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-4-2 주철관 수밀밴드 접합 및 배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-4-2 주⑤" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-5-1 경질관 접착제 접합 및 배관", + "이름": "경질관 접착제 접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-5-1", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-5-1 경질관 접착제 접합 및 배관, '관규격(㎜)'=관규격).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-5-1 경질관 접착제 접합 및 배관 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 1-5-1" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-5-1 경질관 접착제 접합 및 배관, '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-5-1 경질관 접착제 접합 및 배관, '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-5-1 경질관 접착제 접합 및 배관 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-5-1 경질관 접착제 접합 및 배관 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-5-1 주⑤" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-5-2 경질관 고무링 캡조임 접합 및 배관(일반 PVC)", + "이름": "경질관 고무링 캡조임 접합 및 배관(일반 PVC)", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-5-2", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-5-2 경질관 고무링 캡조임 접합 및 배관(일반 PVC), '관규격(㎜)'=관규격).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-5-2 경질관 고무링 캡조임 접합 및 배관(일반 PVC) 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 1-5-2" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-5-2 경질관 고무링 캡조임 접합 및 배관(일반 PVC), '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-5-2 경질관 고무링 캡조임 접합 및 배관(일반 PVC), '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-5-2 경질관 고무링 캡조임 접합 및 배관(일반 PVC) 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-5-2 경질관 고무링 캡조임 접합 및 배관(일반 PVC) 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-5-2 주⑤" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-5-3 경질관 고무링 캡조임 접합 및 배관(고강도PVC)", + "이름": "경질관 고무링 캡조임 접합 및 배관(고강도PVC)", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-5-3", + "소유": "공용", + "입력": [ + { + "이름": "관규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:1-5-3 경질관 고무링 캡조임 접합 및 배관(고강도PVC), '관규격(㎜)'=관규격).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:1-5-3 경질관 고무링 캡조임 접합 및 배관(고강도PVC) 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 1-5-3" + }, + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-5-3 경질관 고무링 캡조임 접합 및 배관(고강도PVC), '관규격(㎜)'=관규격).배관공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-5-3 경질관 고무링 캡조임 접합 및 배관(고강도PVC), '관규격(㎜)'=관규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:1-5-3 경질관 고무링 캡조임 접합 및 배관(고강도PVC) 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:1-5-3 경질관 고무링 캡조임 접합 및 배관(고강도PVC) 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-5-3 주⑤" + } + ], + "끝수": null, + "비고": "옥내일반배관 기준 · 인서트는 건축 8-1-4 · 단열·관 지지대 별도 · 크레인·지게차 이동비 별도" + }, + { + "열쇠": "1-6-1 폴리부틸렌(PB) 일반접합 및 배관", + "이름": "폴리부틸렌(PB) 일반접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-6-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-6-1 폴리부틸렌(PB) 일반접합 및 배관, '규격(㎜)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-6-1 폴리부틸렌(PB) 일반접합 및 배관, '규격(㎜)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:1-6-1 폴리부틸렌(PB) 일반접합 및 배관 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-6-1 주③" + } + ], + "끝수": null, + "비고": "절단 · 배관 · 고정철물 · 접합 · 배관시험 포함" + }, + { + "열쇠": "1-6-2 폴리부틸렌(PB) 이중관 접합 및 배관", + "이름": "폴리부틸렌(PB) 이중관 접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-6-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-6-2 폴리부틸렌(PB) 이중관 접합 및 배관, '규격(㎜)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-6-2 폴리부틸렌(PB) 이중관 접합 및 배관, '규격(㎜)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:1-6-2 폴리부틸렌(PB) 이중관 접합 및 배관 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-6-2 주③" + } + ], + "끝수": null, + "비고": "절단 · 배관 · 고정철물 · 접합 · 배관시험 포함" + }, + { + "열쇠": "1-6-3 가교화 폴리에틸렌관 접합 및 배관", + "이름": "가교화 폴리에틸렌관 접합 및 배관", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 1-6-3", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:1-6-3 가교화 폴리에틸렌관 접합 및 배관, '규격(㎜)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:1-6-3 가교화 폴리에틸렌관 접합 및 배관, '규격(㎜)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:1-6-3 가교화 폴리에틸렌관 접합 및 배관 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 1-6-3 주③" + } + ], + "끝수": null, + "비고": "절단 · 배관 · 고정철물 · 접합 · 배관시험 포함" + } + ] +} diff --git a/resources/master_data/재료_자체.json b/resources/master_data/재료_자체.json index 5d16cf66..8a2d4635 100644 --- a/resources/master_data/재료_자체.json +++ b/resources/master_data/재료_자체.json @@ -180,6 +180,9 @@ {"열쇠": "단열판", "이름": "단열판", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 건축 5-4-9"}, {"열쇠": "접착제 외벽단열용", "이름": "접착제", "규격": "외벽단열용", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 건축 5-4-9"}, {"열쇠": "표준보강메시", "이름": "표준보강메시", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 건축 5-4-9"}, - {"열쇠": "고강도메시", "이름": "고강도메시", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 건축 5-4-9"} + {"열쇠": "고강도메시", "이름": "고강도메시", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 건축 5-4-9"}, + {"열쇠": "플럭스(브레이징)", "이름": "플럭스", "규격": "브레이징용", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 1-2-1 · 원문 g"}, + {"열쇠": "TIG 용접봉(스테인리스)", "이름": "TIG 용접봉", "규격": "스테인리스", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 1-3-1"}, + {"열쇠": "아르곤가스", "이름": "아르곤가스", "규격": "", "단위": "ℓ", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 1-3-1"} ] } diff --git a/resources/tester/test_masterdata_check.py b/resources/tester/test_masterdata_check.py index a0a1b473..ac54caf7 100644 --- a/resources/tester/test_masterdata_check.py +++ b/resources/tester/test_masterdata_check.py @@ -298,6 +298,36 @@ def test_견본_파일_검사_통과(whole): assert cm.check_logics(files, whole) == [] +def test_열쇠_겹침을_잡음(): + """다른 부문 표와 같은 열쇠면 먼저 읽힌 표만 찾기에 걸림.""" + files = { + "계수_건설품셈_건축1장.json": { + "그룹": "계수", + "원문": "건설품셈", + "표": [{"열쇠": "1-1-1 계수"}], + }, + "계수_건설품셈_기계설비1장.json": { + "그룹": "계수", + "원문": "건설품셈", + "표": [{"열쇠": "1-1-1 계수"}], + }, + } + assert len(cm.duplicate_keys(files)) == 1 + assert cm.duplicate_keys(cm.load()) == [] + + +def test_기계설비_강관_용접배관(whole): + """1-1-2 관규격 15 · (배관공 3인 × 247,897 + 보통인부 1인 × 172,068) ÷ 83m · 기계경비 2%.""" + got = mf.run( + whole, + "건설품셈:1-1-2 강관 용접배관", + {"관규격": 15, "시공방법": "인력시공", "시공위치": "옥내일반배관"}, + ) + labor = (3 * Decimal(247897) + Decimal(172068)) / 83 + assert cents(got["노무비"]) == cents(labor) + assert cents(got["경비"]) == cents(labor * Decimal("0.02")) + + def test_로직_검사가_틀린_열쇠를_잡음(whole): row = { "열쇠": "시험", From 7606b1726fdfcd9c38a0d826ecdb8f605da4185d Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:15:17 +0900 Subject: [PATCH 08/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=202?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=2012=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EB=8D=95=ED=8A=B8=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 각형·스파이럴·스테인리스·PVC·세대내 환기·플렉시블 덕트(일당은 시공량으로 나눠 ㎡·m당) · 고소작업대 시공량 가산 - 취출구 · 흡입구 · 플렉시블 조인트 · 사각댐퍼(0.1㎡ 증마다 가산) · 원형댐퍼 · 제연댐퍼(재료량 4줄) - 공구손료 및 경장비 덧줄 · 재료_자체 4줄(앵커 1/2〃 · 블라인드리벳 · 철물 D22 · 실리콘 ㎏) - 기계설비 2·5·6장 소요량 범위규칙을 틀 모양으로(「규격(㎜): 이상·이하」 → 「이상·이하 · …」 — 엔진이 못 읽던 것) - 시험 1개 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ --- .../로직_건설품셈_기계설비2장.json | 713 ++++++++++++++++++ .../소요량_건설품셈_기계설비2장.json | 2 +- .../소요량_건설품셈_기계설비5장.json | 10 +- .../소요량_건설품셈_기계설비6장.json | 10 +- resources/master_data/재료_자체.json | 6 +- resources/tester/test_masterdata_check.py | 8 + 6 files changed, 737 insertions(+), 12 deletions(-) create mode 100644 resources/master_data/로직_건설품셈_기계설비2장.json diff --git a/resources/master_data/로직_건설품셈_기계설비2장.json b/resources/master_data/로직_건설품셈_기계설비2장.json new file mode 100644 index 00000000..c8c44770 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비2장.json @@ -0,0 +1,713 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "2-1-1 아연도금강판덕트(각형덕트) 설치", + "이름": "아연도금강판덕트(각형덕트) 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 기계설비 2-1-1", + "소유": "공용", + "입력": [ + { + "이름": "호칭두께", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:2-1-1 아연도금강판덕트(각형덕트) 설치, '호칭두께(mm)'=호칭두께).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:2-1-1 아연도금강판덕트(각형덕트) 설치 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 2-1-1" + }, + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-1-1 아연도금강판덕트(각형덕트) 설치, '호칭두께(mm)'=호칭두께).덕트공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:2-1-1 아연도금강판덕트(각형덕트) 설치, '호칭두께(mm)'=호칭두께).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:2-1-1 아연도금강판덕트(각형덕트) 설치 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:2-1-1 아연도금강판덕트(각형덕트) 설치 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 2-1-1 주④" + } + ], + "끝수": null, + "비고": "제작 완료 덕트 설치 · 벽체통과 콘크리트 깨기 별도 · 크레인·지게차 이동비 별도 · 절단·가공 별도(주③)" + }, + { + "열쇠": "2-1-2 아연도금강판덕트(스파이럴덕트) 설치", + "이름": "아연도금강판덕트(스파이럴덕트) 설치", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 2-1-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:2-1-2 아연도금강판덕트(스파이럴덕트) 설치, '규격(mm)'=규격).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:2-1-2 아연도금강판덕트(스파이럴덕트) 설치 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 2-1-2" + }, + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-1-2 아연도금강판덕트(스파이럴덕트) 설치, '규격(mm)'=규격).덕트공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:2-1-2 아연도금강판덕트(스파이럴덕트) 설치, '규격(mm)'=규격).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:2-1-2 아연도금강판덕트(스파이럴덕트) 설치 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:2-1-2 아연도금강판덕트(스파이럴덕트) 설치 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 2-1-2 주③" + } + ], + "끝수": null, + "비고": "제작 완료 덕트 설치 · 벽체통과 콘크리트 깨기 별도 · 크레인·지게차 이동비 별도 · 철판두께는 규격 칸이 정함(0.5∼1.0㎜)" + }, + { + "열쇠": "2-1-3 스테인리스덕트(각형덕트) 설치", + "이름": "스테인리스덕트(각형덕트) 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 기계설비 2-1-3", + "소유": "공용", + "입력": [ + { + "이름": "호칭두께", + "단위": "㎜" + }, + { + "이름": "시공방법", + "고르기": [ + "인력시공", + "고소작업대(시저형) 시공" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:2-1-3 스테인리스덕트(각형덕트) 설치, '호칭두께(mm)'=호칭두께).시공량 * (1 + 만약(시공방법 == '고소작업대(시저형) 시공', 찾기(계수:건설품셈:2-1-3 스테인리스덕트(각형덕트) 설치 계수, 항목='고소작업대(시저형) 시공 시공량 가산율').값, 0) / 100)", + "출처": "건설품셈 기계설비 2-1-3" + }, + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-1-3 스테인리스덕트(각형덕트) 설치, '호칭두께(mm)'=호칭두께).덕트공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:2-1-3 스테인리스덕트(각형덕트) 설치, '호칭두께(mm)'=호칭두께).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "만약(시공방법 == '인력시공', 찾기(계수:건설품셈:2-1-3 스테인리스덕트(각형덕트) 설치 계수, 항목='기계경비율 인력시공').값, 찾기(계수:건설품셈:2-1-3 스테인리스덕트(각형덕트) 설치 계수, 항목='기계경비율 고소작업대(시저형) 시공').값)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 2-1-3 주④" + } + ], + "끝수": null, + "비고": "제작 완료 덕트 설치 · 벽체통과 콘크리트 깨기 별도 · 크레인·지게차 이동비 별도 · 절단·가공 별도(주③)" + }, + { + "열쇠": "2-1-4 PVC덕트 설치", + "이름": "PVC덕트 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 기계설비 2-1-4", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:2-1-4 PVC덕트 설치).시공량", + "출처": "건설품셈 기계설비 2-1-4" + }, + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-1-4 PVC덕트 설치).덕트공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:2-1-4 PVC덕트 설치).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:2-1-4 PVC덕트 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 2-1-4 주④" + } + ], + "끝수": null, + "비고": "호칭두께 3㎜ · 절단·가공·보온 별도 · 벽체통과 콘크리트 깨기 별도" + }, + { + "열쇠": "2-1-5 세대내 환기덕트 설치", + "이름": "세대내 환기덕트 설치", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 2-1-5", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:2-1-5 세대내 환기덕트 설치).시공량", + "출처": "건설품셈 기계설비 2-1-5" + }, + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-1-5 세대내 환기덕트 설치).덕트공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:2-1-5 세대내 환기덕트 설치).보통인부 / 시공량" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:2-1-5 세대내 환기덕트 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 2-1-5 주④" + } + ], + "끝수": null, + "비고": "204×60㎜ 이하 · 플렉시블 덕트·취출구 별도 · 벽체통과 콘크리트 깨기 별도" + }, + { + "열쇠": "2-1-6 플렉시블덕트 설치", + "이름": "플렉시블덕트 설치", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 2-1-6", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-1-6 플렉시블덕트 설치, '규격(㎜)'=규격).덕트공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "일반 덕트에 연결 · 원문에 공구손료 주 없음" + }, + { + "열쇠": "2-2-1 취출구 설치", + "이름": "취출구 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 2-2-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "아네모디퓨저", + "유니버설형", + "펀칭메탈형", + "슬릿형" + ] + }, + { + "이름": "규격", + "고르기": [ + "100㎜이하", + "200㎜이하", + "300㎜이하", + "400㎜이하", + "500㎜이하", + "600㎜이하", + "0.04㎡이하", + "0.06", + "0.08", + "0.10", + "0.15", + "0.20", + "0.25", + "0.30", + "0.35", + "0.40", + "1m 미만", + "1m 미만(셔터)", + "1m이상", + "1m이상(셔터)", + "1m 이상" + ] + } + ], + "중간": [ + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-2-1 취출구 설치, 구분=구분, 규격=규격).덕트공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "규격기준(목지름·단면적·길이·변길이)은 구분이 정함 · 타공 별도" + }, + { + "열쇠": "2-2-2 흡입구 설치", + "이름": "흡입구 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 2-2-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "그릴(도어그릴)", + "점검구", + "후드" + ] + }, + { + "이름": "종류", + "고르기": [ + "흡입구 장변길이", + "300㎜×300㎜ 이하", + "일반", + "2중", + "그리스필터", + "2중 그리스필터" + ] + }, + { + "이름": "규격", + "고르기": [ + "1m미만", + "1m이상", + "투영면적 ㎡당" + ] + } + ], + "중간": [ + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-2-2 흡입구 설치, 구분=구분, 종류=종류, 규격=규격).덕트공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "후드는 투영면적 ㎡당 — 설계 수량을 ㎡ 로" + }, + { + "열쇠": "2-2-3 덕트 플렉시블 조인트 설치", + "이름": "덕트 플렉시블 조인트 설치", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 2-2-3", + "소유": "공용", + "입력": [ + { + "이름": "호칭번호", + "고르기": [ + "032(2)", + "080(5⅓)", + "036(2⅓)", + "090(6)", + "040(2⅔)", + "100(6⅔)", + "045(3)", + "112(7½)", + "050(3⅓)", + "125(8⅓)", + "056(3⅔)", + "140(9⅓)", + "063(4)", + "160(10⅔)", + "071(4⅔)", + "180(12)" + ] + } + ], + "중간": [ + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-2-3 덕트 플렉시블 조인트 설치, 호칭번호=호칭번호).덕트공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:2-2-3 덕트 플렉시블 조인트 설치, 호칭번호=호칭번호).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "규격은 송풍기 호칭번호" + }, + { + "열쇠": "2-2-4 일반댐퍼(사각) 설치", + "이름": "일반댐퍼(사각) 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 2-2-4", + "소유": "공용", + "입력": [ + { + "이름": "댐퍼", + "고르기": [ + "방화댐퍼", + "풍량조절댐퍼(수동식)" + ] + }, + { + "이름": "댐퍼면적", + "단위": "㎡" + } + ], + "중간": [ + { + "이름": "증가수", + "식": "올림(최대(댐퍼면적 - 0.1, 0) / 0.1)", + "출처": "건설품셈 기계설비 2-2-4" + }, + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-2-4 일반댐퍼(사각) 설치, 댐퍼=댐퍼).덕트공 + 찾기(소요량:건설품셈:2-2-4 면적 증가 가산, 댐퍼=댐퍼).덕트공 * 증가수" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "0.1㎡ 초과분은 0.1㎡ 증마다 가산 — 해석: 끝수 증분은 올려 한 번" + }, + { + "열쇠": "2-2-5 일반댐퍼(원형) 설치", + "이름": "일반댐퍼(원형) 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 2-2-5", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "방화댐퍼", + "풍량조절댐퍼(수동식)" + ] + }, + { + "이름": "규격", + "고르기": [ + "ø100mm이하", + "200mm이하", + "300mm이하" + ] + } + ], + "중간": [ + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-2-5 일반댐퍼(원형) 설치, 구분=구분, 규격=규격).덕트공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "" + }, + { + "열쇠": "2-2-6 제연댐퍼 설치", + "이름": "제연댐퍼 설치", + "결과단위": "원/㎡", + "출처": "건설품셈 기계설비 2-2-6", + "소유": "공용", + "입력": [ + { + "이름": "연결방식", + "고르기": [ + "수직덕트 연결방식", + "승강로 연결방식" + ] + } + ], + "중간": [ + { + "이름": "덕트공", + "식": "찾기(소요량:건설품셈:2-2-6 제연댐퍼 설치, 연결방식=연결방식).덕트공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:2-2-6 제연댐퍼 설치, 연결방식=연결방식).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:2-2-6 제연댐퍼 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:앵커 1/2〃", + "이름": "앵커", + "규격": "1/2〃", + "단위": "개", + "수량": "찾기(소요량:건설품셈:2-2-6 제연댐퍼 재료량, 구분='앵커').수량", + "비목": "재료비", + "출처": "건설품셈 기계설비 2-2-6" + }, + { + "종류": "재료", + "요소": "재료:자체:블라인드리벳", + "이름": "블라인드리벳", + "단위": "개", + "수량": "찾기(소요량:건설품셈:2-2-6 제연댐퍼 재료량, 구분='블라인드리벳').수량", + "비목": "재료비", + "출처": "건설품셈 기계설비 2-2-6" + }, + { + "종류": "재료", + "요소": "재료:자체:철물 D22 철근", + "이름": "철물", + "규격": "D22 철근", + "단위": "㎏", + "수량": "찾기(소요량:건설품셈:2-2-6 제연댐퍼 재료량, 구분='철물').수량", + "비목": "재료비", + "출처": "건설품셈 기계설비 2-2-6" + }, + { + "종류": "재료", + "요소": "재료:자체:실리콘(㎏)", + "이름": "실리콘", + "단위": "㎏", + "수량": "찾기(소요량:건설품셈:2-2-6 제연댐퍼 재료량, 구분='실리콘').수량", + "비목": "재료비", + "출처": "건설품셈 기계설비 2-2-6" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 2-2-6 주③" + } + ], + "끝수": null, + "비고": "댐퍼 ㎡당 · 승강로 연결방식은 입상덕트 타공·연결 제외 · 전기배관·입선 별도" + } + ] +} diff --git a/resources/master_data/소요량_건설품셈_기계설비2장.json b/resources/master_data/소요량_건설품셈_기계설비2장.json index 1a8a48a2..012b43a1 100644 --- a/resources/master_data/소요량_건설품셈_기계설비2장.json +++ b/resources/master_data/소요량_건설품셈_기계설비2장.json @@ -78,7 +78,7 @@ "보통인부": "인", "시공량": "m" }, - "범위규칙": "규격(mm): 이상·이하", + "범위규칙": "이상·이하 · 규격(mm) 양 끝 포함", "줄": [ { "철판두께(mm)": 0.5, diff --git a/resources/master_data/소요량_건설품셈_기계설비5장.json b/resources/master_data/소요량_건설품셈_기계설비5장.json index c622b4c9..f8e582ff 100644 --- a/resources/master_data/소요량_건설품셈_기계설비5장.json +++ b/resources/master_data/소요량_건설품셈_기계설비5장.json @@ -15,7 +15,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(㎜): 이상·이하", + "범위규칙": "이상·이하 · 규격(㎜) 양 끝 포함", "줄": [ { "규격(㎜)": [ @@ -113,7 +113,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(㎜): 이상·이하", + "범위규칙": "이상·이하 · 규격(㎜) 양 끝 포함", "줄": [ { "규격(㎜)": [ @@ -285,7 +285,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(㎜): 이상·이하", + "범위규칙": "이상·이하 · 규격(㎜) 양 끝 포함", "줄": [ { "규격(㎜)": [ @@ -486,7 +486,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(㎜): 이상·이하", + "범위규칙": "이상·이하 · 규격(㎜) 양 끝 포함", "줄": [ { "규격(㎜)": [ @@ -588,7 +588,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(㎜): 이상·이하", + "범위규칙": "이상·이하 · 규격(㎜) 양 끝 포함", "줄": [ { "규격(㎜)": [ diff --git a/resources/master_data/소요량_건설품셈_기계설비6장.json b/resources/master_data/소요량_건설품셈_기계설비6장.json index cfd69780..7d2a3a7b 100644 --- a/resources/master_data/소요량_건설품셈_기계설비6장.json +++ b/resources/master_data/소요량_건설품셈_기계설비6장.json @@ -16,7 +16,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(mm): 이상·이하", + "범위규칙": "이상·이하 · 규격(mm) 양 끝 포함", "줄": [ { "규격(mm)": [ @@ -128,7 +128,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(mm): 이상·이하", + "범위규칙": "이상·이하 · 규격(mm) 양 끝 포함", "줄": [ { "규격(mm)": [ @@ -190,7 +190,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(mm): 이상·이하", + "범위규칙": "이상·이하 · 규격(mm) 양 끝 포함", "줄": [ { "규격(mm)": [ @@ -229,7 +229,7 @@ "배관공": "인", "보통인부": "인" }, - "범위규칙": "규격(mm): 이상·이하", + "범위규칙": "이상·이하 · 규격(mm) 양 끝 포함", "줄": [ { "규격(mm)": [ @@ -285,7 +285,7 @@ "특별인부": "인", "계장공": "인" }, - "범위규칙": "규격(mm): 이상·이하", + "범위규칙": "이상·이하 · 규격(mm) 양 끝 포함", "줄": [ { "규격(mm)": [ diff --git a/resources/master_data/재료_자체.json b/resources/master_data/재료_자체.json index 8a2d4635..0d302a03 100644 --- a/resources/master_data/재료_자체.json +++ b/resources/master_data/재료_자체.json @@ -183,6 +183,10 @@ {"열쇠": "고강도메시", "이름": "고강도메시", "규격": "", "단위": "㎡", "값": null, "출처": "자체", "비고": "건설품셈 건축 5-4-9"}, {"열쇠": "플럭스(브레이징)", "이름": "플럭스", "규격": "브레이징용", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 1-2-1 · 원문 g"}, {"열쇠": "TIG 용접봉(스테인리스)", "이름": "TIG 용접봉", "규격": "스테인리스", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 1-3-1"}, - {"열쇠": "아르곤가스", "이름": "아르곤가스", "규격": "", "단위": "ℓ", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 1-3-1"} + {"열쇠": "아르곤가스", "이름": "아르곤가스", "규격": "", "단위": "ℓ", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 1-3-1"}, + {"열쇠": "앵커 1/2〃", "이름": "앵커", "규격": "1/2〃", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 2-2-6"}, + {"열쇠": "블라인드리벳", "이름": "블라인드리벳", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 2-2-6"}, + {"열쇠": "철물 D22 철근", "이름": "철물", "규격": "D22 철근", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 2-2-6"}, + {"열쇠": "실리콘(㎏)", "이름": "실리콘", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 2-2-6 · 나라장터 실링재(실리콘)는 L 단위"} ] } diff --git a/resources/tester/test_masterdata_check.py b/resources/tester/test_masterdata_check.py index ac54caf7..569f650e 100644 --- a/resources/tester/test_masterdata_check.py +++ b/resources/tester/test_masterdata_check.py @@ -328,6 +328,14 @@ def test_기계설비_강관_용접배관(whole): assert cents(got["경비"]) == cents(labor * Decimal("0.02")) +def test_기계설비_사각댐퍼_면적_가산(whole): + """2-2-4 방화댐퍼 0.35㎡ · 0.1㎡ 초과 0.25㎡ = 증 3번 · 0.415 + 0.125×3 = 0.79인.""" + got = mf.run( + whole, "건설품셈:2-2-4 일반댐퍼(사각) 설치", {"댐퍼": "방화댐퍼", "댐퍼면적": 0.35} + ) + assert got["줄"][0]["수량"] == Decimal("0.790") + + def test_로직_검사가_틀린_열쇠를_잡음(whole): row = { "열쇠": "시험", From f71d527b75cc5a0ed613835a43400bb558f23c2f Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:16:03 +0900 Subject: [PATCH 09/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=203?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=208=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EB=B3=B4=EC=98=A8=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 배관보온(일반마감 · 칼라함석) · 밸브보온(일반 · 함석) · 각형·원형덕트 보온 · 발열선 · 분전함 - 3-1-1 기계실 · 그루브조인트 · 비닐감기(발포PE만) · 마감 가감은 입력 고르기 · 겹침은 공통 1-4-2 합산 - 3-2-1 기계실 가산 · 부속 달린 밸브 가산율은 설계자 입력(0∼25%) Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ --- .../로직_건설품셈_기계설비3장.json | 487 ++++++++++++++++++ 1 file changed, 487 insertions(+) create mode 100644 resources/master_data/로직_건설품셈_기계설비3장.json diff --git a/resources/master_data/로직_건설품셈_기계설비3장.json b/resources/master_data/로직_건설품셈_기계설비3장.json new file mode 100644 index 00000000..23dbb8a5 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비3장.json @@ -0,0 +1,487 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "3-1-1 일반마감 배관보온", + "이름": "일반마감 배관보온", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 3-1-1", + "소유": "공용", + "입력": [ + { + "이름": "배관규격", + "단위": "㎜" + }, + { + "이름": "보온재", + "고르기": [ + "고무발포보온재", + "발포폴리에틸렌보온재", + "유리면보온재(글라스울)" + ] + }, + { + "이름": "보온두께", + "고르기": [ + "25㎜이하", + "50㎜이하" + ] + }, + { + "이름": "설치장소", + "고르기": [ + "일반", + "기계실" + ] + }, + { + "이름": "배관접합", + "고르기": [ + "일반", + "그루브조인트식" + ] + }, + { + "이름": "비닐감기", + "고르기": [ + "안 함", + "보온 전 비닐감기" + ] + }, + { + "이름": "마감", + "고르기": [ + "PVC보온테이프·알루미늄밴드", + "마감재 시공 안 함", + "폴리프로필렌 Sheet(APS·TS커버)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:3-1-1 일반마감 배관보온, '배관규격(mm)'=배관규격, 보온재=보온재, 보온두께=보온두께).시공량 * (1 + (0 - 만약(설치장소 == '기계실', 찾기(계수:건설품셈:3-1-1 일반마감 배관보온 계수, 항목='기계실 시공량 감산율').값, 0) - 만약(배관접합 == '그루브조인트식', 찾기(계수:건설품셈:3-1-1 일반마감 배관보온 계수, 항목='그루브조인트식 배관 시공량 감산율').값, 0) - 만약(비닐감기 == '보온 전 비닐감기' 그리고 보온재 == '발포폴리에틸렌보온재', 찾기(계수:건설품셈:3-1-1 일반마감 배관보온 계수, 항목='비닐감기 시 발포폴리에틸렌보온재 시공량 감산율').값, 0) + 만약(마감 == '마감재 시공 안 함', 찾기(계수:건설품셈:3-1-1 일반마감 배관보온 계수, 항목='마감재 미시공 시공량 가산율').값, 0) - 만약(마감 == '폴리프로필렌 Sheet(APS·TS커버)', 찾기(계수:건설품셈:3-1-1 일반마감 배관보온 계수, 항목='폴리프로필렌 Sheet 마감 시공량 감산율').값, 0)) / 100)", + "출처": "건설품셈 기계설비 3-1-1" + }, + { + "이름": "보온공", + "식": "찾기(소요량:건설품셈:3-1-1 일반마감 배관보온, '배관규격(mm)'=배관규격, 보온재=보온재, 보온두께=보온두께).보온공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:3-1-1 일반마감 배관보온, '배관규격(mm)'=배관규격, 보온재=보온재, 보온두께=보온두께).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1044", + "이름": "보온공", + "단위": "인", + "수량": "보온공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "비닐감기 감산은 발포폴리에틸렌보온재만 · 가감이 겹치면 공통 1-4-2 할증 중복가산(합산) · 원문에 공구손료 주 없음" + }, + { + "열쇠": "3-1-2 칼라함석마감 배관보온", + "이름": "칼라함석마감 배관보온", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 3-1-2", + "소유": "공용", + "입력": [ + { + "이름": "보온두께", + "단위": "㎜" + }, + { + "이름": "배관규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:3-1-2 칼라함석마감 배관보온, '보온두께(mm)'=보온두께, '배관규격(mm)'=배관규격).시공량", + "출처": "건설품셈 기계설비 3-1-2" + }, + { + "이름": "보온공", + "식": "찾기(소요량:건설품셈:3-1-2 칼라함석마감 배관보온, '보온두께(mm)'=보온두께, '배관규격(mm)'=배관규격).보온공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:3-1-2 칼라함석마감 배관보온, '보온두께(mm)'=보온두께, '배관규격(mm)'=배관규격).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1044", + "이름": "보온공", + "단위": "인", + "수량": "보온공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "공장 가공 칼라함석 · 규격은 본관 · 보온두께는 관보온재 설치두께" + }, + { + "열쇠": "3-2-1 일반마감 밸브보온", + "이름": "일반마감 밸브보온", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 3-2-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + }, + { + "이름": "보온두께", + "고르기": [ + "25㎜이하", + "50㎜이하" + ] + }, + { + "이름": "보온재", + "고르기": [ + "고무발포보온재", + "발포폴리에틸렌보온재" + ] + }, + { + "이름": "설치장소", + "고르기": [ + "일반", + "기계실" + ] + }, + { + "이름": "부속가산율", + "단위": "%", + "범위": [ + 0, + 25 + ], + "출처": "건설품셈 기계설비 3-2-1 주③", + "비고": "알람체크밸브 · 준비작동식밸브 등 부속 달린 밸브 — 원문 25% 범위 내 · 없으면 0" + } + ], + "중간": [ + { + "이름": "보온공", + "식": "찾기(소요량:건설품셈:3-2-1 일반마감 밸브보온, '규격(㎜)'=규격, 보온두께=보온두께, 보온재=보온재).보온공 * (1 + (만약(설치장소 == '기계실', 찾기(계수:건설품셈:3-2-1 일반마감 밸브보온 계수, 항목='기계실 가산율').값, 0) + 부속가산율) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:3-2-1 일반마감 밸브보온, '규격(㎜)'=규격, 보온두께=보온두께, 보온재=보온재).보통인부 * (1 + (만약(설치장소 == '기계실', 찾기(계수:건설품셈:3-2-1 일반마감 밸브보온 계수, 항목='기계실 가산율').값, 0) + 부속가산율) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1044", + "이름": "보온공", + "단위": "인", + "수량": "보온공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "부속가산율은 설계자 입력(0∼25%) · 가산이 겹치면 공통 1-4-2 할증 중복가산(합산)" + }, + { + "열쇠": "3-2-2 함석마감 밸브보온", + "이름": "함석마감 밸브보온", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 3-2-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "50 이하", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300" + ] + } + ], + "중간": [ + { + "이름": "보온공", + "식": "찾기(소요량:건설품셈:3-2-2 함석마감 밸브보온, '규격(㎜)'=규격).보온공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:3-2-2 함석마감 밸브보온, '규격(㎜)'=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1044", + "이름": "보온공", + "단위": "인", + "수량": "보온공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "공장 가공 함석 · 개폐형 기준" + }, + { + "열쇠": "3-3-1 각형덕트 보온", + "이름": "각형덕트 보온", + "결과단위": "원/㎡", + "출처": "건설품셈 기계설비 3-3-1", + "소유": "공용", + "입력": [ + { + "이름": "보온두께", + "고르기": [ + "25㎜이하", + "50㎜이하" + ] + }, + { + "이름": "보온재", + "고르기": [ + "고무발포보온재, 발포폴리에틸렌보온재", + "유리면보온재(글라스울)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:3-3-1 각형덕트 보온, 보온두께=보온두께, 보온재=보온재).시공량", + "출처": "건설품셈 기계설비 3-3-1" + }, + { + "이름": "보온공", + "식": "찾기(소요량:건설품셈:3-3-1 각형덕트 보온, 보온두께=보온두께, 보온재=보온재).보온공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:3-3-1 각형덕트 보온, 보온두께=보온두께, 보온재=보온재).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1044", + "이름": "보온공", + "단위": "인", + "수량": "보온공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "보온재 소운반 · 재단 · 알루미늄밴드 · 마무리 포함" + }, + { + "열쇠": "3-3-2 원형덕트 보온", + "이름": "원형덕트 보온", + "결과단위": "원/㎡", + "출처": "건설품셈 기계설비 3-3-2", + "소유": "공용", + "입력": [ + { + "이름": "보온두께", + "고르기": [ + "25㎜이하", + "50㎜이하" + ] + }, + { + "이름": "보온재", + "고르기": [ + "고무발포보온재, 발포폴리에틸렌보온재", + "유리면보온재(글라스울)" + ] + } + ], + "중간": [ + { + "이름": "시공량", + "식": "찾기(소요량:건설품셈:3-3-2 원형덕트 보온, 보온두께=보온두께, 보온재=보온재).시공량", + "출처": "건설품셈 기계설비 3-3-2" + }, + { + "이름": "보온공", + "식": "찾기(소요량:건설품셈:3-3-2 원형덕트 보온, 보온두께=보온두께, 보온재=보온재).보온공 / 시공량" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:3-3-2 원형덕트 보온, 보온두께=보온두께, 보온재=보온재).보통인부 / 시공량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1044", + "이름": "보온공", + "단위": "인", + "수량": "보온공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "보온재 소운반 · 재단 · 알루미늄밴드 · 마무리 포함" + }, + { + "열쇠": "3-4-1 발열선 설치", + "이름": "발열선 설치", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 3-4-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "세대내", + "공용부위" + ] + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:3-4-1 발열선 설치, 구분=구분).기계설비공" + }, + { + "이름": "보통인부", + "식": "만약(구분 == '세대내', 0, 찾기(소요량:건설품셈:3-4-1 발열선 설치, 구분=구분).보통인부)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "세대내는 보통인부 없음 · 강제전선관 배관 · 전기배선 인입 별도" + }, + { + "열쇠": "3-4-2 분전함 설치", + "이름": "분전함 설치", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 3-4-2", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:3-4-2 분전함 설치).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:3-4-2 분전함 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "강제전선관 배관 · 통신·전기배선 인입·결선 별도" + } + ] +} From 1ee834b80c58b3f154500720e90f063511704c4b Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:16:34 +0900 Subject: [PATCH 10/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=204?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=208=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=ED=8E=8C=ED=94=84=20=EB=B0=8F=20=EA=B3=B5=EA=B8=B0=EC=84=A4?= =?UTF-8?q?=EB=B9=84=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 일반펌프 · 집수정 배수펌프(공구손료 3%) · 펌프 방진가대 - 송풍기(천장 행거형 70% 가산은 입력 고르기 · 공구손료 3%) · 벽걸이 배기팬 · 욕실배기팬 · 무덕트 유인팬 · 레인지후드 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ --- .../로직_건설품셈_기계설비4장.json | 412 ++++++++++++++++++ 1 file changed, 412 insertions(+) create mode 100644 resources/master_data/로직_건설품셈_기계설비4장.json diff --git a/resources/master_data/로직_건설품셈_기계설비4장.json b/resources/master_data/로직_건설품셈_기계설비4장.json new file mode 100644 index 00000000..5914fa71 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비4장.json @@ -0,0 +1,412 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "4-1-1 일반펌프 설치", + "이름": "일반펌프 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 4-1-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎾" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:4-1-1 일반펌프 설치, '규격(㎾이하)'=규격).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:4-1-1 일반펌프 설치, '규격(㎾이하)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:4-1-1 일반펌프 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 4-1-1 주⑤" + } + ], + "끝수": null, + "비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 급수·소방펌프 옥내 인력 운반 설치 · 기초·방진가대·전기배선·주위배관·압력탱크·자동제어설비 제외 · 지게차 등 장비 별도" + }, + { + "열쇠": "4-1-2 집수정 배수펌프 설치", + "이름": "집수정 배수펌프 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 4-1-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎾" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:4-1-2 집수정 배수펌프 설치, '규격(㎾이하)'=규격).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:4-1-2 집수정 배수펌프 설치, '규격(㎾이하)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:4-1-2 집수정 배수펌프 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 4-1-2 주④" + } + ], + "끝수": null, + "비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 자동탈착식 · 인력·윈치 설치 · 기초·전기배선·주위배관·자동제어설비 제외 · 장비 사용 시 별도" + }, + { + "열쇠": "4-1-3 펌프 방진가대 설치", + "이름": "펌프 방진가대 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 4-1-3", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎾" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:4-1-3 펌프 방진가대 설치, '규격(㎾이하)'=규격).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:4-1-3 펌프 방진가대 설치, '규격(㎾이하)'=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 콘크리트(모르타르) 충전 별도 · 원문에 공구손료 주 없음" + }, + { + "열쇠": "4-2-1 송풍기 설치", + "이름": "송풍기 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 4-2-1", + "소유": "공용", + "입력": [ + { + "이름": "호칭번호", + "고르기": [ + "032(2)", + "036(2⅓)", + "040(2⅔)", + "045(3)", + "050(3⅓)", + "056(3⅔)", + "063(4)", + "071(4⅔)", + "080(5⅓)", + "090(6)", + "100(6⅔)", + "112(7½)", + "125(8⅓)", + "140(9⅓)", + "160(10⅔)", + "180(12)" + ] + }, + { + "이름": "흡입", + "고르기": [ + "편흡입", + "양흡입" + ] + }, + { + "이름": "설치방식", + "고르기": [ + "바닥 설치", + "천장 행거형(높이 3.5m)" + ] + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:4-2-1 송풍기 설치, 호칭번호=호칭번호, 흡입=흡입).기계설비공 * (1 + 만약(설치방식 == '천장 행거형(높이 3.5m)', 찾기(계수:건설품셈:4-2-1 송풍기 설치 계수, 항목='천장 행거형 설치 시 가산율').값, 0) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:4-2-1 송풍기 설치, 호칭번호=호칭번호, 흡입=흡입).보통인부 * (1 + 만약(설치방식 == '천장 행거형(높이 3.5m)', 찾기(계수:건설품셈:4-2-1 송풍기 설치 계수, 항목='천장 행거형 설치 시 가산율').값, 0) / 100)" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:4-2-1 송풍기 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 4-2-1 주⑤" + } + ], + "끝수": null, + "비고": "다익형 · 호칭번호는 임펠러 깃 바깥 지름 최대 치수 · 기초·방진가대·전기배선 제외 · 산업용은 기계설비 13-5-7 · 지게차 등 장비 별도" + }, + { + "열쇠": "4-2-2 벽걸이 배기팬 설치", + "이름": "벽걸이 배기팬 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 4-2-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:4-2-2 벽걸이 배기팬 설치, '규격(㎜)'=규격).기계설비공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "전동기 직결형 · 형틀 설치 별도" + }, + { + "열쇠": "4-2-3 욕실배기팬 설치", + "이름": "욕실배기팬 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 4-2-3", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:4-2-3 욕실배기팬 설치, '규격(㎜이하)'=규격).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:4-2-3 욕실배기팬 설치, '규격(㎜이하)'=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 원심형 · 플렉시블덕트·댐퍼 별도" + }, + { + "열쇠": "4-2-4 무덕트 유인팬 설치", + "이름": "무덕트 유인팬 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 4-2-4", + "소유": "공용", + "입력": [ + { + "이름": "풍량", + "단위": "㎥/h" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:4-2-4 무덕트 유인팬 설치, '풍량(㎥/h이하)'=풍량).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:4-2-4 무덕트 유인팬 설치, '풍량(㎥/h이하)'=풍량).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 앵커 · 가대조립 · 작동시험 포함" + }, + { + "열쇠": "4-2-5 레인지후드 설치", + "이름": "레인지후드 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 4-2-5", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:4-2-5 레인지후드 설치, '규격(㎜이하)'=규격).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:4-2-5 레인지후드 설치, '규격(㎜이하)'=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "규격은 표 칸 값으로 고름(칸 = 그 값 이하) · 가정용(최대 풍량 6∼12㎥/분)" + } + ] +} From 74aed754ee51bf90a7c1483571a3d34ce7f67f6b Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:17:16 +0900 Subject: [PATCH 11/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=205?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=206=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EB=B0=B8=EB=B8=8C=EC=84=A4=EB=B9=84=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 일반밸브 및 콕류 · 감압밸브장치(밸런스 파이프 30% 가산은 입력 고르기) · 스팀트랩 · 익스팬션조인트 · 플랙시블커넥터 · 수격방지기 - 공구손료 및 경장비 덧줄(인력품 2%) · 50㎜ 이하 보통인부 없는 칸은 0 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ --- .../로직_건설품셈_기계설비5장.json | 352 ++++++++++++++++++ 1 file changed, 352 insertions(+) create mode 100644 resources/master_data/로직_건설품셈_기계설비5장.json diff --git a/resources/master_data/로직_건설품셈_기계설비5장.json b/resources/master_data/로직_건설품셈_기계설비5장.json new file mode 100644 index 00000000..6e00b1f4 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비5장.json @@ -0,0 +1,352 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "5-1-1 일반밸브 및 콕류 설치", + "이름": "일반밸브 및 콕류 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 5-1-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:5-1-1 일반밸브 및 콕류 설치, '규격(㎜)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "만약((규격 >= 15 그리고 규격 <= 25) 또는 (규격 >= 32 그리고 규격 <= 50), 0, 찾기(소요량:건설품셈:5-1-1 일반밸브 및 콕류 설치, '규격(㎜)'=규격).보통인부)" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:5-1-1 일반밸브 및 콕류 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 5-1-1 주②" + } + ], + "끝수": null, + "비고": "설치위치 선정 · 설치 · 작동시험 · 마무리 포함 · 규격 50㎜ 이하는 보통인부 없음" + }, + { + "열쇠": "5-1-2 감압밸브장치 설치", + "이름": "감압밸브장치 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 5-1-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + }, + { + "이름": "밸런스파이프", + "고르기": [ + "필요 없음", + "필요" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:5-1-2 감압밸브장치 설치, '규격(㎜)'=규격).배관공 * (1 + 만약(밸런스파이프 == '필요', 찾기(계수:건설품셈:5-1-2 감압밸브장치 설치 계수, 항목='밸런스 파이프 필요 시 가산율').값, 0) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:5-1-2 감압밸브장치 설치, '규격(㎜)'=규격).보통인부 * (1 + 만약(밸런스파이프 == '필요', 찾기(계수:건설품셈:5-1-2 감압밸브장치 설치 계수, 항목='밸런스 파이프 필요 시 가산율').값, 0) / 100)" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:5-1-2 감압밸브장치 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 5-1-2 주④" + } + ], + "끝수": null, + "비고": "바이패스 배관조립 · 배관시험 포함 · 온도조절장치는 본 품 준용 가능(주③)" + }, + { + "열쇠": "5-2-1 스팀트랩 장치 설치", + "이름": "스팀트랩 장치 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 5-2-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:5-2-1 스팀트랩 장치 설치, '규격(㎜)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:5-2-1 스팀트랩 장치 설치, '규격(㎜)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:5-2-1 스팀트랩 장치 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 5-2-1 주⑤" + } + ], + "끝수": null, + "비고": "고압버킷 · 저압벨로스형 · 바이패스 기타 부속 · 지지대·가대 별도" + }, + { + "열쇠": "5-3-1 익스팬션조인트 설치", + "이름": "익스팬션조인트 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 5-3-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + }, + { + "이름": "구분", + "고르기": [ + "복식", + "단식" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:5-3-1 익스팬션조인트 설치, '규격(㎜)'=규격, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:5-3-1 익스팬션조인트 설치, '규격(㎜)'=규격, 구분=구분).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:5-3-1 익스팬션조인트 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 5-3-1 주③" + } + ], + "끝수": null, + "비고": "지지대 설치 별도" + }, + { + "열쇠": "5-3-2 플랙시블커넥터 설치", + "이름": "플랙시블커넥터 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 5-3-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:5-3-2 플랙시블커넥터 설치, '규격(㎜)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:5-3-2 플랙시블커넥터 설치, '규격(㎜)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:5-3-2 플랙시블커넥터 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 5-3-2 주④" + } + ], + "끝수": null, + "비고": "커넥팅로드 플랜지접합형 · 플랙시블조인트는 본 품 준용 가능(주③)" + }, + { + "열쇠": "5-4-1 수격방지기 설치", + "이름": "수격방지기 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 5-4-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:5-4-1 수격방지기 설치, '규격(㎜)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "만약((규격 >= 15 그리고 규격 <= 25) 또는 (규격 >= 32 그리고 규격 <= 50), 0, 찾기(소요량:건설품셈:5-4-1 수격방지기 설치, '규격(㎜)'=규격).보통인부)" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:5-4-1 수격방지기 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 5-4-1 주④" + } + ], + "끝수": null, + "비고": "50㎜ 이하 나사(삽입)접합식 · 65㎜ 이상 플랜지접합식 · 벽체 홈파내기 별도 · 규격 50㎜ 이하는 보통인부 없음" + } + ] +} From 72a735614dcb40ea4d29319469e3c79de9f70038 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:17:26 +0900 Subject: [PATCH 12/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=206?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=206=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EC=B8=A1=EC=A0=95=EA=B8=B0=EA=B8=B0=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 유량계 직독식(연속작업 불가 20% · 수도·온수미터 병행 30% 가산은 입력 고르기 · 겹침은 공통 1-4-2 합산) · 원격식 - 세대용 계량기함 · 세대용 · 건물용 · 산업용 적산열량계(원문 직종 플랜트배관공 · 특별인부 · 계장공) - 공구손료 및 경장비 덧줄(인력품 2%) Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ --- .../로직_건설품셈_기계설비6장.json | 366 ++++++++++++++++++ 1 file changed, 366 insertions(+) create mode 100644 resources/master_data/로직_건설품셈_기계설비6장.json diff --git a/resources/master_data/로직_건설품셈_기계설비6장.json b/resources/master_data/로직_건설품셈_기계설비6장.json new file mode 100644 index 00000000..de4e2388 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비6장.json @@ -0,0 +1,366 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "6-1-1 유량계(직독식) 설치", + "이름": "유량계(직독식) 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 6-1-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + }, + { + "이름": "구분", + "고르기": [ + "보호통", + "유량계" + ] + }, + { + "이름": "연속작업", + "고르기": [ + "연속작업 가능", + "위치·형태 상이 또는 연속작업 불가" + ] + }, + { + "이름": "병행설치", + "고르기": [ + "단독 설치", + "수도미터·온수미터 동일장소 병행" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:6-1-1 유량계(직독식) 설치, '규격(mm)'=규격, 구분=구분).배관공 * (1 + (만약(연속작업 == '위치·형태 상이 또는 연속작업 불가', 찾기(계수:건설품셈:6-1-1 유량계(직독식) 설치 계수, 항목='연속작업 불가 등 가산율').값, 0) + 만약(병행설치 == '수도미터·온수미터 동일장소 병행', 찾기(계수:건설품셈:6-1-1 유량계(직독식) 설치 계수, 항목='수도미터 · 온수미터 병행 설치 가산율').값, 0)) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:6-1-1 유량계(직독식) 설치, '규격(mm)'=규격, 구분=구분).보통인부 * (1 + (만약(연속작업 == '위치·형태 상이 또는 연속작업 불가', 찾기(계수:건설품셈:6-1-1 유량계(직독식) 설치 계수, 항목='연속작업 불가 등 가산율').값, 0) + 만약(병행설치 == '수도미터·온수미터 동일장소 병행', 찾기(계수:건설품셈:6-1-1 유량계(직독식) 설치 계수, 항목='수도미터 · 온수미터 병행 설치 가산율').값, 0)) / 100)" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:6-1-1 유량계(직독식) 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 6-1-1 주③" + } + ], + "끝수": null, + "비고": "구분 = 보호통 · 유량계 따로 한 줄씩 · 가산이 겹치면 공통 1-4-2 할증 중복가산(합산)" + }, + { + "열쇠": "6-1-2 유량계(원격식) 설치", + "이름": "유량계(원격식) 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 6-1-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:6-1-2 유량계(원격식) 설치, '규격(mm)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:6-1-2 유량계(원격식) 설치, '규격(mm)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:6-1-2 유량계(원격식) 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 6-1-2 주⑤" + } + ], + "끝수": null, + "비고": "밸브·스트레이너·주위배관 · 전선관 배관·입선 · 지시부 별도" + }, + { + "열쇠": "6-1-3 세대용 계량기함 설치", + "이름": "세대용 계량기함 설치", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 6-1-3", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:6-1-3 세대용 계량기함 설치).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:6-1-3 세대용 계량기함 설치).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:6-1-3 세대용 계량기함 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 6-1-3 주④" + } + ], + "끝수": null, + "비고": "유량계 ø32㎜ 이하 · 2단 이하 · 연결배관·밸브·계량기 별도" + }, + { + "열쇠": "6-2-1 세대용 적산열량계 설치", + "이름": "세대용 적산열량계 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 6-2-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:6-2-1 세대용 적산열량계 설치, '규격(mm)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:6-2-1 세대용 적산열량계 설치, '규격(mm)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:6-2-1 세대용 적산열량계 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 6-2-1 주⑤" + } + ], + "끝수": null, + "비고": "밸브·스트레이너·주위배관 · 전선관 배관·입선 · 지시부 별도" + }, + { + "열쇠": "6-2-2 건물용 적산열량계 설치", + "이름": "건물용 적산열량계 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 6-2-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:6-2-2 건물용 적산열량계 설치, '규격(mm)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:6-2-2 건물용 적산열량계 설치, '규격(mm)'=규격).보통인부" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:6-2-2 건물용 적산열량계 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 6-2-2 주⑤" + } + ], + "끝수": null, + "비고": "밸브·스트레이너·주위배관 · 전선관 배관·입선 · 지시부 별도" + }, + { + "열쇠": "6-2-3 산업용 적산열량계 설치", + "이름": "산업용 적산열량계 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 6-2-3", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "단위": "㎜" + } + ], + "중간": [ + { + "이름": "플랜트배관공", + "식": "찾기(소요량:건설품셈:6-2-3 산업용 적산열량계 설치, '규격(mm)'=규격).플랜트배관공" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:6-2-3 산업용 적산열량계 설치, '규격(mm)'=규격).특별인부" + }, + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:6-2-3 산업용 적산열량계 설치, '규격(mm)'=규격).계장공" + }, + { + "이름": "기계경비율", + "식": "찾기(계수:건설품셈:6-2-3 산업용 적산열량계 설치 계수, 항목='기계경비율').값" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1056", + "이름": "플랜트배관공", + "단위": "인", + "수량": "플랜트배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "노무비 * 기계경비율 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 6-2-3 주⑤" + } + ], + "끝수": null, + "비고": "집단에너지 시설 · 원문 직종 그대로(플랜트배관공 · 특별인부 · 계장공) · 전선관·밸브·스트레이너 별도 · 열량지시계 매립 별도" + } + ] +} From 6275dabc9c8e7060fb730458b4cb82c39bc4f270 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:18:29 +0900 Subject: [PATCH 13/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=207?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=2017=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EC=9C=84=EC=83=9D=EA=B8=B0=EA=B5=AC=EC=84=A4=EB=B9=84=EA=B3=B5?= =?UTF-8?q?=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 위생기구 · 수전 · 욕실금구류 설치 · 공구손료 및 경장비 인력품 2%(주) - 샤워헤드걸이 표2 위생공 가산 · 냉 · 온수 전용 수전 30% 감(비고) Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../로직_건설품셈_기계설비7장.json | 893 ++++++++++++++++++ 1 file changed, 893 insertions(+) create mode 100644 resources/master_data/로직_건설품셈_기계설비7장.json diff --git a/resources/master_data/로직_건설품셈_기계설비7장.json b/resources/master_data/로직_건설품셈_기계설비7장.json new file mode 100644 index 00000000..6746a3f23 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비7장.json @@ -0,0 +1,893 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "7-1-1 소변기 설치", + "이름": "소변기 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-1-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "F.V형 소변기 거치형", + "F.V형 소변기 벽걸이형", + "전자감응기 일체형 소변기 거치형", + "전자감응기 일체형 소변기 벽걸이형", + "전자감응기 노출형 소변기 거치형", + "전자감응기 노출형 소변기 벽걸이형", + "전자감응기 벽매립형 소변기 거치형", + "전자감응기 벽매립형 소변기 벽걸이형" + ] + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-1-1 소변기 설치, 구분=구분).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-1 소변기 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-1-1 주④" + } + ], + "끝수": null, + "비고": "스톨소변기 · 벽매립형은 슬리브BOX 매립 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-1-2 대변기 설치", + "이름": "대변기 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-1-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "동양식대변기 (F.V형)", + "서양식대변기 (탱크형)", + "서양식대변기 (F.V형)" + ] + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-1-2 대변기 설치, 구분=구분).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-2 대변기 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-1-2 주②" + } + ], + "끝수": null, + "비고": "플랜지 · 세척밸브 · 시트 · 통수시험 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-1-3 도기세면기 설치", + "이름": "도기세면기 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-1-3", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-1-3 도기세면기 설치).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-3 도기세면기 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-1-3 주③" + } + ], + "끝수": null, + "비고": "벽붙임 · 폽업 · 배관커버 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-1-4 카운터형 세면기 설치(일체형)", + "이름": "카운터형 세면기 설치(일체형)", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-1-4", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-1-4 카운터형 세면기 설치(일체형)).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-4 카운터형 세면기 설치(일체형)).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-1-4 주③" + } + ], + "끝수": null, + "비고": "세면대 일체 반입 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-1-5 카운터형 세면기 설치(분리형)", + "이름": "카운터형 세면기 설치(분리형)", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-1-5", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-1-5 카운터형 세면기 설치(분리형)).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-5 카운터형 세면기 설치(분리형)).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-1-5 주③" + } + ], + "끝수": null, + "비고": "세면대 분리 반입 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-1-6 욕조 설치", + "이름": "욕조 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-1-6", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-1-6 욕조 설치).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-6 욕조 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-1-6 주③" + } + ], + "끝수": null, + "비고": "월풀욕조 제외 · 모르타르충전 · 에이프런 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-1-7 청소용 수채 설치", + "이름": "청소용 수채 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-1-7", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-1-7 청소용 수채 설치).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-1-7 청소용 수채 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-1-7 주②" + } + ], + "끝수": null, + "비고": "앵커 · 배수구 연결 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-2-1 매립형 욕조수전 설치", + "이름": "매립형 욕조수전 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-2-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-2-1 매립형 욕조수전 설치).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-1 매립형 욕조수전 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-2-1 주③" + } + ], + "끝수": null, + "비고": "매립 배관품 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-2-2 샤워수전 설치", + "이름": "샤워수전 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-2-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "노출형", + "선반형" + ] + }, + { + "이름": "샤워헤드걸이", + "고르기": [ + "없음", + "고정식", + "높이조절식" + ], + "출처": "건설품셈 기계설비 7-2-2 비고" + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-2-2 샤워수전 설치, 구분=구분).위생공 + 만약(샤워헤드걸이 == '없음', 0, 찾기(소요량:건설품셈:7-2-2 샤워수전 설치 표2, 구분=샤워헤드걸이).위생공)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-2 샤워수전 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-2-2" + } + ], + "끝수": null, + "비고": "벽붙임 혼합수전 · 샤워헤드걸이는 표2 위생공 가산(비고) · 공구손료 2%(주③) · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-2-3 세면기수전 설치", + "이름": "세면기수전 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-2-3", + "소유": "공용", + "입력": [ + { + "이름": "수전종류", + "고르기": [ + "혼합수전", + "냉수 또는 온수 전용" + ], + "출처": "건설품셈 기계설비 비고" + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-2-3 세면기수전 설치).위생공 * 만약(수전종류 == '혼합수전', 1, 0.7)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-3 세면기수전 설치).보통인부 * 만약(수전종류 == '혼합수전', 1, 0.7)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-2-3 주③" + } + ], + "끝수": null, + "비고": "대붙임 혼합수전 · 냉 · 온수 전용은 30% 감(비고) · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-2-4 씽크수전 설치", + "이름": "씽크수전 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-2-4", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-2-4 씽크수전 설치).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-4 씽크수전 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-2-4 주③" + } + ], + "끝수": null, + "비고": "대붙임 혼합수전 · 하부보강판 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-2-5 손빨래수전 설치", + "이름": "손빨래수전 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-2-5", + "소유": "공용", + "입력": [ + { + "이름": "수전종류", + "고르기": [ + "혼합수전", + "냉수 또는 온수 전용" + ], + "출처": "건설품셈 기계설비 비고" + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-2-5 손빨래수전 설치).위생공 * 만약(수전종류 == '혼합수전', 1, 0.7)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-2-5 손빨래수전 설치).보통인부 * 만약(수전종류 == '혼합수전', 1, 0.7)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-2-5 주③" + } + ], + "끝수": null, + "비고": "벽붙임 혼합수전 · 냉 · 온수 전용은 30% 감(비고) · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-3-1 욕실거울 설치", + "이름": "욕실거울 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-3-1", + "소유": "공용", + "입력": [ + { + "이름": "개당면적", + "고르기": [ + "0.5㎡미만", + "1.0㎡미만", + "1.5㎡미만" + ] + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-3-1 욕실거울 설치, '개당 면적'=개당면적).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-3-1 욕실거울 설치, '개당 면적'=개당면적).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-3-1 주③" + } + ], + "끝수": null, + "비고": "구멍뚫기 · 지지철물 · 코킹 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-3-2 욕실금구류 설치", + "이름": "욕실금구류 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-3-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "수건걸이", + "휴지걸이/ 페이퍼타올기", + "비누대・컵대", + "옷걸이", + "손건조기" + ] + }, + { + "이름": "구분", + "고르기": [ + "BAR형", + "환형", + "노출형", + "매립형" + ] + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-3-2 욕실금구류 설치, 규격=규격, 구분=구분).위생공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-3-2 주④" + } + ], + "끝수": null, + "비고": "볼트 고정 · 휴지걸이 매립형은 슬리브BOX 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-3-3 바닥배수구 설치", + "이름": "바닥배수구 설치", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 7-3-3", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "ø50㎜", + "ø75㎜", + "ø100㎜" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:7-3-3 바닥배수구 설치, 규격=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-3-3 바닥배수구 설치, 규격=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-3-3 주③" + } + ], + "끝수": null, + "비고": "옥내 · 성형슬래브 매립 · 트랩 포함 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-3-4 안전손잡이 설치", + "이름": "안전손잡이 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-3-4", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "고정단 2개", + "고정단 3개", + "고정단 4개", + "고정단 6개" + ] + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-3-4 안전손잡이 설치, 구분=구분).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-3-4 안전손잡이 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-3-4 주③" + } + ], + "끝수": null, + "비고": "일자 · L자 · T자 · 소변기 · 세면기용 · 기구 · 수전 · 금구류는 설계수량" + }, + { + "열쇠": "7-3-5 벽부착형 거치대 설치", + "이름": "벽부착형 거치대 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 7-3-5", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "욕실접이식의자", + "영유아용의자", + "기저귀교환대" + ] + } + ], + "중간": [ + { + "이름": "위생공", + "식": "찾기(소요량:건설품셈:7-3-5 벽부착형 거치대 설치, 구분=구분).위생공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:7-3-5 벽부착형 거치대 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1042", + "이름": "위생공", + "단위": "인", + "수량": "위생공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(위생공 * 인력:건설노임:1042 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 7-3-5 주③" + } + ], + "끝수": null, + "비고": "접이식의자 · 영유아의자 · 기저귀교환대 · 기구 · 수전 · 금구류는 설계수량" + } + ] +} From 9436a8817c58f79d4d598996940bb59455c2588a Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:24:21 +0900 Subject: [PATCH 14/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=208?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=2022=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EA=B3=B5=EA=B8=B0=EC=A1=B0=ED=99=94=EC=84=A4=EB=B9=84=EA=B3=B5?= =?UTF-8?q?=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 냉동기 · 냉각탑 · 공조기 · 보일러 · 방열기 · 온수기 · 버너 설치 · 공구손료 및 경장비 덧줄(주) - 전기보일러 트럭탑재형 크레인 5ton 3hr(주③ 표) · 패키지형 공조기 대당 = 품 ÷ 반입 대수 - 원문 빈칸(「-」) 칸은 그 조합에서 0 · 로터리 오일 버너 범위 품은 입력 - 소요량 8장: 8-2-3 수냉식 · 공냉식 압축기전동기출력 · 8-3-6 방열기 「1m 이상」 등 겹친 규격 이름을 원문 무리대로 나눔 - 소요량 8 · 13장: 쉼표 든 표 열쇠 8개를 「 · 」로 바꿈(엔진이 쉼표를 인자 구분으로 읽음) Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../로직_건설품셈_기계설비8장.json | 1290 +++++++++++++++++ .../소요량_건설품셈_기계설비13장.json | 8 +- .../소요량_건설품셈_기계설비8장.json | 68 +- 3 files changed, 1328 insertions(+), 38 deletions(-) create mode 100644 resources/master_data/로직_건설품셈_기계설비8장.json diff --git a/resources/master_data/로직_건설품셈_기계설비8장.json b/resources/master_data/로직_건설품셈_기계설비8장.json new file mode 100644 index 00000000..f034d236 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비8장.json @@ -0,0 +1,1290 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "8-1-1 냉동기 반입", + "이름": "냉동기 반입", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-1-1", + "소유": "공용", + "입력": [ + { + "이름": "냉동USton공종", + "고르기": [ + 10, + 20, + 30, + 50, + 80, + 100, + 150, + 200, + 300, + 400, + 500, + 600 + ] + }, + { + "이름": "작업횟수", + "고르기": [ + "1회", + "2회", + "소운반", + "가조립" + ] + }, + { + "이름": "층별", + "고르기": [ + "지하1층", + "지하2층", + "지하3층", + "10m 거리내", + "설치기초상" + ] + } + ], + "중간": [ + { + "이름": "비계공", + "식": "찾기(소요량:건설품셈:8-1-1 냉동기 반입, '냉동 U.S. ton 공종'=냉동USton공종, 작업횟수=작업횟수, 층별=층별).비계공" + }, + { + "이름": "특별인부", + "식": "만약(만약((냉동USton공종 == 10 그리고 작업횟수 == '소운반' 그리고 층별 == '10m 거리내') 또는 (냉동USton공종 == 10 그리고 작업횟수 == '가조립' 그리고 층별 == '설치기초상') 또는 (냉동USton공종 == 20 그리고 작업횟수 == '소운반' 그리고 층별 == '10m 거리내') 또는 (냉동USton공종 == 20 그리고 작업횟수 == '가조립' 그리고 층별 == '설치기초상') 또는 (냉동USton공종 == 30 그리고 작업횟수 == '소운반' 그리고 층별 == '10m 거리내'), 0, 1) == 1, 찾기(소요량:건설품셈:8-1-1 냉동기 반입, '냉동 U.S. ton 공종'=냉동USton공종, 작업횟수=작업횟수, 층별=층별).특별인부, 0)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1006", + "이름": "비계공", + "단위": "인", + "수량": "비계공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "해석: 원문 단위 없음 — 냉동기 1대 반입 품(인) · 2회는 두 번 옮김 · 소운반 10m 거리내 · 가조립은 설치기초상" + }, + { + "열쇠": "8-1-2 냉동기 설치", + "이름": "냉동기 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-1-2", + "소유": "공용", + "입력": [ + { + "이름": "규격냉동톤", + "고르기": [ + "왕복동식냉동기5", + "7.5", + "15", + "20", + "30", + "50", + "80" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:8-1-2 냉동기 설치, '규격(냉동톤)'=규격냉동톤).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-1-2 냉동기 설치, '규격(냉동톤)'=규격냉동톤).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "현장 반입 후 지하 1층 설치 · 시운전 포함 · 기초 · 소운반 제외" + }, + { + "열쇠": "8-1-3 냉각탑 설치", + "이름": "냉각탑 반입 · 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-1-3", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + 5, + 10, + 20, + 30, + 50, + 80, + 100, + 150, + 200, + 300, + 400, + 500, + 600 + ] + }, + { + "이름": "세구분", + "고르기": [ + "1회 옥상", + "1회 탑옥1층", + "1회 탑옥3층", + "2회 탑옥1층", + "2회 탑옥3층" + ] + }, + { + "이름": "건물", + "고르기": [ + "2층건물", + "5층건물", + "9층건물" + ], + "출처": "건설품셈 기계설비 8-1-3" + } + ], + "중간": [ + { + "이름": "비계공", + "식": "만약(건물 == '2층건물', 찾기(소요량:건설품셈:8-1-3 냉각탑 설치 2층건물, 구분=구분, 세구분=세구분).비계공, 만약(건물 == '5층건물', 찾기(소요량:건설품셈:8-1-3 냉각탑 설치 5층건물, 구분=구분, 세구분=세구분).비계공, 찾기(소요량:건설품셈:8-1-3 냉각탑 설치 9층건물, 구분=구분, 세구분=세구분).비계공))" + }, + { + "이름": "특별인부", + "식": "만약(건물 == '2층건물', 찾기(소요량:건설품셈:8-1-3 냉각탑 설치 2층건물, 구분=구분, 세구분=세구분).특별인부, 만약(건물 == '5층건물', 찾기(소요량:건설품셈:8-1-3 냉각탑 설치 5층건물, 구분=구분, 세구분=세구분).특별인부, 찾기(소요량:건설품셈:8-1-3 냉각탑 설치 9층건물, 구분=구분, 세구분=세구분).특별인부))" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1006", + "이름": "비계공", + "단위": "인", + "수량": "비계공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "탑본체 · 수조 등 부속기기 반입 · 설치 · 반입 장비사용료 포함 · 해석: 구분 = 냉각톤(원문 단위 없음) · 원문 단위 없음 — 냉각탑 1대 품(인)" + }, + { + "열쇠": "8-2-1 공기가열기 · 공기냉각기 · 공기여과기 설치", + "이름": "공기가열기 · 공기냉각기 · 공기여과기 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-2-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "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〃" + ] + }, + { + "이름": "형식", + "고르기": [ + "일반", + "직접 팽창식(디스트리뷰터 포함)", + "헤더 분리형" + ], + "출처": "건설품셈 기계설비 8-2-1 주①②" + }, + { + "이름": "튜브증감", + "단위": "본", + "출처": "건설품셈 기계설비 8-2-1 주⑥", + "비고": "핀치수 18본 기준 증감 본 수(감은 음수)" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:8-2-1 공기가열기 · 공기냉각기 · 공기여과기 설치, 구분=구분).기계설비공 * (1 + (만약(형식 == '일반', 0, 만약(형식 == '헤더 분리형', 50, 30)) + 만약(튜브증감 >= 0, 버림(튜브증감 / 2) * 5, -버림(-튜브증감 / 2) * 4)) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-1 공기가열기 · 공기냉각기 · 공기여과기 설치, 구분=구분).보통인부 * (1 + (만약(형식 == '일반', 0, 만약(형식 == '헤더 분리형', 50, 30)) + 만약(튜브증감 >= 0, 버림(튜브증감 / 2) * 5, -버림(-튜브증감 / 2) * 4)) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "구분 = 유효길이 · 핀치수 18본 1∼3열(W254 × H737㎜) 기준 · 직접 팽창식 30% · 헤더 분리형 50% 가산 · 튜브 2본 감마다 4% 감 · 2본 증마다 5% 가산 · 풍압이 특히 높으면 별도(주④) · 해석: 가산은 합산" + }, + { + "열쇠": "8-2-2 패키지형 공기조화기 설치", + "이름": "패키지형 공기조화기 반입 · 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-2-2", + "소유": "공용", + "입력": [ + { + "이름": "출력", + "고르기": [ + "0.75이하", + "1.5", + "2.2", + "3.7", + "5.5", + "7.5", + "9.8", + "15.0", + "17.0", + "20.0", + "37.0" + ] + }, + { + "이름": "작업횟수", + "고르기": [ + "1회", + "2회" + ], + "출처": "건설품셈 기계설비 8-2-2" + }, + { + "이름": "층별공종", + "고르기": [ + "지하1층", + "지하2층", + "지하3층", + "2층", + "5층", + "9층" + ] + } + ], + "중간": [ + { + "이름": "반입대수", + "식": "찾기(소요량:건설품셈:8-2-2 패키지형 공기조화기 설치, '출력 (㎾)'=출력, 작업횟수='작업횟수').'반입 대수'", + "출처": "건설품셈 기계설비 8-2-2" + }, + { + "이름": "비계공", + "식": "찾기(소요량:건설품셈:8-2-2 패키지형 공기조화기 설치, '출력 (㎾)'=출력, 작업횟수=작업횟수, '층별 공종'=층별공종).비계공 * 1 / 반입대수" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:8-2-2 패키지형 공기조화기 설치, '출력 (㎾)'=출력, 작업횟수=작업횟수, '층별 공종'=층별공종).특별인부 * 1 / 반입대수" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1006", + "이름": "비계공", + "단위": "인", + "수량": "비계공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "반입 · 설치 · 반입 장비사용료 포함 · 원문 품은 출력별 반입 대수(15대분 등)의 합 — 대당 = 품 ÷ 반입 대수" + }, + { + "열쇠": "8-2-3 공기조화기(Air Handling Unit) 설치", + "이름": "공기조화기(AHU · 패키지 · 팬코일 · 윈도우) 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-2-3", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "1) 수냉식 패키지형 압축기전동기출력", + "2) 공냉식 패키지형 압축기전동기출력", + "3) 핸들링유닛전동기출력", + "4) 팬코일유닛(床置형)풍량", + "팬코일유닛(天井형)", + "5) 윈도우타입" + ], + "출처": "건설품셈 기계설비 8-2-3" + }, + { + "이름": "구분", + "고르기": [ + "0.75㎾ 이하", + "1.1㎾이하", + "1.5㎾이하", + "2.2㎾이하", + "3.7㎾이하", + "10.8㎾이하", + "30.0㎾이하", + "37.0㎾이하", + "7.5㎾이하", + "15㎾ 이하", + "15㎾ 이상", + "510㎥/hr이하", + "680㎥/hr이상", + "0.4㎾이하", + "0.55㎾ 이하" + ], + "출처": "건설품셈 기계설비 8-2-3" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:8-2-3 공기조화기(Air Handling Unit) 설치, 규격=규격, 구분=구분, 항목='기계설비공').수량" + }, + { + "이름": "보통인부", + "식": "만약(만약((규격 == '4) 팬코일유닛(床置형)풍량' 그리고 구분 == '510㎥/hr이하'), 0, 1) == 1, 찾기(소요량:건설품셈:8-2-3 공기조화기(Air Handling Unit) 설치, 규격=규격, 구분=구분, 항목='보통인부').수량, 0)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "조립 · 부속품 설치 포함 · 수배관 · 전기배관 제외 · 운반 · 가대 별도 · 핸들링유닛은 가열기 · 냉각기 설치 제외(주④) · 팬코일 床置 510㎥/hr 이하 보통인부 원문 빈칸" + }, + { + "열쇠": "8-2-4 천장형 에어컨 설치", + "이름": "천장형 에어컨 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-2-4", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "실내기 16이하", + "실외기 6~12이하", + "실외기 16이하" + ] + }, + { + "이름": "추가실내기", + "단위": "대", + "출처": "건설품셈 기계설비 8-2-4 비고", + "비고": "실외기 1대에 더 붙는 실내기 대수 — 실외기만" + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:8-2-4 천장형 에어컨 설치, 구분=구분).기계설비공 * 만약(구분 == '실내기 16이하', 1, 1 + 추가실내기 * 0.15)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-4 천장형 에어컨 설치, 구분=구분).보통인부 * 만약(구분 == '실내기 16이하', 1, 1 + 추가실내기 * 0.15)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(기계설비공 * 인력:건설노임:1051 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 8-2-4 주⑥" + } + ], + "끝수": null, + "비고": "구분 = 냉방능력(㎾) · 실외기는 실내기 1대 연결 기준 — 실내기 대당 실외기 품 15% 가산(비고) · 배관 · 보온 · 전기 · 장비(크레인 · 충전기) 별도" + }, + { + "열쇠": "8-2-5 전열교환기 설치", + "이름": "전열교환기 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-2-5", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "250이하", + "500이하", + "800이하" + ] + } + ], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:8-2-5 전열교환기 설치, 구분=구분).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-2-5 전열교환기 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(기계설비공 * 인력:건설노임:1051 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 8-2-5 주④" + } + ], + "끝수": null, + "비고": "구분 = 풍량(㎥/h) · 천장 설치 · 덕트연결 4구 · 덕트공사 · 전기 · 통신 별도" + }, + { + "열쇠": "8-3-1 보일러 설치(주철제)", + "이름": "주철제 보일러 설치", + "결과단위": "원/절", + "출처": "건설품셈 기계설비 8-3-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "1호(20∼60미만) 1,000Kcal/hr", + "2호(60∼135미만) 〃", + "3호(135∼230미만)〃", + "4호(230∼330미만)〃", + "5호(330∼640미만)〃", + "6호(640∼1,180미만) 〃" + ], + "출처": "건설품셈 기계설비 8-3-1" + } + ], + "중간": [ + { + "이름": "보일러공", + "식": "찾기(소요량:건설품셈:8-3-1 보일러 설치, 구분=구분, 규격='주철제 보일러', 항목='보일러공').수량" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:8-3-1 보일러 설치, 구분=구분, 규격='주철제 보일러', 항목='특별인부').수량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1041", + "이름": "보일러공", + "단위": "인", + "수량": "보일러공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "지면과 같은 평면 · 조립 · 설치 · 수압시험 · 시운전 포함 · 반입비 별도(주①) · 산업용은 13-5-1" + }, + { + "열쇠": "8-3-1 보일러 설치(강판제 · 패키지형)", + "이름": "강판제 · 패키지형수관식 보일러 설치", + "결과단위": "원/ton", + "출처": "건설품셈 기계설비 8-3-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "강판제보일러", + "패키지형수관식보일러" + ], + "출처": "건설품셈 기계설비 8-3-1" + } + ], + "중간": [ + { + "이름": "보일러공", + "식": "찾기(소요량:건설품셈:8-3-1 보일러 설치, 규격=규격, 항목='보일러공').수량" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:8-3-1 보일러 설치, 규격=규격, 항목='특별인부').수량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1041", + "이름": "보일러공", + "단위": "인", + "수량": "보일러공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "중량톤당 · 내화시설 포함 · 조립 · 설치 · 수압시험 · 시운전 포함 · 반입비 별도(주①) · 산업용은 13-5-1" + }, + { + "열쇠": "8-3-2 경유보일러 설치", + "이름": "경유보일러 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-3-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "15,000 Kcal/hr" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:8-3-2 경유보일러 설치, 규격=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-3-2 경유보일러 설치, 규격=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "15,000 Kcal/hr · 수압시험 · 시운전 포함 · 소운반 별도" + }, + { + "열쇠": "8-3-3 가스보일러(가정용) 설치", + "이름": "가스보일러(가정용) 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-3-3", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "13,000 Kcal/hr", + "16,000 Kcal/hr", + "20,000 Kcal/hr", + "25,000 Kcal/hr", + "30,000 Kcal/hr" + ] + }, + { + "이름": "설치형", + "고르기": [ + "벽걸이형", + "바닥설치형" + ], + "출처": "건설품셈 기계설비 8-3-3 비고" + } + ], + "중간": [ + { + "이름": "보일러공", + "식": "찾기(소요량:건설품셈:8-3-3 가스보일러(가정용) 설치, 구분=구분).보일러공 * 만약(설치형 == '벽걸이형', 1, 0.85)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-3-3 가스보일러(가정용) 설치, 구분=구분).보통인부 * 만약(설치형 == '벽걸이형', 1, 0.85)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1041", + "이름": "보일러공", + "단위": "인", + "수량": "보일러공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "세대내 · 연도 슬리브 · 배기팬 · 수압시험 · 시운전 포함 · 바닥설치형은 15% 감 · 하부 마감재 별도" + }, + { + "열쇠": "8-3-4 온수보일러 설치", + "이름": "온수보일러 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-3-4", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "70×1,000kcal/hr이하", + "120 〃", + "150 〃", + "240 〃", + "360 〃" + ] + } + ], + "중간": [ + { + "이름": "보일러공", + "식": "찾기(소요량:건설품셈:8-3-4 온수보일러 설치, 규격=규격).보일러공" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:8-3-4 온수보일러 설치, 규격=규격).특별인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1041", + "이름": "보일러공", + "단위": "인", + "수량": "보일러공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "조립 · 설치 · 수압시험 포함 · 기초 · 반입 · 시운전은 필요시 별도" + }, + { + "열쇠": "8-3-5 전기보일러 설치", + "이름": "전기보일러 설치(축열식 심야)", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-3-5", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "135,000kcal (30㎾)" + ] + }, + { + "이름": "지역", + "고르기": [ + "전국평균", + "전국", + "서울", + "경기", + "강원", + "충북", + "충남", + "전북", + "경북", + "경남", + "부산", + "제주", + "대구", + "인천", + "대전", + "울산", + "세종", + "전남광주" + ], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "보일러공", + "식": "찾기(소요량:건설품셈:8-3-5 전기보일러 설치, 규격=규격).보일러공" + }, + { + "이름": "비계공", + "식": "찾기(소요량:건설품셈:8-3-5 전기보일러 설치, 규격=규격).비계공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1041", + "이름": "보일러공", + "단위": "인", + "수량": "보일러공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1006", + "이름": "비계공", + "단위": "인", + "수량": "비계공", + "비목": "노무비" + }, + { + "종류": "로직", + "요소": "로직(건설품셈:8 기계 시간당 경비, 기계='2105-0005', 지역=지역)", + "이름": "트럭탑재형 크레인 5ton", + "단위": "시간", + "수량": "찾기(소요량:건설품셈:8-3-5 전기보일러 설치 표2, 장비명='사용기간').'트럭탑재형 크레인'", + "비고": "8-3-5 주③ 표 — 5톤 · 3hr" + } + ], + "덧줄": [], + "끝수": null, + "비고": "실내온도조절기 · 팽창탱크 · 순환펌프 · 시운전 · 소운반 포함 · 기초 · 전선관 · 전기배선 별도" + }, + { + "열쇠": "8-3-6 방열기", + "이름": "방열기 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 8-3-6", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "주철재 바닥설치 20절 이하", + "주철재 바닥설치 21절 이상", + "벽걸이 3절", + "천장달기 3절", + "1m 길트", + "콘백터 길이 1m 미만", + "콘백터 길이 1m 이상", + "베이스보드 1단형길이 2m 미만", + "베이스보드 1단형길이 2m이상", + "강판제 및 알루미늄제 방열기 1m 미만", + "강판제 및 알루미늄제 방열기 1m 이상" + ], + "출처": "건설품셈 기계설비 8-3-6" + }, + { + "이름": "증가", + "단위": "절 · 단", + "출처": "건설품셈 기계설비 8-3-6 주②③", + "비고": "벽걸이 3절 초과 절 수 · 콘백터 · 베이스보드 1단 초과 단 수" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:8-3-6 방열기, 규격=규격, 항목='배관공').수량 * (1 + 증가 * 만약(규격 == '벽걸이 3절', 15, 만약(규격 == '콘백터 길이 1m 미만' 또는 규격 == '콘백터 길이 1m 이상' 또는 규격 == '베이스보드 1단형길이 2m 미만' 또는 규격 == '베이스보드 1단형길이 2m이상', 20, 0)) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-3-6 방열기, 규격=규격, 항목='보통인부').수량 * (1 + 증가 * 만약(규격 == '벽걸이 3절', 15, 만약(규격 == '콘백터 길이 1m 미만' 또는 규격 == '콘백터 길이 1m 이상' 또는 규격 == '베이스보드 1단형길이 2m 미만' 또는 규격 == '베이스보드 1단형길이 2m이상', 20, 0)) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 단위 — 길트 인/본 · 베이스보드 인/단 · 그 밖 인/조 · 지지철물 · 소운반 · 기밀시험 · 공기빼기 포함 · 벽걸이 3절 초과 1절마다 15% · 콘백터 · 베이스보드 1단 증가마다 20% 가산 · 패널 라디에이터는 콘백터 품" + }, + { + "열쇠": "8-3-7 전기콘벡터 설치", + "이름": "전기콘벡터 설치(벽걸이)", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-3-7", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:8-3-7 전기콘벡터 설치).기계설비공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(기계설비공 * 인력:건설노임:1051) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 8-3-7 주③" + } + ], + "끝수": null, + "비고": "740 × 440 × 105㎜ · 브라켓 포함" + }, + { + "열쇠": "8-4-1 전기온수기 설치", + "이름": "전기온수기 설치(축열식 심야)", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-4-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "350ℓ" + ] + } + ], + "중간": [ + { + "이름": "보일러공", + "식": "찾기(소요량:건설품셈:8-4-1 전기온수기 설치, 규격=규격).보일러공" + }, + { + "이름": "비계공", + "식": "찾기(소요량:건설품셈:8-4-1 전기온수기 설치, 규격=규격).비계공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1041", + "이름": "보일러공", + "단위": "인", + "수량": "보일러공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1006", + "이름": "비계공", + "단위": "인", + "수량": "비계공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "350ℓ · 안전핀 · 감압밸브 · 시운전 · 소운반 포함 · 기초 · 전선관 · 전기배선 별도" + }, + { + "열쇠": "8-4-2 전기온수기(벽걸이형) 설치", + "이름": "전기온수기(벽걸이형) 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-4-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "15L", + "30L", + "50L" + ] + } + ], + "중간": [ + { + "이름": "보일러공", + "식": "찾기(소요량:건설품셈:8-4-2 전기온수기(벽걸이형) 설치, 구분=구분).보일러공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-4-2 전기온수기(벽걸이형) 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1041", + "이름": "보일러공", + "단위": "인", + "수량": "보일러공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(보일러공 * 인력:건설노임:1041 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 8-4-2 주⑤" + } + ], + "끝수": null, + "비고": "브라켓 · 시운전 포함 · 배관 · 밸브 · 보온 · 지지대 · 전선관 · 전기배선 별도" + }, + { + "열쇠": "8-4-3 온수분배기 설치", + "이름": "온수분배기 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 8-4-3", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "2구", + "3구", + "4구", + "5구", + "6구", + "7구" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:8-4-3 온수분배기 설치, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-4-3 온수분배기 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 8-4-3 주③" + } + ], + "끝수": null, + "비고": "구분 = 공급 · 환수 헤더 개수(퇴수구 제외) · 조립 · 배관연결 · 밸브 · 배관시험 포함" + }, + { + "열쇠": "8-5-1 오일서비스탱크 설치", + "이름": "오일서비스탱크 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-5-1", + "소유": "공용", + "입력": [ + { + "이름": "탱크용량ℓ", + "고르기": [ + 100, + 200, + 300, + 400, + 500, + 750, + 1000 + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:8-5-1 오일서비스탱크 설치, '탱크용량 (ℓ)'=탱크용량ℓ).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:8-5-1 오일서비스탱크 설치, '탱크용량 (ℓ)'=탱크용량ℓ).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "가대설치 포함 · 해석: 원문 단위 없음 — 탱크 1기 품(인)" + }, + { + "열쇠": "8-6-1 로터리 오일 버너", + "이름": "로터리 오일 버너 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-6-1", + "소유": "공용", + "입력": [ + { + "이름": "기계설비공품", + "단위": "인", + "출처": "건설품셈 기계설비 8-6-1", + "비고": "원문 범위 — 예 0.4㎾ 이하 수동식 2.5∼3.0" + }, + { + "이름": "특별인부품", + "단위": "인", + "출처": "건설품셈 기계설비 8-6-1", + "비고": "원문 범위 — 예 0.4㎾ 이하 수동식 1.0∼1.2" + } + ], + "중간": [], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공품", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부품", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 품이 범위(전동기 전력 · 방식별) — 설계자가 범위 안에서 넣음 · 수동식 · 반자동 · 전자동 부속품 포함(주①∼③)" + }, + { + "열쇠": "8-6-2 건타입 오일버너", + "이름": "건타입 오일버너 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 8-6-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "건타입 오일버너 0.75㎾", + "1.5", + "(전자동방식) 2.2", + "3.7" + ] + } + ], + "중간": [ + { + "이름": "보일러공", + "식": "찾기(소요량:건설품셈:8-6-2 건타입 오일버너, 규격=규격).보일러공" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:8-6-2 건타입 오일버너, 규격=규격).특별인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1041", + "이름": "보일러공", + "단위": "인", + "수량": "보일러공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "조립 · 설치 · 수압시험 · 시운전 포함" + } + ] +} diff --git a/resources/master_data/소요량_건설품셈_기계설비13장.json b/resources/master_data/소요량_건설품셈_기계설비13장.json index 149afa58..4cd509d4 100644 --- a/resources/master_data/소요량_건설품셈_기계설비13장.json +++ b/resources/master_data/소요량_건설품셈_기계설비13장.json @@ -3538,7 +3538,7 @@ "주": [] }, { - "열쇠": "13-2-6 응력제거 Ring Burner, Electric, Resistence Heating Device", + "열쇠": "13-2-6 응력제거 Ring Burner · Electric · Resistence Heating Device", "이름": "응력제거 Ring Burner, Electric, Resistence Heating Device", "기준": "개소당 플랜트 용접공", "출처": "건설품셈 기계설비 13-2-6", @@ -3625,7 +3625,7 @@ ] }, { - "열쇠": "13-2-6 응력제거 Ring Burner, Electric, Resistence Heating Device 재질에 따른 응력제거품 할증율", + "열쇠": "13-2-6 응력제거 Ring Burner · Electric · Resistence Heating Device 재질에 따른 응력제거품 할증율", "이름": "응력제거 Ring Burner, Electric, Resistence Heating Device 재질에 따른 응력제거품 할증율", "기준": "%", "출처": "건설품셈 기계설비 13-2-6", @@ -5162,7 +5162,7 @@ "주": [] }, { - "열쇠": "13-5-3 덕트제작(Air, Gas)", + "열쇠": "13-5-3 덕트제작(Air · Gas)", "이름": "덕트제작(Air, Gas)", "기준": "ton당", "출처": "건설품셈 기계설비 13-5-3", @@ -8360,7 +8360,7 @@ ] }, { - "열쇠": "13-7-15 O2, N2 Spherical Gas Holder 조립설치", + "열쇠": "13-7-15 O2 · N2 Spherical Gas Holder 조립설치", "이름": "O2, N2 Spherical Gas Holder 조립설치", "기준": "기당", "출처": "건설품셈 기계설비 13-7-15", diff --git a/resources/master_data/소요량_건설품셈_기계설비8장.json b/resources/master_data/소요량_건설품셈_기계설비8장.json index 227a4ee3..045c738c 100644 --- a/resources/master_data/소요량_건설품셈_기계설비8장.json +++ b/resources/master_data/소요량_건설품셈_기계설비8장.json @@ -352,7 +352,7 @@ ] }, { - "열쇠": "8-2-1 공기가열기, 공기냉각기, 공기여과기 설치", + "열쇠": "8-2-1 공기가열기 · 공기냉각기 · 공기여과기 설치", "이름": "공기가열기, 공기냉각기, 공기여과기 설치", "기준": "대당", "출처": "건설품셈 기계설비 8-2-1", @@ -506,28 +506,28 @@ "조건": { "구분": "고르기", "규격": "고르기", "항목": "고르기" }, "값칸": { "수량": "" }, "줄": [ - { "구분": "0.75㎾ 이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 0.5, "단위": "인" }, - { "구분": "0.75㎾ 이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 0.5, "단위": "인" }, - { "구분": "1.1㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 0.6, "단위": "인" }, - { "구분": "1.1㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 0.6, "단위": "인" }, - { "구분": "1.5㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 1.0, "단위": "인" }, - { "구분": "1.5㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 1.0, "단위": "인" }, - { "구분": "2.2㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 1.3, "단위": "인" }, - { "구분": "2.2㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 1.3, "단위": "인" }, - { "구분": "3.7㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 1.5, "단위": "인" }, - { "구분": "3.7㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 1.5, "단위": "인" }, - { "구분": "10.8㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 2.0, "단위": "인" }, - { "구분": "10.8㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 2.0, "단위": "인" }, - { "구분": "30.0㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 3.0, "단위": "인" }, - { "구분": "30.0㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 3.0, "단위": "인" }, - { "구분": "37.0㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 3.5, "단위": "인" }, - { "구분": "37.0㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 3.5, "단위": "인" }, - { "구분": "2.2㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 1.0, "단위": "인" }, - { "구분": "2.2㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 1.0, "단위": "인" }, - { "구분": "3.7㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 1.3, "단위": "인" }, - { "구분": "3.7㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 1.3, "단위": "인" }, - { "구분": "7.5㎾이하", "규격": "압축기전동기출력", "항목": "기계설비공", "수량": 1.5, "단위": "인" }, - { "구분": "7.5㎾이하", "규격": "압축기전동기출력", "항목": "보통인부", "수량": 1.5, "단위": "인" }, + { "구분": "0.75㎾ 이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 0.5, "단위": "인" }, + { "구분": "0.75㎾ 이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 0.5, "단위": "인" }, + { "구분": "1.1㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 0.6, "단위": "인" }, + { "구분": "1.1㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 0.6, "단위": "인" }, + { "구분": "1.5㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 1.0, "단위": "인" }, + { "구분": "1.5㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 1.0, "단위": "인" }, + { "구분": "2.2㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 1.3, "단위": "인" }, + { "구분": "2.2㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 1.3, "단위": "인" }, + { "구분": "3.7㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 1.5, "단위": "인" }, + { "구분": "3.7㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 1.5, "단위": "인" }, + { "구분": "10.8㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 2.0, "단위": "인" }, + { "구분": "10.8㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 2.0, "단위": "인" }, + { "구분": "30.0㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 3.0, "단위": "인" }, + { "구분": "30.0㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 3.0, "단위": "인" }, + { "구분": "37.0㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 3.5, "단위": "인" }, + { "구분": "37.0㎾이하", "규격": "1) 수냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 3.5, "단위": "인" }, + { "구분": "2.2㎾이하", "규격": "2) 공냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 1.0, "단위": "인" }, + { "구분": "2.2㎾이하", "규격": "2) 공냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 1.0, "단위": "인" }, + { "구분": "3.7㎾이하", "규격": "2) 공냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 1.3, "단위": "인" }, + { "구분": "3.7㎾이하", "규격": "2) 공냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 1.3, "단위": "인" }, + { "구분": "7.5㎾이하", "규격": "2) 공냉식 패키지형 압축기전동기출력", "항목": "기계설비공", "수량": 1.5, "단위": "인" }, + { "구분": "7.5㎾이하", "규격": "2) 공냉식 패키지형 압축기전동기출력", "항목": "보통인부", "수량": 1.5, "단위": "인" }, { "구분": "7.5㎾이하", "규격": "3) 핸들링유닛전동기출력", "항목": "기계설비공", "수량": 4.0, "단위": "인" }, { "구분": "7.5㎾이하", "규격": "3) 핸들링유닛전동기출력", "항목": "보통인부", "수량": 1.2, "단위": "인" }, { "구분": "15㎾ 이하", "규격": "3) 핸들링유닛전동기출력", "항목": "기계설비공", "수량": 6.0, "단위": "인" }, @@ -722,8 +722,8 @@ "줄": [ { "규격": "주철재 바닥설치 20절 이하", "항목": "배관공", "수량": 1.10, "단위": "인/조" }, { "규격": "주철재 바닥설치 20절 이하", "항목": "보통인부", "수량": 0.10, "단위": "인/조" }, - { "규격": "21절 이상", "항목": "배관공", "수량": 1.50, "단위": "인/조" }, - { "규격": "21절 이상", "항목": "보통인부", "수량": 0.10, "단위": "인/조" }, + { "규격": "주철재 바닥설치 21절 이상", "항목": "배관공", "수량": 1.50, "단위": "인/조" }, + { "규격": "주철재 바닥설치 21절 이상", "항목": "보통인부", "수량": 0.10, "단위": "인/조" }, { "규격": "벽걸이 3절", "항목": "배관공", "수량": 1.60, "단위": "인/조" }, { "규격": "벽걸이 3절", "항목": "보통인부", "수량": 0.20, "단위": "인/조" }, { "규격": "천장달기 3절", "항목": "배관공", "수량": 2.50, "단위": "인/조" }, @@ -732,16 +732,16 @@ { "규격": "1m 길트", "항목": "보통인부", "수량": 0.10, "단위": "인/본" }, { "규격": "콘백터 길이 1m 미만", "항목": "배관공", "수량": 0.80, "단위": "인/조" }, { "규격": "콘백터 길이 1m 미만", "항목": "보통인부", "수량": 0.10, "단위": "인/조" }, - { "규격": "1m 이상", "항목": "배관공", "수량": 1.10, "단위": "인/조" }, - { "규격": "1m 이상", "항목": "보통인부", "수량": 0.10, "단위": "인/조" }, + { "규격": "콘백터 길이 1m 이상", "항목": "배관공", "수량": 1.10, "단위": "인/조" }, + { "규격": "콘백터 길이 1m 이상", "항목": "보통인부", "수량": 0.10, "단위": "인/조" }, { "규격": "베이스보드 1단형길이 2m 미만", "항목": "배관공", "수량": 1.90, "단위": "인/단" }, { "규격": "베이스보드 1단형길이 2m 미만", "항목": "보통인부", "수량": 0.20, "단위": "인/단" }, - { "규격": "2m이상", "항목": "배관공", "수량": 2.40, "단위": "인/단" }, - { "규격": "2m이상", "항목": "보통인부", "수량": 0.20, "단위": "인/단" }, + { "규격": "베이스보드 1단형길이 2m이상", "항목": "배관공", "수량": 2.40, "단위": "인/단" }, + { "규격": "베이스보드 1단형길이 2m이상", "항목": "보통인부", "수량": 0.20, "단위": "인/단" }, { "규격": "강판제 및 알루미늄제 방열기 1m 미만", "항목": "배관공", "수량": 0.44, "단위": "인/조" }, { "규격": "강판제 및 알루미늄제 방열기 1m 미만", "항목": "보통인부", "수량": 0.06, "단위": "인/조" }, - { "규격": "1m 이상", "항목": "배관공", "수량": 0.60, "단위": "인/조" }, - { "규격": "1m 이상", "항목": "보통인부", "수량": 0.06, "단위": "인/조" } + { "규격": "강판제 및 알루미늄제 방열기 1m 이상", "항목": "배관공", "수량": 0.60, "단위": "인/조" }, + { "규격": "강판제 및 알루미늄제 방열기 1m 이상", "항목": "보통인부", "수량": 0.06, "단위": "인/조" } ], "주": [ "① 본체, 밸브, 트랩류(강판제 및 알루미뉴제 방열기 제외) 등 지지철물 설치, 소운반, 기밀시험 및 공기빼기 품이 포함되어 있다", @@ -891,7 +891,7 @@ ] }, { - "열쇠": "8-2-1 공기가열기, 공기냉각기, 공기여과기 설치 계수 주①", + "열쇠": "8-2-1 공기가열기 · 공기냉각기 · 공기여과기 설치 계수 주①", "이름": "공기가열기, 공기냉각기, 공기여과기 설치 계수 주①", "기준": "", "출처": "건설품셈 기계설비 8-2-1 주①", @@ -904,7 +904,7 @@ "주": [] }, { - "열쇠": "8-2-1 공기가열기, 공기냉각기, 공기여과기 설치 계수 주②", + "열쇠": "8-2-1 공기가열기 · 공기냉각기 · 공기여과기 설치 계수 주②", "이름": "공기가열기, 공기냉각기, 공기여과기 설치 계수 주②", "기준": "", "출처": "건설품셈 기계설비 8-2-1 주②", @@ -917,7 +917,7 @@ "주": [] }, { - "열쇠": "8-2-1 공기가열기, 공기냉각기, 공기여과기 설치 계수 주⑥", + "열쇠": "8-2-1 공기가열기 · 공기냉각기 · 공기여과기 설치 계수 주⑥", "이름": "공기가열기, 공기냉각기, 공기여과기 설치 계수 주⑥", "기준": "", "출처": "건설품셈 기계설비 8-2-1 주⑥", From 3d2a848a12ffe4b9bdb44f2c4e4db88211a8e337 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:26:47 +0900 Subject: [PATCH 15/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=209?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=2014=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=20=EB=B6=80=EB=8C=80?= =?UTF-8?q?=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 방진가대 · 잡철물 · 바탕만들기 · 배관 칠 · 슬리브 · 구멍뚫기 · 기밀시험 · 시험점화 · 시운전 - 잡철물 공구손료 · 잡재료비는 주⑦ 표(일반 · 경량)에서 찾음 · 배관 칠 비계 높이 할증(주④) - 바탕만들기 · 시운전(덕트 · 주기계)은 원문 표가 두 줄 무리 · 글 칸이라 원문 수를 식에 씀 · 휘발유는 오피넷 유가 - 재료_자체: 규사 · 동력 Brush · Wire Brush 더함(값 null) Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../로직_건설품셈_기계설비9장.json | 864 ++++++++++++++++++ resources/master_data/재료_자체.json | 7 +- 2 files changed, 869 insertions(+), 2 deletions(-) create mode 100644 resources/master_data/로직_건설품셈_기계설비9장.json diff --git a/resources/master_data/로직_건설품셈_기계설비9장.json b/resources/master_data/로직_건설품셈_기계설비9장.json new file mode 100644 index 00000000..f331229a --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비9장.json @@ -0,0 +1,864 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "9-1-1 입상관 방진가대 설치", + "이름": "입상관 방진가대 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 9-1-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "ø50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300", + "350" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:9-1-1 입상관 방진가대 설치, '규격(㎜)'=규격).배관공" + }, + { + "이름": "용접공", + "식": "찾기(소요량:건설품셈:9-1-1 입상관 방진가대 설치, '규격(㎜)'=규격).용접공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1012", + "이름": "용접공", + "단위": "인", + "수량": "용접공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 용접공 * 인력:건설노임:1012) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 9-1-1 주④" + } + ], + "끝수": null, + "비고": "옥내 · 볼트 · 클램프 체결 · 용접 · 조정 포함 · 지지찬넬 가대 별도(주③)" + }, + { + "열쇠": "9-1-2 잡철물 제작 및 설치", + "이름": "잡철물 제작 및 설치", + "결과단위": "원/ton", + "출처": "건설품셈 기계설비 9-1-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "제품 설치 일반철재", + "제품 설치 경량철재", + "규격철물 설치 일반철재", + "규격철물 설치 경량철재", + "현장제작 설치 일반철재", + "현장제작 설치 경량철재" + ] + }, + { + "이름": "단순설치", + "고르기": [ + "아님", + "기성제품 단순 설치(관로뚜껑 · Sole Plate 등)" + ], + "출처": "건설품셈 기계설비 9-1-2 비고" + }, + { + "이름": "복잡도", + "고르기": [ + "보통", + "복잡(트러스 · 원형 · 곡선 · 절단 · 용접 과다)" + ], + "출처": "건설품셈 기계설비 9-1-2 비고" + } + ], + "중간": [ + { + "이름": "철공", + "식": "찾기(소요량:건설품셈:9-1-2 잡철물 제작 및 설치, 구분=구분).철공 * 만약(단순설치 != '아님' 그리고 (구분 == '제품 설치 일반철재' 또는 구분 == '제품 설치 경량철재'), 0.9, 1) * 만약(복잡도 == '보통', 1, 1.3)" + }, + { + "이름": "용접공", + "식": "찾기(소요량:건설품셈:9-1-2 잡철물 제작 및 설치, 구분=구분).용접공 * 만약(단순설치 != '아님' 그리고 (구분 == '제품 설치 일반철재' 또는 구분 == '제품 설치 경량철재'), 0.9, 1) * 만약(복잡도 == '보통', 1, 1.3)" + }, + { + "이름": "특별인부", + "식": "찾기(소요량:건설품셈:9-1-2 잡철물 제작 및 설치, 구분=구분).특별인부 * 만약(단순설치 != '아님' 그리고 (구분 == '제품 설치 일반철재' 또는 구분 == '제품 설치 경량철재'), 0.9, 1) * 만약(복잡도 == '보통', 1, 1.3)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-1-2 잡철물 제작 및 설치, 구분=구분).보통인부 * 만약(단순설치 != '아님' 그리고 (구분 == '제품 설치 일반철재' 또는 구분 == '제품 설치 경량철재'), 0.9, 1) * 만약(복잡도 == '보통', 1, 1.3)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1009", + "이름": "철공", + "단위": "인", + "수량": "철공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1012", + "이름": "용접공", + "단위": "인", + "수량": "용접공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1003", + "이름": "특별인부", + "단위": "인", + "수량": "특별인부", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(철공 * 인력:건설노임:1009 + 용접공 * 인력:건설노임:1012 + 특별인부 * 인력:건설노임:1003 + 보통인부 * 인력:건설노임:1002) * 찾기(소요량:건설품셈:9-1-2 잡철물 제작 및 설치 표2, 구분=만약((구분 == '제품 설치 경량철재' 또는 구분 == '규격철물 설치 경량철재' 또는 구분 == '현장제작 설치 경량철재'), '경량철재', '일반철재')).'공구손료 및 경장비의 기계경비' / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 9-1-2 주⑦" + }, + { + "이름": "잡재료비(용접봉 · 볼트 등)", + "식": "(철공 * 인력:건설노임:1009 + 용접공 * 인력:건설노임:1012 + 특별인부 * 인력:건설노임:1003 + 보통인부 * 인력:건설노임:1002) * 찾기(소요량:건설품셈:9-1-2 잡철물 제작 및 설치 표2, 구분=만약((구분 == '제품 설치 경량철재' 또는 구분 == '규격철물 설치 경량철재' 또는 구분 == '현장제작 설치 경량철재'), '경량철재', '일반철재')).잡재료비 / 100", + "비목": "재료비", + "출처": "건설품셈 기계설비 9-1-2 주⑦" + } + ], + "끝수": null, + "비고": "제품 · 규격철물 · 현장제작 설치 · 공장가공 대형부재 · 특수철물 별도(주⑤) · 장비 · 비계 별도(주⑥) · 공구손료 · 잡재료비는 주⑦ 표(일반 5% · 3% · 경량) · 해석: 단순설치 10% 감은 제품 설치에만" + }, + { + "열쇠": "9-2-1 바탕만들기", + "이름": "바탕만들기(블라스트 · 공구 · 와이어브러시)", + "결과단위": "원/㎡", + "출처": "건설품셈 기계설비 9-2-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "Shot Blast", + "Sand Blast", + "Power Tool", + "Wire Brush" + ], + "출처": "건설품셈 기계설비 9-2-1" + }, + { + "이름": "강구수량", + "단위": "㎏", + "고르기": [ + 0.215, + 0.415 + ], + "출처": "건설품셈 기계설비 9-2-1", + "비고": "Shot Blast만 — 원문 steel shot 0.215 · 「ø1㎜ 기준」 0.415 두 줄 — 설계자가 고름" + }, + { + "이름": "소형형강", + "고르기": [ + "아님", + "소형 형강(100㎜ 미만) 구조" + ], + "출처": "건설품셈 기계설비 9-2-1 주⑤" + }, + { + "이름": "지역", + "고르기": [ + "전국평균", + "전국", + "서울", + "경기", + "강원", + "충북", + "충남", + "전북", + "경북", + "경남", + "부산", + "제주", + "대구", + "인천", + "대전", + "울산", + "세종", + "전남광주" + ], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "가산", + "식": "만약(소형형강 == '아님', 1, 1.5)", + "출처": "건설품셈 기계설비 9-2-1 주⑤" + }, + { + "이름": "도장공", + "식": "만약(구분 == 'Shot Blast', 0.0375, 만약(구분 == 'Sand Blast', 0.0329, 만약(구분 == 'Power Tool', 0.1, 0))) * 가산", + "출처": "건설품셈 기계설비 9-2-1" + }, + { + "이름": "보통인부", + "식": "만약(구분 == 'Shot Blast', 0.0125, 만약(구분 == 'Sand Blast', 0.036, 만약(구분 == 'Power Tool', 0, 0.05))) * 가산", + "출처": "건설품셈 기계설비 9-2-1" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비", + "비고": "Sand Blast는 원문 「(모래분사공)」" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:철구(Shot ball)", + "이름": "steel shot", + "단위": "㎏", + "수량": "만약(구분 == 'Shot Blast', 강구수량, 0)", + "비목": "재료비", + "출처": "건설품셈 기계설비 9-2-1", + "비고": "주② 녹 · 회수 조건 따라 조정" + }, + { + "종류": "재료", + "요소": "재료:자체:규사 함유량80%", + "이름": "규사", + "단위": "㎥", + "수량": "만약(구분 == 'Sand Blast', 0.0508, 0)", + "비목": "재료비", + "출처": "건설품셈 기계설비 9-2-1" + }, + { + "종류": "재료", + "요소": "재료:자체:동력 Brush", + "이름": "동력 Brush", + "단위": "개", + "수량": "만약(구분 == 'Power Tool', 0.03, 0)", + "비목": "재료비", + "출처": "건설품셈 기계설비 9-2-1" + }, + { + "종류": "재료", + "요소": "재료:오피넷유가:휘발유:{지역}", + "이름": "휘발유(Gasolin)", + "단위": "ℓ", + "수량": "만약(구분 == 'Wire Brush', 0.05, 0)", + "비목": "재료비", + "출처": "건설품셈 기계설비 9-2-1" + }, + { + "종류": "재료", + "요소": "재료:자체:Wire Brush", + "이름": "Wire Brush", + "단위": "개", + "수량": "만약(구분 == 'Wire Brush', 0.016, 0)", + "비목": "재료비", + "출처": "건설품셈 기계설비 9-2-1" + } + ], + "덧줄": [], + "끝수": null, + "비고": "모래 · shot 소운반 · 회수 포함 · 모래 채집 · 운반 별도(주③) · 장비 · 공구손료 · 소모재료 별도(주④) · 소형 형강 50% 가산 · 원문 표가 무리 두 줄이라 원문 수를 식에 씀" + }, + { + "열쇠": "9-2-2 녹막이페인트 칠", + "이름": "배관 녹막이페인트 칠(붓 1회)", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 9-2-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "ø50㎜ 이하", + "ø100㎜ 이하", + "ø200㎜ 이하", + "ø300㎜ 이하" + ] + }, + { + "이름": "비계높이", + "단위": "m", + "출처": "건설품셈 기계설비 주④", + "비고": "비계를 쓰지 않으면 0" + } + ], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:9-2-2 녹막이페인트 칠, 구분=구분).도장공 * (1 + 만약(비계높이 < 6, 0, 만약(비계높이 <= 9, 15, 15 + 올림((비계높이 - 9) / 3) * 5)) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-2-2 녹막이페인트 칠, 구분=구분).보통인부 * (1 + 만약(비계높이 < 6, 0, 만약(비계높이 <= 9, 15, 15 + 올림((비계높이 - 9) / 3) * 5)) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 9-2-2 주⑤" + } + ], + "끝수": null, + "비고": "방청 페인트 · 재료량은 도료 종류에 따라 시방서 · 제조사 수량(주③) — 설계자가 넣음 · 비계 6∼9m 15% · 9m 초과 매 3m 5% 가산 · 해석: 할증은 인력품에 · 9m 초과는 올림" + }, + { + "열쇠": "9-2-3 유성페인트 칠", + "이름": "배관 유성페인트 칠(롤러 1회)", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 9-2-3", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "ø50㎜이하", + "ø100㎜이하", + "ø200㎜이하", + "ø300㎜이하" + ] + }, + { + "이름": "비계높이", + "단위": "m", + "출처": "건설품셈 기계설비 주④", + "비고": "비계를 쓰지 않으면 0" + } + ], + "중간": [ + { + "이름": "도장공", + "식": "찾기(소요량:건설품셈:9-2-3 유성페인트 칠, 구분=구분).도장공 * (1 + 만약(비계높이 < 6, 0, 만약(비계높이 <= 9, 15, 15 + 올림((비계높이 - 9) / 3) * 5)) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-2-3 유성페인트 칠, 구분=구분).보통인부 * (1 + 만약(비계높이 < 6, 0, 만약(비계높이 <= 9, 15, 15 + 올림((비계높이 - 9) / 3) * 5)) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1029", + "이름": "도장공", + "단위": "인", + "수량": "도장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 잡재료비", + "식": "(도장공 * 인력:건설노임:1029 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 9-2-3 주⑤" + } + ], + "끝수": null, + "비고": "보조붓칠 포함 · 재료량은 도료 종류에 따라 시방서 · 제조사 수량(주③) — 설계자가 넣음 · 비계 6∼9m 15% · 9m 초과 매 3m 5% 가산 · 해석: 할증은 인력품에 · 9m 초과는 올림" + }, + { + "열쇠": "9-3-1 슬리브 설치", + "이름": "슬리브 설치", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 9-3-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "바닥", + "벽체" + ] + }, + { + "이름": "세구분", + "고르기": [ + "ø25∼50", + "ø65∼100", + "ø125∼150", + "ø200∼250", + "ø300∼400" + ] + }, + { + "이름": "단열가산", + "단위": "%", + "범위": [ + 0, + 20 + ], + "출처": "건설품셈 기계설비 9-3-1 비고", + "비고": "단열재 설치구간 — 20%까지" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:9-3-1 슬리브 설치, 구분=구분, 세구분=세구분).배관공 * (1 + 단열가산 / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-3-1 슬리브 설치, 구분=구분, 세구분=세구분).보통인부 * (1 + 단열가산 / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 1 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 9-3-1 주③" + } + ], + "끝수": null, + "비고": "제작 완료된 슬리브 · 먹줄 · 마킹 포함 · 지수판 부착형 별도(주④)" + }, + { + "열쇠": "9-3-2 배관을 위한 구멍뚫기", + "이름": "배관 구멍뚫기(코아드릴)", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 9-3-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "25mm", + "50mm", + "75mm", + "100mm", + "150mm", + "200mm", + "250mm", + "300mm", + "350mm", + "400mm" + ] + }, + { + "이름": "세구분", + "고르기": [ + "콘크리트 두께 150mm 바닥", + "콘크리트 두께 150mm 벽체", + "콘크리트 두께 300mm 바닥", + "콘크리트 두께 300mm 벽체" + ] + } + ], + "중간": [ + { + "이름": "착암공", + "식": "찾기(소요량:건설품셈:9-3-2 배관을 위한 구멍뚫기, 구분=구분, 세구분=세구분).착암공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-3-2 배관을 위한 구멍뚫기, 구분=구분, 세구분=세구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1015", + "이름": "착암공", + "단위": "인", + "수량": "착암공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(착암공 * 인력:건설노임:1015 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 9-3-2 주④" + } + ], + "끝수": null, + "비고": "철근콘크리트 슬래브 · 부산물 · 철근탐색 · 시험천공 별도 · 다이아몬드 비트 등 재료비 별도(주⑤)" + }, + { + "열쇠": "9-4-1 기밀시험", + "이름": "가스배관 기밀시험", + "결과단위": "원/회", + "출처": "건설품셈 기계설비 9-4-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "지상노출관", + "지하매설관" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:9-4-1 기밀시험, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-4-1 기밀시험, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 8 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 9-4-1 주⑥" + } + ], + "끝수": null, + "비고": "자기압력기록계 · 공기 · 1회 · 시험재료 1㎥ 미만 · 유지 30분 미만 · 초과 · 맹관 · 질소 재료비 별도" + }, + { + "열쇠": "9-4-2 시험점화", + "이름": "가스 시험점화", + "결과단위": "원/호", + "출처": "건설품셈 기계설비 9-4-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "단독주택", + "집단아파트" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:9-4-2 시험점화, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:9-4-2 시험점화, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 9-4-2 주③" + } + ], + "끝수": null, + "비고": "단독주택 10호당 · 아파트 20호당 1조 기준 · 공구손료는 인력품(연소기 · 호스)의 2%(주③)" + }, + { + "열쇠": "9-5-1 시운전(배관계통)", + "이름": "시운전 · 조정(배관계통)", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 9-5-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:9-5-1 시운전, 명칭='배관계통', 항목='배관공').수량", + "출처": "건설품셈 기계설비 9-5-1" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "난방 · 공조 설비 완료 뒤 시운전 · 조정(주①) · 배관 · 밸브류 조정 · 주관연장 m당(주② 주관 뜻)" + }, + { + "열쇠": "9-5-1 시운전(각층기계 실내기기)", + "이름": "시운전 · 조정(각층기계 실내기기)", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 9-5-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:9-5-1 시운전, 명칭='각층기계 실내기기', 항목='배관공').수량", + "출처": "건설품셈 기계설비 9-5-1" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "난방 · 공조 설비 완료 뒤 시운전 · 조정(주①) · 에어핸들링 유닛 조정 등" + }, + { + "열쇠": "9-5-1 시운전(팬코일 유닛)", + "이름": "시운전 · 조정(팬코일 유닛)", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 9-5-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:9-5-1 시운전, 명칭='팬코일 유닛', 항목='배관공').수량", + "출처": "건설품셈 기계설비 9-5-1" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "난방 · 공조 설비 완료 뒤 시운전 · 조정(주①) · 조정" + }, + { + "열쇠": "9-5-1 시운전(덕트계통)", + "이름": "시운전 · 조정(덕트계통)", + "결과단위": "원/㎡ · m", + "출처": "건설품셈 기계설비 9-5-1", + "소유": "공용", + "입력": [ + { + "이름": "덕트", + "고르기": [ + "각형덕트(㎡)", + "스파이럴덕트(m)" + ], + "출처": "건설품셈 기계설비 9-5-1" + } + ], + "중간": [ + { + "이름": "덕트공", + "식": "만약(덕트 == '각형덕트(㎡)', 0.021, 0.012)", + "출처": "건설품셈 기계설비 9-5-1" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1043", + "이름": "덕트공", + "단위": "인", + "수량": "덕트공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "풍량조정 · 방화댐퍼 조정 · 풍량 · 풍속 · 소음 · 온습도 측정 · 각형덕트 ㎡당 · 스파이럴덕트 m당 · 원문 표가 한 칸에 두 줄이라 원문 수를 식에 씀" + }, + { + "열쇠": "9-5-1 시운전(주기계 실내기기)", + "이름": "시운전 · 조정(주기계 실내기기)", + "결과단위": "원/식", + "출처": "건설품셈 기계설비 9-5-1", + "소유": "공용", + "입력": [ + { + "이름": "연면적", + "고르기": [ + "5,000㎡이하", + "6,000∼15,000㎡", + "16,000∼30,000㎡" + ], + "출처": "건설품셈 기계설비 9-5-1" + }, + { + "이름": "난방방식", + "고르기": [ + "일반", + "온풍난방" + ], + "출처": "건설품셈 기계설비 9-5-1 비고" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "만약(연면적 == '5,000㎡이하', 8, 만약(연면적 == '6,000∼15,000㎡', 12, 16)) * 만약(난방방식 == '일반', 1, 0.5)", + "출처": "건설품셈 기계설비 9-5-1" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "보일러 · 냉동기 점검 · 조정 · 계기측정 기록 · 건물 연면적별 1식 · ( )는 온풍난방 — 8.0(4.0) · 12.0(6.0) · 16.0(8.0) · 원문 칸이 글이라 원문 수를 식에 씀 · 정밀진단(T.A.B)은 별도(9-5-2)" + } + ] +} diff --git a/resources/master_data/재료_자체.json b/resources/master_data/재료_자체.json index f8456bf6..b9d695e8 100644 --- a/resources/master_data/재료_자체.json +++ b/resources/master_data/재료_자체.json @@ -221,8 +221,11 @@ {"열쇠": "테르밋 골무", "이름": "골무", "규격": "테르밋 용접용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"}, {"열쇠": "테르밋 퓨즈", "이름": "퓨즈", "규격": "테르밋 용접용", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 토목 4-5-2 테르밋 용접 소모재료(참고자료)"}, {"열쇠": "강교 용접봉", "이름": "용접봉", "규격": "강교 제작용", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 토목 5-1-3 기타재료 소요량"}, - {"열쇠": "철구(Shot ball)", "이름": "철구(Shot ball)", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 토목 5-2-1 소재 표면처리"}, + {"열쇠": "철구(Shot ball)", "이름": "철구(Shot ball)", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 토목 5-2-1 소재 표면처리 · 건설품셈 기계설비 9-2-1"}, {"열쇠": "무기질아연말샵프라이머", "이름": "무기질아연말 샵프라이머", "규격": "도막두께 20μm", "단위": "ℓ", "값": null, "출처": "자체", "비고": "건설품셈 토목 5-2-1 소재 표면처리"}, - {"열쇠": "철편(Grit)", "이름": "철편(Grit)", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 토목 5-2-2 제품 표면처리"} + {"열쇠": "철편(Grit)", "이름": "철편(Grit)", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 토목 5-2-2 제품 표면처리"}, + {"열쇠": "규사 함유량80%", "이름": "규사", "규격": "규사함유량 80%", "단위": "㎥", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 9-2-1"}, + {"열쇠": "동력 Brush", "이름": "동력 Brush", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 9-2-1"}, + {"열쇠": "Wire Brush", "이름": "Wire Brush", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 9-2-1"} ] } From aabd7bc4dff36b87862eedcf965f42fd383bdb74 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:28:01 +0900 Subject: [PATCH 16/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=2010?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=2019=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EC=86=8C=EB=B0=A9=EC=84=A4=EB=B9=84=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 소화전함 · 소방밸브 · 옥외소화전 · 송수구 · 탱크 · 헤드 · 소화약제 설비 · 완강기 설치 - 원문 「-」 칸(알람밸브 보통인부 등)은 그 규격에서 0 · 전기설비 · 약제설비는 구분 · 규격별 세로 표에서 찾음 - 원문 주에 공구손료 · 잡재료 없음 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../로직_건설품셈_기계설비10장.json | 877 ++++++++++++++++++ 1 file changed, 877 insertions(+) create mode 100644 resources/master_data/로직_건설품셈_기계설비10장.json diff --git a/resources/master_data/로직_건설품셈_기계설비10장.json b/resources/master_data/로직_건설품셈_기계설비10장.json new file mode 100644 index 00000000..c4109d13 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비10장.json @@ -0,0 +1,877 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "10-1-1 옥내소화전함 설치", + "이름": "옥내소화전함 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-1-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "옥내소화전함" + ] + }, + { + "이름": "규격", + "고르기": [ + "매립형", + "노출형" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-1-1 옥내소화전함 설치, 구분=구분, 규격=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-1 옥내소화전함 설치, 구분=구분, 규격=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "소운반 · 호스걸이 등 포함 · 내부 전기설비 · 주위배관 · 보온 별도" + }, + { + "열쇠": "10-1-2 소화용구 격납상자 설치", + "이름": "소화용구 격납상자 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-1-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "소화용구 격납상자" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-1-2 소화용구 격납상자 설치, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-1-2 소화용구 격납상자 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "소운반 포함" + }, + { + "열쇠": "10-2-1 알람밸브 설치", + "이름": "알람밸브 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-2-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "알람밸브" + ] + }, + { + "이름": "규격", + "고르기": [ + "ø 65", + "80", + "100", + "125", + "150" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-2-1 알람밸브 설치, 구분=구분, 규격=규격).배관공" + }, + { + "이름": "보통인부", + "식": "만약(만약((구분 == '알람밸브' 그리고 규격 == 'ø 65') 또는 (구분 == '알람밸브' 그리고 규격 == '80') 또는 (구분 == '알람밸브' 그리고 규격 == '100'), 0, 1) == 1, 찾기(소요량:건설품셈:10-2-1 알람밸브 설치, 구분=구분, 규격=규격).보통인부, 0)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함 · 경보밸브장치(경종 · 배수 · 시험밸브 · 압력스위치 · 압력계) 포함 · 템퍼스위치 결선 · 종단저항 · 주위배관 · 보온 별도 · 원문 보통인부 「-」 규격은 0" + }, + { + "열쇠": "10-2-2 준비작동식밸브 설치", + "이름": "준비작동식밸브 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-2-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "준비작동식밸브" + ] + }, + { + "이름": "규격", + "고르기": [ + "ø 80", + "100", + "125", + "150" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-2-2 준비작동식밸브 설치, 구분=구분, 규격=규격).배관공" + }, + { + "이름": "보통인부", + "식": "만약(만약((구분 == '준비작동식밸브' 그리고 규격 == 'ø 80') 또는 (구분 == '준비작동식밸브' 그리고 규격 == '100'), 0, 1) == 1, 찾기(소요량:건설품셈:10-2-2 준비작동식밸브 설치, 구분=구분, 규격=규격).보통인부, 0)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함 · 경보밸브장치(경종 · 배수 · 시험밸브 · 압력스위치 · 압력계) 포함 · 템퍼스위치 결선 · 종단저항 · 주위배관 · 보온 별도 · 원문 보통인부 「-」 규격은 0" + }, + { + "열쇠": "10-2-3 드라이밸브 설치", + "이름": "드라이밸브 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-2-3", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "드라이밸브" + ] + }, + { + "이름": "규격", + "고르기": [ + "ø 100", + "150" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-2-3 드라이밸브 설치, 구분=구분, 규격=규격).배관공" + }, + { + "이름": "보통인부", + "식": "만약(만약((구분 == '드라이밸브' 그리고 규격 == 'ø 100'), 0, 1) == 1, 찾기(소요량:건설품셈:10-2-3 드라이밸브 설치, 구분=구분, 규격=규격).보통인부, 0)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함 · 경보밸브장치(경종 · 배수 · 시험밸브 · 압력스위치 · 압력계) 포함 · 템퍼스위치 결선 · 종단저항 · 주위배관 · 보온 별도 · 원문 보통인부 「-」 규격은 0" + }, + { + "열쇠": "10-2-4 관말시험밸브 설치", + "이름": "관말시험밸브 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 10-2-4", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "관말시험밸브" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-2-4 관말시험밸브 설치, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-2-4 관말시험밸브 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함" + }, + { + "열쇠": "10-3-1 지하식 설치", + "이름": "옥외소화전 지하식 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-3-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "지하식" + ] + }, + { + "이름": "규격", + "고르기": [ + "단구형", + "쌍구형" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-3-1 지하식 설치, 구분=구분, 규격=규격).배관공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "소운반 포함" + }, + { + "열쇠": "10-3-2 지상식 설치", + "이름": "옥외소화전 지상식 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-3-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "지상식" + ] + }, + { + "이름": "규격", + "고르기": [ + "단구형", + "쌍구형" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-3-2 지상식 설치, 구분=구분, 규격=규격).배관공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "소운반 포함" + }, + { + "열쇠": "10-4-1 일반송수구 설치", + "이름": "일반송수구 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-4-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "일반송수구" + ] + }, + { + "이름": "규격", + "고르기": [ + "단구형", + "쌍구형", + "단구스탠드형", + "쌍구스탠드형" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-4-1 일반송수구 설치, 구분=구분, 규격=규격).배관공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "소운반 포함" + }, + { + "열쇠": "10-4-2 방수구 설치", + "이름": "방수구 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-4-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "방수구" + ] + }, + { + "이름": "규격", + "고르기": [ + "40㎜", + "65㎜" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-4-2 방수구 설치, 구분=구분, 규격=규격).배관공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "소운반 포함" + }, + { + "열쇠": "10-4-3 연결송수구설치", + "이름": "연결송수구 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 10-4-3", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "연결송수구" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-4-3 연결송수구설치, 구분=구분).배관공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함" + }, + { + "열쇠": "10-5-1 압력공기탱크설치", + "이름": "압력공기탱크 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 10-5-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "압력공기탱크" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-5-1 압력공기탱크설치, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-5-1 압력공기탱크설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함" + }, + { + "열쇠": "10-5-2 마중물탱크설치", + "이름": "마중물탱크 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 10-5-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "마중물탱크" + ] + }, + { + "이름": "규격", + "고르기": [ + "100∼150ℓ" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-5-2 마중물탱크설치, 구분=구분, 규격=규격).배관공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함" + }, + { + "열쇠": "10-6-1 유량측정장치설치", + "이름": "유량측정장치 설치", + "결과단위": "원/조", + "출처": "건설품셈 기계설비 10-6-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "유량측정장치" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-6-1 유량측정장치설치, 구분=구분).배관공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함" + }, + { + "열쇠": "10-7-1 스프링클러 헤드설치", + "이름": "스프링클러 헤드 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 10-7-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "스프링클러 헤드" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-7-1 스프링클러 헤드설치, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-7-1 스프링클러 헤드설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "스프링클러 설비별 · 소운반 포함" + }, + { + "열쇠": "10-7-2 스프링클러 전기설비설치", + "이름": "스프링클러 전기설비 설치", + "결과단위": "원/면 · 개", + "출처": "건설품셈 기계설비 10-7-2", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "펌프기동반", + "벨" + ], + "출처": "건설품셈 기계설비 10-7-2" + }, + { + "이름": "규격", + "고르기": [ + "7.5㎾ 이하", + "11∼19㎾", + "22㎾" + ], + "출처": "건설품셈 기계설비 10-7-2" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-7-2 스프링클러 전기설비설치, 구분=구분, 규격=규격, 항목='배관공').수량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "펌프기동반 면당 · 벨 개당(규격 없음) · 스프링클러 설비별 · 소운반 포함 · 템퍼스위치 결선 · 종단저항 · 주위배관 · 보온 별도" + }, + { + "열쇠": "10-8-1 소화약제 소화설비설치", + "이름": "소화약제 소화설비 설치", + "결과단위": "원/개 · 조 · 면", + "출처": "건설품셈 기계설비 10-8-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "선택밸브", + "가스분사헤드", + "용기지지대", + "용기집합함", + "기동용기", + "수동기동함", + "압력스위치", + "역지밸브", + "배전반", + "단자함", + "가스방출표시등함", + "모터사이렌", + "벨" + ], + "출처": "건설품셈 기계설비 10-8-1" + }, + { + "이름": "규격", + "고르기": [ + "ø 25이하", + "32이하", + "40이하", + "50이하", + "65이하", + "80이하", + "100이하", + "125이하", + "150이하", + "노출형", + "매입형", + "5본 이하", + "6∼10본", + "11∼20본", + "1∼3실용", + "4∼6실용", + "대형", + "소형" + ], + "출처": "건설품셈 기계설비 10-8-1" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:10-8-1 소화약제 소화설비설치, 구분=구분, 규격=규격, 항목='배관공').수량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 단위 — 선택밸브 · 헤드 · 수동기동함 등 인/개 · 용기지지대 · 집합함 · 기동용기 인/조 · 배전반 · 단자함 인/면 · 규격 없는 구분은 규격 무관 · 소운반 포함 · 약제 용기설치는 규격 · 약제별 별도(주③)" + }, + { + "열쇠": "10-8-2 자동식 소화기 설치", + "이름": "자동식 소화기 설치(레인지후드)", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 10-8-2", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:10-8-2 자동식 소화기 설치).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-8-2 자동식 소화기 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "세대내 · 구멍뚫기 · 노즐 · 탐지부 · 조작부 · 수신부 · 제어배선 결선 포함 · 제어배관 · 입선 · 가스차단밸브 별도" + }, + { + "열쇠": "10-9-1 완강기 설치", + "이름": "완강기 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 10-9-1", + "소유": "공용", + "입력": [], + "중간": [ + { + "이름": "기계설비공", + "식": "찾기(소요량:건설품셈:10-9-1 완강기 설치).기계설비공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:10-9-1 완강기 설치).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1051", + "이름": "기계설비공", + "단위": "인", + "수량": "기계설비공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "지지대 · 보호함 · 안전표시 포함" + } + ] +} From dd3630c0d627993f76e52fd02b3b298913d1b191 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:29:20 +0900 Subject: [PATCH 17/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=2011?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=208=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EA=B0=80=EC=8A=A4=EC=84=A4=EB=B9=84=EA=B3=B5=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 강관 용접 · 부설 · 나사접합 · PE관 융착 · 분기공 · 밸브 · 가스미터 설치 · 공구손료 및 경장비 덧줄(주) - 용접식 부설 기계시공은 트럭탑재형 크레인 10ton(주④) · 공구손료 인력 1% · 기계 3%(주⑤ 표) - 나사접합 · 가스미터 재료(스레트실테이프 · 컴파운드) 줄 · 소요량 11장 가스미터 테이프 수량 글을 수로 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../로직_건설품셈_기계설비11장.json | 576 ++++++++++++++++++ .../소요량_건설품셈_기계설비11장.json | 4 +- resources/master_data/재료_자체.json | 4 +- 3 files changed, 581 insertions(+), 3 deletions(-) create mode 100644 resources/master_data/로직_건설품셈_기계설비11장.json diff --git a/resources/master_data/로직_건설품셈_기계설비11장.json b/resources/master_data/로직_건설품셈_기계설비11장.json new file mode 100644 index 00000000..57dfeac7 --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비11장.json @@ -0,0 +1,576 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "11-1-1 용접접합", + "이름": "가스용 강관 용접접합", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 11-1-1", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "ø15", + "20", + "25", + "32", + "40", + "50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300", + "350", + "400" + ] + }, + { + "이름": "용접", + "고르기": [ + "알곤용접", + "아크용접" + ], + "출처": "건설품셈 기계설비 11-1-1 비고" + } + ], + "중간": [ + { + "이름": "플랜트용접공", + "식": "찾기(소요량:건설품셈:11-1-1 용접접합, '규격(㎜)'=규격).플랜트용접공 * 만약(용접 == '알곤용접', 1, 0.95)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1058", + "이름": "플랜트용접공", + "단위": "인", + "수량": "플랜트용접공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(플랜트용접공 * 인력:건설노임:1058) * 3 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 11-1-1 주③" + } + ], + "끝수": null, + "비고": "알곤용접 기준 · 아크용접은 5% 감(비고) · 부자재 별도(주②)" + }, + { + "열쇠": "11-1-2 용접식 부설", + "이름": "가스용 강관 용접식 부설", + "결과단위": "원/m", + "출처": "건설품셈 기계설비 11-1-2", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "ø15", + "20", + "25", + "32", + "40", + "50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300", + "350", + "400" + ] + }, + { + "이름": "구분", + "고르기": [ + "인력시공", + "기계시공" + ] + }, + { + "이름": "지역", + "고르기": [ + "전국평균", + "전국", + "서울", + "경기", + "강원", + "충북", + "충남", + "전북", + "경북", + "경남", + "부산", + "제주", + "대구", + "인천", + "대전", + "울산", + "세종", + "전남광주" + ], + "출처": "건설품셈 공통 8-1-7 5" + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:11-1-2 용접식 부설, '규격 (㎜)'=규격, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-1-2 용접식 부설, '규격 (㎜)'=규격, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "로직", + "요소": "로직(건설품셈:8 기계 시간당 경비, 기계='2105-0010', 지역=지역)", + "이름": "트럭탑재형 크레인 10ton", + "단위": "시간", + "수량": "만약(구분 == '기계시공', 찾기(소요량:건설품셈:11-1-2 용접식 부설, '규격 (㎜)'=규격, 구분=구분).크레인, 0)" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 만약(구분 == '인력시공', 1, 3) / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 11-1-2 주⑤" + } + ], + "끝수": null, + "비고": "중압 이하 · 절단 · 가공 · 부설 · 표시용 비닐 포함 · 기계시공은 ø150 이상 · 크레인은 10톤급 트럭탑재형(주④) · 공구손료 인력 1% · 기계 3%(주⑤ 표) · 터파기 · 되메우기 · 기초 · 흙막이 · 잔토 · 물푸기 · 기밀시험 별도" + }, + { + "열쇠": "11-1-3 나사식 접합 및 배관", + "이름": "가스용 강관 나사식 접합 및 배관", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 11-1-3", + "소유": "공용", + "입력": [ + { + "이름": "규격", + "고르기": [ + "ø20", + "25", + "32", + "40", + "50" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관, '규격(㎜)'=규격).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관, '규격(㎜)'=규격).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:스레트실테이프 13㎜", + "이름": "스레트실테이프", + "단위": "㎝", + "수량": "만약(규격 == 'ø20', 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='ø20').스레트실테이프, 만약(규격 == '25', 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='25').스레트실테이프, 만약(규격 == '32', 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='30').스레트실테이프, 만약(규격 == '40', 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='40').스레트실테이프, 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='50').스레트실테이프))))", + "비목": "재료비", + "출처": "건설품셈 기계설비 11-1-3 주④" + }, + { + "종류": "재료", + "요소": "재료:자체:컴파운드", + "이름": "컴파운드", + "단위": "g", + "수량": "만약(규격 == 'ø20', 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='ø20').컴파운드, 만약(규격 == '25', 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='25').컴파운드, 만약(규격 == '32', 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='30').컴파운드, 만약(규격 == '40', 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='40').컴파운드, 찾기(소요량:건설품셈:11-1-3 나사식 접합 및 배관 표2, '구경(㎜)'='50').컴파운드))))", + "비목": "재료비", + "출처": "건설품셈 기계설비 11-1-3 주④" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 11-1-3 주③" + } + ], + "끝수": null, + "비고": "중압 이하 · 절단 · 나사홈가공 · 접합 포함 · 해석: 재료표 구경 30 = 품 표 32" + }, + { + "열쇠": "11-2-1 버트 융착식 접합 및 부설", + "이름": "가스용 PE관 버트 융착식 접합 및 부설", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 11-2-1", + "소유": "공용", + "입력": [ + { + "이름": "관경", + "고르기": [ + "ø 25", + "32", + "40", + "50", + "63", + "75", + "90", + "110", + "125", + "140", + "160", + "180", + "200", + "225", + "250", + "280", + "315", + "355", + "400" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:11-2-1 버트 융착식 접합 및 부설, '관경(㎜)'=관경).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-2-1 버트 융착식 접합 및 부설, '관경(㎜)'=관경).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 5 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 11-2-1 주⑤" + } + ], + "끝수": null, + "비고": "전기융착(전자소켓)도 같은 품 · 절단 · 표시용 비닐 포함 · 터파기 · 되메우기 · 기초 · 흙막이 · 잔토 · 물푸기 · 기밀시험 별도" + }, + { + "열쇠": "11-3-1 분기공 설치", + "이름": "가스 분기공 설치(T형)", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 11-3-1", + "소유": "공용", + "입력": [ + { + "이름": "구경", + "고르기": [ + "ø20∼25", + "40∼50", + "65", + "80", + "100", + "125", + "150", + "200", + "250", + "300", + "350", + "400" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:11-3-1 분기공 설치, '구경(㎜)'=구경).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-3-1 분기공 설치, '구경(㎜)'=구경).보통인부" + }, + { + "이름": "플랜트용접공", + "식": "찾기(소요량:건설품셈:11-3-1 분기공 설치, '구경(㎜)'=구경).플랜트용접공" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1058", + "이름": "플랜트용접공", + "단위": "인", + "수량": "플랜트용접공", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002 + 플랜트용접공 * 인력:건설노임:1058) * 1 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 11-3-1 주④" + } + ], + "끝수": null, + "비고": "기존관 절단 · T형관 부설 · 접합 포함 · 터파기 · 되메우기 · 기초 · 흙막이 · 잔토 · 물푸기 · 기밀시험 별도" + }, + { + "열쇠": "11-3-2 밸브 설치", + "이름": "가스 밸브 설치", + "결과단위": "원/개", + "출처": "건설품셈 기계설비 11-3-2", + "소유": "공용", + "입력": [ + { + "이름": "구경", + "고르기": [ + "ø15∼25", + "32∼50", + "65", + "80", + "100", + "125", + "ø150", + "200", + "250", + "300", + "350", + "400" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:11-3-2 밸브 설치, 구경=구경).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-3-2 밸브 설치, 구경=구경).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [ + { + "이름": "공구손료 및 경장비", + "식": "(배관공 * 인력:건설노임:1039 + 보통인부 * 인력:건설노임:1002) * 2 / 100", + "비목": "경비", + "출처": "건설품셈 기계설비 11-3-2 주②" + } + ], + "끝수": null, + "비고": "위치 선정 · 작동시험 포함" + }, + { + "열쇠": "11-3-3 직독식 가스미터 설치", + "이름": "직독식 가스미터 설치", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 11-3-3", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "ø15㎜", + "ø20∼25㎜" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:11-3-3 직독식 가스미터 설치, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-3-3 직독식 가스미터 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "재료", + "요소": "재료:자체:스레트실테이프 13㎜", + "이름": "스레트실테이프", + "단위": "㎝", + "수량": "찾기(소요량:건설품셈:11-3-3 직독식 가스미터 설치 표2, '구경(㎜)'='스레트실테이프(㎝)', 항목=만약(구분 == 'ø15㎜', 'ø15', 'ø20∼25')).수량", + "비목": "재료비", + "출처": "건설품셈 기계설비 11-3-3 주③" + }, + { + "종류": "재료", + "요소": "재료:자체:컴파운드", + "이름": "컴파운드", + "단위": "g", + "수량": "찾기(소요량:건설품셈:11-3-3 직독식 가스미터 설치 표2, '구경(㎜)'='컴파운드(g)', 항목=만약(구분 == 'ø15㎜', 'ø15', 'ø20∼25')).수량", + "비목": "재료비", + "출처": "건설품셈 기계설비 11-3-3 주③" + } + ], + "덧줄": [], + "끝수": null, + "비고": "세대내 · 고정 · 작동시험 포함" + }, + { + "열쇠": "11-3-4 원격식 가스미터 설치", + "이름": "원격식 가스미터 설치", + "결과단위": "원/개소", + "출처": "건설품셈 기계설비 11-3-4", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "ø15㎜", + "ø20∼25㎜" + ] + } + ], + "중간": [ + { + "이름": "배관공", + "식": "찾기(소요량:건설품셈:11-3-4 원격식 가스미터 설치, 구분=구분).배관공" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:11-3-4 원격식 가스미터 설치, 구분=구분).보통인부" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "세대내 · 전선관 결선 · 작동시험 포함 · 전선관 배관 · 입선 · 지시부 별도 · 재료량 원문 없음" + } + ] +} diff --git a/resources/master_data/소요량_건설품셈_기계설비11장.json b/resources/master_data/소요량_건설품셈_기계설비11장.json index da088f2d..2638be9f 100644 --- a/resources/master_data/소요량_건설품셈_기계설비11장.json +++ b/resources/master_data/소요량_건설품셈_기계설비11장.json @@ -238,9 +238,9 @@ "조건": { "구경(㎜)": "고르기", "항목": "고르기" }, "값칸": { "수량": "", "수량원문": "글" }, "줄": [ - { "구경(㎜)": "스레트실테이프(㎝)", "항목": "ø15", "수량": "45.7㎝" }, + { "구경(㎜)": "스레트실테이프(㎝)", "항목": "ø15", "수량": 45.7, "수량원문": "45.7㎝" }, { "구경(㎜)": "컴파운드(g)", "항목": "ø15", "수량": 4, "수량원문": "4g" }, - { "구경(㎜)": "스레트실테이프(㎝)", "항목": "ø20∼25", "수량": "68.6㎝" }, + { "구경(㎜)": "스레트실테이프(㎝)", "항목": "ø20∼25", "수량": 68.6, "수량원문": "68.6㎝" }, { "구경(㎜)": "컴파운드(g)", "항목": "ø20∼25", "수량": 6, "수량원문": "6g" } ], "주": [] diff --git a/resources/master_data/재료_자체.json b/resources/master_data/재료_자체.json index b9d695e8..204c8f20 100644 --- a/resources/master_data/재료_자체.json +++ b/resources/master_data/재료_자체.json @@ -226,6 +226,8 @@ {"열쇠": "철편(Grit)", "이름": "철편(Grit)", "규격": "", "단위": "㎏", "값": null, "출처": "자체", "비고": "건설품셈 토목 5-2-2 제품 표면처리"}, {"열쇠": "규사 함유량80%", "이름": "규사", "규격": "규사함유량 80%", "단위": "㎥", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 9-2-1"}, {"열쇠": "동력 Brush", "이름": "동력 Brush", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 9-2-1"}, - {"열쇠": "Wire Brush", "이름": "Wire Brush", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 9-2-1"} + {"열쇠": "Wire Brush", "이름": "Wire Brush", "규격": "", "단위": "개", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 9-2-1"}, + {"열쇠": "스레트실테이프 13㎜", "이름": "스레트실테이프", "규격": "13㎜", "단위": "㎝", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 11-1-3 · 건설품셈 기계설비 11-3-3"}, + {"열쇠": "컴파운드", "이름": "컴파운드", "규격": "", "단위": "g", "값": null, "출처": "자체", "비고": "건설품셈 기계설비 11-1-3 · 건설품셈 기계설비 11-3-3"} ] } From b2faa2d11971a026cbbda8f162af558371176249 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:31:25 +0900 Subject: [PATCH 18/19] =?UTF-8?q?feat(master=5Fdata):=20=EA=B1=B4=EC=84=A4?= =?UTF-8?q?=ED=92=88=EC=85=88=20=EA=B8=B0=EA=B3=84=EC=84=A4=EB=B9=84=2012?= =?UTF-8?q?=EC=9E=A5=20=EB=A1=9C=EC=A7=81=2010=EA=B0=9C=20=E2=80=94=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=EC=A0=9C=EC=96=B4=EC=84=A4=EB=B9=84=EA=B3=B5?= =?UTF-8?q?=EC=82=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 계기반 · 플랜트 계기 · 자동제어기기 · 계량기 · 도압 · Control Air 배관 · 압축공기 · CPU · I/O · 콘솔 - 비고 가산(방폭 · Loop · 옥외 · 분동시험 · 화기금지 1.5배 등)은 입력 · 운영지원 가산은 점검 · 시험 공정에만 - 원문 「기사」는 기사직종 입력(건설노임 기사 넷 중) · 압축공기 시험 기계 기술자는 인력_자체 중급기술자 - 소요량 12장: 12-1-1 「〃(발신기수납상)」 · 「〃(〃)」 명칭을 「계기반(현장 · 발신기수납상)」으로 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01V1MKKZKpUHTPKb513FneU8 --- .../로직_건설품셈_기계설비12장.json | 822 ++++++++++++++++++ .../소요량_건설품셈_기계설비12장.json | 24 +- 2 files changed, 834 insertions(+), 12 deletions(-) create mode 100644 resources/master_data/로직_건설품셈_기계설비12장.json diff --git a/resources/master_data/로직_건설품셈_기계설비12장.json b/resources/master_data/로직_건설품셈_기계설비12장.json new file mode 100644 index 00000000..f81ee42c --- /dev/null +++ b/resources/master_data/로직_건설품셈_기계설비12장.json @@ -0,0 +1,822 @@ +{ + "그룹": "로직", + "원문": "건설품셈", + "부문": "기계설비", + "판": "2026", + "줄": [ + { + "열쇠": "12-1-1 계기반 설치", + "이름": "계기반 설치", + "결과단위": "원/대 · 면", + "출처": "건설품셈 기계설비 12-1-1", + "소유": "공용", + "입력": [ + { + "이름": "명칭", + "고르기": [ + "분전반", + "조작반", + "계기반(자립개방)", + "계기반(자립밀폐)", + "계기반(현장)", + "계기반(현장 · 발신기수납상)" + ], + "출처": "건설품셈 기계설비 12-1-1" + }, + { + "이름": "규격", + "고르기": [ + "W800×H500×D300이하", + "W1200×H2100×D800이하", + "1200×2100×800 〃", + "900×900×600 〃", + "1000×1800×600 〃", + "1300×2000×700 〃", + "1400×2000×700 〃", + "1대용W(800×1600×900)", + "2대용 (1000×1600×900)", + "3대용 (1200×1600×900)", + "4대용 (1400×1600×900)", + "5대용 (1600×1600×900)", + "6대용 (1800×1600×900)" + ], + "출처": "건설품셈 기계설비 12-1-1" + }, + { + "이름": "완제품", + "고르기": [ + "완제품", + "완제품 아님" + ], + "출처": "건설품셈 기계설비 12-1-1 비고" + }, + { + "이름": "이면반", + "고르기": [ + "없음", + "있음" + ], + "출처": "건설품셈 기계설비 12-1-1 비고" + } + ], + "중간": [ + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:12-1-1 계기반 설치, 명칭=명칭, 규격=규격, 항목='계장공').수량 * 만약(완제품 == '완제품', 1, 0.65) * 만약(이면반 == '없음', 1, 1.5)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:12-1-1 계기반 설치, 명칭=명칭, 규격=규격, 항목='보통인부').수량 * 만약(완제품 == '완제품', 1, 0.65) * 만약(이면반 == '없음', 1, 1.5)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 단위 — 분전반 · 조작반 · 발신기수납상 대 · 계기반 면 · 포장해체 · 청소 · 내부결선 · 소운반 · Channel Base · 기초 포함 · 제어 Cable 배선 · 결선 제외 · 이면반은 150% · 완제품 아니면 65%(계기설치 별도) · 완제품 계기 시험조정은 12-1-2 품의 25% 가산(비고)" + }, + { + "열쇠": "12-1-2 플랜트 계기 설치", + "이름": "플랜트 계기 설치", + "결과단위": "원/대 · 본 · Set", + "출처": "건설품셈 기계설비 12-1-2", + "소유": "공용", + "입력": [ + { + "이름": "명칭", + "고르기": [ + "파이프스텐션", + "계기", + "발신기", + "수신기", + "Air Set", + "변환기", + "수동조작기", + "비율설정기", + "기록계", + "현장지시계", + "후로드식액면계", + "측온계", + "분석계", + "Mono Meter", + "Thermocouple", + "Dispressor", + "스위치", + "전자 Valve", + "강압 Valve", + "여과기", + "조절 Valve", + "Butterfly Valve", + "Orifice", + "출력 Gauge", + "Cylinder Valve", + "탈습장치", + "탁도검출기", + "P-Hmeter 검출기", + "X-Ray 발생장치", + "α-Ray 발생장치", + "Power Pack", + "현장조절계", + "중성자발생장치", + "FLAME DETECTOR" + ], + "출처": "건설품셈 기계설비 12-1-2" + }, + { + "이름": "규격", + "고르기": [ + "28×1,200∼1,600", + "일반각종", + "DPT, PT, TT, LT, FT", + "J/P, A/D, P/P, MV/I", + "LG", + "LPG, VG", + "PG", + "TG", + "적외선식, 자기식", + "외통식", + "소형", + "대형", + "1B", + "2B", + "3B", + "4B", + "200ø", + "300ø", + "400ø", + "500ø", + "200ø 이하", + "201ø∼500ø", + "501ø이상", + "공기식" + ], + "출처": "건설품셈 기계설비 12-1-2" + }, + { + "이름": "방폭", + "고르기": [ + "아님", + "방폭공사" + ], + "출처": "건설품셈 기계설비 12-1-2 비고" + }, + { + "이름": "Loop시험", + "고르기": [ + "없음", + "Loop 시험" + ], + "출처": "건설품셈 기계설비 12-1-2 비고" + } + ], + "중간": [ + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:12-1-2 플랜트 계기 설치, 명칭=명칭, 규격=규격, 항목='계장공').수량 * (1 + (만약(방폭 == '아님', 0, 20) + 만약(Loop시험 == '없음', 0, 25)) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 단위 — 대 · 파이프스텐션 본 · Mono Meter 등 Set · 방폭 20% · Loop 시험 25% 가산 · 해석: 가산은 합산 · 파이프스텐션 기초 별도 · 탈습장치 after-cooler · separator 포함" + }, + { + "열쇠": "12-2-1 자동제어기기 설치", + "이름": "자동제어기기 설치", + "결과단위": "원/개 · 조 · 면", + "출처": "건설품셈 기계설비 12-2-1", + "소유": "공용", + "입력": [ + { + "이름": "구분", + "고르기": [ + "실내온도조절기", + "삽입식온도조절기", + "습도조절기", + "댐퍼용모터", + "자동조절밸브용모터", + "압력조정기", + "스탭컨트롤러", + "수동조작기", + "온습도지시계", + "기록계", + "액면지시계류", + "전자식패널", + "릴레이류", + "현장반", + "공업용압력발신기", + "공업용차압발신기" + ], + "출처": "건설품셈 기계설비 12-2-1" + }, + { + "이름": "규격", + "고르기": [ + "전기전자식", + "공기식", + "덕트용", + "배관용", + "공기용", + "벽붙이형", + "스탠드형" + ], + "출처": "건설품셈 기계설비 12-2-1" + } + ], + "중간": [ + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:12-2-1 자동제어기기 설치, 구분=구분, 규격=규격, 항목='계장공').수량" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 단위 — 조절기 · 지시계 등 개 · 모터 · 조정기 조 · 현장반 면 · 규격 없는 구분은 규격 무관 · 소운반 포함" + }, + { + "열쇠": "12-2-2 계량기 설치", + "이름": "계량기 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 12-2-2", + "소유": "공용", + "입력": [ + { + "이름": "명칭", + "고르기": [ + "Hopper Scale", + "Conveyor Scale", + "대형개량장치" + ] + }, + { + "이름": "규격", + "고르기": [ + "대(30Ton이상)", + "중(15∼29Ton)", + "소(14Ton이하)", + "대(500T/H 이상)", + "중(100∼400Ton)", + "소(90Ton이하)", + "대(50Ton이상)", + "중(10∼40Ton)", + "소(9Ton이하)" + ] + }, + { + "이름": "옥외", + "고르기": [ + "아님", + "옥외 노출" + ], + "출처": "건설품셈 기계설비 12-2-2 비고" + }, + { + "이름": "분동시험", + "고르기": [ + "없음", + "시험조정(분동시험)" + ], + "출처": "건설품셈 기계설비 12-2-2 비고" + } + ], + "중간": [ + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:12-2-2 계량기 설치, 명칭=명칭, 규격=규격).계장공 * (1 + (만약(옥외 == '아님', 0, 10) + 만약(분동시험 == '없음', 0, 만약(명칭 == 'Hopper Scale', 30, 만약(명칭 == 'Conveyor Scale', 20, 25)))) / 100)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:12-2-2 계량기 설치, 명칭=명칭, 규격=규격).보통인부 * (1 + (만약(옥외 == '아님', 0, 10) + 만약(분동시험 == '없음', 0, 만약(명칭 == 'Hopper Scale', 30, 만약(명칭 == 'Conveyor Scale', 20, 25)))) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "기계설치 제외 · 분동 · TEST CHAIN 운반 · 사용료 · 검정료 별도 · 옥외 10% · 분동시험 Hopper 30% · Conveyor 20% · 대형 25% 가산 · 해석: 가산은 합산" + }, + { + "열쇠": "12-2-3 도압배관", + "이름": "도압배관", + "결과단위": "원/m · 개", + "출처": "건설품셈 기계설비 12-2-3", + "소유": "공용", + "입력": [ + { + "이름": "명칭", + "고르기": [ + "유량(액면)계 배관", + "압력계 배관", + "Valve 조립", + "DRAIN POT", + "SEAL POT", + "CONDENSER POT", + "3-WAY VALVE", + "STEAM TRAP" + ], + "출처": "건설품셈 기계설비 12-2-3" + }, + { + "이름": "규격", + "고르기": [ + "SGP STPG 38 (SCH40)1/2B", + "SGP STPG38 SCH40)1/2B", + "용접", + "1/2B" + ], + "출처": "건설품셈 기계설비 12-2-3" + }, + { + "이름": "Loop시험", + "고르기": [ + "없음", + "Loop 시험(LEAK TEST 포함)" + ], + "출처": "건설품셈 기계설비 12-2-3 비고" + }, + { + "이름": "화기금지", + "고르기": [ + "아님", + "화기사용 금지구역" + ], + "출처": "건설품셈 기계설비 12-2-3 비고" + }, + { + "이름": "관재", + "고르기": [ + "SCH40", + "SCH 80(유량계 배관 10%)", + "SUS27(압력계 배관 30%)" + ], + "출처": "건설품셈 기계설비 12-2-3 표 비고" + } + ], + "중간": [ + { + "이름": "계장공", + "식": "만약(만약((명칭 == 'STEAM TRAP' 그리고 규격 == '1/2B') 또는 (명칭 == 'SEAL POT' 그리고 규격 == '1/2B') 또는 (명칭 == 'DRAIN POT' 그리고 규격 == '1/2B') 또는 (명칭 == 'Valve 조립' 그리고 규격 == '용접') 또는 (명칭 == '3-WAY VALVE' 그리고 규격 == '1/2B'), 0, 1) == 1, 찾기(소요량:건설품셈:12-2-3 도압배관, 명칭=명칭, 규격=규격, 항목='계장공').수량 * (1 + (만약(Loop시험 == '없음', 0, 20) + 만약(관재 == 'SCH40', 0, 만약(관재 == 'SUS27(압력계 배관 30%)', 30, 10))) / 100) * 만약(화기금지 == '아님', 1, 1.5), 0)" + }, + { + "이름": "배관공", + "식": "만약(만약((명칭 == 'CONDENSER POT' 그리고 규격 == '1/2B'), 0, 1) == 1, 찾기(소요량:건설품셈:12-2-3 도압배관, 명칭=명칭, 규격=규격, 항목='배관공').수량 * (1 + (만약(Loop시험 == '없음', 0, 20) + 만약(관재 == 'SCH40', 0, 만약(관재 == 'SUS27(압력계 배관 30%)', 30, 10))) / 100) * 만약(화기금지 == '아님', 1, 1.5), 0)" + }, + { + "이름": "보통인부", + "식": "찾기(소요량:건설품셈:12-2-3 도압배관, 명칭=명칭, 규격=규격, 항목='보통인부').수량 * (1 + (만약(Loop시험 == '없음', 0, 20) + 만약(관재 == 'SCH40', 0, 만약(관재 == 'SUS27(압력계 배관 30%)', 30, 10))) / 100) * 만약(화기금지 == '아님', 1, 1.5)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1039", + "이름": "배관공", + "단위": "인", + "수량": "배관공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 단위 — 배관 m · 밸브 · POT · TRAP 개 · 절단 · 나사 · 체결 · 용접 · 구부림 · 부속 취부 포함 · Loop 20% · SCH 80 10% · SUS27 30% 가산 · 해석: 화기사용 금지구역 「1.5배 가산」 = 품 × 1.5 · 가산은 합산" + }, + { + "열쇠": "12-2-4 Control Air 배관", + "이름": "Control Air 배관", + "결과단위": "원/m · 개", + "출처": "건설품셈 기계설비 12-2-4", + "소유": "공용", + "입력": [ + { + "이름": "명칭", + "고르기": [ + "SGP 및 STPG 38(SCH40)", + "Valve (개당)" + ] + }, + { + "이름": "규격", + "고르기": [ + "1/2 B", + "3/4B", + "1B", + "1 1/2B", + "2B", + "각종" + ] + }, + { + "이름": "구분", + "고르기": [ + "Screw형", + "용접" + ] + }, + { + "이름": "화기금지", + "고르기": [ + "아님", + "화기사용 금지구역" + ], + "출처": "건설품셈 기계설비 12-2-4 비고" + }, + { + "이름": "관종", + "고르기": [ + "일반", + "Flange 접속 · 고압 · 특수강관", + "Stainless관" + ], + "출처": "건설품셈 기계설비 12-2-4 비고" + }, + { + "이름": "Loop시험", + "고르기": [ + "없음", + "Loop 시험" + ], + "출처": "건설품셈 기계설비 12-2-4 비고" + } + ], + "중간": [ + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:12-2-4 Control Air 배관, 명칭=명칭, 규격=규격, 구분=구분).계장공 * (1 + (만약(관종 == '일반', 0, 만약(관종 == 'Stainless관', 30, 20)) + 만약(Loop시험 == '없음', 0, 25)) / 100) * 만약(화기금지 == '아님', 1, 1.5)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "관 m당 · Valve 개당 · 도압 · Process 배관에는 적용 안 함 · 지지물 별도 · 절관 · 나사 · 구부림 · 부속 포함 · 해석: 「1.5배 가산」 = 품 × 1.5 · 가산은 합산" + }, + { + "열쇠": "12-2-5 압축공기 발생장치 및 공기관 배관", + "이름": "압축공기 발생장치 및 공기관 배관", + "결과단위": "원/조 · 개 · 대", + "출처": "건설품셈 기계설비 12-2-5", + "소유": "공용", + "입력": [ + { + "이름": "명칭", + "고르기": [ + "압축공기발생장치", + "주공기 Tank", + "유니온엘보", + "유압 Cylinder", + "Oil Pump", + "Air Cylinder", + "Air Compressor", + "제습기", + "공기압축기시험", + "조작함(설비물)" + ], + "출처": "건설품셈 기계설비 12-2-5" + }, + { + "이름": "규격", + "고르기": [ + "5㎏/㎠이하", + "10㎏/㎠이하", + "30㎏/㎠이하", + "500ℓ 이하", + "700ℓ 이하", + "700ℓ 이상", + "20∼25㎜", + "60K", + "90K", + "130K", + "0.75㎾", + "1.50㎾", + "2.25㎾", + "3.00㎾", + "100ø 이하", + "100ø 이상", + "소형", + "대형", + "분전반, 계기, 스위치 기타" + ], + "출처": "건설품셈 기계설비 12-2-5" + }, + { + "이름": "시험", + "고르기": [ + "없음", + "시험" + ], + "출처": "건설품셈 기계설비 12-2-5 비고", + "비고": "시험시 기계 기술자 1인 가산" + } + ], + "중간": [ + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:12-2-5 압축공기 발생장치 및 공기관 배관, 명칭=명칭, 규격=규격, 항목='계장공').수량" + }, + { + "이름": "보통인부", + "식": "만약(만약((명칭 == 'Air Cylinder' 그리고 규격 == '100ø 이하') 또는 (명칭 == 'Oil Pump' 그리고 규격 == '2.25㎾') 또는 (명칭 == 'Oil Pump' 그리고 규격 == '1.50㎾') 또는 (명칭 == 'Air Cylinder' 그리고 규격 == '100ø 이상') 또는 (명칭 == 'Air Compressor' 그리고 규격 == '대형') 또는 (명칭 == '제습기') 또는 (명칭 == 'Oil Pump' 그리고 규격 == '3.00㎾') 또는 (명칭 == '유압 Cylinder' 그리고 규격 == '90K') 또는 (명칭 == 'Oil Pump' 그리고 규격 == '0.75㎾') 또는 (명칭 == '유압 Cylinder' 그리고 규격 == '130K') 또는 (명칭 == 'Air Compressor' 그리고 규격 == '소형') 또는 (명칭 == '유압 Cylinder' 그리고 규격 == '60K'), 0, 1) == 1, 찾기(소요량:건설품셈:12-2-5 압축공기 발생장치 및 공기관 배관, 명칭=명칭, 규격=규격, 항목='보통인부').수량, 0)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1002", + "이름": "보통인부", + "단위": "인", + "수량": "보통인부", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:자체:중급기술자", + "이름": "기계 기술자", + "단위": "인", + "수량": "만약(시험 == '없음', 0, 1)", + "비목": "노무비", + "출처": "건설품셈 기계설비 12-2-5 비고" + } + ], + "덧줄": [], + "끝수": null, + "비고": "원문 단위 — 조당 · 개당 · 대 · 규격 없는 명칭은 규격 무관 · 시험시 기계 기술자 1인 가산(비고) · 해석: 기계 기술자 = 인력_자체 중급기술자(값은 관리자가 채움)" + }, + { + "열쇠": "12-3-1 중앙처리장치(CPU) 설치", + "이름": "중앙처리장치(CPU) 설치", + "결과단위": "원/Point · DDC", + "출처": "건설품셈 기계설비 12-3-1", + "소유": "공용", + "입력": [ + { + "이름": "공정", + "고르기": [ + "설치", + "통신상태점검", + "점검・시험" + ], + "출처": "건설품셈 기계설비 12-3-1" + }, + { + "이름": "운영지원", + "고르기": [ + "없음", + "3개월", + "6개월" + ], + "출처": "건설품셈 기계설비 12-3-1 주⑥" + }, + { + "이름": "기사직종", + "고르기": [ + "5004", + "5005", + "5001", + "5002" + ], + "출처": "건설품셈 기계설비 12-3", + "비고": "원문 「기사」 — 직종 이름 없음 · 설계자가 고름(5004 전기공사기사 · 5005 전기공사산업기사 · 5001 통신관련기사 · 5002 통신관련산업기사)" + } + ], + "중간": [ + { + "이름": "기사", + "식": "만약(만약((공정 == '통신상태점검'), 0, 1) == 1, 찾기(소요량:건설품셈:12-3-1 중앙처리장치(CPU) 설치, 공정=공정, 항목='기사').수량 * (1 + 만약(공정 == '점검・시험', 만약(운영지원 == '3개월', 15, 만약(운영지원 == '6개월', 30, 0)), 0) / 100), 0)" + }, + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:12-3-1 중앙처리장치(CPU) 설치, 공정=공정, 항목='계장공').수량 * (1 + 만약(공정 == '점검・시험', 만약(운영지원 == '3개월', 15, 만약(운영지원 == '6개월', 30, 0)), 0) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:{기사직종}", + "이름": "기사", + "단위": "인", + "수량": "기사", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "설치 · 점검시험 Point당 · 통신상태점검 DDC당 · 프로그램 설치 · 수정 · Point 등록 포함 · 전선 · 통신선 별도 · 시설물 준공 후 운영 · 관리 지원(주⑥) — 점검 · 시험 공정에 가산 · 원문 가산율 칸이 글이라 수를 식에 씀 15% · 30%" + }, + { + "열쇠": "12-3-2 입・출력장치(I/O Equipment) 설치", + "이름": "입 · 출력장치(I/O · DDC) 설치", + "결과단위": "원/Point", + "출처": "건설품셈 기계설비 12-3-2", + "소유": "공용", + "입력": [ + { + "이름": "공정", + "고르기": [ + "설치", + "점검・시험" + ] + }, + { + "이름": "운영지원", + "고르기": [ + "없음", + "3개월", + "6개월" + ], + "출처": "건설품셈 기계설비 12-3-2 주④" + }, + { + "이름": "기사직종", + "고르기": [ + "5004", + "5005", + "5001", + "5002" + ], + "출처": "건설품셈 기계설비 12-3", + "비고": "원문 「기사」 — 직종 이름 없음 · 설계자가 고름(5004 전기공사기사 · 5005 전기공사산업기사 · 5001 통신관련기사 · 5002 통신관련산업기사)" + } + ], + "중간": [ + { + "이름": "기사", + "식": "찾기(소요량:건설품셈:12-3-2 입・출력장치(I/O Equipment) 설치, 공정=공정).기사 * (1 + 만약(공정 == '점검・시험', 만약(운영지원 == '3개월', 20, 만약(운영지원 == '6개월', 40, 0)), 0) / 100)" + }, + { + "이름": "계장공", + "식": "찾기(소요량:건설품셈:12-3-2 입・출력장치(I/O Equipment) 설치, 공정=공정).계장공 * (1 + 만약(공정 == '점검・시험', 만약(운영지원 == '3개월', 20, 만약(운영지원 == '6개월', 40, 0)), 0) / 100)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:{기사직종}", + "이름": "기사", + "단위": "인", + "수량": "기사", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "DDC 설치 · 단자함 결선 · 점검시험 · 소운반 포함 · 현장계기 전선 · 통신선 · DDC 외함 별도 · 시설물 준공 후 운영 · 관리 지원(주⑥) — 점검 · 시험 공정에 가산 · 원문 가산율 칸이 글이라 수를 식에 씀 20% · 40%" + }, + { + "열쇠": "12-3-3 콘솔(Console) 설치", + "이름": "콘솔(Console) 설치", + "결과단위": "원/대", + "출처": "건설품셈 기계설비 12-3-3", + "소유": "공용", + "입력": [ + { + "이름": "공정", + "고르기": [ + "조립 및 설치", + "시험 및 조정" + ] + }, + { + "이름": "기사직종", + "고르기": [ + "5004", + "5005", + "5001", + "5002" + ], + "출처": "건설품셈 기계설비 12-3", + "비고": "원문 「기사」 — 직종 이름 없음 · 설계자가 고름(5004 전기공사기사 · 5005 전기공사산업기사 · 5001 통신관련기사 · 5002 통신관련산업기사)" + } + ], + "중간": [ + { + "이름": "계장공", + "식": "만약(만약((공정 == '시험 및 조정'), 0, 1) == 1, 찾기(소요량:건설품셈:12-3-3 콘솔(Console) 설치, 공정=공정).계장공, 0)" + }, + { + "이름": "기사", + "식": "만약(만약((공정 == '조립 및 설치'), 0, 1) == 1, 찾기(소요량:건설품셈:12-3-3 콘솔(Console) 설치, 공정=공정).기사, 0)" + } + ], + "호표": [ + { + "종류": "인력", + "요소": "인력:건설노임:1084", + "이름": "계장공", + "단위": "인", + "수량": "계장공", + "비목": "노무비" + }, + { + "종류": "인력", + "요소": "인력:건설노임:{기사직종}", + "이름": "기사", + "단위": "인", + "수량": "기사", + "비목": "노무비" + } + ], + "덧줄": [], + "끝수": null, + "비고": "Desk 조립 · PC · 모니터 · 프린터 설치 · 운영체계 Setup · 소운반 포함" + } + ] +} diff --git a/resources/master_data/소요량_건설품셈_기계설비12장.json b/resources/master_data/소요량_건설품셈_기계설비12장.json index 772e8d8a..c13f8035 100644 --- a/resources/master_data/소요량_건설품셈_기계설비12장.json +++ b/resources/master_data/소요량_건설품셈_기계설비12장.json @@ -27,18 +27,18 @@ { "명칭": "계기반(현장)", "규격": "1300×2000×700 〃", "항목": "보통인부", "수량": 6.58, "단위": "면" }, { "명칭": "계기반(현장)", "규격": "1400×2000×700 〃", "항목": "계장공", "수량": 10.64, "단위": "면" }, { "명칭": "계기반(현장)", "규격": "1400×2000×700 〃", "항목": "보통인부", "수량": 7.09, "단위": "면" }, - { "명칭": "〃(발신기수납상)", "규격": "1대용W(800×1600×900)", "항목": "계장공", "수량": 2.0, "단위": "대" }, - { "명칭": "〃(발신기수납상)", "규격": "1대용W(800×1600×900)", "항목": "보통인부", "수량": 1.33, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "2대용 (1000×1600×900)", "항목": "계장공", "수량": 2.4, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "2대용 (1000×1600×900)", "항목": "보통인부", "수량": 1.60, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "3대용 (1200×1600×900)", "항목": "계장공", "수량": 2.8, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "3대용 (1200×1600×900)", "항목": "보통인부", "수량": 1.86, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "4대용 (1400×1600×900)", "항목": "계장공", "수량": 3.2, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "4대용 (1400×1600×900)", "항목": "보통인부", "수량": 2.13, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "5대용 (1600×1600×900)", "항목": "계장공", "수량": 3.6, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "5대용 (1600×1600×900)", "항목": "보통인부", "수량": 2.39, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "6대용 (1800×1600×900)", "항목": "계장공", "수량": 4.0, "단위": "대" }, - { "명칭": "〃(〃)", "규격": "6대용 (1800×1600×900)", "항목": "보통인부", "수량": 2.65, "단위": "대" } + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "1대용W(800×1600×900)", "항목": "계장공", "수량": 2.0, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "1대용W(800×1600×900)", "항목": "보통인부", "수량": 1.33, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "2대용 (1000×1600×900)", "항목": "계장공", "수량": 2.4, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "2대용 (1000×1600×900)", "항목": "보통인부", "수량": 1.60, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "3대용 (1200×1600×900)", "항목": "계장공", "수량": 2.8, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "3대용 (1200×1600×900)", "항목": "보통인부", "수량": 1.86, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "4대용 (1400×1600×900)", "항목": "계장공", "수량": 3.2, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "4대용 (1400×1600×900)", "항목": "보통인부", "수량": 2.13, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "5대용 (1600×1600×900)", "항목": "계장공", "수량": 3.6, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "5대용 (1600×1600×900)", "항목": "보통인부", "수량": 2.39, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "6대용 (1800×1600×900)", "항목": "계장공", "수량": 4.0, "단위": "대" }, + { "명칭": "계기반(현장 · 발신기수납상)", "규격": "6대용 (1800×1600×900)", "항목": "보통인부", "수량": 2.65, "단위": "대" } ], "주": [ "비고 - 본 품은 완제품 설치기준이며, 이면반이 있을 경우 본 품의 150%를 계상한다.", From 43d72588f6181364ba78425aee15894d97cd9220 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 19 Sep 2026 19:41:59 +0900 Subject: [PATCH 19/19] =?UTF-8?q?fix(M01):=20=EC=8B=9C=ED=97=98=20?= =?UTF-8?q?=EA=B3=84=EC=82=B0=20=EC=88=98=20=EA=B3=A0=EB=A5=B4=EA=B8=B0=20?= =?UTF-8?q?=EA=B8=80=EB=A1=9C=20=EB=B3=B4=EB=83=84=20=C2=B7=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=EC=9D=B4=20=ED=8C=8C=EC=9D=BC=20=EA=B8=80=20=EB=AA=A8?= =?UTF-8?q?=EC=96=91=EC=9D=84=20=EC=A7=80=ED=82=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 화면 [계산] — 고르기 값은 원래 값(수면 수) 그대로 보냄 · 고르기 칸 고칠 때 모두 수면 수로 저장 - 엔진 입력 — 글로 온 수를 고르기 원래 값·Decimal 로 받음 - 저장 — 안 바뀐 요소는 옛 글 그대로(한 줄 요소 한 줄 · 들여쓰기 · 줄바꿈) · 고친 요소만 새로 씀 - 시험 — 13-4-1 글 입력 계산 · 저장 차이가 고친 줄만 · 3-3-1 시험에 지역·보정작업 입력 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01PAdA5ThqmtVSsbzjusk1cJ --- M01_MasterData/M01_MasterData_Store.py | 71 ++++++++++++++++--- M01_MasterData/M01_MasterData_UI_Logic_Api.ts | 2 +- .../M01_MasterData_UI_Logic_Calc.ts | 7 +- .../M01_MasterData_UI_Logic_Edit.ts | 4 +- .../master_data/scripts/master_formula.py | 8 +++ resources/tester/test_m01_api.py | 50 ++++++++++++- 6 files changed, 126 insertions(+), 16 deletions(-) diff --git a/M01_MasterData/M01_MasterData_Store.py b/M01_MasterData/M01_MasterData_Store.py index 9968fd86..da8c108f 100644 --- a/M01_MasterData/M01_MasterData_Store.py +++ b/M01_MasterData/M01_MasterData_Store.py @@ -308,7 +308,8 @@ def save(batch: list[dict]) -> list[dict]: raise StoreError(422, {"errors": new}) out = [] for name in dict.fromkeys(names): - text = dump(after[name]) + old_text = (FOLDER / name).read_bytes().decode("utf-8") + text = keep_shape(old_text, before[name], after[name]) or dump(after[name]) tmp = FOLDER / f".{name}.tmp" tmp.write_text(text, encoding="utf-8", newline="\n") os.replace(tmp, FOLDER / name) @@ -323,20 +324,72 @@ def _atom(v) -> str: return json.dumps(v, ensure_ascii=False) -def _flat(v) -> str: +def _flat(v, tight: bool = False) -> str: if isinstance(v, dict): - return ( - "{ " + ", ".join(f"{_atom(k)}: {_flat(x)}" for k, x in v.items()) + " }" if v else "{}" - ) + if not v: + return "{}" + body = ", ".join(f"{_atom(k)}: {_flat(x, tight)}" for k, x in v.items()) + return "{" + body + "}" if tight else "{ " + body + " }" if isinstance(v, list): - return "[" + ", ".join(_flat(x) for x in v) + "]" + return "[" + ", ".join(_flat(x, tight) for x in v) + "]" return _atom(v) -def dump(v, indent: int = 0, width: int = 160) -> str: - """UTF-8 · 들여쓰기 2칸 · 한 줄에 들어가는 묶음은 한 줄로.""" +def _skip(text: str, pos: int) -> int: + while text[pos] in " \t\r\n": + pos += 1 + return pos + + +def keep_shape(old_text: str, before: dict, after: dict) -> str | None: + """고친 요소만 새로 씀 — 안 바뀐 요소는 옛 글 그대로(한 줄 요소는 한 줄 · 들여쓰기 · 줄바꿈). + 머리가 바뀌었거나 옛 글을 못 읽으면 None(통째로 dump).""" + key = items_key(after) + head = lambda d: {k: v for k, v in d.items() if k != key} # noqa: E731 + old_items, new_items = before.get(key) or [], after.get(key) or [] + if head(before) != head(after) or not old_items or not new_items: + return None + for m in re.finditer(rf'"{key}"\s*:\s*\[', old_text): # 머리 속 같은 이름 칸은 건너뜀 + spans, pos, dec = [], m.end(), json.JSONDecoder() + try: + while old_text[pos := _skip(old_text, pos)] != "]": + _, end = dec.raw_decode(old_text, pos) + spans.append((pos, end)) + pos = _skip(old_text, end) + pos += old_text[pos] == "," + except (IndexError, ValueError): + return None + if len(spans) == len(old_items): + break + else: + return None + nl = "\r\n" if "\r\n" in old_text else "\n" + lead = old_text[m.end() : spans[0][0]] + indent = len(lead) - len(lead.rstrip(" ")) + olds = {str(r.get("열쇠")): (r, old_text[s:e]) for r, (s, e) in zip(old_items, spans)} + shape, parts = old_text[spans[0][0] : spans[0][1]], [] + for row in new_items: + was, text = olds.get(str(row.get("열쇠")), (None, None)) + shape = text or shape + if was == row: + parts.append(text) + elif "\n" not in shape: + parts.append(_flat(row, tight=shape.startswith('{"'))) + else: + parts.append(dump(row, indent, expand=True).replace("\n", nl)) + out = old_text[: m.end()] + lead + ("," + lead).join(parts) + old_text[spans[-1][1] :] + same = json.loads(out, parse_float=Decimal, parse_int=Decimal) == after + return out if same else None + + +def dump(v, indent: int = 0, width: int = 160, expand: bool = False) -> str: + """UTF-8 · 들여쓰기 2칸 · 한 줄에 들어가는 묶음은 한 줄로(expand 면 첫 층은 펼침).""" flat = _flat(v) - if indent and len(flat) + indent <= width or not isinstance(v, (dict, list)) or not v: + if ( + not isinstance(v, (dict, list)) + or not v + or (not expand and indent and len(flat) + indent <= width) + ): return flat + ("" if indent else "\n") pad = " " * (indent + 2) if isinstance(v, dict): diff --git a/M01_MasterData/M01_MasterData_UI_Logic_Api.ts b/M01_MasterData/M01_MasterData_UI_Logic_Api.ts index 4f559904..58087282 100644 --- a/M01_MasterData/M01_MasterData_UI_Logic_Api.ts +++ b/M01_MasterData/M01_MasterData_UI_Logic_Api.ts @@ -9,7 +9,7 @@ import { API_BASE_URL } from "@config/config_frontend"; export interface LogicInput { 이름: string; 단위?: string; - 고르기?: string[]; + 고르기?: (string | number)[]; 범위?: [number, number]; } export interface HoLine { diff --git a/M01_MasterData/M01_MasterData_UI_Logic_Calc.ts b/M01_MasterData/M01_MasterData_UI_Logic_Calc.ts index 56bcb9b8..23138cdd 100644 --- a/M01_MasterData/M01_MasterData_UI_Logic_Calc.ts +++ b/M01_MasterData/M01_MasterData_UI_Logic_Calc.ts @@ -34,7 +34,7 @@ export function buildCalc(host: HTMLElement, ctx: CalcContext): void { let control: HTMLInputElement | HTMLSelectElement; if (spec.고르기?.length) { control = el("select", { className: "m01-logic__input" }); - for (const option of ["", ...spec.고르기]) { + for (const option of ["", ...spec.고르기.map(String)]) { control.append(el("option", { text: option, attrs: { value: option } })); } } else { @@ -59,7 +59,10 @@ export function buildCalc(host: HTMLElement, ctx: CalcContext): void { for (const spec of ctx.row.입력 ?? []) { const raw = (ctx.values[spec.이름] ?? "").trim(); if (raw === "") continue; // 빈 칸은 안 보냄 — 엔진이 「입력 없음」 으로 멈춤 - inputs[spec.이름] = spec.고르기?.length || Number.isNaN(Number(raw)) ? raw : Number(raw); + // 고르기는 원래 값(수면 수) 그대로 — 글 "35" 로 보내면 「고르기 밖」 + const option = spec.고르기?.find((o) => String(o) === raw); + inputs[spec.이름] = + option !== undefined ? option : Number.isNaN(Number(raw)) ? raw : Number(raw); } const draft = ctx.dirty() || ctx.savedKey === null; try { diff --git a/M01_MasterData/M01_MasterData_UI_Logic_Edit.ts b/M01_MasterData/M01_MasterData_UI_Logic_Edit.ts index 38fd879f..d3df84d7 100644 --- a/M01_MasterData/M01_MasterData_UI_Logic_Edit.ts +++ b/M01_MasterData/M01_MasterData_UI_Logic_Edit.ts @@ -228,7 +228,9 @@ function inputsSection( .split(",") .map((x) => x.trim()) .filter(Boolean); - if (items.length) spec.고르기 = items; + // 모두 수면 수로 — 글 "35" 로 적으면 표의 35 와 안 맞음 + const numbers = items.every((x) => !Number.isNaN(Number(x))); + if (items.length) spec.고르기 = numbers ? items.map(Number) : items; else delete spec.고르기; }), ), diff --git a/resources/master_data/scripts/master_formula.py b/resources/master_data/scripts/master_formula.py index d87ab5f9..85967f56 100644 --- a/resources/master_data/scripts/master_formula.py +++ b/resources/master_data/scripts/master_formula.py @@ -382,6 +382,14 @@ def _inputs(row: dict, given: dict) -> dict: if name not in given: raise FormulaError(f"「{row['열쇠']}」 입력 「{name}」 없음") value = given[name] + if isinstance(value, str): # 화면이 글로 보낸 수 — 고르기 원래 값 · 아니면 수로 + if "고르기" in spec: + value = next((o for o in spec["고르기"] if str(o) == value.strip()), value) + else: + try: + value = Decimal(value.strip()) + except ArithmeticError: + pass if isinstance(value, (int, float)): value = Decimal(str(value)) if "고르기" in spec and value not in spec["고르기"]: diff --git a/resources/tester/test_m01_api.py b/resources/tester/test_m01_api.py index dc7621d6..be6b494e 100644 --- a/resources/tester/test_m01_api.py +++ b/resources/tester/test_m01_api.py @@ -23,6 +23,7 @@ LOGIC_BOOK, LOGIC_KEY = ( "건설품셈", "3-3-1 암발파(미진동굴착 TYPE-Ⅰ)", ) # 화약취급공 1016 · 보통인부 1002 +LOGIC_INPUTS = {"지역": "전국평균", "보정작업": "해당 없음"} @pytest.fixture @@ -44,7 +45,8 @@ def _get(client: TestClient, url: str, **params) -> dict: def _calc(client: TestClient, **inputs) -> dict: res = client.post( - "/api/m01/calc", json={"book": LOGIC_BOOK, "key": LOGIC_KEY, "inputs": inputs} + "/api/m01/calc", + json={"book": LOGIC_BOOK, "key": LOGIC_KEY, "inputs": {**LOGIC_INPUTS, **inputs}}, ) assert res.status_code == 200, res.text return res.json() @@ -175,12 +177,19 @@ def test_단가_자동_요소_찾기_저장전_시험계산(client: TestClient) before = _calc(client)["sums"]["계"] half = {**one["logic"], "호표": one["logic"]["호표"][:1]} # 보통인부 줄 뺌 res = client.post( - "/api/m01/calc", json={"book": LOGIC_BOOK, "key": LOGIC_KEY, "inputs": {}, "row": half} + "/api/m01/calc", + json={"book": LOGIC_BOOK, "key": LOGIC_KEY, "inputs": LOGIC_INPUTS, "row": half}, ) lines = res.json()["lines"] assert [x["이름"] for x in lines] == ["화약취급공"] and res.json()["sums"]["계"] < before new = {**half, "열쇠": "새 로직"} - body = {"book": LOGIC_BOOK, "key": "새 로직", "inputs": {}, "row": new, "file": one["file"]} + body = { + "book": LOGIC_BOOK, + "key": "새 로직", + "inputs": LOGIC_INPUTS, + "row": new, + "file": one["file"], + } assert client.post("/api/m01/calc", json=body).json()["ok"] is True assert (store.FOLDER / one["file"]).read_bytes() == raw # 시험 계산은 안 씀 @@ -193,6 +202,41 @@ def test_쓰기_모양은_읽은_값과_같음() -> None: assert "\r" not in text and text.endswith("}\n") +def test_시험계산_글로_온_수도_받음(client: TestClient) -> None: + def calc(**inputs): + body = {"book": "산림품셈", "key": "13-4-1 메쌓기", "inputs": inputs} + return client.post("/api/m01/calc", json=body).json() + + base = {"돌": "견치돌", "쌓기": "골쌓기", "높이": 1, "초과증가율": 80} + assert calc(뒷길이=35, **base)["sums"]["계"] == pytest.approx(203281.2) + as_text = calc(**{**base, "뒷길이": "35", "높이": "1"}) + assert as_text["ok"] is True and as_text["sums"]["계"] == pytest.approx(203281.2) + assert "고르기 밖" in calc(뒷길이="36", **base)["reason"] + + +def test_저장은_고친_줄만_바꿈(client: TestClient) -> None: + old = (store.FOLDER / LABOR).read_text(encoding="utf-8").split("\n") + row, version = _labor_row(client, "1016") + change = {"op": "edit", "key": "1016", "row": {**row, "값": row["값"] + 1}} + body = {"files": [{"file": LABOR, "version": version, "changes": [change]}]} + assert client.post("/api/m01/save", json=body).status_code == 200 + new = (store.FOLDER / LABOR).read_text(encoding="utf-8").split("\n") + assert len(new) == len(old) and sum(a != b for a, b in zip(old, new)) == 1 + one = _get(client, "/api/m01/logic", book=LOGIC_BOOK, key=LOGIC_KEY) + path = store.FOLDER / one["file"] + old = path.read_text(encoding="utf-8") + edited = {**one["logic"], "비고": "고침"} + change = {"op": "edit", "key": LOGIC_KEY, "row": edited} + body = {"files": [{"file": one["file"], "version": one["version"], "changes": [change]}]} + assert client.post("/api/m01/save", json=body).status_code == 200 + new = path.read_text(encoding="utf-8") + at = old.index(f'"열쇠": "{LOGIC_KEY}"') + head = old[: old.rfind("\n", 0, at)] # 고친 요소 앞은 글자 그대로 + assert new.startswith(head) and "\r" not in new + tail = old[old.index('"열쇠"', at + 1) :] # 다음 요소부터도 그대로 + assert new.endswith(tail) + + def test_main_은_시스템관리자만() -> None: main = (Path(__file__).resolve().parents[2] / "main.py").read_text(encoding="utf-8") assert "app.include_router(m01_master_data_router, dependencies=system_admin_only)" in main