import os, sys, re sys.stdout.reconfigure(encoding='utf-8') # 1. 01_공통부문/제2장_가설공사.md ch2_path = "resources/knowledge/original/원가계산/건설공사_표준품셈/01_공통부문/제2장_가설공사.md" with open(ch2_path, 'r', encoding='utf-8') as f: text2 = f.read() # Fix 2-8-7 target_2_8_7 = "2-8-7 철골 안전망 설치 및 해체('18년 보완)(10㎡당)구 분단위수 량비계공인0.17보통인부인0.05[주] ① 본 품은 철골공사 시공 중 철골사이에 설치되는 안전망의 설치 및 해체 작업 기준이다." repl_2_8_7 = """2-8-7 철골 안전망 설치 및 해체('18년 보완) (10㎡당) | 구 분 | 단 위 | 수 량 | |---|---|---| | 비계공 | 인 | 0.17 | | 보통인부 | 인 | 0.05 | [주] ① 본 품은 철골공사 시공 중 철골사이에 설치되는 안전망의 설치 및 해체 작업 기준이다.""" # Fix 2-8-10 target_2_8_10 = "2-8-10 수직형 추락방망 설치 및 해체('20년 신설)(10개소당)개구부 면적구 분단 위1.0㎡이하1.0~3.0㎡이하3.0~6.0㎡이하6.0~9.0㎡이하9.0~12.0㎡이하비계공인0.490.631.011.301.60[주] ① 본 품은 창호, 발코니 등 개구부에 추락의 위험을 방지하기 위한 수직형 방망을 설치 및 해체하는 기준이다." repl_2_8_10 = """2-8-10 수직형 추락방망 설치 및 해체('20년 신설) (10개소당) | 구 분 | 단 위 | 개구부 면적 | | | | | |---|---|---|---|---|---|---| | | | 1.0㎡이하 | 1.0~3.0㎡이하 | 3.0~6.0㎡이하 | 6.0~9.0㎡이하 | 9.0~12.0㎡이하 | | 비계공 | 인 | 0.49 | 0.63 | 1.01 | 1.30 | 1.60 | [주] ① 본 품은 창호, 발코니 등 개구부에 추락의 위험을 방지하기 위한 수직형 방망을 설치 및 해체하는 기준이다.""" # Fix 2-11-5 target_2_11_5 = "2-11-5 비산먼지 발생 억제를 위한 살수('02년 신설, '09년 보완)(100㎡당)구 분규 격단 위수 량물탱크(살수차)16,000ℓ시간0.008[주] ① 본 품은 공사현장의 비산먼지 발생억제를 위하여 물탱크(살수차)로 살수하는 품이다." repl_2_11_5 = """2-11-5 비산먼지 발생 억제를 위한 살수('02년 신설, '09년 보완) (100㎡당) | 구 분 | 규 격 | 단 위 | 수 량 | |---|---|---|---| | 물탱크(살수차) | 16,000ℓ | 시간 | 0.008 | [주] ① 본 품은 공사현장의 비산먼지 발생억제를 위하여 물탱크(살수차)로 살수하는 품이다.""" # Fix 2-11-7 target_2_11_7 = "2-11-7 슬러지 제거('19년 신설)(회당)구 분규 격단 위수 량특별인부인0.63굴착기0.2㎥hr1.00[주] ① 본 품은 자동세륜기(슬러지함 2.0×1.2×1.2m) 슬러지를 제거하는 기준이다." repl_2_11_7 = """2-11-7 슬러지 제거('19년 신설) (회당) | 구 분 | 규 격 | 단 위 | 수 량 | |---|---|---|---| | 특별인부 | | 인 | 0.63 | | 굴착기 | 0.2㎥ | hr | 1.00 | [주] ① 본 품은 자동세륜기(슬러지함 2.0×1.2×1.2m) 슬러지를 제거하는 기준이다.""" # Replace page header attachments text2 = text2.replace("인력품의 2%로 계상한다.52공통부문\n" + target_2_8_7, "인력품의 2%로 계상한다.\n\n52 공통부문\n\n" + repl_2_8_7) text2 = text2.replace(target_2_8_7, repl_2_8_7) text2 = text2.replace("1회사용 후 100%로 한다.53제2장 가설공사\n" + target_2_8_10, "1회사용 후 100%로 한다.\n\n53 제2장 가설공사\n\n" + repl_2_8_10) text2 = text2.replace(target_2_8_10, repl_2_8_10) text2 = text2.replace(target_2_11_5, repl_2_11_5) text2 = text2.replace("인력품의 2%로 계상한다.62공통부문\n" + target_2_11_7, "인력품의 2%로 계상한다.\n\n62 공통부문\n\n" + repl_2_11_7) text2 = text2.replace(target_2_11_7, repl_2_11_7) # Clean up L348 & L371 embedded table residue in 비고 target_bg1 = "비 고 | - 수평연결재가 필요한 경우는 다음과 같이 계상한다. (1단 설치일 때, ㎡당 구 분 규 격 단 위 수 량 형 틀 목 공 설치, 해체 인 0.02 보 통 인 부 설치, 해체 인 0.01 ※ 전체동바리 연결을 기준으로 산정된 것이다. - 설치간격에 따라 시공량에 다음 요율을 적용한다. 설치간격 0.6m이하 0.6m초과∼0.8m이하 0.8m초과 요 율 - 17% - + 11% ※ 설치간격은 멍에간격을 기준한 것이다." repl_bg1 = "비 고 | - 수평연결재가 필요한 경우는 다음과 같이 계상한다. (1단 설치일 때, ㎡당, 아래 표 참조) ※ 전체동바리 연결을 기준으로 산정된 것이다. - 설치간격에 따라 시공량에 다음 요율을 적용한다. (아래 표 참조) ※ 설치간격은 멍에간격을 기준한 것이다." text2 = text2.replace(target_bg1, repl_bg1) target_bg2 = "비 고 | - 수평연결재가 필요한 경우는 다음과 같이 계상한다. (1단설치일 때, ㎡당 구 분 규 격 단 위 수 량 형 틀 목 공 설치, 해체 인 0.02 보 통 인 부 설치, 해체 인 0.01 ※ 전체동바리 연결을 기준으로 산정된 것이다. - 설치간격에 따라 시공량에 다음 요율을 적용한다. 설치간격 0.6m이하 0.6m초과∼0.8m이하 0.8m초과 요 율 - 17% - + 11% ※ 설치간격은 멍에간격을 기준한다." repl_bg2 = "비 고 | - 수평연결재가 필요한 경우는 다음과 같이 계상한다. (1단설치일 때, ㎡당, 아래 표 참조) ※ 전체동바리 연결을 기준으로 산정된 것이다. - 설치간격에 따라 시공량에 다음 요율을 적용한다. (아래 표 참조) ※ 설치간격은 멍에간격을 기준한다." text2 = text2.replace(target_bg2, repl_bg2) with open(ch2_path, 'w', encoding='utf-8') as f: f.write(text2) print("Updated 제2장_가설공사.md successfully.") # 2. 01_공통부문/제4장_조경공사.md ch4_path = "resources/knowledge/original/원가계산/건설공사_표준품셈/01_공통부문/제4장_조경공사.md" with open(ch4_path, 'r', encoding='utf-8') as f: text4 = f.read() target_4_4_4 = "4-4-4 야자섬유매트포장('22년 신설, '24년 보완)(일당)시공량(㎡)구 분단 위수 량폭 1.5m이하폭 2.0m이하조경공인290130보통인부인1[주] ① 본 품은 설치위치의 토공사가 완료된 상태에서 야자섬유매트로 포장하는 기준이다." repl_4_4_4 = """4-4-4 야자섬유매트포장('22년 신설, '24년 보완) (일당) | 구 분 | 단 위 | 수 량 | 시공량(㎡) | | |---|---|---|---|---| | | | | 폭 1.5m이하 | 폭 2.0m이하 | | 조경공 | 인 | 2 | 90 | 130 | | 보통인부 | 인 | 1 | | | [주] ① 본 품은 설치위치의 토공사가 완료된 상태에서 야자섬유매트로 포장하는 기준이다.""" text4 = text4.replace(target_4_4_4, repl_4_4_4) with open(ch4_path, 'w', encoding='utf-8') as f: f.write(text4) print("Updated 제4장_조경공사.md successfully.") # 3. 01_공통부문/제5장_기초공사.md ch5_path = "resources/knowledge/original/원가계산/건설공사_표준품셈/01_공통부문/제5장_기초공사.md" with open(ch5_path, 'r', encoding='utf-8') as f: text5 = f.read() target_5_1_3 = "- ⑥ 장비(크레인)의 규격은 작업여건(시공높이, 시공위치 등) 및 안전율(적정하중, 작업반경 등)을 고려하여적합한 규격을 적용한다.99제5장 기초공사5-1-3 H-Beam 설치(버팀보)('26년 보완)(일당)시공량(본)구 분단 위수 량규격(m)H=250∼500H=600∼8005m이하1210철골공인36~8m119용접공인29~11m108보통인부인112~14m97크레인대115~18m86[주] ① 본 품은 수평지보공(H-Beam)의 버팀보 설치 품이다." repl_5_1_3 = """- ⑥ 장비(크레인)의 규격은 작업여건(시공높이, 시공위치 등) 및 안전율(적정하중, 작업반경 등)을 고려하여적합한 규격을 적용한다. 99 제5장 기초공사 5-1-3 H-Beam 설치(버팀보)('26년 보완) (일당) | 구 분 | 단 위 | 수 량 | 규격(m) | 시공량(본) | | |---|---|---|---|---|---| | | | | | H=250∼500 | H=600∼800 | | 철골공 | 인 | 3 | 5m이하 | 12 | 10 | | 용접공 | 인 | 2 | 6~8m | 11 | 9 | | 보통인부 | 인 | 1 | 9~11m | 10 | 8 | | 크레인 | 대 | 1 | 12~14m | 9 | 7 | | | | | 15~18m | 8 | 6 | [주] ① 본 품은 수평지보공(H-Beam)의 버팀보 설치 품이다.""" target_5_1_8 = "5-1-8 복공판 설치·철거('25년 신설)(일당)시공량(㎡)구 분단 위수 량설치철거철골공인2용접공인2120170보통인부인1크레인대1[주] ① 본 품은 주형보 상부에 복공판을 설치 및 철거하는 기준이다." repl_5_1_8 = """5-1-8 복공판 설치·철거('25년 신설) (일당) | 구 분 | 단 위 | 수 량 | 시공량(㎡) | | |---|---|---|---|---| | | | | 설치 | 철거 | | 철골공 | 인 | 2 | 120 | 170 | | 용접공 | 인 | 2 | | | | 보통인부 | 인 | 1 | | | | 크레인 | 대 | 1 | | | [주] ① 본 품은 주형보 상부에 복공판을 설치 및 철거하는 기준이다.""" target_5_pbd1 = "- 2. 장비조립 및 해체(회당)구 분단 위수 량기계설비공인1인력철공〃2특별인부〃1장비크레인대1조립일2소요일수해체일1[주] ① 본 품은 PBD천공기를 1회 조립 및 해체하는 기준이며, 시공조건(외부 반입/반출)에 따라 조립․해체를 반복 적용한다." repl_5_pbd1 = """- 2. 장비조립 및 해체(회당) | 구 분 | 단 위 | 수 량 | |---|---|---| | 기계설비공 | 인 | 1 | | 철공 | 인 | 2 | | 특별인부 | 인 | 1 | | 크레인 | 대 | 1 | | 조립 | 일 | 2 | | 해체 | 일 | 1 | [주] ① 본 품은 PBD천공기를 1회 조립 및 해체하는 기준이며, 시공조건(외부 반입/반출)에 따라 조립․해체를 반복 적용한다.""" target_5_pbd2 = "- 3. 장비 및 인력편성구 분규 격단 위수 량특별인부인2보통인부〃1PBD천공기147㎾, 38m(리더길이)대1[주] ① 부속장비(자동기록기, 계측기, 맨드릴 등)의 경비는 인력품에 다음 요율을 적용한다." repl_5_pbd2 = """- 3. 장비 및 인력편성 | 구 분 | 규 격 | 단 위 | 수 량 | |---|---|---|---| | 특별인부 | | 인 | 2 | | 보통인부 | | 인 | 1 | | PBD천공기 | 147㎾, 38m(리더길이) | 대 | 1 | [주] ① 부속장비(자동기록기, 계측기, 맨드릴 등)의 경비는 인력품에 다음 요율을 적용한다.""" target_5_pbd3 = "- 2. 장비조립・해체(회당)구 분단 위외부 반출/반입작업구간내 이동기계설비공인11철공〃22특별인부〃11크레인대11조립일32소요일수해체〃1.51" repl_5_pbd3 = """- 2. 장비조립・해체(회당) | 구 분 | 단 위 | 외부 반출/반입 | 작업구간내 이동 | |---|---|---|---| | 기계설비공 | 인 | 1 | 1 | | 철공 | 인 | 2 | 2 | | 특별인부 | 인 | 1 | 1 | | 크레인 | 대 | 1 | 1 | | 조립 | 일 | 3 | 2 | | 해체 | 일 | 1.5 | 1 |""" text5 = text5.replace(target_5_1_3, repl_5_1_3) text5 = text5.replace(target_5_1_8, repl_5_1_8) text5 = text5.replace(target_5_pbd1, repl_5_pbd1) text5 = text5.replace(target_5_pbd2, repl_5_pbd2) text5 = text5.replace(target_5_pbd3, repl_5_pbd3) # L150 주석 안 좌대 설치 및 해체 target_5_base = "- 좌대 설치 및 해체가 필요한 경우 다음 품을 적용한다. (일당) 시공량(개소) 구 분 단 위 수 량 설치 해체 철 공 인 1 18 35 보 통 인 부 인 1" repl_5_base = """- 좌대 설치 및 해체가 필요한 경우 다음 품을 적용한다. (일당) | 구 분 | 단 위 | 수 량 | 시공량(개소) | | |---|---|---|---|---| | | | | 설치 | 해체 | | 철공 | 인 | 1 | 18 | 35 | | 보통인부 | 인 | 1 | | |""" text5 = text5.replace(target_5_base, repl_5_base) with open(ch5_path, 'w', encoding='utf-8') as f: f.write(text5) print("Updated 제5장_기초공사.md successfully.") # 4. 01_공통부문/제6장_철근콘크리트공사.md ch6_path = "resources/knowledge/original/원가계산/건설공사_표준품셈/01_공통부문/제6장_철근콘크리트공사.md" with open(ch6_path, 'r', encoding='utf-8') as f: text6 = f.read() target_6_slip = "- 1. 설치 및 해체(㎡당)설 치해 체구 분단 위수 량구 분단 위수 량비계공인0.199특수비계공인0.154보통인부인0.091보통인부인0.064크레인hr0.132 크레인hr0.170[주] ① 슬립폼 제작비용은 별도계상하되, 단면형상은 고정단면을 기준으로 한 것이다." repl_6_slip = """- 1. 설치 및 해체(㎡당) | 설 치 | | | 해 체 | | | |---|---|---|---|---|---| | 구 분 | 단 위 | 수 량 | 구 분 | 단 위 | 수 량 | | 비계공 | 인 | 0.199 | 특수비계공 | 인 | 0.154 | | 보통인부 | 인 | 0.091 | 보통인부 | 인 | 0.064 | | 크레인 | hr | 0.132 | 크레인 | hr | 0.170 | [주] ① 슬립폼 제작비용은 별도계상하되, 단면형상은 고정단면을 기준으로 한 것이다.""" target_6_socket = "- 2. 소켓 연결(m당)구 분단 위수 량특별인부인0.085보통인부인0.029[주] ① 본 품은 지수판 연결재(소켓)를 사용한 지수판 설치를 기준한 것이다." repl_6_socket = """- 2. 소켓 연결(m당) | 구 분 | 단 위 | 수 량 | |---|---|---| | 특별인부 | 인 | 0.085 | | 보통인부 | 인 | 0.029 | [주] ① 본 품은 지수판 연결재(소켓)를 사용한 지수판 설치를 기준한 것이다.""" target_6_grout = "- 7. 그라우팅(일당)구 분규 격단 위수 량시공량(㎥)기계설비공인1인력특별인부인3보통인부인11.50그라우팅 믹서190×2ℓ대1장비그라우팅 펌프30~60ℓ/min대1[주] ① 본 품은 쉬즈관 내부 그라우팅 작업 기준이다." repl_6_grout = """- 7. 그라우팅(일당) | 구 분 | 규 격 | 단 위 | 수 량 | 시공량(㎥) | |---|---|---|---|---| | 기계설비공 | | 인 | 1 | 1.50 | | 특별인부 | | 인 | 3 | | | 보통인부 | | 인 | 1 | | | 그라우팅 믹서 | 190×2ℓ | 대 | 1 | | | 그라우팅 펌프 | 30~60ℓ/min | 대 | 1 | | [주] ① 본 품은 쉬즈관 내부 그라우팅 작업 기준이다.""" target_6_anchor = "- 2. 정착구 설치(개당)수 량(쉬즈관 규격)구 분단 위 ø75㎜ 이하ø100㎜ 이하ø130㎜ 이하형틀목공인0.380.480.61보통인부인0.180.230.29비고" repl_6_anchor = """- 2. 정착구 설치(개당) | 구 분 | 단 위 | 수 량 (쉬즈관 규격) | | | 비 고 | |---|---|---|---|---|---| | | | ø75㎜ 이하 | ø100㎜ 이하 | ø130㎜ 이하 | | | 형틀목공 | 인 | 0.38 | 0.48 | 0.61 | | | 보통인부 | 인 | 0.18 | 0.23 | 0.29 | |""" target_6_sheath = "- 3. 쉬즈관 설치(m당)수 량(쉬즈관 규격)구 분단위ø75㎜ 이하ø100㎜이하ø130㎜이하철근공인0.030.050.07보통인부인0.020.020.03[주] ① 본 품은 쉬즈관을 철근에 연결하여 설치하는 기준이다." repl_6_sheath = """- 3. 쉬즈관 설치(m당) | 구 분 | 단 위 | 수 량 (쉬즈관 규격) | | | |---|---|---|---|---| | | | ø75㎜ 이하 | ø100㎜ 이하 | ø130㎜ 이하 | | 철근공 | 인 | 0.03 | 0.05 | 0.07 | | 보통인부 | 인 | 0.02 | 0.02 | 0.03 | [주] ① 본 품은 쉬즈관을 철근에 연결하여 설치하는 기준이다.""" text6 = text6.replace(target_6_slip, repl_6_slip) text6 = text6.replace(target_6_socket, repl_6_socket) text6 = text6.replace(target_6_grout, repl_6_grout) text6 = text6.replace(target_6_anchor, repl_6_anchor) text6 = text6.replace(target_6_sheath, repl_6_sheath) with open(ch6_path, 'w', encoding='utf-8') as f: f.write(text6) print("Updated 제6장_철근콘크리트공사.md successfully.") # 5. 01_공통부문/제7장_돌공사.md ch7_path = "resources/knowledge/original/원가계산/건설공사_표준품셈/01_공통부문/제7장_돌공사.md" with open(ch7_path, 'r', encoding='utf-8') as f: text7 = f.read() target_7_4_2 = "7-4-2 앵커 긴결공법('19, '26년 보완)(일당)시공량(㎡)구 분단 위수 량0.3㎡이하0.3㎡초과~0.8㎡이하석공인3줄눈공인11011보통인부인2[주] ① 본 품은 구조물 벽체에 앵커로 고정하여 석재판(비구조요소)을 설치하는 기준이다." repl_7_4_2 = """7-4-2 앵커 긴결공법('19, '26년 보완) (일당) | 구 분 | 단 위 | 수 량 | 시공량(㎡) | | |---|---|---|---|---| | | | | 0.3㎡이하 | 0.3㎡초과~0.8㎡이하 | | 석공 | 인 | 3 | 10 | 11 | | 줄눈공 | 인 | 1 | | | | 보통인부 | 인 | 2 | | | [주] ① 본 품은 구조물 벽체에 앵커로 고정하여 석재판(비구조요소)을 설치하는 기준이다.""" text7 = text7.replace(target_7_4_2, repl_7_4_2) with open(ch7_path, 'w', encoding='utf-8') as f: f.write(text7) print("Updated 제7장_돌공사.md successfully.")