教學/塊屬性
在多個 DWG 檔案中編輯圖塊屬性 — AutoCAD 內建的方法,以及各自的適用界線
更新於 October 3, 2026

你需要修改不只一張圖面裡的圖塊屬性:修訂字母、客戶名稱、圖號、標籤。一張一張地改當然可以,但很慢,而且改到 150 張裡的第 140 張時很容易出錯。AutoCAD 確實有幾種方法可以觸及多張圖面,每一種都只適合特定的情況。
本指南先說明 AutoCAD 提供了什麼、每種方法適合做什麼、又在哪裡到頭;接著用 BlockSync 的 Excel 往返流程完成同一件事。如果只有一兩張圖面,ATTEDIT 是最快的工具,看到第 1 步就可以了。
1. 在目前的圖面中編輯屬性
ATTEDIT 及其指令列形式 -ATTEDIT 用來編輯目前開啟圖面中的屬性值。-ATTEDIT 可以逐一編輯屬性,也可以全域編輯:把你選取的屬性中的一個文字字串取代為另一個。兩種方式都可以依圖塊名稱、屬性標籤或屬性值縮小範圍,而且屬性值區分大小寫。
這一切都發生在單一圖面之內。如果只是改一個標題欄,或某張圖的一次修訂,這是最快的辦法。
2. 圖紙集:透過欄位更新多張圖面
如果你的圖面屬於某個圖紙集,圖紙集管理員可以一次更新所有圖紙的標題欄屬性。前提是標題欄裡的屬性包含指向圖紙集屬性的欄位(專案名稱、圖紙編號、圖紙標題,或你自己的自訂屬性)。修改某個屬性後,用「Resave All Sheets」就會更新每張圖紙裡的標題欄文字。
條件合適時,這是最乾淨的辦法,而且能給每張圖紙各自的圖紙編號與標題,因為這些本來就是每張圖紙的屬性。代價在於前置設定:圖紙集必須已經存在,屬性必須已用欄位定義。已經帶著純文字屬性的圖面、舊專案的封存圖面,或從別人那裡收到的圖面,在轉換之前都不在涵蓋範圍內。
3. 指令檔:在每張圖面裡執行相同的指令
執行 -ATTEDIT 的指令檔(.scr)可以透過批次指令檔執行器套用到一批圖面上,例如 Autodesk 的 ScriptPro,它是另外下載的,不屬於 AutoCAD。執行器依序開啟每張圖面並在其中執行指令檔,如果指令檔包含儲存指令,就在最後儲存。
由於每張圖面收到的指令都一樣,這種方法適合「所有圖面裡的值都相同」的修改:新的客戶名稱、新的公司地址、更正後的專案階段。它不適合每張圖面取值不同的情況,例如圖紙編號、圖名或標籤,除非你再加程式碼,為每個檔案讀取對應的值。
4. ATTOUT 與 ATTIN:針對一張圖面的文字檔
Express Tools 中的 ATTOUT 與 ATTIN 指令會把一張圖面的屬性值匯出為文字檔,再把編輯後的檔案讀回來。這樣可以在 AutoCAD 之外編輯數值,但每次執行只涵蓋一張圖面,一百張圖面就要把這個往返重複一百次。
5. LISP 或 .NET:自己寫缺少的那一塊
LISP 常式或 .NET 外掛程式可以開啟每張圖面、查出正確的值並寫入,什麼情況都能涵蓋。但這也表示得有人來寫、在真實圖面上測試、讓它跨 AutoCAD 版本持續可用,並在它出問題時隨時在場。有這樣一個人的團隊能得到恰好需要的東西;沒有的團隊往往又退回手動編輯。
6. 用 BlockSync 完成同樣的事:匯出、在 Excel 中編輯、預覽、寫回
BlockSync 直接處理現成的圖面,不需要圖紙集,也不需要寫程式碼。加入圖面,勾選你要的圖塊(例如標題欄),按下 Extract to Excel。你會得到一個活頁簿,跨所有檔案、每個圖塊一列。
像編輯一般試算表一樣編輯這個活頁簿。把修訂字母沿著一欄往下填滿,用公式根據檔案名稱產生圖紙編號,或把一份新標籤清單貼到舊標籤旁邊。每一列都有自己的值,所以「每張圖面一個不同的值」和「所有圖面同一個值」一樣容易。
切換到 Excel → AutoCAD,把 BlockSync 指向這個活頁簿與圖面,然後檢視差異預覽。它會列出每個即將變更的屬性,包括舊值、新值、圖塊與控點,在你確認之前不會寫入任何內容。自動備份預設開啟,BlockSync 會把每個變更的屬性從圖面中讀回來核對,一旦發現問題,Rollback All 可以還原整次執行。
7. 到底該用哪一種?
這幾種方法沒有哪一種是錯的,它們對應不同的情況。真正該問的是:你有多少張圖面、各圖面的值是否不同、圖面事先是否為自動化做過準備。
標題欄這個情境及每個畫面的截圖,請看「批次更新多張圖面的標題欄」那篇指南。完整的設定清單請看 BlockSync 文件。
開始之前 — 常見問題
- ATTEDIT 能一次編輯多張圖面的屬性嗎?
- 不能。ATTEDIT 與 -ATTEDIT 只作用於目前開啟的圖面。要觸及多張圖面,需要帶欄位的圖紙集、對一批圖面執行的指令檔,或能替你開啟檔案的工具。
- 能為每張圖面填入不同的值嗎,例如各自的圖號?
- 可以,但需要相應的前置設定。標題欄裡帶欄位的圖紙集,可以為每張圖紙提供不同的圖紙編號與標題。指令檔對每張圖面執行相同的指令,所以不同的值需要額外的程式碼。在 BlockSync 中,Excel 表的每一列都有自己的值,所以每張圖面都可以得到不同的值。
- 圖面必須屬於圖紙集才能使用 BlockSync 嗎?
- 不需要。BlockSync 直接從資料夾中的一般 DWG 檔案讀取圖塊屬性,無論它們是否屬於圖紙集,也無論屬性裡有沒有欄位。來自欄位的值不會被寫回;這些列會被標記為 Blocked 並略過,其餘部分繼續執行。
- 它會在我檢查結果之前就變更圖面嗎?
- 不會。差異預覽會列出每個即將變更的屬性,在你確認之前不會寫入任何內容。自動備份預設開啟,Rollback All 可以還原本次執行涉及的所有檔案。
- 它能用於 AutoCAD LT 嗎?
- 不能。BlockSync 需要 Windows 上的正版完整版 AutoCAD 2021–2027,因為 LT 無法執行它所依賴的背景自動化。