Si vous souhaitez utiliser le code d'exemple SDK pour les macros, vous devez apporter certaines modifications.
Le SDK de Revit contient deux dossiers d'exemple :
\Revit SDK <version>\Software Development Kit\Samples\...
\Revit SDK <version>\Software Development Kit\Macro Samples\...
Les programmes situés dans le dossier \Samples\ du SDK utilisent l'API standard de Revit. Nous désignons ces exemples sous le nom de code d'exemple SDK, pour les différencier des exemples de macro Revit.
Suivez les étapes de cette section. Nous allons présenter des exemples en langage de programmation C#. Toutefois, ces instructions s'appliquent aux versions VB.NET des exemples SDK.
Etapes initiales
Les étapes initiales permettant de migrer des exemples de l'API standard du SDK dans votre projet d'environnement IDE de macro Revit sont similaires à celles décrites à la rubrique Intégration de macros dans l'environnement IDE Revit. Cependant, au lieu de copier les fichiers depuis les dossiers \Macro Samples\<nom-exemple>\... du SDK, vous les copiez depuis les dossiers \Samples\<nom-exemple>\... du SDK.
Suivez ces étapes :
- Dans l'IDE, ajoutez les références requises.
- Dans l'IDE, créez des dossiers pour les exemples SDK que vous souhaitez migrer.
- Dans l'explorateur Windows, copiez les fichiers d'exemples de l'API standard du SDK dans les dossiers du système de fichiers correspondants.
- Dans l'IDE, ajoutez les fichiers existants dans le projet de macro.
Mise à jour du code des exemples SDK
Dans l'environnement IDE de macro Revit, l'interface IExternalCommand n'est pas disponible ou utilisée. Dans le code d'exemple de l'API standard du SDK, vous devez mettre à jour la classe qui hérite de cette interface :
- Supprimez les paramètres de la méthode et le retour de la méthode Execute.
- Mettez à jour d'autres codes liés à ExternalCommandData.
Exemple de code avant modification
L'extrait de code suivant provient d'un programme qui utilise l'API standard de Revit :
Exemple de code après modification
Dans l'environnement IDE de macro Revit, nous devons mettre à jour le code comme suit. Cet exemple montre une macro au niveau de l'application. La méthode RunSampleRooms() correspond à l'entrée de cet exemple de macro. Notez que nous avons utilisé le pointeur this pour remplacer commandData.Application.
Remarques complémentaires sur la migration pour les exemples de l'API standard du SDK
- Par défaut, l'espace nom d'exemple du SDK est : Revit.SDK.Samples.<SampleName>.CS. Lorsque vous modifiez le code d'exemple provenant des exemples de l'API standard du SDK, n'oubliez pas de modifier l'espace nom pour l'environnement IDE Revit. Par exemple, dans ThisApplication.cs :
namespace AppCSharp.csproj
- Les références par défaut dans les projets de l'environnement IDE Revit sont uniquement constituées de références de base, comme Revit.Proxy. N'oubliez pas d'ajouter les autres références requises. Par exemple, vous devez ajouter les références System.Windows.Forms et System.Drawing lorsque vous exécutez des exemples présentant une interface utilisateur.
- Certains exemples comportent des ressources qui doivent être définies dans le fichier resources.resx. GridCreation en est un exemple. Si vous migrez l'exemple d'API standard du SDK de GridCreation vers l'environnement IDE Revit, définissez bien la propriété resx.
- La dépendance d'intégration du projet n'est pas prise en charge dans l'environnement IDE de macro Revit. Si vous voulez utiliser d'autres fichiers DLL, vous devez compiler ce projet d'exemple dépendant en dehors de l'environnement IDE de macro Revit. Par exemple, dans les exemples de l'API standard du SDK, plusieurs font référence aux "Viewers", comme AnalyticalViewer et RoomViewer, qui dépendent des références à RevitViewer.
Toutefois, nous ne pouvons pas définir la dépendance du projet en raison de la limitation de l'environnement IDE Revit ni migrer vers l'exemple RevitViewer. Par conséquent, nous devons compiler RevitViewer en tant qu'exemple SDK indépendant, puis ajouter son fichier DLL comme référence dans le projet de l'environnement IDE Revit.
- Lorsque vous migrez les exemples de l'API standard du SDK vers l'environnement IDE Revit, ne copiez aucun fichier Solution (*.sln*) ou fichier de projet existant (*.csproj ou *.vbproj).
- Les exemples liés aux barres d'outils ne sont pas disponibles dans l'environnement IDE Revit.