Come fare "debugging" - Ricerca dell'errore nella Lezione 9

  • Posted on: 26 May 2020
  • By: StefanoConverso
Text: 

Grazie alla segnalazione di Lisa Bonaguidi, prendiamo l'occasione di un errore emerso nella Lezione 9 per introdurre come ricercarlo con procedura "passo-passo", simulando, in Revit, la procedura di Debugging che usano i programmatori per trovare il punto dove il programma si interrompe o ha una "falla". In ossequio alla frase di James Joyce che citiamo spesso, "errors are portals of discovery"! Benvenuti quindi. Provo a usare quanto successo per lavorare quindi sul file della lezione 9, la terza della serie "nested components".

Iniziamo dunque il Debugging:

Ho analizzato il file della lezione 9 ricercando la ragione del non recepimento dei parametri da parte delle famiglie "Telaio Base" caricate nel file di assemblaggio, problema segnalato non da tutti. Nel caso del file che ho usato per la lezione, ho riscontrato l'errore ed eseguito i seguenti passi, ognuno conseguente a un tentativo di isolamento del problema. In altri termini è una procedura di "troubleshooting". In questo caso si isolano le singole parti per testarne il funzionamento.

1 - Ho costruito un nuovo file di assemblaggio e provato se caricando la stessa famiglia telaio base, da sola, il problema tornasse. Si ripresentava.
Quindi il problema era nella famiglia di origine non in quella di destinazione;

1a - Cosa singolare, variando i parametri nella famiglia di origine la variazione avviene, caricando il file in quella di assemblaggio e indicando di sostituire i valori dei parametri... si osservava la variazione, che invece dal pannello properties non sembrava aver effetto;

2 - Ho controllato quindi la famiglia di origine, Telaio Base, e testato se fossero i parametri ad avere un problema. Per farlo ho aggiunto un cilindro legando la sua altezza di estrusione a uno dei due parametri in questione, ad esempio, b sezioni;

3 - A questo punto ho caricato di nuovo la famiglia nel precedente file, e testato la variazione dei parametri: solo quello del clilindro sembrava aver effetto. 

Dunque ciò che era "vecchio" non andava, ciò che era "nuovo" invece sì. 
Proviamo a testare questa ipotesi. Resettiamo i "tempi".

4 - A questo punto quindi ho effettuato un ciclo di salvataggio e ricarica da zero delle famiglie in questione, e inoltre testato la variazioene dei parametri angolari, e sucessivamente di quelli del tipo : a questo punto ho osservato una variazione anche variando i valori dal pannello properties;

Dunque il problema sembra essere nella ciclicità e sequenza di caricamenti e aggiornamenti. Un tema di "refresh". Possibile?
ora funziona, ma si potrebbe indagare nel dettaglio esattamente il problema. Il problema del "refresh" può essere collegato a una lezione in cui ho piu volte dovuto fare "back and forth". Ho trovato, ad esempio, la famiglia telaio base caricata non salvata. I due file non erano allineati.
Lisa, prova a indagare questo tema e facci sapere. Ti allego le famiglie da me "lavorate" di assemblaggio e telaio base.

Se trovate errori, ricordate: provate un comportamento semplice e da lì ripartite, aggiungendo complessità.
Anche nelle esercitazioni future!

Buon "debugging" dunque!
Buona sperimentazione a tutti, siete un gruppo fantastico, non demordete! 
Vi leggiamo. Ricordatevi che stiamo facendo cose difficilissime ma le state affrontando bene, le dovete solo "digerire", e non sono, ripeto non sono temi da aver neccessariamente risolto per l'esame, anzi. Nella discussione si parla di problemi, non di soluzionI!

Link ai file del "debugging": https://drive.google.com/drive/folders/1R9wqsw0NW41psMlg5iNhHo9DrERD87Ql

Un bravo quindi a tutti già ora-.

Provate, sbagliate e fate cose semplici!

a prestissimo!

S.C. e il team TPP

S:C.

Dates: 
Mar, 26/05/2020 - 16:03
Media Image: 

Commenti

Ritratto di lisa bonaguidi

Buongiorno Professore!

Rispondo solo adesso perchè questa settimana sono tornata a Roma e purtroppo qua non ho la rete wifi, quindi ho dovuto organizzarmi con i Gb del telefono.

Grazie mille per il post! Ho effettuato i passaggi che ha descritto, provando sia con i file che ha gentilmente allegato, sia con altri miei file e per adesso mi sembra che abbia funzionato. Sono inoltre stata più attenta ai salvataggi di ogni famiglia prima di importarle nel progetto, probabilmente durante le lezioni in diretta è più facile commettere errori in questo senso e non accorgersi. Seguirò sicuramente questa procedura nel caso dovessi riscontrare lo stesso problema con altri progetti!

Un saluto, a martedì!

Ritratto di lisa bonaguidi

Purtroppo devo correggermi, stavo provando a creare un nuovo assemblaggio e si è ripresentato il problema: i parametri angolari applicati alle linee di riferimento funzionano bene se variati direttamente dal disegno, se invece vengono cambiati dalla scheda Family Tipes, l'angolo mediano aumenta o diminuisce correttamente, mentre, variando l'angolo alla base, la linea di riferimento non ruota attorno al polo nell'estremo inferiore poggiato sul Ref.Level (il quale dovrebbe rimanere fisso), ma quest'ultimo slitta lungo il Ref.Level. Ho provato di nuovo anche con i file che Lei ha allegato e accade la stessa cosa, forse qualche giorno fa non avevo controllato bene l'angolo alla base, ma solo il mediano... anche se mi sembrava di aver verificato.

Anche eseguendo nuovamente tutti i passaggi di debugging, il problema persiste. L'unica cosa di cui sono sicura è che il problema è nella famiglia "Telaio base", che di conseguenza crea difficoltà nel progetto in cui la si importa.

Continuerò a fare delle prove anche domani e Le faro sapere martedì a lezione se ho trovato una soluzione.

A presto!