Khi lắp ráp trong file Assembly, khi ta thêm, xóa, các bộ phận giống nhau. Mặc định tên Occurrence sẽ được đánh số tăng thêm từ số lớn nhất của bộ phận đã từng thêm vào. Ví dụ ta thêm 12 con bulong, ta xóa 2 con bulong thứ 10 & 11, và bây giờ ta thêm lại 3 con. Thì số được đánh tới lúc này là “Tên Occurrence:15” (Nhưng thực tế hiện tại chỉ có 13 con bulong). Cho nên khi hoàn thành lắp ráp, ta nên sửa lại tên Occurrence và đánh số lần xuất hiện trên chi tiết trong Assembly. Một Rule cập nhật tên Occurrence là cần thiết. Dưới đây là một ví dụ minh họa.
Tên Occurrence ban đầu:
Đoạn code Rule RenameOccurrenceName:
' Khai báo một từ điển để lưu trữ số lần xuất hiện của mỗi tên file
Dim fileCount As New Dictionary(Of String, Integer)
' Lặp qua tất cả các xuất hiện trong Assembly
For i = 1 To ThisDoc.Document.ComponentDefinition.Occurrences.Count
' Lấy đường dẫn đầy đủ của file xuất hiện
Dim fileName As String = ThisDoc.Document.ComponentDefinition.Occurrences.Item(i).Definition.Document.FullFileName
' Tách tên file từ đường dẫn
Dim fileNameParts() As String = Split(fileName, "\")
Dim fileOnly As String = fileNameParts(UBound(fileNameParts))
' Tách phần mở rộng của tên file
Dim fileNameWithoutExtension As String = Left(fileOnly, InStrRev(fileOnly, ".") - 1)
' Kiểm tra xem tên file đã được sử dụng bao nhiêu lần
Dim count As Integer = 0
If fileCount.ContainsKey(fileNameWithoutExtension) Then
count = fileCount(fileNameWithoutExtension)
End If
' Tạo tên mới bằng cách kết hợp tên file và số thứ tự xuất hiện
Dim newOccurrenceName As String = fileNameWithoutExtension & ":" & (count + 1)
' Gán tên mới cho tên xuất hiện
ThisDoc.Document.ComponentDefinition.Occurrences.Item(i).Name = newOccurrenceName
' Cập nhật số lần xuất hiện của tên file trong từ điển
If fileCount.ContainsKey(fileNameWithoutExtension) Then
fileCount(fileNameWithoutExtension) += 1
Else
fileCount.Add(fileNameWithoutExtension, 1)
End If
Next
Bình luận