View Full Version : Merci P.Navarra, mais...
esbeeditions
2008-05-31, 04:56 PM
Bonjour
Un grand merci à toi pour toutes les routines trés pratiques que tu nous a fournis.
J'ai essayé de les compiler toutes dans mon revit.ini, certaines apparaissent (ECCOUNT=5) bien dans les outils externes, pas d'autres.certaines fonctionnent, pas d'autres.
Bref, je suis paumée.
Aurais tu le temps de nous faire une petite récap avec le bon myrevittools.dll ?
S'il te plait.
La liste résumée de tes API trouvées :
ECCount=5
ECName1="Lab4_1_ParametersForSelectedObjects" celui la, je ne sais pas à quoi il sert
ECName2="Surfaces appartements"
ECName3="Surfaces appartements V2"
ECName4="Occurrences sur niveau"
ECName5="Etiquettes surface Zone Remplie"
ECCount=2
ECName1="Surfaces appartements"
ECName2="Room Find & Replace txt"
ECCount=1
ECName1="Remplissage auto du champ Service"
Merci d'avance et bon WE.
Pierre-Nelson NAVARRA
2008-06-02, 06:47 AM
Salut,
C'est bien normal que tu ne t'y retrouves pas, tout ceci nécessite un peu de ménage. Je vais essayer de préparer cela aujourd'hui.En effet, il y a des fonctions qui ne marchent pas car elles me servent de test. Je vais tacher d'expliquer ce que doit contenir les fichier Revit.ini, où coller la dll et comment utiliser tout cela au travers d'un fichier .rvt de test. :beer:
esbeeditions
2008-06-02, 07:47 AM
Cool, Merci P. c'est sympa
bonne journée
Pierre-Nelson NAVARRA
2008-06-02, 07:57 AM
Ok, alors je m'explique :
Je joins un fichier compressé qui s'appelle "myrevipack.zip"
Il contient :
ExternalCommands in Revit.ini dont le contenu est à coller dans le fichier Revit.ini qui se trouve dans ..\Program Files\Revit Archi. 2008. Brièvement, sachez que [ECCount=6] signifie que derrière, vous avez 6 fonctions d'API à charger dans Revit. Le truc important à savoir est que vous devez remplacer le chemin indiqué sur chaque occurrence [ECAssemblyN] par celui ou se trouve le fichier dll contenant la fonction API. (vous devez relancer Revit pour que les modifications du fichier Revit.ini soient prises en compte.
myrevittools.dll est la dll qui contient les fonctions programmées. Son emplacement est lié à ce que vous indiquerez au sein du fichier Revit.ini.
parametres partages.txt contient les paramètres partagés à intégrer à votre projet pour que la fonction [Calcul surface appartements] fonctionne.
Projet1.rvt est mon fichier d'exemple. Sachez qu'il contient deux nouvelles étiquettes : une pour l'affichage de la surface total des appartements et une pour afficher la surface d'une zone remplie.Pour comprendre le fonctionnement de certaines des API, vous pouvez vous référer aux différents liens suivants :
http://forums.augi.com/showthread.php?t=61281
http://forums.augi.com/showthread.php?t=81039
http://forums.augi.com/showthread.php?t=80911
http://forums.augi.com/showthread.php?t=77892Enfin, un lien vers l'API Revit et son développement.
http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=2484975Voilà.
Tcho.:beer:
Pierre-Nelson NAVARRA
2008-06-02, 08:08 AM
Ps : j'ai oublié de décrire ce que font les fonctions développées :
Calcul surface appartements : indique dans une étiquette nommée etiquette_pieceappartement, la surface totale du logement auquel elle est associée. Pour cela, il faut que chaque pièce de l'appartement ait dans la propriété Occupation le même nom d'appartement. Enfin, le paramètre "total_logement" doit-être coché sur la pièce associée à l'étiquette etiquette_pieceappartement. Donc, les paramètres partagés fournis dans mon pack doivent être chargés. On doit d'abord faire une sélection grossière sans filtre de toutes les appartements que l'on souhaite calculer.
Remplace nom pièces : remplace le nom de toutes les pièces sélectionnées.
Isoler les occurences sur niveau courant : Btn droit sur un mur, puis, Isoler les occurrences et du coup, il ne garde que les occurrences qui se trouvent sur le niveau courant.
Affiche la surface de la zone remplie : on sélectionne une zone remplie ainsi que l'étiquette nommée étiquette_surface_zoneremplie et l'API affiche la surface de la zone dans l'étiquette.
Etiquetage des pièces du niveau courant : pas besoin de faire de sélection, une fenêtre s'ouvre et vous propose de Supprimer toutes les étiquettes de pièces du niveau courant, ou bien de remplacer les étiquettes par une autre, ou bien d'en ajouter.
Remplissage du champ [Service] des pièces : sur la sélection, se charge d'indiquer dans la propriété [Service] de chaque pièce, la valeur souhaitée. Utile pour nos nomenclatures qui trient pas N) de service.
esbeeditions
2008-06-02, 09:08 AM
Whouaaaaa génial !
c'est parfaitement clair
Merci encore, je vais essayer tout cela tout de suite !!
batproj
2008-06-10, 07:15 AM
Je ne comprends pas: je retrouve les éléments dans mon menu déroulant "outils" mais après les fonctions ne s'appliquent pas. Quand tu dis:" Le truc important à savoir est que vous devez remplacer le chemin indiqué sur chaque occurrence [ECAssemblyN] par celui ou se trouve le fichier dll contenant la fonction API", je ne vois pas comment mettre ça en place... j'aurai besoin d'explications...
esbeeditions
2008-06-10, 07:44 AM
Bonjour
En fait, l'idee est que tu peux ranger la dll dans n'importe quel dossier de ton ordi, mais tu dois imperativement ecrire en toutes lettres le chemin vers la dll, dans chaque commande.
exemple C://documents and setting/trucmuch/ dossier où est la dll.
esperant que c'est clair
@+
Pierre-Nelson NAVARRA
2008-06-10, 09:16 AM
Bonjour
En fait, l'idee est que tu peux ranger la dll dans n'importe quel dossier de ton ordi, mais tu dois imperativement ecrire en toutes lettres le chemin vers la dll, dans chaque commande.
exemple C://documents and setting/trucmuch/ dossier où est la dll.
esperant que c'est clair
@+
Ce que dit esbeeditions est exact.
Je précise que le chemin doit-être plutôt du genre "C:\...." et non "C://...."
Au fait, si ça vous intéresse, j'ai essayé de développer un filtre de sélection un peu plus amélioré. C'est en Anglais pour l'instant et c'est ici
(http://forums.augi.com/showthread.php?t=81427&page=2) Tcho!:beer:
batproj
2008-06-10, 01:18 PM
Bonjour
En fait, l'idee est que tu peux ranger la dll dans n'importe quel dossier de ton ordi, mais tu dois imperativement ecrire en toutes lettres le chemin vers la dll, dans chaque commande.
exemple C://documents and setting/trucmuch/ dossier où est la dll.
esperant que c'est clair
@+
Désolé je ne vois toujours pas... je dois écrire en toutes lettres où sur REVIT et à quel moment???
Benoit D
2008-06-10, 01:39 PM
Désolé je ne vois toujours pas... je dois écrire en toutes lettres où sur REVIT et à quel moment???
Tu dois écrire en toutes lettres dans le fichier REVIT.INI le chemin d'accès aux fichiers *.dll :
c'est à dire tu dois mettre les *.dll dans un dossier en suite ouvrir revit.ini puis
Il faut rajouter à votre fichier Revit.ini les lignes suivantes :
ExternalCommands]
ECCount=6
ECName1="Calcul surface appartements"
ECDescription1="Calcul la surface des appartements de la sélection"
ECAssembly1="C:\CHEMIN COMPLET VERS myrevittools.dll"
ECClassName1=myrevittools.RoomsAreaSum
ECName2="Remplace nom pièces"
ECDescription2="Remplace le nom des pièces de la sélection"
ECAssembly2="C:\CHEMIN COMPLET VERS myrevittools.dll"
ECClassName2=myrevittools.RoomFindAndReplaceTxt
ECName3="Isoler les occurences sur niveau courant"
ECDescription3="Isoler les occurences sur niveau courant"
ECAssembly3="C:\CHEMIN COMPLET VERS myrevittools.dll"
ECClassName3=myrevittools.SelectOccurrencesInLevel
ECName4="Affiche la surface de la zone remplie"
ECDescription4="Affiche la surface de la zone remplie de la sélection"
ECAssembly4="C:\CHEMIN COMPLET VERS myrevittools.dll"
ECClassName4=myrevittools.ZoneAreaSum
ECName5="Etiquetage des pièces du niveau courant"
ECDescription5="Module d'étiquetage des pièces du niveau courant"
ECAssembly5="C:\CHEMIN COMPLET VERS myrevittools.dll"
ECClassName5=myrevittools.AutoTagCurrentLevelRooms
ECName6="Remplissage du champ [Service] des pièces"
ECDescription6="Remplissage du champ [Service] des pièces de la sélection"
ECAssembly6="C:\CHEMIN COMPLET VERS myrevittools.dll"
ECClassName6=myrevittools.RoomsAutomaticService
Ps : tu me corriges Pierre si je me trompe !!!
esbeeditions
2008-06-10, 06:07 PM
Yes ! Là, c'est clair !
batproj
2008-06-11, 06:02 AM
En effet c'est très clair!
Moi qui pensait devoir noter ce chemin à l'ouverture de revit (dans le logiciel), j'étais loin, très loin du compte... puisque tout ce fait dans le fichier ".ini".
MERCI A TOUS!
Pierre-Nelson NAVARRA
2008-06-11, 06:54 AM
Salut,
Nouvelle commande API externe :
Un filtre de sélection un peu plus complet que celui proposé par Revit.
On effectue une sélection d'une zone, on lance la commande et une fenêtre s'ouvre et vous dresse une arborescence de la sélection triée par catégorie et par type. Ainsi, on aura une grande famille appelée "Porte" dans lequel on aura tous les types de portes, un total et chaque élément avec son nom et son ID. Il en va de même pour tous les autres objets. On coche ou décoche les éléments qui nous intéressent, le total est recalculé. En cliquant sur Ok, le filtre est appliqué. En cliquant sur "Annuler", on annule tout.
:idea: Euh..c'est une version beta on a qu'a dire. Probablement des bugs ou bien des améliorations sont à apporter. Signalez moi ce qui va pas ou ce qui pourrait aller mieux.
Pourquoi pas refaire un truc du genre de la sélection rapide d'autocad, non?
Pour ceux qui ne savent pas comment installer tout cela, je vous recommande de remonter plus haut dans le post car des gens biens vous expliquent tout cela mieux que moi.
Ci-joints, des aperçus sur l"utilisation de la fonction et le myrevitpack.dll
Tcho! :beer:
Ps: le post sur AUGI English est ici. (http://forums.augi.com/showthread.php?p=853936#post853936)
conceptjcs
2008-06-19, 03:37 PM
Salut,
Nouvelle commande API externe :
Un filtre de sélection un peu plus complet que celui proposé par Revit.
Bonjour p.navarra,
Je pensais à une fonction qui pourrait être utile pour nous, pauvre REVITIEN.
Utiliser ta fonction de filtre détaillé, mais cette fois ci pour comptabiliser l'ensemble des éléments invisibles/masqués dans la vue sur le niveau en cours, un remake de la fonction Ampoule.
Tu crois que cela est jouable? Sur certain de nos projets notamment avec des fichiers liés, ca devient vite très lourd pour selectionné et faire réapparaitre un élément masqué.
Si jamais tu as un peu de temps, pour nous compiler cette fameuse fonction.
Pierre-Nelson NAVARRA
2008-06-19, 03:53 PM
C'est noté.
Je bosse justement sur les éléments visibles et invisibles, et les fichiers liés...à suivre...
Surveille le forum...
Ca serait utile, je pense, de créer un post "Fonctions souhaitées API" et "Fonctions existantes API". A voir avec les modé.
Et pourquoi pas un autre post : "Une guinness contre une fonction"!!!:beer:
;)
Benoit D
2008-06-19, 04:00 PM
Et pourquoi pas un autre post : "Une guinness contre une fonction"!!!:beer:
;)
Viens faire un tour dans le Nord on te fera goûter les bières Belges !!!! :beer:
Pierre-Nelson NAVARRA
2008-06-19, 04:03 PM
Merci pour l'invitation Benoit!:beer:
Benoit D
2008-06-19, 04:06 PM
En regardant du Rugby !!!! hihihi !!!! Vive l'Ovalie !!
o.grand
2008-07-04, 11:55 AM
Bon, je n'aime pas quand je bloque, mais là????
j'essaie d'installer le myrevittools et je bloque :
je vous joins mon fichier revit.ini
les paramètres sont bien chargés
j'ai coché la pièce recevant l'étiquette de pièce : pièceappartement
je fais la sélection et je lance :Roomsareasum ou roomsareasumV2
mais rien à faire je n'ai pas le total !!!!!
Help!!!
Olivier
Pierre-Nelson NAVARRA
2008-07-04, 12:10 PM
Salut,
As-tu essayé avec le fichier Projet1.rvt joint avec le fichier compressé?
esbeeditions
2008-07-04, 12:47 PM
N'as tu pas oublie de renseigner l'occupation avec la même reference d'appt ?
@+
Pierre-Nelson NAVARRA
2008-07-04, 12:56 PM
Ah oui, il a raison!...bien joué, auquel cas, tu peux aussi voir comment sont renseignées les pièces dans le fichier d'exemple Projet1.rvt.
Au fait, chez nous, on a fait une nomenclature qui regroupe toutes les pièces par niveau par exemple et en cliquant dans la colonne qui regroupe toutes les pièces, la sélection se fait automatiquement sur toutes les pièces que l'on souhaite réactualiser. Il ne nous reste plus qu'à lancer la fonction ;-)
esbeeditions
2008-07-04, 12:57 PM
Je viens de remarquer un truc etrange dans ton fichier
J'ai l'impression que les totaux s'ajoutent si on supprime un plan, parce que le total est faux sur mon nouveau plan ( sur le même niveau)
est ce que d'autres on le meme résultat ?
@+
Pierre-Nelson NAVARRA
2008-07-04, 01:11 PM
Je dis peut-être une bêtise mais quitte Revit et relance la fonction pour voir.....
esbeeditions
2008-07-04, 01:15 PM
Je viens de réessayer sur un dessin vierge....et le résultat est faux !!!
est ce que les unites sont concernées par ton programme ??
@+
Au fait, nous sommes bien trop peu nombreuses pour ne pas le signaler
; ))
esbeeditions
2008-07-04, 01:18 PM
Heu je viens de le faire et regarde ce message d'erreur inédit, evidemment que j' ai tous les droits sur cette machine !!!
C'est grave, docteur ???
Pierre-Nelson NAVARRA
2008-07-04, 01:20 PM
Je viens de réessayer sur un dessin vierge....et le résultat est faux !!!
est ce que les unites sont concernées par ton programme ??
; ))
Oui
Au fait, nous sommes bien trop peu nombreuses pour ne pas le signaler
; ))
Je comprends pas :(
esbeeditions
2008-07-04, 01:35 PM
Ah oui, il a raison!..
c'était pour juste pour ca !
Passons....
Je ne comprends pas pourquoi la somme est fausse dans un nouveau fichier, puisque mes surfaces sont aussi en m² ...
@+
Pierre-Nelson NAVARRA
2008-07-04, 01:40 PM
Poste ton fichier stp...
Benoit D
2008-07-04, 01:41 PM
Ah oui, il a raison!;-)
Non ELLE !!!!
Pierre-Nelson NAVARRA
2008-07-04, 01:43 PM
Merci Benoit, je viens de comprendre. Excuse moi esbeeditions:Oops:
esbeeditions
2008-07-04, 01:57 PM
Merci, voilà
o.grand
2008-07-07, 07:17 AM
j'ai bien suivi vos conseils, j'ai même essayé sur le fichier de esbeeditions et regardez, je n'ai rien!!!!
Olivier
esbeeditions
2008-07-07, 08:02 AM
Olivier,
Dans ton fichier .ini, j'avais remarqué que tu avais plus de commandes externes que moi, peut-etre est ce lié, une incompatibilité ???
seul un pro de l" API pourrait vérifier ta dll ?
Je ne peux pas essayer ton fichier parce que je n'ai pas la 2009 ! dommage
@+
Pierre-Nelson NAVARRA
2008-07-07, 09:32 AM
Salut,
J'ai un bug dans la fonction avec RAC2009, c'est normal si ça marche pas.
Comme j'ai un gros plantage avec VSTA et la 2009, on n'utilise pas encore la version 2009.
Je te tiens au jus.
Désolé:(
o.grand
2008-07-07, 09:48 AM
Salut,
J'ai un bug dans la fonction avec RAC2009, c'est normal si ça marche pas.
Comme j'ai un gros plantage avec VSTA et la 2009, on n'utilise pas encore la version 2009.
Je te tiens au jus.
Désolé:(
Merci, je commençais à me dire que j'allais tout jeter!!!
Olivier
idorion
2008-07-15, 03:54 PM
Bonjour, j'ai essayé d'ajouter des raccourcis clavier à quelques unes de ces fonctions, ceux-ci apparaissent bien comme raccourcis mais la commande ne s'exécute pas est-ce normal?
Isabelle
Powered by vBulletin® Version 4.1.11 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.