U svijetu arhitekture i građevinarstva, automatizacija igra vitalnu ulogu u pojednostavljivanju zadataka i efikasnijim radnim procesima. Revit, popularan softver među arhitektima i inženjerima, može se poboljšati pomoću Dynamo-a, alata za vizualno skriptiranje. Ovaj članak se bavi procesom dobijanja imena čvora u Dynamo-u dok radite sa Revit-om. Rješenje, zajedno sa vodičem korak-po-korak s detaljima pridruženog koda, bit će prikazano. Osim toga, članak će pokriti relevantne biblioteke i funkcije za sveobuhvatno razumijevanje problema.
Dynamo i Revit: kombinovani moćni alati
Integracija Dynamo-a i Revit-a omogućava korisnicima da automatiziraju različite procese u BIM-u (Building Information Modeling). Putem vizuelnog skriptovanja, korisnici mogu razviti efikasnije tokove rada i obavljati široku lepezu zadataka kao što su ekstrakcija podataka, kreiranje geometrije i manipulacija parametrima.
Ekstrahiranje imena čvorova u Dynamu
Da biste dobili imena čvorova u Dynamu kada koristite Revit, možete pokrenuti Python skriptu koja izdvaja informacije. Prije nego što uđete u kod, bitno je razumjeti osnove pristupa elementima u Dynamu. Kada radite sa čvorovima, morate pristupiti biblioteci modela Dynamo čvorova, što se može uraditi putem sljedećeg isječka koda:
import clr
clr.AddReference('DynamoServices')
from Dynamo.Applications import *
from Dynamo.Graph.Nodes import *
Rješenje: Python skripta za ekstrakciju imena čvorova
Sada kada su potrebne biblioteke uvezene, sljedeći korak je implementacija Python skripte koja izdvaja imena čvorova iz Dynamo grafa.
def get_node_name(node):
return node.Name
# Example usage
all_nodes = IN[0]
node_names = [get_node_name(node) for node in all_nodes]
- Definirajte funkciju pod nazivom 'get_node_name' koja uzima jedan ulazni parametar, 'čvor.'
- Funkcija dohvaća i vraća ime čvora koristeći atribut 'Name'.
- Primjer upotrebe pokazuje kako koristiti funkciju 'get_node_name' za izdvajanje imena iz liste čvorova – 'all_nodes' – i pohranjivanje rezultirajućih imena u listu pod nazivom 'node_names.' IN[0] se koristi za unos čvorova iz Dynamo-a u Python skriptu, a izlaz će biti 'node_names.'
Objašnjenje koda korak po korak
Evo detaljnog objašnjenja koda, raščlanjujući svaki odjeljak i njegovu svrhu:
1. Uvoz biblioteka
import clr
clr.AddReference('DynamoServices')
from Dynamo.Applications import *
from Dynamo.Graph.Nodes import *
Ovaj kod dodaje reference na CLR (Common Language Runtime) i uvozi Dynamo potrebne prostore imena. Biblioteke DynamoServices i Dynamo.Graph.Nodes sadrže funkcije i klase neophodne za rad sa čvorovima u Dynamu.
2. Funkcija za dohvaćanje imena čvorova
def get_node_name(node):
return node.Name
Funkcija 'get_node_name' uzima čvor kao ulaz i vraća njegovo ime koristeći atribut Name. Ova funkcija će se koristiti za izdvajanje imena čvorova iz Dynamo grafa.
3. Primjer upotrebe
all_nodes = IN[0] node_names = [get_node_name(node) for node in all_nodes]
U ovom primjeru, 'all_nodes' se pretpostavlja da je lista čvorova koji dolaze sa IN[0] ulaznog porta u Dynamo-u. Kod koristi razumijevanje liste za pozivanje funkcije 'get_node_name' na svakom čvoru u 'all_nodes', pohranjivajući imena čvorova na listi 'node_names'.
Sa spremnom Python skripte, sada možete lako dobiti nazive čvorova u Dynamu dok radite sa Revit-om, što rezultira efikasnijim procesom dizajna i dokumentacije. Srećno pisanje scenarija!