ESAME:LIGHT CIRCLES
Ciao Stefano,
lo script non riesce a caricarmi la famiglia (il file si trova sul dekstop quindi lo string è giusto),ti mando la schermata con l'errore.Intanto faccio lo sweep e metto i miei parametri,così domani con l'aiuto del mio amico matematico trovo una funzione adatta alla forma della mia lampada.
Allegato | Dimensione |
---|---|
cerchioscript.rfa | 268 KB |
cerchiolamp.rvt | 2.16 MB |
cerchiolamp.rvt | 2.18 MB |
errori.jpg | 382.98 KB |
Commenti
Emanuele15
Ven, 26/02/2010 - 19:18
Collegamento permanente
Lo Sweep Ok..
Lo Sweep..Ok, ne ho creato uno,modificandone uno dalla famiglia profiles.
Il cerchio una volta importato su project funziona alla grande!Rimane il problema script!
Provo a lavorarci sopra!
Domani c'è revisione?
stefanoguarnieri
Sab, 27/02/2010 - 04:50
Collegamento permanente
macro a livello di applicazione/documento
è un problema di incongruenza tra la macro, creata a livello di applicazione, e il linguaggio del codice, avente sintassi a livello di documento (mi scuso per non averlo specificato nel post). Ripeti i passaggi partendo però dalla creazione di modulo e macro sotto cerchiolamp (lo specifico livello di documento) nella finestra macro manager. Nel progetto da te spedito non è possibile leggere il codice proprio perchè creato a livello di applicazione.
admin
Sab, 27/02/2010 - 11:39
Collegamento permanente
Grazie Stefano!
Caro Stefano,
grazie per l'intervento, spero vorrai passare anche agli esami!
per Emanuele:
purtroppo stamattina (sabato) non c'è revisione, ma dovresti
essere in grado di lavorare sullo script che abbiamo fatto all'ultima revisione, che, come giustamente osserva stefano, va costruito come script "di documento" (legato cioè al file cerchiolamp) e non "di applicazione" (cioè su Revit, applicabile a più file).
Non ti gira più?
Lavora proprio sullo stesso file, ok?
Posta sempre aggiornamenti e file in modo che io
oppure Stefano Guanieri possiamo aiutarti.
E' importante che tu riesca a farlo funzionare per
il tuo incontro di oggi sugli aspetti matematici!
a presto,
stefano
Emanuele15
Sab, 27/02/2010 - 12:53
Collegamento permanente
Ok!
Vi ringrazio per la vostra dispondibilità, farò del mio meglio!
buon fine settimana!
Emanuele15
Sab, 27/02/2010 - 17:49
Collegamento permanente
Script
Ciao Stefano,
mi dà errore sugli script:
1.Attribute 'CLSCompliantAttribute' cannot to be applied multiple times.
2.'NonStructural' in not a member of'Autodesk.Revit.StructuralEnums.StructuralType'
Che devo cambiare?
(ho allegato il file contenente lo script, è il secondo)
stefanoguarnieri
Sab, 27/02/2010 - 18:35
Collegamento permanente
linguaggio codice
perchè hai cambiato il linguaggio del codice?
Emanuele15
Sab, 27/02/2010 - 18:43
Collegamento permanente
Script
il linguaggio è sempre quello:vb net
stefanoguarnieri
Sab, 27/02/2010 - 18:48
Collegamento permanente
linguaggio codice
gli screenshot che hai postato mostrano un codice in C#
Emanuele15
Sab, 27/02/2010 - 18:54
Collegamento permanente
Risp
Quello di prima era in C#, ne ho creato uno in VB che mi dà due errori!Ora ti mando la schermata
stefanoguarnieri
Sab, 27/02/2010 - 19:27
Collegamento permanente
maggiore affidabilità di C#
Il tuo problema è una conferma di quanto sostenuto dai professori Converso e Todesco: il C# è il linguaggio "meglio calibrato" per scrivere codici nello spazio Revit VSTA IDE e la maggiore documentazione presente sul web ne rappresenta un'ulteriore conferma. I due messaggi di errore sono due ambiguità (la sintassi è infatti corretta e, riscrivendo nello stesso modo la seconda riga presunta errata, il problema scompare) tra le tante denunciate in posts dello scorso anno curati da Marco Mondello. Il consiglio quindi, avendo tu già sperimentato entrambe le alternative, è di optare per il C#.
Emanuele15
Sab, 27/02/2010 - 20:17
Collegamento permanente
C#
Ciao Stefano,
ti ringrazio ancora per il tuo aiuto.Ho provato con C#, ma mi dà diversi errori.Sto cercando qualche blog online per capire come risolverli.
Ti mando la schermata dell'errore:
PS:L'immagine l'ho allegata assieme hai files di revit(errori.jpg).
stefanoguarnieri
Sab, 27/02/2010 - 21:08
Collegamento permanente
codice intero
ti chiedo cortesemente di postare tutto il codice (anche in un file di testo)
admin
Sab, 27/02/2010 - 21:14
Collegamento permanente
confermo, manda il codice intero!
E anche ti chiedo:
il codice che abbiamo provato a revisione funzionava ed era in C#, forse puoi ripartire da quello?
Quindi mandalo, ma dicci anche che sequenza di operazioni fai per metterlo in revit, cioè come lo inserisci (macro di documento e in C#). E dove stanno i file famiglia e progetto.
Dai che ti seguiamo, forza!
Stefano
Emanuele15
Sab, 27/02/2010 - 21:39
Collegamento permanente
Codice
System; Autodesk.Revit;
using
Autodesk.Revit.Creation;
using
Autodesk.Revit.Elements;
using
Autodesk.Revit.Geometry;
using
Autodesk.Revit.Symbols;
using
Autodesk.Revit.Structural.Enums;
namespace
{
[System.AddIn.
guarnieriAddIn("ThisDocument", Version = "1.0", Publisher = "", Description = "")]public partial class ThisDocument
{
{
}
{
}
private void Module_Startup(object sender, EventArgs e)private void Module_Shutdown(object sender, EventArgs e)
#region
{
}
VSTA generated codeprivate void InternalStartup()this.Startup += new System.EventHandler(Module_Startup);this.Shutdown += new System.EventHandler(Module_Shutdown);
#endregion
{
public void primoesempio()string fileName = @"C:\Documents and Settings\Administrator\Desktop\cerchioscript.rfa";//prova a caricare la famiglia
{
}
{
generico.Set(
}
}
}
}
FamilySymbol family = null;string list = "cerchioscript";if (!Document.LoadFamilySymbol(fileName, list, out family))throw new Exception("Unable to load " + fileName);int i;int n = 9;for (i = 0; i <= n; i = i + 1)XYZ location = Application.Create.NewXYZ(0.0, 0.0, i * 10);FamilyInstance unico = Create.NewFamilyInstance(location, family, StructuralType.NonStructural);Parameter generico = unico.get_Parameter("raggio");Math.PI * 0.5 * i / 10);
Il codice stava su application(macromanager).Quindi lo sposto sotto cerchio lamp creando un modulo(in C cancelletto) e lo edito.Aperto lo script incollo il codice. Lo salvo, gli dò Build e mi dà gli 8 errori.
using
using
admin
Sab, 27/02/2010 - 21:59
Collegamento permanente
manda anche file e famiglia
ciao Emanuele,
Mandaci anche file (dove hai compiuto queste operazioni)
e famiglia, magari con un nuovo post.
Una domanda per Stefano.
Sembrava da alcune prove veloci, che la i non venisse considerata come lunghezza unitaria ma con un valore strano, che ora a memoria non ricordo. Emanuele puoi segnalarlo?
qualcosa come 400.
Per Emanuele:
ma il file usato nella revisione non funziona più?
a presto,
Stefano
stefanoguarnieri
Sab, 27/02/2010 - 22:29
Collegamento permanente
ulteriori accorgimenti
il family symbol (ossia il tipo) viene nel codice richiamato con il nome della famiglia perchè, come spesso avviene, è l'unico presente al suo interno. In realtà questo gruppo di parametri non è registrato sotto alcun nome in maniera automatica. Per facilitare la ricerca del family symbol conviene quindi assegnare un nome al gruppo di parametri (tipo) all'interno dell'.rfa che verrà poi richiamato all'interno del codice.
stefanoguarnieri
Dom, 28/02/2010 - 05:10
Collegamento permanente
questione di ordine
il problema deriva esclusivamente dal copia e incolla. Devi solamente essere più ordinato.
1_ Crea in macro manager sotto cerchiolamp (ossia a livello di documento) il modulo prima e la macro poi in C#
2_ Nell' IDE (ambiente di sviluppo integrato) incolla solo il metodo main (la parte del codice compresa tra "string fileName = ..." e "Math.Pi * 0.5* i/10") all'interno della parentesi graffa già presente sotto public void primoesempio
3_ Aggiungi manualmente le direttive using mancanti (a questo punto dovrebbero sparire tutti i messaggi di errore)
4_ Personalizza il file modificando il percorso, il family symbol, l'.rfa e il nome del parametro
5_ Esegui il Debug, compila, salva e torna nella finestra di revit
6_ Torna in macro manager, seleziona la macro ed esegui