Fire Notification When Changing a Table in an Assembly Document Example (C#)
This example shows how to fire a notification when a table is changed in an
assembly document.
//---------------------------------------------------------------
// Preconditions:
// 1. Open an assembly document.
// 2. Make sure that the Tools > Options > Stop VSTA
debugger on macro exit
// checkbox is not selected.
// 3. Rename the namespace of this macro to match the name of
your C# project.
// 4. Select Insert > Tables > Bill of Materials.
// 5. Click the green check mark on the Bill of Materials PropertyManager page.
// 6. Run this macro (press F5).
// 7. Right-click on a column of the table.
// 8. Select Delete > Column.
//
// Postconditions:
// 1. The column is deleted.
// 2. A message box informs you about the deletion.
// Check the taskbar for the message box.
// 3. Click OK to close the message box.
// 4. Stop the debugger.
//---------------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using
System;
using
System.Diagnostics;
using
System.Collections;
using
System.Windows.Forms;
namespace
ModifyTableNotification_CSharp.csproj
{
partial
class
SolidWorksMacro
{
public
AssemblyDoc
swAssemblyDoc;
public
void
Main()
{
ModelDoc2
swModel = default(ModelDoc2);
Hashtable
openAssem = default(Hashtable);
swModel = (ModelDoc2)swApp.ActiveDoc;
// Set up event
swAssemblyDoc = (AssemblyDoc)swModel;
openAssem = new
Hashtable();
AttachEventHandlers();
}
public
void
AttachEventHandlers()
{
AttachSWEvents();
}
public
void
AttachSWEvents()
{
swAssemblyDoc.ModifyTableNotify +=
this.swAssemblyDoc_ModifyTableNotify;
}
private
int
swAssemblyDoc_ModifyTableNotify(TableAnnotation
TableAnnotation, int
TableType, int
reason, int
RowInfo, int
ColumnInfo, String
DataInfo)
{
MessageBox.Show("A
table was modified. Title: " +
TableAnnotation.Title + ", Type:
" + TableType +
", Reason code: "
+ reason + ", RowInfo: "
+ RowInfo + ", ColumnInfo: "
+ ColumnInfo + ", DataInfo: "
+ DataInfo);
return
0;
}
public
SldWorks
swApp;
}
}