Dynamo
Primer for v2.0
Čeština
Čeština
  • O aplikaci
  • Úvod
    • Co je aplikace Dynamo a jak funguje?
    • Uživatelská příručka Primer, komunita a platforma aplikace Dynamo
  • Nastavení aplikace Dynamo
  • Uživatelské rozhraní
    • Pracovní prostor
    • Knihovna
  • Uzly a dráty
  • Základní uzly a koncepce
    • Rejstřík uzlů
    • Geometrie pro výpočetní návrh
      • Přehled geometrie
      • Vektor, rovina a souřadnicový systém
      • Body
      • Křivky
      • Povrchy
      • Tělesa
      • Sítě
    • Stavební bloky programů
      • Data
      • Matematika
      • Logika
      • Řetězce
      • Barva
    • Práce se seznamy
      • Co je to seznam
      • Práce se seznamy
      • Seznamy seznamů
      • N-rozměrné seznamy
    • Slovníky v aplikaci Dynamo
      • Co je to slovník
      • Uzly slovníku
      • Slovníky v blocích kódu
      • Případy použití aplikace Revit
  • Vlastní uzly a balíčky
    • Vlastní uzly
      • Úvod do práce s vlastními uzly
      • Tvorba vlastního uzlu
      • Publikování do knihovny
    • Balíčky
      • Úvod do práce s balíčky
      • Příklad balíčku – sada nástrojů pro sítě
      • Vývoj balíčku
      • Publikování balíčku
      • Importování Zero-Touch
  • Dynamo pro aplikaci Revit
    • Propojení s aplikací Revit
    • Výběr
    • Úpravy
    • Tvorba
    • Přizpůsobení
    • Dokumentování
  • Dynamo for Civil 3D
    • Připojení aplikace Civil 3D
    • Začínáme
    • Knihovna uzlů
    • Vzorové pracovní postupy
      • Silnice
        • Umístění sloupů osvětlení
      • Terén
        • Umístění služeb
      • Pomůcky
        • Přejmenování stavebních objektů
      • Železnice
        • Vůle obalových křivek
      • Zaměření
        • Správa skupin bodů
    • Pokročilá témata
      • Vazby objektů
      • Python a Civil 3D
    • Přehrávač skriptů Dynamo
    • Užitečné balíčky
    • Zdroje
  • Dynamo v aplikaci Forma (beta verze)
    • Nastavení rozšíření Dynamo Player v aplikaci Forma
    • Přidávání a sdílení grafů v rozšíření Dynamo Player
    • Spouštění grafů v rozšíření Dynamo Player
    • Rozdíly mezi výpočetní službou Dynamo a počítačovou aplikací Desktop
  • Kódování v aplikaci Dynamo
    • Bloky kódů a jazyk DesignScript
      • Co je blok kódu
      • Syntaxe DesignScript
      • Zkratka
      • Funkce
    • Geometrie pomocí jazyka DesignScript
      • Základy geometrií v jazyku DesignScript
      • Geometrická primitiva
      • Vektorová matematika
      • Křivky: Interpolované a řídicí body
      • Posunutí, otočení a další transformace
      • Plochy: Interpolace, řídicí body, spojení profilů, rotace
      • Geometrická parametrizace
      • Průnik a oříznutí
      • Booleovské operace geometrií
      • Generátory bodů v jazyce Python
    • Python
      • Uzly jazyka Python
      • Python a Revit
      • Nastavení vlastní šablony jazyka Python
    • Změny jazyka
  • Osvědčené postupy
    • Strategie grafů
    • Strategie skriptování
    • Skriptování – reference
    • Správa programu
    • Efektivní práce s velkými sadami dat v aplikaci Dynamo
  • Vzorové pracovní postupy
    • Pracovní postupy Začínáme
      • Parametrická váza
      • Body atraktoru
    • Rejstřík konceptů
  • Příručka Primer pro vývojáře
    • Sestavení aplikace Dynamo ze zdroje
      • Sestavení doplňku DynamoRevit ze zdroje
      • Správa a aktualizace závislostí v aplikaci Dynamo
    • Vývoj pro aplikaci Dynamo
      • Začínáme
      • Případová studie funkce Zero-Touch – uzel osnovy
      • Provádění skriptů jazyka Python v uzlech Zero-Touch (C#)
      • Další práce s funkcí Zero-Touch
      • Pokročilé přizpůsobení uzlů aplikace Dynamo
      • Použití typů COM (interoperability) v balíčcích aplikace Dynamo
      • Případová studie uzlu NodeModel – vlastní uživatelské rozhraní
      • Aktualizace balíčků a knihoven aplikace Dynamo pro aplikaci Dynamo 2.x
      • Aktualizace balíčků a knihoven aplikace Dynamo pro aplikaci Dynamo 3.x
      • Rozšíření
      • Definování vlastní organizace balíčků pro Dynamo 2.0+
      • Rozhraní příkazového řádku aplikace Dynamo
      • Integrace pro aplikaci Dynamo
      • Vývoj pro modul Dynamo pro aplikaci Revit
      • Publikování balíčku
      • Vytvoření balíčku z aplikace Visual Studio
      • Rozšíření jako balíčky
    • Žádosti o přijetí změn
    • Očekávání při testování
    • Příklady
  • Příloha
    • Nejčastější dotazy
    • Vizuální programování a aplikace Dynamo
    • Zdroje
    • Poznámky k verzi
    • Užitečné balíčky
    • Vzorové soubory
    • Mapa integrace hostitelů
    • Stažení souboru PDF
    • Klávesové zkratky aplikace Dynamo
Powered by GitBook
On this page
  • Práce se seznamy
  • Dotaz
  • Akce
  • Cvičení
  • Operace se seznamem
  • List.Count
  • List.GetItemAtIndex
  • List.Reverse
  • List.ShiftIndices
  • List.FilterByBooleanMask
Edit on GitHub
Export as PDF
  1. Základní uzly a koncepce
  2. Práce se seznamy

Práce se seznamy

PreviousCo je to seznamNextSeznamy seznamů

Last updated 2 months ago

Práce se seznamy

Teď, když jsme stanovili, co je to seznam, pojďme si promluvit o operacích, které s ním můžeme provádět. Představte si seznam jako balíček karet. Seznam je balíček a každá karta představuje položku.

Dotaz

Jaké dotazy ze seznamu vytvoříme? Tím získáte přístup k existujícím vlastnostem.

  • Počet karet v balíčku? 52.

  • Počet barev? 4.

  • Materiál? Papír.

  • Délka? 3.5" nebo 89 mm.

  • Šířka? 2.5" nebo 64 mm.

Akce

Jaké akce můžeme se seznamem provést? Tím se změní seznam podle dané operace.

  • Můžeme zamíchat balíček.

  • Můžeme ho seřadit podle hodnot.

  • Můžeme ho seřadit podle barev.

  • Můžeme balíček rozdělit.

  • Můžeme balíček rozdělit rozdáním karet.

  • Můžeme z balíčku vybrat konkrétní kartu.

Všechny výše uvedené operace mají analogické uzly aplikace Dynamo pro práci se seznamy obecných dat. Níže uvedené lekce ukážou některé základní operace, které můžeme provádět na seznamech.

Cvičení

Operace se seznamem

Kliknutím na odkaz níže si stáhněte vzorový soubor.

Úplný seznam vzorových souborů najdete v dodatku.

Obrázek níže je základní graf, ve kterém nakreslíme čáry mezi dvěma kružnicemi, které představují základní operace se seznamy. Prozkoumáme, jak spravovat data v seznamu a jak prezentovat vizuální výsledky pomocí akcí v seznamu níže.

  1. Začněte uzlem Code Block s hodnotou 500;.

  2. Propojte jej se vstupem x uzlu Point.ByCoordinates.

  3. Uzel z předchozího kroku spojte se vstupem origin uzlu Plane.ByOriginNormal.

  4. Pomocí uzlu Circle.ByPlaneRadius spojte uzel z předchozího kroku se vstupem plane.

  5. Pomocí uzlu Code Block určete hodnotu 50; pro vstup radius. Toto je první kruh, který vytvoříme.

  6. Pomocí uzlu Geometry.Translate posuňte kružnici o 100 jednotek ve směru osy Z.

  7. Pomocí uzlu Code Block definujte rozsah deseti čísel mezi 0 a 1 s tímto řádkem kódu: 0..1..#10;

  8. Blok kódu z předchozího kroku propojte se vstupem param dvou uzlů Curve.PointAtParameter. Propojte uzel Circle.ByPlaneRadius se vstupem curve horního uzlu a uzel Geometry.Translate se vstupem curve dolního uzlu.

  9. Pomocí uzlu Line.ByStartPointEndPoint spojte dva uzly Curve.PointAtParameter.

List.Count

Kliknutím na odkaz níže si stáhněte vzorový soubor.

Úplný seznam vzorových souborů najdete v dodatku.

Uzel List.Count je jednoduchý: spočítá počet hodnot v seznamu a vrátí výsledné číslo. Tento uzel je při práci se seznamy seznamů složitější, ale to si předvedeme v následujících částech.

  1. Uzel **List.Count ****** vrací počet řádků v uzlu Line.ByStartPointEndPoint. V tomto případě je to hodnota 10, která souhlasí s počtem bodů vytvořených z původního uzlu Code Block.

List.GetItemAtIndex

Kliknutím na odkaz níže si stáhněte vzorový soubor.

Úplný seznam vzorových souborů najdete v dodatku.

List.GetItemAtIndex je základní způsob, jak dotazovat položku v seznamu.

  1. Nejprve kliknutím pravým tlačítkem myši na uzel Line.ByStartPointEndPoint vypněte jeho náhled.

  2. Pomocí uzlu List.GetItemAtIndex vybereme index 0 nebo první položku v seznamu řádků.

Chcete-li pomocí uzlu List.GetItemAtIndex vybrat jinou položku, změňte hodnotu posuvníku v rozmezí od 0 do 9.

List.Reverse

Kliknutím na odkaz níže si stáhněte vzorový soubor.

Úplný seznam vzorových souborů najdete v dodatku.

Možnost List.Reverse obrátí pořadí všech položek v seznamu.

  1. Chcete-li správně zobrazit obrácený seznam čar, vytvořte více čar změnou uzlu Code Block na 0..1..#50;.

  2. Duplikujte uzel Line.ByStartPointEndPoint, vložte uzel List.Reverse mezi uzel Curve.PointAtParameter a druhý uzel Line.ByStartPointEndPoint.

  3. Pomocí uzlů Watch3D zobrazte náhled dvou různých výsledků. První zobrazí výsledek bez obráceného seznamu. Čáry se připojují vertikálně k sousedním bodům. Obrácený seznam však spojí všechny body v opačném pořadí v druhém seznamu.

List.ShiftIndices

Kliknutím na odkaz níže si stáhněte vzorový soubor.

Úplný seznam vzorových souborů najdete v dodatku.

List.ShiftIndices je dobrý nástroj ke tvorbě zkroucení, šroubovicových vzorů nebo jiných podobných manipulací s daty. Tento uzel přemístí položky v seznamu do daného počtu indexů.

  1. Stejným postupem jako při otáčení seznamu připojte uzel List.ShiftIndices k uzlu Curve.PointAtParameter a Line.ByStartPointEndPoint.

  2. Pomocí uzlu Code Block s hodnotou 1 posuňte seznam o jeden index.

  3. Všimněte si, že změna je jemná, ale všechny čáry v dolním uzlu Watch3D se posunuly o jeden index při připojení k druhé sadě bodů.

Pokud například změníme uzel Code Block na větší hodnotu, například 30, všimneme si významného rozdílu mezi příčnými čarami. V tomto případě funguje posun jako čočka kamery, což vytváří v původní válcové formě otočení.

List.FilterByBooleanMask

Kliknutím na odkaz níže si stáhněte vzorový soubor.

Úplný seznam vzorových souborů najdete v dodatku.

Uzel List.FilterByBooleanMask odebere určité položky podle seznamu logických hodnot nebo podle hodnot true nebo false.

Aby bylo možné vytvořit seznam hodnot true nebo false, je třeba ještě trochu pracovat...

  1. Pomocí uzlu Code Block definujte výraz pomocí této syntaxe: 0..List.Count(list);. Připojte uzel Curve.PointAtParameter ke vstupu list. Toto nastavení projdeme více v kapitole bloku kódu, ale v tomto případě nám řádek kódu poskytuje seznam reprezentující každý index uzlu Curve.PointAtParameter.

  2. Pomocí uzlu %** (modulo)** spojte výstup uzlu _Code Block_se vstupem x a hodnotu 4 se vstupem y. Tak získáme zbytek po dělení seznamu indexů 4. Modulo je velmi užitečné pro vytváření vzorů. Všechny hodnoty budou možné zbytky po dělení 4: 0, 1, 2, 3.

  3. Z uzlu %** (modulo)** víme, že hodnota 0 znamená, že index je dělitelný 4 (0, 4, 8 atd.). Pomocí uzlu == můžeme testovat dělitelnost porovnáním s hodnotou 0.

  4. Uzel Watch zobrazuje pouze toto: máme vzor s hodnotou true/false, který je následující: true, false, false, false....

  5. Pomocí tohoto vzoru true/false připojte vstupní hodnotu masky dvou uzlů List.FilterByBooleanMask.

  6. Spojte uzel Curve.PointAtParameter s každým vstupem seznamu pro List.FilterByBooleanMask.

  7. Výstup Filter.ByBooleanMask čte hodnoty in a out. In představuje hodnoty, které měly hodnotu masky true, zatímco out představuje hodnoty, které měly hodnotu false. Zadáním výstupů in do vstupů startPoint a endPoint uzlu Line.ByStartPointEndPoint jsme vytvořili filtrovaný seznam čar.

  8. Uzel Watch3D ukazuje, že máme méně čar než bodů. Vybrali jsme pouze 25 % uzlů filtrováním pouze hodnot true.

Autor fotografie:

Christian Gidlöf
7KB
List-Operations.dyn
8KB
List-Count.dyn
8KB
List-GetItemAtIndex.dyn
8KB
List-Reverse.dyn
8KB
List-ShiftIndices.dyn
11KB
List-FilterByBooleanMask.dyn
karty
Počet
Cvičení
Cvičení
Cvičení
Cvičení