教學/塊屬性
ATTSYNC 清空了屬性值?如何安全地更新圖塊定義
更新於 September 26, 2026

你修訂了標題欄 —— 加了一行、整理了版面、把 DWG_NO 改名為 SHEET_NO —— 重新定義後執行 ATTSYNC,結果每張圖的圖號都變回了預設值。或者值倒是保住了,可每個被人移開、避開線條的屬性又全都跳回原位。
這就是 ATTSYNC 的設計行為。它依標籤比對屬性,所以改了名稱的標籤,其值無處可去,新標籤從預設值開始;它還會把每個屬性的位置與格式重設為定義中的樣子。Autodesk 自己的建議是:圖塊一旦插入,就不要再改標籤。另外它只作用於目前開啟的圖面,而且得先把新定義放進這張圖。
本教學使用 BlockCopy 的 Sync Update,一次把修訂後的圖塊定義推送到整套圖面:數值依標籤帶過去,改了名稱的標籤其值會對應到新標籤而不是遺失,手動擺放的屬性留在原處,最後逐一回讀核對每個值。
1. 把修訂後的圖塊放進一份來源圖面
在任意一張圖面裡用 BEDIT 或 BLOCK 改好一次並儲存 —— 這張圖就是來源圖面。圖塊名稱保持不變:Sync Update 是用同一個圖塊的新版本取代舊定義。要把圖面換成另一個名稱的圖塊,是另一件事,結尾會提到。
標籤改名、屬性增加、刪除、調整順序都沒問題,接下來的步驟會逐一處理。
2. 選擇來源圖塊與目標圖面
開啟 BlockCopy,從標題列的切換按鈕進入 Sync Update。用 Browse… 選擇來源圖面:其中的圖塊會列出參考數量以及是否帶屬性,View… 可以查看某個圖塊的屬性清單。勾選要推送的圖塊。
點選 Add files…,選擇使用這個圖塊的圖面。它們只需要有舊版本,新版本從來源圖面來。
3. 決定屬性位置如何處理
Keep attribute positions 預設勾選:每個參考都保留其屬性原有的位置、旋轉與寬度係數,為避開線條而手動移動過的屬性會留在原處。這是 Sync Update 與 ATTSYNC 最明顯的差別。
如果修訂版是刻意移動了屬性 —— 例如標題欄換了新版面 —— 就取消勾選,每個屬性都會依新定義擺放,和 ATTSYNC 一樣。
4. 同步,並對應改了名稱的標籤
保持 Enable Auto Backup 勾選,點選 Sync Now。BlockCopy 會先讀取每張目標圖面,把其中的屬性與新定義比對。如果某個仍有值的標籤在新定義中不存在 —— 例如改名成 SHEET_NO 的 DWG_NO —— 會在寫入任何內容之前跳出對話框列出每個這樣的標籤。為它選擇接收其值的新標籤,如果這項資訊確實不要了就選擇捨棄,然後點選 Apply and sync。點選取消則所有圖面都不會被變更。
接著,BlockCopy 會在每張圖面中取代定義,並據此重建每個參考的屬性,依標籤把每個值帶過去,對應過的標籤其值會轉到新標籤。常數屬性採用新定義中的值,修訂版中新增的標籤從預設值開始。
在所有參考上都為空的標籤會被直接移除,所以從圖塊中刪除一個沒用的屬性不會跳出對話框。