Claudeで積算の数量拾いをする方法 — 図面PDFから拾い出し表を作る
施工図・設計図のPDFをClaudeに読ませ、数量拾いの拾い出し表と工事内訳書のたたき台を作る手順です。ページ・解像度の上限と、人が検算する範囲を示します。
図面PDFから数量を拾う作業は、Claudeに拾い出し表の下書きを作らせ、人が検算する分担にすると使いやすくなります。Claudeは図面の各ページを画像としても読みますが、小さい画像や回転した画像では誤りが出ることがあり、数える作業も正確とは限りません。そのため、Claudeの出力は確定数量ではなく「根拠ページ付きの候補」として扱います。この記事では、PDFの上限、図面が縮小される条件、拾い出し表の設計、検算の分担を順に書きます。
図面PDFをClaudeに渡せる条件
図面PDFがそのまま通るかどうかは、サイズ・ページ数・暗号化の3点で決まります。要件は次のとおりです。
| 項目 | 上限・条件 |
|---|---|
| リクエストサイズ | 上限・条件32MB(プラットフォームにより異なる) |
| 1リクエストのページ数 | 上限・条件600ページ(コンテキストウィンドウが100万トークン未満のリクエストは100ページ) |
| 形式 | 上限・条件標準的なPDF(パスワード・暗号化なし) |
32MBとページ数は、PDFだけでなくリクエスト全体に掛かります。大きなPDFにはFiles APIで先にアップロードしてfile_idで参照する方法があります。ただし、文字の小さいページや複雑な表、図の多いPDFは、ページ数の上限より前にコンテキストウィンドウを埋めることがあります。図面はこの条件に当てはまりやすい資料です。
実務での対処は2つに絞れます。
- 図面を図面種別ごと(平面図・立面図・詳細図など)に分けたPDFにして、1回の依頼を小さくする
- パスワード付きPDFは、保護を外した複製を作ってから渡す
ページ数やサイズが原因のエラーは、「Could not process PDF」400エラーの原因と対処法に症状別の見分け方があります。チャットアプリとAPIで上限が違う点はClaudeとChatGPTのPDF処理上限の比較で数字を並べています。
図面は画像として読まれる — 解像度の壁
PDFを渡すと、各ページが画像に変換され、ページから抽出した文字が画像と並べて渡されます。寸法線の数字や室名のようにテキストとして埋め込まれた文字は文字情報として渡り、線・記号・ハッチングは画像として読まれます。PDFの費用も、画像と同じ式で計算します。
画像には、モデルごとに最大の長辺とビジュアルトークン数があり、超えると縮小されてから処理されます。
| 解像度の区分 | 対象モデル | 長辺の上限 | ビジュアルトークンの上限 |
|---|---|---|---|
| 高解像度 | 対象モデルClaude 4.7以降のモデル | 長辺の上限2576px | ビジュアルトークンの上限4,784 |
| 標準 | 対象モデルそれ以外のモデル | 長辺の上限1568px | ビジュアルトークンの上限1,568 |
高解像度はクライアント側の設定なしで自動的に効きます。1ビジュアルトークンは28×28ピクセルの区画で、画像の費用は横と縦を28で割って切り上げた数の積です。
図面の寸法に置き換えると、問題の大きさが見えます。A1判の長辺は841mmです。長辺2576pxに縮小されたとすると、1pxは約0.33mm(841÷2576)に当たります。標準区分の1568pxなら約0.54mmです。これは縮小後の画素の粗さを見る目安の試算で、ページ画像が実際に何pxで作られるかはドキュメントに記載がありません。確かなのは、画像が上限より大きければ縮小され、文字が読みにくくなりうることです。縮小で文字が読めなくなる場合は、事前にリサイズや切り出しをします。
切り出しで読み取り精度を上げる
A1やA0の図面を1ページのまま渡すと、細かい注記ほど潰れます。拾いたい範囲だけを切り出して画像で渡せば、同じ上限の中で図面をより大きく読ませられます。
- 平面図は、通り芯で区切った区画ごとに切り出す
- 建具表・仕上表・記号の凡例は、表の部分だけを別の画像にする
- 1回のリクエストで画像が20枚を超えると、1枚ごとの寸法上限が各辺2000pxに下がる(Amazon BedrockとGoogle CloudではPDFも枚数に数える)。切り出しは20枚以内か、各辺2000px以内にそろえる
画像1枚の最大寸法は8000×8000pxです。切り出した画像は、文字が読める大きさのまま渡します。
数量拾いの流れ
作業は、読み取り・表への転記・集計・内訳書への展開に分けて、集計までをClaudeと表計算で行い、確定を人が受け持ちます。
図面PDFから内訳書のたたき台まで
- 1
図面を種別ごとに分ける
平面図・建具表・仕上表などをPDFまたは画像に分けます。表の部分は別に切り出します。
- 2
拾い出し表の列を先に決める
列名をプロンプトに書いておくと、出力が毎回同じ形で返ります。
- 3
Claudeに読み取りを依頼する
根拠のページと位置、読み取りの確からしさも列に含めさせます。
- 4
集計は表計算で行う
Claudeの出した個数をSUMIFSなどで合計し、符号別・階別の数量を別シートに作ります。
- 5
人が検算して確定する
図面と照合した結果を確定列に入れ、内訳書の数量欄へ転記します。
拾い出し表の設計 — 読み取り誤りを前提にする
拾い出し表は、数量の列だけでなく、誤りを見つけるための列を持たせます。
| 列 | 内容 | 目的 |
|---|---|---|
| 図面番号・ページ | 内容どの図面の何ページか | 目的人が図面へ戻る入口 |
| 部位・符号 | 内容建具の符号、壁の種別など | 目的集計のキー |
| 寸法の原文 | 内容図面に書かれた文字そのまま | 目的転記ミスの照合 |
| 数量・単位 | 内容個数、長さ、面積 | 目的候補値 |
| 根拠の位置 | 内容通り芯・凡例など | 目的図面上の場所の特定 |
| 確からしさ | 内容高・中・低 | 目的検算の優先順位 |
| 読めなかった理由 | 内容文字つぶれ・重なりなど | 目的切り出しをやり直す判断 |
「寸法の原文」と「数量」を別の列にするのがこの表の要です。原文が図面と合っていれば転記の誤り、原文が違えば読み取りの誤りと、原因が分かれます。
APIで依頼する場合の組み立て例は、次のとおりです。PDFをテキストより前に置くと、結果が良くなりやすくなります。
import anthropic, base64
client = anthropic.Anthropic()
with open("建具表.pdf", "rb") as f:
pdf = base64.standard_b64encode(f.read()).decode()
prompt = """添付は建具表のPDFです。
符号ごとに次の列でMarkdown表にしてください。
図面ページ | 符号 | 寸法の原文 | 数量 | 確からしさ | 読めなかった理由
・数量は図面に書かれた数字だけを使い、推測で補わないこと。
・読めない箇所は数量を空欄にして、理由を書くこと。"""
message = client.messages.create(
model="claude-opus-5-5", # 使うモデルに置き換える
max_tokens=4096,
messages=[{"role": "user", "content": [
{"type": "document", "source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf}},
{"type": "text", "text": prompt},
]}],
)
print(message.content[0].text)プロンプトの「推測で補わない」「読めない箇所は空欄」は、誤りが見えない値として混ざるのを防ぐ指示です。Claudeに数量を空欄で返させれば、人が確認する箇所が絞れます。
ページ指定は、PDFビューアの論理ページ番号で書きます。図面集の表紙や目次を除いたページ番号で書くと、ずれが出ます。
工事内訳書のたたき台に展開する
拾い出し表が整ったら、工事内訳書の行に展開します。内訳書は、科目・名称・摘要・数量・単位を図面から作り、単価と金額は別の列に空けておきます。単価はClaudeが図面から出せない情報で、自社の過去実績や見積りから人が入れる列です。
展開の指示は、確定した拾い出し表(CSVや貼り付けた表)を渡し、次のように頼みます。
- 科目ごとの小計の並びで内訳書の行を作る
- 名称と摘要は図面の符号・仕様の原文を使い、数量は拾い出し表の確定列をそのまま入れる
- 単価・金額の列は空欄にする
この段階の数量はClaudeが再計算せず、転記だけをさせます。数を数え直させると、転記の途中で値が変わる余地が生まれるためです。
見積りの比較や正規化の側は、Claudeでベンダー見積もりを比較・正規化する方法で扱っています。業者から戻った見積りと、ここで作った内訳書の数量を突き合わせる使い方もできます。
検算の分担 — Claudeに任せる範囲と人が見る範囲
画像認識(vision)の制限のうち、図面作業に関わるのは次の3点です。
- 低品質・回転・200ピクセル未満の小さい画像では、誤りや事実でない内容が出ることがある
- 位置や座標の出力は概算で、使う前に確認する
- 物の数え上げは概算になることがあり、小さい物が多数あるほど不正確になりやすい
最後の点は、数量拾いの中心作業にそのまま関わります。コンセントや照明器具のように、小さい記号が図面に何十と並ぶ場面です。数え上げは、Claudeが出した個数を人が確定する前提で使います。
| 作業 | Claudeに任せる | 人が見る |
|---|---|---|
| 表の文字の転記(建具表・仕上表) | Claudeに任せる転記と列への整理 | 人が見る寸法の原文を図面と照合 |
| 記号の個数の数え上げ | Claudeに任せる候補数と位置の列挙 | 人が見る符号ごとに図面を数え直す |
| 長さ・面積の読み取り | Claudeに任せる寸法線の数値の抽出 | 人が見る縮尺と寸法の整合 |
| 集計 | Claudeに任せる表計算の式の作成 | 人が見る合計の独立した再計算 |
| 内訳書への展開 | Claudeに任せる行の整形・転記 | 人が見る単価・金額・数量の最終確認 |
| 図面間の整合 | Claudeに任せる食い違い候補の指摘 | 人が見る設計変更・版の確認 |
検算では、次のような方法が効きます。
- 数え上げた符号の個数を、凡例や建具表の記載数と照合する
- 同じ図面を別の切り出しでもう一度読ませ、2回の結果の差を見る
- 確からしさが低い行と読めなかった行を、先に図面で確認する
- 階ごと・区画ごとの合計を、別の方法で出した概算(面積×原単位など)と比べる
2回の読み取りで値が割れた行は、どちらも信用せず図面へ戻ります。一致した行も、同じ誤読が重なった可能性は残るため、サンプルを抜いて図面と見比べます。
建築設計の図書に責任が及ぶ範囲は建築士がClaudeでAIレビューしても記名の責任は消えない理由に、施工側の書類で任せられる工程は施工体制台帳・安全書類の作成にClaudeはどこまで使えるかに整理があります。積算でも、数量を確定して内訳書に署名する側が確認の責任を持つ点は変わりません。
日本語の図面でつまずきやすい点
読み取りの失敗は、症状から原因を絞れます。
- 寸法の数字だけ抜ける: スキャン画像のPDFでは埋め込み文字がなく、画像としてだけ読まれます。切り出して拡大した画像で読み直します
- 縦書きや斜めの文字が崩れる: 回転した画像は誤りが出やすい条件です。ページを上向きに直してから渡します
- 凡例にない記号が混ざる: 符号の一覧を先にテキストで渡し、一覧にない記号は「不明」と返させます
- 日本語の読み取り精度そのもの: 項目ごとの正解率を測る手順は、Claude VisionでOCRした日本語PDFの精度をどう見極めるかにあります
標準的なフォントで明瞭に出力されたPDFのほうが、結果が安定します。CADから出すPDFは、文字を埋め込んだ状態で書き出すのが無難です。
費用の見積もり
PDFの費用は、抽出されたテキストと各ページの画像で決まります。テキストは1ページあたり1,500〜3,000トークン程度、これに画像のトークンが加わります。PDF専用の追加料金はありません。図面は1ページが画像のトークン上限に近づくことが多いため、ページ数が増えると費用も比例して増えます。
同じ図面を何度も読ませる場合は、プロンプトキャッシュを有効にして、繰り返しの分析の性能を上げられます。実際の見積もりは、トークンカウントで自分のPDFを測ります。件数の多い図面集を非同期でまとめて処理したいときは、バッチ処理も選べます。
まとめ
Claudeに任せて効果が出るのは、図面から表への転記と、確認すべき行の絞り込みです。数え上げと長さ・面積の読み取りは概算に留まる前提で、根拠ページ・寸法の原文・確からしさを列に持たせ、人が図面で確定します。A1やA0の図面は、切り出して渡すほうが縮小の影響を受けにくくなります。単価と金額は最後まで人の列に置いておくと、責任の所在が表の構造で分かります。