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
  • Python a Revit
  • Rozhraní API pro konkrétní platformu
  • Cvičení 1
  • Cvičení 2
  • Cvičení 3
Edit on GitHub
Export as PDF
  1. Kódování v aplikaci Dynamo
  2. Python

Python a Revit

Python a Revit

Nyní, když jsme ukázali, jak používat skripty jazyka Python v aplikaci Dynamo, podívejme se na připojení knihoven aplikace Revit do prostředí skriptování. Pamatujte, importovali jsme standardní knihovny jazyka Python a hlavní uzly aplikace Dynamo pomocí prvních čtyř řádků v níže uvedeném bloku kódu. Chcete-li importovat uzly aplikace Revit, prvky aplikace Revit a správce dokumentů aplikace Revit, stačí přidat pouze několik dalších řádků:

import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

# Import RevitNodes
clr.AddReference("RevitNodes")
import Revit

# Import Revit elements
from Revit.Elements import *

# Import DocumentManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager

import System

To nám poskytuje přístup k rozhraní API aplikace Revit a nabízí vlastní skriptování pro libovolnou úlohu aplikace Revit. Díky kombinaci procesu vizuálního programování se skriptováním rozhraní API aplikace Revit se spolupráce a vývoj nástrojů výrazně zlepšují. Například správce BIM i konstruktér schémat mohou spolupracovat na stejném grafu. Při této spolupráci mohou zlepšit návrh a provedení modelu.

Rozhraní API pro konkrétní platformu

Cvičení 1

Vytvořte nový projekt aplikace Revit.

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

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

V těchto cvičeních prozkoumáme základní skripty jazyka Python v rozhraní Dynamo pro aplikaci Revit. Toto cvičení se zaměří na práci se soubory a prvky aplikace Revit a také na komunikaci mezi aplikacemi Revit a Dynamo.

Jedná se o jednoduchou metodu získávání souborů doc, uiapp a app aplikace Revit připojených k vaší relaci Dynamo. Programátoři, kteří předtím pracovali v rozhraní API aplikace Revit, si mohou všimnout položek v seznamu sledovaných položek. Pokud se vám to nezdá povědomé, tak to nevadí. Použijeme další příklady ve cvičeních níže.

Zde je způsob importu služeb aplikace Revit a získání dat dokumentu v aplikaci Dynamo.

Podívejte se na uzel Python v aplikaci Dynamo. Kód můžete také najít níže:

# Load the Python Standard and DesignScript Libraries
import sys
import clr

#Import DocumentManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager

#Place your code below this line
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application

#Assign your output to the OUT variable
OUT = [doc,uiapp,app]

Cvičení 2

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

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

V tomto cvičení vytvoříme pomocí uzlu Python aplikace Dynamo jednoduchou křivku modelu v aplikaci Revit.

Začněte vytvořením nové rodiny Koncepční objem v aplikaci Revit.

Otevřete složku rodiny Koncepční objem a použijte soubor šablony Metric Mass.rft.

V aplikaci Revit pomocí klávesové zkratky un vyvolejte nastavení jednotek projektu a změňte jednotku délky na metry.

Spusťte aplikaci Dynamo a vytvořte sadu uzlů jako na obrázku níže. Nejprve vytvoříme dva referenční body v aplikaci Revit z uzlů aplikace Dynamo.

  1. Vytvořte blok kódu a zadejte hodnotu "0;".

  2. Tuto hodnotu připojte ke vstupům X, Y a Z uzlu ReferencePoint.ByCoordinates.

  3. Vytvořte tři posuvníky v rozsahu od -100 do 100 s velikostí kroku 1.

  4. Připojte všechny posuvníky k uzlu ReferencePoint.ByCoordinates.

  5. Přidejte do pracovního prostoru uzel Python, kliknutím na tlačítko „+“ v uzlu přidejte další vstup a připojte dva referenční body, jeden ke každému vstupu. Otevřete uzel Python.

Podívejte se na uzel Python v aplikaci Dynamo. Celý kód najdete níže.

  1. System.Array: Aplikace Revit vyžaduje jako vstup systémové pole (místo seznamu jazyka Python). Jedná se pouze o jeden další řádek kódu, ale zohlednění typů argumentů usnadní programování v aplikaci Revit v jazyce Python.

import sys
import clr

# Import RevitNodes
clr.AddReference("RevitNodes")
import Revit
#Import Revit elements
from Revit.Elements import *
import System

#define inputs
startRefPt = IN[0]
endRefPt = IN[1]

#define system array to match with required inputs
refPtArray = System.Array[ReferencePoint]([startRefPt, endRefPt])

#create curve by reference points in Revit
OUT = CurveByPoints.ByReferencePoints(refPtArray)

V aplikaci Dynamo jsme pomocí jazyka Python vytvořili dva referenční body a čáru, která je spojuje. V dalším cvičení zkusíme něco složitějšího.

Cvičení 3

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

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

Toto cvičení vysvětluje témata připojení dat a geometrie z aplikace Revit do aplikace Dynamo a zpět. Začneme otevřením souboru Revit-StructuralFraming.rvt. Po otevření spusťte aplikaci Dynamo a otevřete soubor Revit-StructuralFraming.dyn.

Tento soubor aplikace Revit je jeden z nejzákladnějších. Dvě referenční křivky: jedna nakreslená na Podlaží 1 a druhá na Podlaží 2. Chceme tyto křivky dostat do aplikace Dynamo a zachovat živé propojení.

V tomto souboru máme sadu uzlů zapojených do pěti vstupů uzlu Python.

  1. Uzly Select Model Element: Klikněte na tlačítko Vybrat pro každý prvek a vyberte odpovídající křivku v aplikaci Revit.

  2. Uzel Code Block: Pomocí syntaxe 0..1..#x;, připojte posuvník celého čísla v rozsahu od 0 do 20 ke vstupu x. Označuje počet nosníků, které se mají kreslit mezi dvěma křivkami.

  3. Uzel Structural Framing Types: Zde vybereme v rozevírací nabídce výchozí nosník W12x26.

  4. Uzel Levels: Vyberte možnost Podlaží 1.

Tento kód v jazyce Python je trochu hustší, ale komentáře v kódu popisují, co se v procesu děje.

import clr
#import Dynamo Geometry
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# Import RevitNodes
clr.AddReference("RevitNodes")
import Revit
# Import Revit elements
from Revit.Elements import *
import System

#Query Revit elements and convert them to Dynamo Curves
crvA=IN[0].Curves[0]
crvB=IN[1].Curves[0]

#Define input Parameters
framingType=IN[3]
designLevel=IN[4]

#Define "out" as a list
OUT=[]

for val in IN[2]:
	#Define Dynamo Points on each curve
	ptA=Curve.PointAtParameter(crvA,val)
	ptB=Curve.PointAtParameter(crvB,val)
	#Create Dynamo line
	beamCrv=Line.ByStartPointEndPoint(ptA,ptB)
	#create Revit Element from Dynamo Curves
	beam = StructuralFraming.BeamByCurve(beamCrv,designLevel,framingType)
	#convert Revit Element into list of Dynamo Surfaces
	OUT.append(beam.Faces)

V aplikaci Revit je k dispozici pole nosníků, které pokrývají dvě křivky jako konstrukční prvky. Poznámka: Toto není realistický příklad... Konstrukční prvky se používají jako příklad pro nativní instance aplikace Revit vytvořené z aplikace Dynamo.

Výsledky jsou v aplikaci Dynamo zobrazeny také. Nosníky v uzlu Watch3D odkazují na geometrii dotazovanou z prvků aplikace Revit.

Všimněte si, že máme nepřetržitý proces převodu dat z prostředí aplikace Revit do prostředí aplikace Dynamo. Toto je souhrn průběhu procesu:

  1. Vybrat prvek aplikace Revit

  2. Převést prvek aplikace Revit na křivku aplikace Dynamo

  3. Rozdělit křivku aplikace Dynamo na řadu bodů aplikace Dynamo

  4. Vytvořit čáry aplikace Dynamo pomocí bodů aplikace Dynamo mezi dvěma křivkami

  5. Vytvořit nosníky aplikace Revit pomocí odkazů na čáry aplikace Dynamo

  6. Vytvořit výstup povrchů aplikace Dynamo pomocí dotazů na geometrii nosníků aplikace Revit

Může to znít složitě, ale díky skriptu je to stejně jednoduché jako úprava křivky v aplikaci Revit a opětovné spuštění řešiče (i když je možné, že při tom budete muset odstranit předchozí nosníky). Důvodem je skutečnost, že nosníky umísťujeme do jazyka Python, a tím porušujeme asociaci uzlů OOTB.

Pomocí aktualizace referenčních křivek v aplikaci Revit získáte nové pole nosníků.

PreviousUzly jazyka PythonNextNastavení vlastní šablony jazyka Python

Last updated 2 years ago

Plán projektu aplikace Dynamo spočívá v rozšíření rozsahu implementace platformy. Protože aplikace Dynamo přidává další programy do objektu docket, uživatelé budou mít přístup k programům API specifickým pro platformu z prostředí skriptování v jazyce Python. Zatímco v aplikaci Revit se jedná o případovou studii, můžeme předvídat další kapitoly v budoucnosti nabízející komplexní výukové programy zaměřené na skriptování v jiných platformách. Navíc je nyní k dispozici mnoho knihoven , které lze importovat do aplikace Dynamo.

Níže uvedené příklady ukazují způsoby implementace operací specifických pro aplikaci Revit z aplikace Dynamo pomocí jazyka Python. Podrobnější informace o vztahu jazyka Python s aplikacemi Dynamo a Revit naleznete na . Dalším užitečným zdrojem pro aplikace Python a Revit je projekt aplikace Revit.

IronPython
stránce Wiki k aplikaci Dynamo
prostředí Python Shell
2KB
Revit-Doc.dyn
10KB
Revit-ReferenceCurve.dyn
3MB
Revit-StructuralFraming.zip
archive