AutoCAD 2024では、図面内のハッチングから面積(Area)を取得し、データ書き出し機能を利用してCSVなどへ出力できます。しかし、複数のハッチングを自分で順番に選択したにもかかわらず、ExcelでCSVを開くと想定していた順番と違っていることがあります。
これはExcelが勝手に並べ替えているとは限らず、AutoCADのデータ書き出し機能におけるオブジェクトの扱い方が関係しています。特にクリックした順番そのものをデータの並び順として保持したい場合は、標準のデータ書き出しだけでは難しいケースがあります。
この記事では、AutoCAD 2024でハッチングの面積をExcelへ書き出す際に順番が変わる理由と、希望する順番で管理するための現実的な方法を解説します。
AutoCADのデータ書き出しでは選択順がそのまま出力順になるとは限らない
AutoCADには、図面内に存在するオブジェクトやブロックのプロパティを抽出する「データ書き出し(DATAEXTRACTION)」機能があります。ハッチングであれば、面積などのプロパティを表形式のデータとして取り出せるため、数量集計にも便利な機能です。
ただし、データ書き出しで対象オブジェクトを選択した場合、画面上で1個目、2個目、3個目とクリックした順番を、CSVの行番号として保証する機能ではありません。したがって、クリック順に選択したにもかかわらず、書き出した結果が別の順序になっていても、それだけで操作ミスとはいえません。
また、CSVをExcelで開いたこと自体が必ずしも原因ではありません。まずCSVをテキストエディターでも開いてみて、AutoCADから出力された時点ですでに順番が違うのか、Excel側で表示した後に変化したのかを切り分けると原因を確認しやすくなります。
なぜクリックした順番にならないのか
通常のオブジェクト選択では、人間にとっては「左上から右下へ」「部屋番号順」「施工順」といった意味を持たせてクリックできます。しかし、AutoCADのデータ書き出しにとって、そのクリック順は必ずしも各オブジェクトが持つ恒久的な属性ではありません。
例えば、A、B、Cという3個のハッチングをA→B→Cの順番でクリックしたとしても、各ハッチングに「私は1番」「私は2番」「私は3番」というユーザーが意図した連番が自動的に保存されるわけではありません。そのため、抽出処理でA→B→Cという順番を再現できるとは限らないのです。
つまり、確実な並び順が必要なら、クリックした順番に依存するのではなく、並べ替えに使用できる番号などの情報をデータ側に持たせるという考え方が重要になります。
最も管理しやすいのは番号を付けてExcel側で並べ替える方法
ハッチング面積を毎回決められた順番で集計する業務であれば、「選択順」を再現しようとするより、各対象に集計番号を持たせて、その番号で並べ替える仕組みにした方が安定します。
例えば、平面図に「001」「002」「003」「004」のような管理番号を割り当て、Excelへ書き出した後に管理番号を昇順でソートします。こうすれば、図面を選択した順序や内部的なオブジェクトの順序に左右されません。
具体的には、部屋の床面積を集計する場合、「101号室=001」「102号室=002」「103号室=003」のような対応関係を作ります。出力結果が003→001→002になった場合でも、Excelで管理番号を昇順にすれば001→002→003へ戻せます。
| 管理番号 | 対象 | 面積 |
|---|---|---|
| 001 | ハッチングA | 25.50 |
| 002 | ハッチングB | 18.20 |
| 003 | ハッチングC | 31.75 |
実際の設計・積算作業では、単なるクリック順よりも、部屋番号、区画番号、施工番号など意味のあるキーで管理した方が、図面変更後の再集計もしやすくなります。
ハッチング単体に管理番号を持たせにくい場合の方法
ハッチングにはブロック属性のように自由な管理番号を入力して運用する仕組みがそのまま用意されているわけではないため、図面の構成によっては工夫が必要です。
例えば、面積集計の対象となる区画を属性付きブロックなどと組み合わせて管理し、区画番号をデータ書き出しのキーとして利用する方法があります。建築図面なら部屋番号を属性として持つブロックを配置し、その番号を集計上の基準にする考え方です。
一方、一度だけ数個のハッチングを集計する程度なら、CSV出力後にExcelへ「順番」という列を追加して手動で番号を設定する方が早いこともあります。数百個を繰り返し集計するのか、10個程度を一度だけ処理するのかによって最適な方法は変わります。
クリックした順番そのものが必要ならAutoLISPなどで処理する方法もある
業務上どうしても「ユーザーがクリックした1個目をExcelの1行目、2個目を2行目」という仕様にしたい場合は、標準のデータ書き出しに頼らず、AutoLISPなどで専用処理を作成する方法があります。
考え方としては、ハッチングを1個ずつ選択させ、そのたびに選択したオブジェクトの面積を取得し、取得した順番にリストへ追加します。そして最後にCSVへ書き出せば、ユーザーが指定した順番を明示的にデータ化できます。
例えば処理の流れを「ハッチングを選択→面積取得→1行目へ記録→次のハッチングを選択→面積取得→2行目へ記録」とすれば、標準のデータ書き出し機能の並び順に依存しません。
ただし、AutoLISPを使用する場合はプログラムの作成・検証が必要です。単発作業ならExcelで番号を付ける方が簡単ですが、毎週・毎月同じ面積集計を行うのであれば、自動化によって作業時間を大きく短縮できる可能性があります。
座標を使って順番を決める方法もある
「クリック順でなくてもよいが、図面上の位置に従って一定の順番にしたい」という場合には、座標を基準に並べる方法も考えられます。
例えば図面を左から右へ集計したいならX座標、上から下へ集計したいならY座標を利用するという考え方です。位置情報を取得できる構成にしておけば、Excelや独自処理で座標を基準に並べ替えられます。
ただし、ハッチングの形状が複雑だったり、上下左右に入り組んで配置されていたりすると、単純なX・Y座標だけでは人間が期待する順番にならないことがあります。その場合は管理番号を明示的に付ける方が確実です。
データ書き出し後に確認しておきたいポイント
CSVを出力したら、まずAutoCAD側から出たデータとExcelで表示されたデータを比較します。特に「面積の値が正しいか」「対象のハッチングがすべて含まれているか」「不要なオブジェクトが混入していないか」を確認すると安全です。
面積値については図面単位にも注意が必要です。例えば図面をmm単位で作成している場合、取得した面積値と実際に必要な㎡の値との関係を確認する必要があります。並び順だけでなく単位まで含めて検証しておくと、数量集計のミスを防ぎやすくなります。
また、AutoCADのバージョンや更新状況によって画面構成・利用できる機能に差が生じることがあります。実際の操作時にはAutodeskのAutoCADヘルプで「データ書き出し」「DATAEXTRACTION」などの最新仕様を確認するのが確実です。
まとめ:選択順ではなく「並べるための情報」を持たせるのが確実
AutoCAD 2024のデータ書き出しでは、ハッチングを画面上でクリックした順番が、そのままCSVやExcelの行順として保証されるとは限りません。そのため、選択順を前提に面積表を作ると、書き出すたびに期待した並びにならない可能性があります。
実務上は、管理番号・部屋番号・区画番号などを用意し、書き出した後にその値をキーとして並べ替える方法が扱いやすく、再現性も高くなります。位置に規則性があるなら座標を利用する方法も候補になります。
そして、クリックした順番そのものを絶対に維持する必要がある場合は、AutoLISPなどで「1個ずつ選択→面積取得→選択順にCSVへ記録」という専用処理を組む方法が適しています。標準機能で実現しにくい部分を無理に操作で補うより、必要な順番をデータとして明示する仕組みにすると、その後のExcel集計まで安定させやすくなります。


コメント