In diesem Abschnitt werden häufig gestellte Fragen (Frequently Asked Questions, FAQ) zu Revit-Makros beantwortet.
| Frage | Antwort |
|---|---|
|
Warum wird weiterhin die Meldung Do you trust the authors of files in this folder (Sind die Autoren der Dateien in diesem Ordner vertrauenswürdig?) angezeigt, und wie kann ich verhindern, dass diese Meldung angezeigt wird? |
Die Meldung stammt aus VSCode und ist Teil des Microsoft-Programms Workspace Trust zur Verbesserung der Sicherheit. So verhindern Sie, dass die Meldung angezeigt wird
|
| Ich bin davon ausgegangen, das mein neu erstelltes Makro in der kategorisierten Liste in Makro-Manager aufgeführt wird, was jedoch nicht der Fall ist. Was ist der Grund? | Sie müssen zuerst das Makroprojekt in der Revit-Makro-IDE erstellen (Menü Build). Erst dann werden die neuen Makros im Makro-Manager angezeigt. |
| Muss ich beim Schreiben eines neuen Makros RevitAPI.dll und RevitAPIUI.dll als Verweise hinzufügen? | Nein. Sie müssen die Dateien RevitAPI.dll und RevitAPIUI nicht referenzieren, da dieser Schritt automatisch für Sie ausgeführt wird. In Revit-Makroprojekten werden beide als erforderliche Verweise verwendet.
Weitere Informationen erhalten Sie unter Wiederherstellen von RevitAPI.dll und RevitAPIUI.dll. |
| Muss ich meine Revit.ini-Dateien bearbeiten? | Nein. Revit-Makros werden im Makro-Manager automatisch registriert und angezeigt, ohne dass weitere Änderungen am System erforderlich sind. |
| Ich habe in der Revit-Makro-IDE ein Makro gelöscht, indem ich die zugehörige Methode in der Datei This*.cs bzw. This*.vb entfernt habe. Der Name des gelöschten Makros wird jedoch weiterhin angezeigt, wenn ich die kategorisierte Liste von Makro-Manager erneut öffne. Wie kann ich den Namen aus der Liste löschen? | Sie müssen das bearbeitete Projekt erfolgreich erstellen, damit Makro-Manager erkennt, dass der Name entfernt wurde. |
| Was muss ich in die Startup- und Shutdown-Methoden aufnehmen: Module_Startup und Module_Shutdown? |
Die Module_Startup-Methode wird beim Laden, die Module_Shutdown-Methode beim Entladen eines Moduls aufgerufen. Für Makromodule auf Anwendungsebene wird Module_Startup beim Starten von Revit und Module_Shutdown beim Beenden von Revit aufgerufen. Für Makromodule auf Dokumentebene wird Module_Startup beim Öffnen eines Revit-Projekts und Module_Shutdown beim Schließen des Projektdokuments aufgerufen. Module_Startup und Module_Shutdown werden auch aufgerufen, wenn das Makroprojekt erneut erstellt wird. Sie können den Initialisierungscode in den Module_Startup-Methoden hinzufügen und die Bereinigung in Module_Shutdown-Methoden durchführen. So können Sie z. B. Ereignishandler im Startup registrieren und beim Shutdown aus der Registrierung entfernen. (Dieses Verfahren wird empfohlen.) |
| Wie und weshalb sollte ich den Revit-Ereignishandler registrieren bzw. aus der Registrierung entfernen? | Wie bereits erwähnt, ist die empfohlene Vorgehensweise hierfür in der Revit-IDE das Registrieren von Ereignishandlern in der *_Startup-Methode und das Entfernen aus der Registrierung in der *_Shutdown-Methode. Jedes Makro wird dynamisch geladen und entladen. Wenn beim Debuggen eines Makros der Ereignishandler nicht ordnungsgemäß aus der Registrierung entfernt wird, ruft Revit möglicherweise eine falsche Methode auf (z. B. eine ungültige Arbeitsspeicheradresse). Die Revit-IDE kann einen Absturz von Revit in dieser Situation zwar möglicherweise verhindern. Ereignishandler, die nicht ordnungsgemäß aus der Registrierung entfernt werden, können jedoch während der aktuellen Revit-Sitzung zur Beeinträchtigung der Leistung führen. |
| Eines meiner Dialogfelder scheint nicht einwandfrei zu funktionieren und verursacht Probleme in Revit. | Nichtmodale Dialogfelder, die nicht für Callbacks einer laufenden API erreichbar sind, können Probleme verursachen. Vermeiden Sie die Verwendung solcher Callbacks, um die Stabilität von Revit zu gewährleisten. |
| Ich möchte mit den Startup- und Shutdown-Methoden und mit einem Ereignishandler experimentieren. Können Sie mir ein Beispiel nennen? | Der folgende Beispielcode veranschaulicht die Registrierung eines OnDocumentNewed-Ereignishandlers, der automatisch eine Meldung anzeigt, wenn ein neues Revit-Projekt erstellt wird. Anmerkung: Eines der Makrobeispiele im Revit SDK veranschaulicht die Startup- und Shutdown-Methode eines Ereignishandlers auf Dokumentebene. Diese FAQ enthält Beispiele für Ereignishandler auf Anwendungsebene.
Beachten Sie, dass mit der Revit-IDE ab 2011 auf alle API-Ereignisse zugegriffen werden kann. Ereignisse vor 2011 wurden entfernt. Die folgenden Beispiele zeigen die neuen Ereignisse. |
C#-Beispiel, Anwendungsebene:
private void Module_Startup(object sender, EventArgs e)
{
this.Application.DocumentOpened
+= new EventHandler<Autodesk.Revit.DB.Events.DocumentOpenedEventArgs>(Application_DocumentOpened);
}
private void Module_Shutdown(object sender, EventArgs e)
{
this.Application.DocumentOpened
-= new EventHandler<Autodesk.Revit.DB.Events.DocumentOpenedEventArgs>(Application_DocumentOpened);
}
void Application_DocumentOpened(object sender, Autodesk.Revit.DB.Events.DocumentOpenedEventArgs e)
{
System.Windows.Forms.MessageBox.Show("message here");
}