En esta sección, se responde a las preguntas más frecuentes sobre las macros de Revit.
Pregunta | Respuesta |
---|---|
¿Por qué sigue apareciendo el mensaje "do you trust the authors of files in this folder" y cómo puedo evitar que aparezca este mensaje? |
El mensaje procede de VSCode y forma parte del programa "Workspace Trust" de Microsoft para mejorar la seguridad. Para evitar que aparezca el mensaje:
|
Esperaba ver mi macro recién creada en la lista por categorías del Administrador de macros, pero no aparece. ¿Por qué? | Debe generar correctamente el proyecto de macro en el IDE de macros de Revit (utilice el menú Construir) antes de que las nuevas macros aparezcan en el Administrador de macros. |
¿Tengo que agregar RevitAPI.dll y RevitAPIUI.dll como referencias al escribir una macro nueva? | No. No es necesario hacer referencia a los archivos RevitAPI.dll y RevitAPIUI.dll porque este paso ya se ha completado automáticamente. Estos archivos son necesarios en los proyectos de macros de Revit. |
¿Tengo que editar mis archivos Revit.ini? | No. Las macros de Revit se registran automáticamente para que aparezcan en el Administrador de macros sin ninguna modificación en el sistema. |
En el IDE de macros de Revit, suprimí una macro eliminando su método en el archivo This*.cs o This*.vb. No obstante, el nombre de la macro suprimida sigue apareciendo al volver a abrir la lista por categorías del Administrador de macros. ¿Cómo puedo borrar el nombre de la lista? | Debe generar correctamente su proyecto editado antes de que el Administrador de macros reconozca la eliminación. |
¿Qué se debe incluir en los métodos de inicio y de cierre: Module_Startup y Module_Shutdown? |
Se invoca a Module_Startup cuando se carga un módulo y a Module_Shutdown cuando se descarga. Para los módulos de macros de nivel de aplicación, se invoca a Module_Startup cuando se inicia Revit y a Module_Shutdown cuando se cierra. Para los módulos de macro de nivel de documento, se invoca a Module_Startup cuando se abre un proyecto de Revit y a Module_Shutdown cuando se cierra el documento del proyecto. También se invocará a Module_Startup y Module_Shutdown cuando se vuelva a generar el proyecto de macro. Puede añadir el código de inicialización en los métodos Module_Startup y realizar el trabajo de limpieza en los métodos Module_Shutdown. Por ejemplo, puede registrar controladores de evento al iniciar y anular su registro al cerrar (método recomendado). |
¿Cómo y por qué debo registrar y anular el registro del controlador de eventos de Revit? | Como se ha indicado anteriormente, la forma recomendada de hacerlo en Revit IDE consiste en registrar controladores de evento en el método *_Startup y anularlos del registro en el método *_Shutdown. Todas las macros se cargarán y descargarán dinámicamente. Cuando se depura una macro, si no se ha anulado correctamente el registro del controlador de evento, Revit podría llamar a un método erróneo (quizás una dirección de memoria no válida). Aunque el IDE de Revit evitaría que Revit se bloqueara en este supuesto, los controladores de evento que no se hayan anulado correctamente del registro podrían provocar problemas de rendimiento durante su sesión actual de Revit. |
Hay un cuadro de diálogo que no funciona bien y crea problemas en Revit. | Los cuadros de diálogo no modales que funcionan fuera del ámbito de llamada de una API en ejecución pueden causar problemas. Se recomienda prescindir de dichas llamadas para evitar la inestabilidad de Revit. |
Deseo probar los métodos Startup y Shutdown y un controlador de evento. ¿Puedo ver un ejemplo? | En el siguiente código de ejemplo, se muestra cómo registrar un controlador de evento OnDocumentNewed, que ejecutará automáticamente un cuadro de mensaje cuando se cree un nuevo proyecto de Revit. Nota: es posible que una de las muestras de macros suministradas en el SDK de Revit ofrezca un ejemplo de inicio y cierre de un controlador de evento de nivel de documento. En esta sección de preguntas frecuentes, se muestran ejemplos de controladores de evento de nivel de aplicación.
Tenga en cuenta que es posible acceder a todos los eventos de API a través del IDE de Revit en la versión 2011. Los eventos anteriores a 2011 se han eliminado. Los ejemplos siguientes muestran los nuevos eventos. |
Ejemplo en C#, nivel de aplicación:
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"); }