The Navisworks .NET API provides many events that we can listen to if we want to monitor the Navisworks product. The DocumentModels events are mong them. In this article, let us look at some code in VB.NET for how to subscribe to these DocumentModels events.
Imports System
Imports System.Text
Imports System.Linq
Imports System.Xml
Imports System.Reflection
Imports System.ComponentModel
Imports System.Collections
Imports System.Collections.Generic
Imports System.Windows
Imports System.Windows.Media.Imaging
Imports System.Windows.Forms
Imports System.IO
Imports Microsoft.Win32
Imports System.Runtime.InteropServices
Imports Autodesk.Navisworks.Api
Imports Autodesk.Navisworks.Api.Plugins
Imports Autodesk.Navisworks.Api.Controls
Imports Autodesk.Navisworks.Api.DocumentParts
Imports Autodesk.Navisworks.Api.ApplicationParts
Public Class DocModelsEvents1
Dim mEventsObj As DocumentModels
Public Sub New(ByVal obj As DocumentModels)
mEventsObj = obj
End Sub
Public Sub Register()
AddHandler mEventsObj.ModelItemPropertiesChanged, AddressOf DocModelsEvents_ModelItemPropertiesChanged_Handler
AddHandler mEventsObj.ModelGeometryMaterialChanged, AddressOf DocModelsEvents_ModelGeometryMaterialChanged_Handler
AddHandler mEventsObj.CollectionChanging, AddressOf DocModelsEvents_CollectionChanging_Handler
AddHandler mEventsObj.CollectionChanged, AddressOf DocModelsEvents_CollectionChanged_Handler
End Sub
Public Sub UnRegister()
RemoveHandler mEventsObj.ModelItemPropertiesChanged, AddressOf DocModelsEvents_ModelItemPropertiesChanged_Handler
RemoveHandler mEventsObj.ModelGeometryMaterialChanged, AddressOf DocModelsEvents_ModelGeometryMaterialChanged_Handler
RemoveHandler mEventsObj.CollectionChanging, AddressOf DocModelsEvents_CollectionChanging_Handler
RemoveHandler mEventsObj.CollectionChanged, AddressOf DocModelsEvents_CollectionChanged_Handler
End Sub
Public Sub DocModelsEvents_CollectionChanged_Handler(ByVal sender As Object, ByVal e As System.EventArgs)
'MessageBox.Show("CollectionChanged")
End Sub
Public Sub DocModelsEvents_CollectionChanging_Handler(ByVal sender As Object, ByVal e As System.EventArgs)
'MessageBox.Show("CollectionChanging")
End Sub
Public Sub DocModelsEvents_ModelGeometryMaterialChanged_Handler(ByVal sender As Object, ByVal e As System.EventArgs)
'MessageBox.Show("ModelGeometryMaterialChanged")
End Sub
Public Sub DocModelsEvents_ModelItemPropertiesChanged_Handler(ByVal sender As Object, ByVal e As System.EventArgs)
'MessageBox.Show("ModelItemPropertiesChanged")
End Sub
End Class
Navisworks .NET Addin Wizard provide such an item wizard, DocumentModels Events handler, which can do all of these automatically in a moment. The leading edge Navisworks .NET Addin Wizard (NavisworksNetAddinWizard) can be found and downloaded from the A Wizard for Navisworks .NET Addin page.
Posted by: |