Los complementos deben implementar la interfaz IUModelPlugIn.
 
El código que aparece más abajo muestra una sencilla implementación de esta interfaz. Añade un elemento de menú y un separador al menú Edición de UModel. Al hacer clic en el elemento de menú aparecerá un cuadro de mensaje con el texto Hello, World!
 
Nota: como este ejemplo muestra un cuadro de mensaje, compruebe que su proyecto de C# también hace referencia a System.Windows.Forms.
 
| using System;using System.Collections.Generic;
 using System.Text;
 using UModelPlugInLib;
 
 namespace HelloWorldPlugIn
 {
 public class MyHelloWorldUModelPlugIn : IUModelPlugIn
 {
 #region IUModelPlugIn Members
 
 public string GetDescription()
 {
 return "HelloWorldPlugIn;HelloWorldPlugIn demonstrates a simple implementation of an IDE plug-in for UModel";
 }
 
 public string GetUIModifications()
 {
 return  "<ConfigurationData>"                         +
 "<Modifications>"                         +
 // add "Hello World..." to Edit menu
 "<Modification>"                      +
 "<Action>Add</Action>"            +
 "<UIElement type=\"MenuItem\">"   +
 "<ID>1</ID>"                  +
 "<Name>Hello world...</Name>" +
 "<Info>My hello world</Info>" +
 "<Place>0</Place>"            +
 "<MenuID>101</MenuID>"        +
 "<Parent>:Edit</Parent>"      +
 "</UIElement>"                    +
 "</Modification>"                     +
 // add Separator to Edit menu
 "<Modification>"                      +
 "<Action>Add</Action>"            +
 "<UIElement type=\"MenuItem\">"   +
 "<ID>0</ID>"                  +
 "<Place>1</Place>"            +
 "<MenuID>101</MenuID>"        +
 "<Parent>:Edit</Parent>"      +
 "</UIElement>"                    +
 "</Modification>"                     +
 // finish modification description
 "</Modifications>"                         +
 "</ConfigurationData>";
 }
 
 public void OnInitialize(object pUModel)
 {
 // before processing DDE or batch commands
 }
 
 public void OnRunning(object pUModel)
 {
 // DDE or batch commands are processed; application is fully initialized
 }
 
 public void OnShutdown(object pUModel)
 {
 // application will shutdown; release all unused objects
 }
 
 public UModelUpdateAction OnUpdateCommand(int nID, object pUModel)
 {
 if (nID == 1)
 return UModelUpdateAction.UModelUpdateAction_Enable;
 
 return UModelUpdateAction.UModelUpdateAction_Disable;
 }
 
 public void OnCommand(int nID, object pUModel)
 {
 System.Windows.Forms.MessageBox.Show("Hello world!");
 }
 
 #endregion
 }
 }
 |