J'ai une question qui est plus la théorie des «meilleures pratiques» que la programmation technique réelle.Revit API Modification des éléments après la création
J'essaye de penser à la meilleure manière de manipuler éditer un élément après qu'il soit placé par mon programme. Spécifiquement j'ai mon programme mis en place comme suit:
L'utilisateur clique sur un outil qui "ajoute des familles dans un projet" essentiellement dans Revit. Il lit une esquisse créée par l'utilisateur et place les éléments en fonction de l'esquisse.
Je veux donner à l'utilisateur la possibilité de « modifier l'esquisse » de ces éléments semblables à dire une dalle de plancher. Je ne crois pas que l'API Revit expose la possibilité d'esquisser en utilisant le "mode croquis". J'essaie d'imiter cette capacité très utile dans mon programme. Donc, ce que j'ai fait est utilisé stockage extensible et stocker un UniqueId dans tous les éléments créés en utilisant mon outil. Ce que le programme fait est quand l'utilisateur clique sur l'outil "éditer des éléments", le programme demande la nouvelle esquisse, demande de cliquer sur l'élément existant, lit l'UniqueId de l'élément existant et appelle tous les éléments avec cet UniqueId et les supprime, puis le programme ajoute de nouveaux éléments dans le projet en utilisant les utilisateurs "nouvelle esquisse". Le problème est que, si l'utilisateur supprime les éléments d'origine qui ont été ajoutés au projet et essaye ensuite de les éditer, comment puis-je garantir que l'utilisateur ne supprimera pas les éléments originaux qui ont l'UniqueId? Je pense que la voie à suivre est d'utiliser la fonctionnalité Dynamic Model Update dans l'API Revit.
Comment la plupart de ces algorithmes sont-ils écrits? Suis-je sur la bonne voie ici? Est-ce que j'attribue simplement des UniqueIds aux éléments et les stocke sur les éléments eux-mêmes pour que je puisse les appeler plus tard? Peut-être qu'il y a une pièce théorique de base du puzzle qui me manque. Structures de données?
Merci pour la réponse. Pour éclaircir les choses, j'utilise le stockage extensible et la création d'un uniqueid unique et il est appliqué à tous les éléments qui appartiennent à cette esquisse. Ainsi, lors de l'édition de l'esquisse, le logiciel recherche ce schéma et l'identifiant ubique attribué au champ dans l'entité. Cet unique que je contrôle. En outre, après avoir lu beaucoup d'articles d'aide de Revit api, j'ai été sous l'impression unique est le chemin à parcourir puisque je peux copier des éléments d'un projet à l'autre et l'ID reste unique. Maxence, es-tu en train de dire que ça peut arriver avec des élémentides? – pirit4
si vous utilisez des identifiants d'éléments stockés dans un stockage extensible, revit gère la traduction des relations d'une manière intelligente: http://thebuildingcoder.typepad.com/blog/2011/06/extensible-storage-features.html#7 –