Утилита EventWatcher из состава Inventor SDK позволяет отследить последовательность событий Inventor, которыми сопровождается изменение тех или иных свойств документа. Утилита при установке DeveloperTools по умолчанию ставится в следующую папку:
C:\Users\Public\Documents\Autodesk\Inventor 2014\SDK\DeveloperTools\Tools\EventWatcher\bin\Release
Если изменяется материал на вкладке Physical (Физические свойства), то последовательность событий выглядит так:
Открывается диалог редактирования iProperties
UserInputEvents.OnActivateCommand
CommandName: "PartiPropertiesCmd"
Context: No context information
Изменяем физический материал
StyleEvents.OnActivateStyle
DocumentObject: Filename.ipt (PartDocument)
Style: Silver (Material)
Context is Nothing
BeforeOrAfter: kBefore
HandlingCode: kEventNotHandled
Жмем Применить
TransactionEvents.OnCommit
TransactionObject: Properties (Transaction)
Context: No context information
BeforeOrAfter: kBefore
HandlingCode: kEventHandled
TransactionEvents.OnCommit
TransactionObject: Properties (Transaction)
Context: No context information
BeforeOrAfter: kAfter
HandlingCode: kEventHandled
Жмем Close (Закрыть)
StyleEvents.OnActivateStyle
DocumentObject: Filename.ipt (PartDocument)
Style: Silver (Material)
Context is Nothing
BeforeOrAfter: kAfter
HandlingCode: kEventNotHandled
ApplicationEvents.OnActivateView
ViewObject: Filename.ipt (View)
Context: No context information
BeforeOrAfter: kAfter
HandlingCode: kEventNotHandled
UserInputEvents.OnTerminateCommand
CommandName: "PartiPropertiesCmd"
Context: No context information
Если изменяются пользовательские свойства, то специального события нет. При старте команды "PartiPropertiesCmd" (событие OnActivateCommand ) придется свойства запоминать и затем сравнением искать изменения после завершения команды (событие OnTerminateCommand).
UserInputEvents.OnActivateCommand
CommandName: "PartiPropertiesCmd"
Context: No context information
TransactionEvents.OnCommit
TransactionObject: Properties (Transaction)
Context: No context information
BeforeOrAfter: kBefore
HandlingCode: kEventHandled
TransactionEvents.OnCommit
TransactionObject: Properties (Transaction)
Context: No context information
BeforeOrAfter: kAfter
HandlingCode: kEventHandled
ApplicationEvents.OnActivateView
ViewObject: Filename.ipt (View)
Context: No context information
BeforeOrAfter: kAfter
HandlingCode: kEventNotHandled
UserInputEvents.OnTerminateCommand
CommandName: "PartiPropertiesCmd"
Context: No context information
Если файл был сохранен непосредственно перед входом в диалог редактирования свойств, тогда на изменение свойств среагирует событие FileAccessEvents.OnFileDirty:
FileAccessEvents.OnFileDirty
RelativeFileName: "Filename.ipt"
LibraryName: ""
CustomLogicalName: No data
FullFileName: "C:\TEMP\Filename.ipt"
DocumentObject: Filename.ipt (PartDocument)
Context:
ReasonsForChange = kFilePropertyEditCmdType, kQueryOnlyCmdType
AffectedFiles
"C:\TEMP\Filename.ipt"
DirtyByRecompute = False
BeforeOrAfter: kBefore
HandlingCode: kEventNotHandled
Надеюсь, какой-нибудь из этих вариантов окажется подходящим.