Stessi oggetti collegati a più livelli

Ho creato una serie di oggetti suddivisi per livelli in base al materiale, ma vorrei poterli suddividere in base alla posizione ad esempio in modo da accendere solo il livello materiale se voglio vedere tutti gli oggetti in alluminio, oppure livello ali, oppure livello fusoliera, per vedere solo questi ultimi, che non sono suddivisi ovviamente per materiale. Vorrei farlo evitando di duplicare gli oggetti in nuovi livelli: è possibile?

Magari… lavorare con i sub-layer? (O sotto-livelli, non so quale sia il nome ufficiale…)

2021-02-05 02_27_25-Untitled - Rhino 7 Commerciale - Perspective


Poi c’è il comando “SelMaterialName”, che ti permette di selezionare gli oggetti che di un determinato materiale… ma probabilmente non è utile per quello che chiedi…

E’ anche un mio vecchio desiderio … ma sei il primo che condivide, a quanto ricordo …
:confused:

1 Mi Piace

beh fin qui ci arrivo… ma la cosa è un po’ diversa:


(scusate lo schizzo rozzo, mi viene male a scrivere con la tavoletta).

ok che posso selezionare per materiale, ma può succedere che un oggetto si venga a trovare su più rami, per esempio le superfici si trovano nel sottolivello srf, nel sottolivello parti fisse e nel sottolivello parti mobili, e io vorrei, con un solo tasto, poter lasciare accesa “solo la struttura”, “solo le parti fisse”, “solo le parti mobili”, “solo le superfici”, “solo le parti in alluminio”,…

Dai un occhio agli Snapshots… io li utilizzo per esplosi o per studiare varie configurazioni di assemblati.
Ti giro un link ad un tutorial video che spiega meglio di mille parole…

Snapshots in Rhino 6 from Rhino Tutorials on Vimeo.

1 Mi Piace

sai che non ci avevo pensato? Si li uso già … forse risolviamo così mi sa, grazie Lucio.

Oltre agli snapshot ci sarebbe anche il Layer State Manager che permette di salvare la “configurazione” dei layer (utile se stai modificando/aggiungendo degli oggetti e ti serve accendere/spegnere un set di layer per avere i riferimenti che ti servono).
Gli snapshot hanno la limitazione che, se un oggetto viene modificato e cambia il suo ID perde l’associazione con i vari fotogrammi salvati… dovrebbero mettere una funzione di aggiornamento che ti permette di sostituire un id con un altro come se fosse la sostituzione di un blocco.
Ma sarebbe troppo fico… meglio soffrire… :wink:

PS poi ci sono una serie di altri sistemi… Named Views, Named Positions, Named Selections… che mi sembrano un doppione degli snapshots… cioè, se gli snapshots salvano tutto, avrei integrato nella stessa finestra tutte le funzioni degli altri “sotto comandi”… ma forse veniva fuori una cosa troppo complessa…

2 Mi Piace

eh noo ca**arola… gli oggetti li crea grasshopper e li salva ciascuno sempre sullo stesso livello ad ogni bake generale. Quindi mi chiedo: ogni bake di GH assegna un nuovo ID ad ogni oggetto?

Non si può proporre?

Non so cosa siano.

Se hai tempo potresti mostrare un esempio di utilizzo?

Hai anche la possibilità di assegnare ad ogni oggetto una chiave e rispettivo valore. Ci sono anche i rispettivi comandi per selezionare per chiave, valore e chiave-valore.

Mi fa piacere la comunicazione… :grinning_face_with_smiling_eyes:
Mi è più utile sapere come procedere :stuck_out_tongue_winking_eye:

Si

Si… ma ultimamente non ho avuto molta fortuna con le mie richieste… probabilmente non sono in linea con le richieste della massa…

Salvano le viste (per poi richiamarle), la posizione degli oggetti, la selezionde degli oggetti… trovi tutto nella guida.

Se la tua definizione di GH fa il Bake degli oggetti in layer precisi (come stai già facendo), invece di andare a selezionare gli ID degli oggetti (che variano ad ogni ricalcolo) puoi basarti sulla combinazione di layer visibili.
Praticamente il tuo set di visualizzazione (componenti mobili, struttura interna, alluminio, legno…) sarà legato all’impostazione di visualizzazione dei layer (che gestirai con il Layer State Manager).
La cosa importante è che gli oggetti che metterai nello stesso layer siano effettivamente della stessa “famiglia” e che quindi vadano visualizzati contemporaneamente.
Poi c’è anche il metodo fi Federico dove puoi assegnare delle chiavi ad ogni singolo oggetto (queste chiavi sono settabili con i metodi User Data che possono essere attribuiti al documento in cui si sta lavorando oppure agli oggetti; dai un occhio alla guida di RhinoScript o PythonScript, i comandi dovrebbero essere SetObjectData e GetObjectData… assegni agli oggetti degli attributi che poi ti servono per identificarli e decidere se vanno visualizzati o no… ma devi crearti una definizione di GH oppure uno script che esegua quanto sopra… forse il layer state manager è più semplice da gestire).

2 Mi Piace

Benvenuto nel club ! :wink:
Se dici ‘ultimamente’ pero’ direi che sei stato ancora fortunato per parecchio tempo … :smile:
Poi … dubito molto che esista questa ‘massa’ i cui desideri vengono esauditi. :confused:
Se non altro (anche se non solo) per la grande varieta’ di esigenze dei molti(ssimi) diversi tipi di utilizzatore dell’erbivoro.

Aggiungo solo che la varieta’ e la complessita’ dei metodi suggeriti in risposta a quanto ipotizzato da Luca rafforzano la mia convinzione che l’idea originale, cioe’ dei layer piu’ simili a dei set, resterebbe comunque la soluzione piu’ semplice e ‘pulita’ (dal punto di vista dell’utilizzatore).

Scusate la petulanza (da venerdi’ sera in questo caso :wink: ) e buon weekend ! :slight_smile:

3 Mi Piace

Sì, sono stato fin troppo stitico, rimedio subito.
Se clicchi un oggetto nella scheda proprietà trovi il pulsante “testo utente attributi” se lo clicchi puoi aggiungere chiavi e valori a piacere,


Poi ci sono i comandi _SelKey _SelValue _SelKeyValue per selezionare tutti gli oggetti che hanno in comune rispettivamente una chiave, un valore o una coppia chiave-valore. Trovi questi comandi nella barra seleziona.

Unica cosa è che ti devi ricordare le chiavi e valori, non ci sono menù a tendina che compaiono purtroppo.

1 Mi Piace

Stavo pensando anche io agli object data che suggeriva Federico, in realtà ho trovato un plugin che aggiunge i tags: sembra interessante (non l’ho ancora provato)

2 Mi Piace

Ogni oggetto di un dato materiale ha un determinato colore di visualizzazione (a prescindere dal livello).
Poi usi _SelColor per richiamarli progressivamente e il gioco è fatto

Non so se ho capito bene, ma mi sembra articolato.

È per quello che io li utilizzo solamente all’interno di script.
Alla fine il sistema che potrebbe andare bene a Luca sarebbe la combinazione di più hashtag per fare la selezione voluta (tipo alcuni componenti potrebbero essere #aladestra #alettone #alluminio #partimobili e poi, facendo una combinazione che richiama gli stessi tag, ti vengono visualizzati solo i componenti che soddisfano il filtro).

1 Mi Piace

Lo dico io che devo imparare presto Python o C#… Non ho ancora visto la soluzione di Marco Traverso.

Ma se tu assegni i tag in gh dalle definizioni che creano gli oggetti e poi, nel plug-in smart tag vai a creare le combinazioni di selezione, alla fine non ti serve altro.
Ho appena guardato il video di spiegazione e mi pare faccia proprio quello che ho scritto nel mio messaggio precedente.
Unico dubbio che ho è che il plug-in possa creare dei tag con dei codici particolari per evitare che vada a collezionare tag creati da altri plugin o script… credo sia abbastanza semplice da verificare (basta assegnare un tag ad un oggetto e vedere se appare nella finestra del plugin oppure assegnare un tag dal plugin all’oggetto e poi andare a vedere nelle proprietà come è stato scritto il tag…).

facevo riferimento al fatto che conoscendo C# avrei libertà di movimento. Lo studierò appena possibile. Poi… se magari qualcuno vuole fare un webinar introduttivo al C# per GH… anche pagando una piccola quota, se siamo una decina… no? Penso si possa fare.

A parte questo sto avviando adesso Rhino e GH, vediamo un po’ di provare.