About the Enforcing schematic diagram name Sample
[C#]
EnforcingDiagramName.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using ESRI.ArcGIS.Schematic;
namespace EnforcingDiagramName
{
/// <summary>
/// EnforcingDiagramName class handling event AfterGenerateDiagram in order to prefix the name of the generated diagrams
/// </summary>
public class EnforcingDiagramName : ESRI.ArcGIS.Desktop.AddIns.Extension
{
private SchematicDatasetManager m_schematicDatasetMgr;
public EnforcingDiagramName()
{
}
protected override void OnStartup()
{
// Instantiate the schematic dataset manager which fires events coming from all schematic datasets
m_schematicDatasetMgr = new SchematicDatasetManager();
// Handles new diagram generation
m_schematicDatasetMgr.AfterGenerateDiagram += new ISchematicDatasetEvents_AfterGenerateDiagramEventHandler(OnAfterGenerateDiagram);
}
protected override void OnShutdown()
{
m_schematicDatasetMgr.AfterGenerateDiagram -= new ISchematicDatasetEvents_AfterGenerateDiagramEventHandler(OnAfterGenerateDiagram);
m_schematicDatasetMgr = null;
}
/// <summary>
/// Occurs when a new diagram is generated
/// </summary>
/// <param name="schematicDiagram">Schematic diagram just generated</param>
void OnAfterGenerateDiagram(ISchematicDiagram schematicDiagram)
{
// Add user name before generate diagram name
string userName = System.Environment.UserName;
if (State == ESRI.ArcGIS.Desktop.AddIns.ExtensionState.Enabled)
schematicDiagram.Name = userName + "_" + schematicDiagram.Name;
}
}
}
[Visual Basic .NET]
EnforcingDiagramName.vb
Imports ESRI.ArcGIS.Schematic ''' <summary> ''' EnforcingDiagramName class handling event AfterGenerateDiagram in order to prefix the name of the generated diagrams ''' </summary> Public Class EnforcingDiagramName Inherits ESRI.ArcGIS.Desktop.AddIns.Extension Private m_schematicDatasetMgr As SchematicDatasetManager Public Sub New() End Sub Protected Overrides Sub OnStartup() ' Instantiate the schematic dataset manager which fires events coming from all schematic datasets m_schematicDatasetMgr = New SchematicDatasetManager() ' Handles new diagram generation AddHandler m_schematicDatasetMgr.AfterGenerateDiagram, AddressOf OnAfterGenerateDiagram End Sub Protected Overrides Sub OnShutdown() RemoveHandler m_schematicDatasetMgr.AfterGenerateDiagram, AddressOf OnAfterGenerateDiagram m_schematicDatasetMgr = Nothing End Sub ''' <summary> ''' Occurs when a new diagram is generated ''' </summary> ''' <param name="schematicDiagram">Schematic diagram just generated</param> Sub OnAfterGenerateDiagram(ByVal schematicDiagram As ISchematicDiagram) ' Add user name before diagram name Dim userName As String = System.Environment.UserName If State = ESRI.ArcGIS.Desktop.AddIns.ExtensionState.Enabled Then schematicDiagram.Name = userName + "_" + schematicDiagram.Name End If End Sub End Class