Python: nome oggetti in notes

Vorrei aggiungere i nomi degli oggetto nelle “notes”.
partendo da un semplice GetObjects.
Il problema è che rs.Notes mi aggiorna solo l’ultimo valore della lista di oggetti che seleziono.
Idee?

thanks.

Ciao Giuspa !

A me sembra che rs.Notes() consideri le note come un unico testo.

Quindi, se vuoi editarlo, direi di ottenere il testo attuale, sempre con rs.Notes(), ma senza parametri,
modificare il testo e poi riscriverlo nelle note usando rs.Note() con il testo editato come parametro.

Ad esempio …

import rhinoscriptsyntax as rs

def addnote( text_to_add ):
    text = rs.Notes()
    if not text:
        rs.Notes( text_to_add )
    else:
        rs.Notes( text + '\n' + text_to_add )
        
def main():
    addnote( 'Giuspa' )
    addnote( 'Vittorio' )
    addnote( 'Lucio' )
    rs.Command( '_Notes' )
    
main()

:wink:

EDIT:

In alternativa, se vuoi inserire nelle note una lista di nomi, costruisci un testo unico dalla lista e poi usa quello

Per esempio …

text = '\n'.join( name_list )

Infatti, stavo per dire che forse il Giuspa passa l’array di nomi a rs.Notes ma quest’ultimo viene sovrascritto valore su valore fino ad arrivare a fine lista (per questo si ritrova solo con l’ultimo); invece, come ben dici, bisogna prima creare il testo concatenando tutti i valori dell’array e poi passarlo a rs.Notes (tutte deduzioni dato che di Python ne so na pyppa) :slight_smile:

Deduci, deduci, Lucio !

… che qui servono rinforzi … :grinning:

Bella pensata ! … Chissa’ cosa succcede dandogli una lista, bisogna provare … :slight_smile:
( … ma adesso sto uscendo dall’ufficio …:confused: )

EDIT:

Dandogli la lista di nomi da’ errore … sembra logico …

esattamente così.
Da rs.GetObjects creo una lista con i nomi. Ma alla fine ho una lista…e non rieco a convertirlo in un unico testo multilinea.
Peraltro all’editor non sembra piacere la newline (’\n’)…

Va bene questo? 4 oggetti hanno un nome e gli altri due no.
Ciao Vittorio
ListaNotes.py (276 Byte)ListaNotes2.py (275 Byte)

Scusa, in che senso ? :slight_smile:
Parli di EditPythonScript ?

Si parlo di lui

Funziona anche con ‘\n’ . Guarda ListaNotes2
Ciao Vittorio

ho un file con oggetti che hanno un nome. Lancio lo script e succede questo:
listanotes

…edit:
mi succede quando seleziono insieme oggetti con e senza nome

Scusa, sei sicuro che tutti gli oggetti selezionati abbiano un nome ?

Semprerebbe che ObjectName() resituisca None, che a sua volta fa inca**are l’operatore +

esatto Emi.

Allora potresti inserire un controllo
In modo da aggiungere il nome sole se … hai un nome da aggiungere :wink:

if nome:
    lista = lista + nome + '\n'

Questo funziona perchè ho messo un controllo se selezioni oggetti senza nome
Vittorio
ListaNotes2.py (341 Byte)

1 Mi Piace

Grazie a tutti !!!
Non riuscivo a impostare i dati con nuova linea perchè quello che ricavavo era una lista[] e non delle stringhe…
Una volta diventate stringhe il ‘\n’ funziona…