You would have to run some form of precheck open each layout and get all pdfs etc and look at wether their open, I dont know if the pdf will reflect its open by someone else for Autocad the dwl can come into play. You may need a C# type program there may be a owner set to a file that is open, above my pay grade.
I did find this based around excel vba may be able to convert to VL lisp. if returns open then stop publish.
Sub TestFileOpened()
Dim filesArray As Variant
filesArray = Array("myexcel.xlsx")
Dim fileLocation As String
fileLocation = "D:\Acadtemp\"
Dim message As String
For Each file In filesArray
If IsFileOpen(fileLocation & file) Then
message = message & vbNewLine & "File '" & file & "' is open!"
Else
message = message & vbNewLine & "File '" & file & "' is closed!"
End If
Next file
MsgBox message
End Sub
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function