CADXChange
購買

教學/塊屬性

在多個 DWG 檔案中編輯圖塊屬性 — AutoCAD 內建的方法,以及各自的適用界線

使用 BlockSync 製作

更新於 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. 到底該用哪一種?

一兩張圖面:ATTEDIT。圖紙集已經建好、標題欄已使用欄位:修改圖紙集屬性後 Resave All Sheets。許多圖面要填同一個值,並且已有信得過的指令檔執行器:指令檔。圖面中的值各不相同、又沒有依欄位設定,或是對舊專案做一次性清理:用 BlockSync 的 Excel 往返流程。

BlockSync 需要在 Windows 上使用正版完整版 AutoCAD,不支援 AutoCAD LT。免費版每批最多處理 10 張圖面,差異預覽、寫回與備份都包含在內。

這幾種方法沒有哪一種是錯的,它們對應不同的情況。真正該問的是:你有多少張圖面、各圖面的值是否不同、圖面事先是否為自動化做過準備。

標題欄這個情境及每個畫面的截圖,請看「批次更新多張圖面的標題欄」那篇指南。完整的設定清單請看 BlockSync 文件。

開始之前 — 常見問題

ATTEDIT 能一次編輯多張圖面的屬性嗎?
不能。ATTEDIT 與 -ATTEDIT 只作用於目前開啟的圖面。要觸及多張圖面,需要帶欄位的圖紙集、對一批圖面執行的指令檔,或能替你開啟檔案的工具。
能為每張圖面填入不同的值嗎,例如各自的圖號?
可以,但需要相應的前置設定。標題欄裡帶欄位的圖紙集,可以為每張圖紙提供不同的圖紙編號與標題。指令檔對每張圖面執行相同的指令,所以不同的值需要額外的程式碼。在 BlockSync 中,Excel 表的每一列都有自己的值,所以每張圖面都可以得到不同的值。
圖面必須屬於圖紙集才能使用 BlockSync 嗎?
不需要。BlockSync 直接從資料夾中的一般 DWG 檔案讀取圖塊屬性,無論它們是否屬於圖紙集,也無論屬性裡有沒有欄位。來自欄位的值不會被寫回;這些列會被標記為 Blocked 並略過,其餘部分繼續執行。
它會在我檢查結果之前就變更圖面嗎?
不會。差異預覽會列出每個即將變更的屬性,在你確認之前不會寫入任何內容。自動備份預設開啟,Rollback All 可以還原本次執行涉及的所有檔案。
它能用於 AutoCAD LT 嗎?
不能。BlockSync 需要 Windows 上的正版完整版 AutoCAD 2021–2027,因為 LT 無法執行它所依賴的背景自動化。

相關指南