Please try this
In the Form:
public partial class CreateTextNoteForm : Form
{
ExternalEvent m_ex = null;
public CreateTextNoteForm(UIApplication app, ExternalEvent exEvent)
{
InitializeComponent();
m_ex = exEvent;
}
private void button1_Click(object sender, EventArgs e)
{
m_ex.Raise();
}
}The External command shall be:
public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elemSet)
{
_cachedCmdData = cmdData;
try
{
//TODO: add your code below.
TextInsertHandler handler = new TextInsertHandler();
ExternalEvent exEvent = ExternalEvent.Create(handler);
CreateTextNoteForm displayForm = new CreateTextNoteForm(cmdData.Application, exEvent);
displayForm.Show();
return Result.Succeeded;
}
catch (Exception ex)
{
msg = ex.ToString();
return Result.Failed;
}
}
public class TextInsertHandler : IExternalEventHandler
{
public String GetName()
{
return "R2014 External Event Sample";
}
public void Execute(UIApplication uiapp)
{
try
{
using (Transaction trans = new Transaction(uiapp.ActiveUIDocument.Document, "Create Text Note"))
{
trans.Start();
CreateNote("test");
trans.Commit();
}
}
catch (Exception ex) { }
return;
}
} // class
public static void CreateNote(String note)
{
try
{
Autodesk.Revit.DB.View curView = _cachedCmdData.Application.ActiveUIDocument.ActiveView;
XYZ selectedPoint = _cachedCmdData.Application.ActiveUIDocument.Selection.PickPoint("Pick Note Location");
ElementId defaultTypeId = _cachedCmdData.Application.ActiveUIDocument.Document.GetDefaultElementTypeId(ElementTypeGroup.TextNoteType);
TextNote _TextNote = TextNote.Create(
_cachedCmdData.Application.ActiveUIDocument.Document,
curView.Id,
selectedPoint,
note,
defaultTypeId
);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
throw;
}
}If this is the solution you seek please mark this reply as an answer