L'axe le plus grand d'une surface

L'axe le plus grand d'une surface

Anonymous
Non applicable
902 Visites
9 Réponses
Message 1 sur 10

L'axe le plus grand d'une surface

Anonymous
Non applicable

Bonjour je travaille sur un gros programme dynamo depuis quelques mois. Il est bientôt

aboutie, il ne me reste qu'une étape pour laquelle j'aurai besoin d'un peu d'aide.Capture 25.PNG

 

Mon programme sert à modéliser un bâtiment automatiquement en ne dessinant que les contours du terrain. Maintenant que c'est fait il ne me reste plus qu'a trouver l'axe le plus grand du terrain afin de pivoter mon bâtiment pour qu'il occupe le plus de place possible. J'ai déjà commencer un bout de piste en sélectionnant tous les points périphérique de mon terrain et j'arrive à sortir la valeur la plus grande par rapport au centre du terrain . Mais je n'arrive pas à trouver l'axe entre le centre du terrain et le point le plus éloigné.Capture46.PNG

0 J'aime
Solutions acceptées (3)
903 Visites
9 Réponses
Replies (9)
Message 2 sur 10

francis_l-haridon
Advisor
Advisor

Bonsoir

 

Tu auras peut-être plus de réponse sur ce forum https://forum.dynamobimfra.com/

 

@ plus

0 J'aime
Message 3 sur 10

francis_l-haridon
Advisor
Advisor

Bonjour

 

Peut-être avec cette vidéo concernant la recherche du plus court chemin...

 

@ plus

0 J'aime
Message 4 sur 10

francis_l-haridon
Advisor
Advisor

Bonjour

 

Tu peux aussi faire le travail directement dans Excel, ou faire un export à partir de Revit avec Dynamo vers Excel.

Un exemple ci-dessous. Export vers fichier EssaiExport vers fichier Essai

ce qui permet d'obtenir le fichier ci-dessous

Exemple fichier EssaiExemple fichier EssaiDans le tableau, j'ai mis dans D4 la formule SI(ESTNUM(D$1)*ESTNUM($A4);((D$2-$B4)^2+(D$3-$C4)^2)^0,5;"").

Ce script peut être amélioré pour :

* Obtenir automatiquement les coordonnées des points utiles, à partir de la topo par exemple.

* Traiter un nombre quelconque de points (9 dans l'exemple ci-dessus)

* Réimporter si besoin les coordonnées ou le numéro des points correspondant à la longueur la plus grande

* Tracer la ligne correspondante si désiré

 

On doit même pouvoir tout faire avec Dynamo avec des Code Block...

 

@ plus

Message 5 sur 10

francis_l-haridon
Advisor
Advisor

Bonjour

 

Si tu veux tout faire avec Dynamo, une partie du travail ci-dessous, toujours avec les mêmes valeurs initiales en exemple

Distance max entre 5 points dans un plan (X,Y)Distance max entre 5 points dans un plan (X,Y)

Attention, produit vectoriel dans les combinaisons des formula x1-x2 et y1-y2

 

@ plus

0 J'aime
Message 6 sur 10

francis_l-haridon
Advisor
Advisor
Solution acceptée

Bonjour

 

Et pour tracer automatiquement la ligne correspondant à cette plus grande distance.

Ligne la plus grandeLigne la plus grande

 

@ plus

P.S : La méthode utilisée ne convient peut-être pas si cette distance max sépare plus d'un couple de points...

0 J'aime
Message 7 sur 10

francis_l-haridon
Advisor
Advisor
Solution acceptée

Bonsoir

 

Une autre version, un peu plus simple, sans Flatten

partie gauchepartie gauchepartie droitepartie droite

@ plus

 

P.S : Sil y a deux distances max identiques (les diagonales d'un carré, par exemple), cela ne fonctionne pas.

0 J'aime
Message 8 sur 10

Charles.Piro
Advisor
Advisor

Salut,

 

voici la procédure que te conseille :

- Récupérer toutes les lignes délimitant ton terrain

- Pour chaque ligne récupérer les points de début et de fin (si on veut ajouter des possibilités , ajouter le milieu des lignes)

- Une fois la liste obtenu, supprimer les doublons afin de n'avoir que des points uniques

- Pour chaque points, comparer la distance de celui-ci avec les autres points

- La distance la plus grande entre deux points sera ton résultat

 

Je te conseille de coder cela en python, tu ira plus vite et le risque d'erreur sera minime.

 

😉



PIRO Charles
Developer

PIRO CIE
Linkedin


0 J'aime
Message 9 sur 10

francis_l-haridon
Advisor
Advisor

Bonsoir

 

Une variante

Distance max5.png

 

@ plus

0 J'aime
Message 10 sur 10

francis_l-haridon
Advisor
Advisor
Solution acceptée

Bonsoir

 

Et une autre, pour le fun, mettant en valeur la ou les lignes les plus grandes.

francislharidon_0-1623619424414.png      francislharidon_1-1623619464196.png  francislharidon_4-1623619544163.pngfrancislharidon_5-1623619631598.pngfrancislharidon_6-1623619744073.png

Distance max6.png

Cela me parait tellement simple, que je doute de la polyvalence de cette solution. A tester davantage donc...

 

@ plus