Aller au contenu

Maxence DELANNOY

Membres
  • Compteur de contenus

    140
  • Inscription

  • Dernière visite

À propos de Maxence DELANNOY

  • Date de naissance 26/09/1973

Contact Methods

  • Website URL
    http://wiip.fr
  • Skype
    maxence.delannoy

Profile Information

  • Gender
    Male
  • Location
    Saint Omer, France (62)

Maxence DELANNOY's Achievements

Newbie

Newbie (1/14)

3

Réputation sur la communauté

  1. Je pense que ce n'est pas implémenté directement dans la bibliothèque géométrique pour des raisons d'optimisation. Si c'était fait dans IntersectWith, qui est utilisé par exemple pour l'accrochage aux objets, ça risquerait d'avoir un impact négatif sur les performances d'AutoCAD.
  2. Tiens c'est marrant j'ai eu le même problème hier. Est-ce que par hasard les coordonnées de tes entités sont très grandes (genre 7 chiffres ou plus devant la virgule) ? Si oui, essaie de ramener tes entités à proximité de l'origine du SCG avec une translation, calcule ton intersection, puis rétablit tes entités à leur position de départ. Tu dois évidemment aussi transformer les points d'intersection renvoyés par IntersectWith pour obtenir leurs positions réelles. C'est peut être un problème de stabilité numérique des fonctions géométrique d'AutoCAD.
  3. Il n'y a rien à ma connaissance pour cela dans Revit, mais ça peut être fait avec une macro VSTA ou via un complément. Voilà par exemple un bout de code qui maximise la fenêtre revit sur l'ensemble des écrans : [Transaction(TransactionMode.Manual)] [Regeneration(RegenerationOption.Manual)] class MultiScreenMaximizeCommand : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { int minX = int.MaxValue; int minY = int.MaxValue; int allScreensWidth = 0; int allScreensMinHeight = int.MaxValue; foreach (Screen screen in Screen.AllScreens) { minX = Math.Min(minX, screen.WorkingArea.X); minY = Math.Min(minY, screen.WorkingArea.Y); allScreensWidth += screen.WorkingArea.Width; allScreensMinHeight = Math.Min(allScreensMinHeight, screen.WorkingArea.Height); } NativeMethods.MoveWindow(ComponentManager.ApplicationWindow, minX, minY, allScreensWidth, allScreensMinHeight, true); return Result.Succeeded; } } [DllImport("user32.dll", SetLastError = true)] public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); Il faudrait modifier ce code pour qu'il ne considère que 2 de tes 3 écrans, et ensuite gérer le positionnement des fenêtres "enfants".
  4. Maxence DELANNOY

    Table de consultation

    En fait les 2 doivent fonctionner, je crois que Revit lit le premier caractère du fichier pour déterminer le séparateur. Normalement un CSV comme son nom l'indique (Comma Separated Values) utilise la virgule, mais comme c'est normalement le séparateur décimal en France et dans d'autres pays, le point virgule est parfois utilisé également.
  5. Maxence DELANNOY

    Table de consultation

    Tu peux consulter l'aide en Français ici : http://help.autodesk.com/view/RVT/2017/FRA/?guid=GUID-91270AEF-225A-49D7-BF84-1F44D1E3E216 En gros, tout est basé sur la fonction Revit size_lookup. Cette fonction va te permettre de retrouver une valeur à partir d'une autre valeur. Imaginons que dans un raccord de tuyauterie tu as un paramètre Diamètre Nominal. Tu as besoin de retrouver l'épaisseur correspondant à un diamètre particulier. Tu va donc créer un fichier CSV qui ressemblera à ça : ;Diamètre nominal##LENGTH##MILLIMETERS;Epaisseur##LENGTH##MILLIMETERS DN100;100;3.0 DN125;125;3.2 Tu as une ligne d'entête qui comporte 3 entrées séparées par une virgule ou un point virgule. La première entrée est vide, c'est juste un libellé qui te permet de te retrouver dans le fichier. Ici j'ai rempli la colonne avec DN100, DN125. La deuxième entrée est le diamètre. C'est une longueur (LENGTH) en mm (MILLIMETERS). La troisième et dernière entrée correspond à l'épaisseur, qui est également une longueur en mm. En dessous de la ligne d'entête, tu as deux lignes de données. Là aussi, les entrées sont séparées par une virgule ou un point virgule. La première entrée est le libellé, la deuxième une valeur de diamètre et la troisième l'épaisseur correspondant au diamètre. Dans ta famille, tu vas charger ce fichier à l'aide du bouton Gérer les tables de consultation qui est situé en bas à droite de la boite de dialogue Types de familles. Ensuite tu vas utiliser la fonction size_lookup dans tes formules comme ceci : http://imageshack.com/a/img922/5926/EN5xH7.png Le premier argument de cette fonction est le nom de la table/du fichier CSV. Il faut le mettre entre guillemets double. Le deuxième argument c'est le nom de la colonne qui va être lue, le troisième la valeur par défaut et la dernière le paramètre qui va être utilisé pour la recherche (comme c'est un nom de paramètre, pas besoin de guillemets). Donc Revit va parcourir le fichier CSV. Il va chercher dans la 2ème colonne nommée Diamètre nominal la valeur 100. S'il la trouve, size_lookup va retourner la valeur qui se trouve dans la 3ème colonne nommée Epaisseur. S'il ne la trouve pas, size_lookup va retourner la valeur par défaut (1 mm). Les tables de consultation te permettent donc de gérer un grand nombre de combinaisons de valeur sans avoir à créer plusieurs types. Il te suffit de faire varier un ou plusieurs paramètres de recherche et avec size_lookup tu retrouves les valeurs associées.
  6. Il faudrait préciser aussi la release puisque des fonctionnalités peuvent être ajoutées (les paramètres globaux dans la 2016 R2 par exemple). Donc [Revit 2016 R2] par exemple. Maintenant il y a deux releases par an donc le simple numéro de version n'est pas significatif.
  7. Vous pouvez ouvrir des fichiers Revit 2012 et 2013 avec un Revit 2016 ou 2017. Par contre avec un Revit 2017, vous ne pouvez enregistrer qu'en 2017.
  8. Avec COM il y a souvent des soucis, notamment des conflits de version, des composants mal enregistrés dans la base de registre... etc. Attaquer directement le document DOCX/XLSX est souvent plus fiable et plus rapide. Pour le XLSX j'utilise SpreadsheetLight qui est très simple et marche bien (je ne l'ai pas poussé dans ces retranchements mais pour faire des feuilles de calcul ordinaire c'est OK) : http://spreadsheetlight.com/ Pour ce qui est de Word, je n'ai pas souvent besoin de créer ce genre de document, donc je n'ai pas de nom à te donner, mais tu devrais trouver ton bonheur sur Nuget : https://www.nuget.org/ En tout cas, n'attaque pas directement en OpenXML, c'est bien trop lourd. Et pour COM, la compatibilité est ascendante, c'est à dire que si ton client fonctionne avec une ancienne version d'office, il doit fonctionner avec les nouvelles. Donc il faut développer/tester de préférence avec une version ancienne.
  9. Mes clients utilisent systématiquement des murs séparés parce que les murs multicouche ne sont pas assez flexibles. C'est dommage parce qu'effectivement Revit devrait aider à ce niveau, mais la fonctionnalité n'est pas assez aboutie pour qu'elle soit utilisable en pratique.
  10. 1. Tu peux acheter une licence Building Design Suite qui inclus AutoCAD et Revit, ce qui peut se révéler moins cher qu'acheter AutoCAD et un autre logiciel BIM. 2. Je pense que tu peux échanger la géométrie 3D entre Solidworks et Revit avec le format SAT (ACIS). Ca devrait mieux marcher dans le sens Revit -> Solidworks que dans l'autre sens car Revit n'est pas optimisé pour gérer des modèles 3D très détaillés comme on peut les produire dans Solidworks. 3. Tu peux exclure certaines catégories de l'export IFC dans Revit. C'est expliqué ici (en anglais). Après je ne suis pas sur que cela soit pratique/utilisable pour protéger ton IP.
  11. J'ai aussi une MX mais je n'ai pas ce type de problème. Mais je trouve que maintenir la roulette appuyée avec cette souris est relativement difficile. J'ai donc affecté la fonction "Bouton du milieu" au bouton numéro 9 dans le logiciel SetPoint et une fois l'habitude prise, je trouve ça plus pratique.
  12. Si seule la 3D t'intéresse, tu peux également utiliser le format SAT pour exporter/importer tes solides.
  13. Merci pour le lien, je ne connaissais pas ce composant qui peut être vraiment utile.
  14. C'est très clair. Développer une petite macro comme celle là peut prendre plusieurs heures pour un amateur, et quelques heures de plus pour un professionnel qui doit fournir un certain nombre de prestations/garanties supplémentaires. Donc soit tu trouves quelqu'un qui te le feras gracieusement parce que ça l'amuse et qu'il a un peu de temps devant lui à occuper, soit tu dois dégager un budget de quelques centaines d'euros pour le faire développer par une boite spécialisée que tu trouveras aisément en faisant une recherche sur notre ami Google. Sur un problème comme celui-là, ce n'est pas évident car implanter les 1400 platines à la main devrait te prendre quelques jours, si on compare au coût d'un développement, ce n'est pas évident que tu t'y retrouves, sauf si tu dois réitérer l'opération plusieurs fois.
  15. Une surcharge ne marchera que si tu es dans un style visuel autre que filaire 2D. Quand tu es en filaire 2D, Worlddraw n'est appelée que lors d'une régénération. Pour un zoom ou un pan, AutoCAD utilise les données qu'il a en cache et ignore le drapeau DrawableAttributes.RegenDraw. Donc une surcharge ne fonctionnera pas seule. Tu dois combiner avec un événement comme Document.ViewChanged ou autre. Il doit y avoir une astuce car effectivement les poignées/grips ont ce comportement dans n'importe quel style visuel mais je n'ai pas trouvé comment faire la dernière fois que j'ai essayé.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité