Si desea utilizar el código de muestra de SDK para macros, es necesario realizar modificaciones.
El SDK de Revit contiene dos carpetas de muestras:
\Revit SDK <versión>\Software Development Kit\Samples\...
\Revit SDK <versión>\Software Development Kit\Macro Samples\...
Los programas de la carpeta \Samples\ de SKK utilizan la API estándar de Revit. Nos referimos a estas muestras como código de muestra de SDK, para distinguirlas de las muestras de macros de Revit.
Siga los pasos de esta sección. Para un lenguaje de programación, mostraremos ejemplos en C#. No obstante, estas instrucciones también son aplicables a las versiones VB.NET de las muestras de SDK.
Pasos iniciales
Los pasos iniciales para migrar muestras de API estándar desde el SDK al proyecto del IDE de macros de Revit son similares a los de la sección Integrar macros en el IDE de Revit. Excepto que en lugar de copiar archivos de las carpetas \Macro Samples\ <nombre de muestra>\... de SDK, debe copiar archivos de las carpetas \Samples\ <nombre de muestra>\... de SDK.
Para la revisión, los pasos son:
- En el IDE, agregue las referencias requeridas.
- En el IDE, cree carpetas para las muestras de SDK que desee migrar.
- En el Explorador de Windows, copie los archivos de las muestras del API estándar del SDK en las carpetas correspondientes del sistema de archivos.
- En el IDE, agregue archivos existentes al proyecto de macros.
Actualizar el código de muestras de SDK
En el IDE de macros de Revit, la interfaz IExternalCommand no está disponible o no se usa. En el código de muestra de la API estándar de SDK, debe actualizar la clase heredada desde esta interfaz:
- Elimine los parámetros de método y la devolución del método Execute.
- Actualice otro código relacionado con ExternalCommandData.
Ejemplo de código antes de la edición
El siguiente fragmento de código es de un programa que utiliza la API estándar de Revit:
Ejemplo de código después de la edición
En el IDE de macros de Revit, debemos actualizar el código del siguiente modo. En este ejemplo, se muestra una macro de nivel de aplicación. El método RunSampleRooms() es la entrada para esta muestra de macro. Observe que hemos utilizado this como sustituto de commandData.Application.
Notas de migración adicionales para las muestras de la API estándar de SDK
- Por defecto, el espacio de nombres de la muestra de SDK es: Revit.SDK.Samples.<SampleName>.CS. Conforme edite el código de muestra que viene en las muestras de API estándar del SDK, asegúrese de cambiar el espacio de nombres para el IDE de Revit. Por ejemplo, en ThisApplication.cs:
namespace AppCSharp.csproj
- Las referencias del proyecto por defecto en el IDE de Revit solo constan de referencias básicas como, por ejemplo, Revit.Proxy. Acuérdese de agregar otras referencias necesarias. Por ejemplo, debe añadir referencias de System.Windows.Forms y System.Drawing al ejecutar muestras que presenten una interfaz de usuario.
- Algunas muestras tienen recursos que se deben definir en el archivo resources.resx. GridCreation es una de dichas muestras. Si migra la muestra de la API estándar de SDK para GridCreation al IDE de Revit, asegúrese de establecer la propiedad resx.
- La dependencia generada por el proyecto no es compatible con el IDE de macros de Revit. Si desea utilizar otras DLL, debe compilar dicho proyecto de muestra dependiente fuera del IDE de macros de Revit. Por ejemplo, en las muestras de la API estándar de SDK, hay varias muestras relacionadas con visores como, por ejemplo, AnalyticalViewer y RoomViewer, que dependen de las referencias a RevitViewer.
No obstante, no podemos establecer la dependencia de un proyecto debido a una limitación en el IDE de Revit y tampoco podemos migrar la muestra de RevitViewer. Por tanto, debe compilar RevitViewer como una muestra de SDK independiente y, a continuación, agregar su DLL como referencia en el proyecto del IDE de Revit.
- Cuando migre muestras de API estándar de SDK al IDE de Revit, no copie los archivos de soluciones (*.sln*) o los archivos de proyecto existentes (*.csproj o *.vbproj).
- Las muestras relacionadas con la barra de herramientas no están disponibles en el IDE de Revit.