Ich habe versucht, ein Plugin für Revit 2017 mit Visual Studio 2015 mit Windows Form zu erstellen. Leider habe ich keine Unterlagen online dabei gefunden (wenn Sie Links haben, werde ich glücklich sein, ihnen einen Blick zu geben)Create Revit Plugin mit Windows Form
ich eine einfache Form baute eine Listbox und eine Auswahltaste
haben- die Listbox zeigt alle Türen in einem Revit-Projekt
- die Select-Taste alle ausgewählten Türen aus dem List-Feld auswählt und sie in der Revit-Projekt (das ist eine Menge wählt ...)
Es ist eine Testlösung, um zu sehen, wie es funktioniert alles.
WeWillSee Klasse ist die Klasse der Haupt RevitAPI Funktion Ausführen der Umsetzung:
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
namespace Test2 {
[Transaction(TransactionMode.Manual)]
class WeWillSee : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiapp = commandData.Application;
/*UIDocument uidoc = uiapp.ActiveUIDocument;
Document doc = uidoc.Document;*/
try
{
System.Windows.Forms.Application.EnableVisualStyles();
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
System.Windows.Forms.Application.Run(new Form(commandData));
//System.Windows.Forms.Form wf = new Form1(uiapp);
}
catch (Exception e)
{
TaskDialog.Show("Error", e.ToString());
return Result.Failed;
}
return Result.Succeeded;
}
}
}
Die Form I (den Rest in nicht wichtig) öffnen möchten:
namespace Test2
{
public partial class Form : System.Windows.Forms.Form
{
private UIApplication uiapp;
private UIDocument uidoc;
private Document doc;
public Form(ExternalCommandData commandData)
{
InitializeComponent();
uiapp = commandData.Application;
uidoc = uiapp.ActiveUIDocument;
doc = uidoc.Document;
}
Und schließlich die Program.cs Datei (die mich Probleme verursacht):
namespace Test2
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(/*Can't call ExternalCommandData on static class*/));
}
}
}
Danke für jede Hilfe, die Sie anbieten können! :)
der Tat gibt es keine Notwendigkeit für die Datei Program.cs. Es ist die Datei, die automatisch generiert wird, wenn Sie ein Projekt mithilfe der Windows-Formularvorlage erstellen. –