My concern when I looked into this was creating a few hotkey commands: Dim/Hide Other and Mark Clashes of Selected Items as Reviewed or Approved (similar result to box-selecting model items, filtering to Inclusive on the clash detective window, selecting all clashes, and changing status to Reviewed or Approved). What I found is that although these could technically be implemented through the API through the suggested solution above, it is a much slower process because it must iterate through each model item individually.
The workaround I made is definitely not ideal, but with some tweaking it can work on anyone's system. I wrote a few scripts using AutoHotKey (https://autohotkey.com) that literally take control of the mouse, press buttons on the clash detective window, then return the mouse back to the user. Because the script bases the mouse coordinates off the top left of the clash detective window, the buttons must stay in a fixed position relative to the top left of the window. Code is below (to use it you will have to tweak the mouse coordinates to match your clash detective window. You can identify the coordinates using the included Window Spy tool).
#SingleInstance force
#NoEnv
#Persistent
SetTitleMatchMode 2
SetDefaultMouseSpeed, 0
#IfWinExist Autodesk Navisworks Manage
;Numpad1::
;Numpad2::
;Numpad3::
;Numpad4::
;Numpad5::
;Numpad6::
;Numpad7::
;Numpad8::
;Numpad9::
;Numpad0::
;NumpadDot::
;NumpadEnter::
NumpadAdd:: ;Dim Other
GetKeyState NumL, NumLock, T
if NumL = D
{
SendRaw +
return
}
else
MouseGetPos, X, Y, Window
WinActivate Clash Detective
Click 515,284
WinActivate, ahk_id %Window%
MouseMove, %X%, %Y%
return
NumpadSub:: ;Refresh
GetKeyState NumL, NumLock, T
if NumL = D
{
SendRaw +
return
}
else
MouseGetPos, X, Y, Window
WinActivate Clash Detective
Click 492,235
WinActivate, ahk_id %Window%
MouseMove, %X%, %Y%
return
NumpadDiv:: ;Mark Reviewed
GetKeyState NumL, NumLock, T
if NumL = D
{
SendRaw +
return
}
else
MouseGetPos, X, Y, Window
WinActivate Clash Detective
Click 449,127
Sleep, 100
Click 449,254
Sleep, 500
Click 37,191
Send {Esc}
Send ^{End}
Send +{PgUp 20}
Click 230,192
Sleep, 500
Click 188,246
Sleep, 700
Click 472,127
Sleep, 700
Click 439,161
WinActivate, ahk_id %Window%
MouseMove, %X%, %Y%
return
NumpadMult:: ;Mark Approved
GetKeyState NumL, NumLock, T
if NumL = D
{
SendRaw +
return
}
else
MouseGetPos, X, Y, Window
WinActivate Clash Detective
Click 449,127
Sleep, 100
Click 449,254
Sleep, 500
Click 37,191
Send {Esc}
Send ^{End}
Send +{PgUp 20}
Click 230,192
Sleep, 500
Click 188,262
Sleep, 700
Click 472,127
Sleep, 700
Click 439,161
WinActivate, ahk_id %Window%
MouseMove, %X%, %Y%
return
It would definitely be helpful to add support for commands in the clash detective window to the API, as well as custom hotkey support, for a more direct solution. Hope this helps.
Jake