Zdroj aplikace Dynamo je hostován na Githubu, kde jej může kdokoli klonovat a přispívat do něj. V této kapitole si ukážeme, jak klonovat úložiště pomocí gitu, kompilovat zdrojové soubory pomocí aplikace Visual Studio, spustit a ladit místní sestavení a získat všechny nové změny z Githubu.
Github je hostovací služba založená na gitu, systému pro správu verzí, který slouží ke sledování změn a koordinaci práce mezi lidmi. Git je nástroj, který můžeme využít ke stažení zdrojových souborů aplikace Dynamo a jejich aktualizaci pomocí několika příkazů. Použitím této metody se vyhnete zbytečné a nepřehledné práci se stahováním a ručním nahrazováním zdrojových souborů při každé aktualizaci. Systém správy verzí git bude sledovat veškeré rozdíly mezi místním a vzdáleným úložištěm kódů.
Zdroj aplikace Dynamo je hostován na Githubu DynamoDS v tomto úložišti: https://github.com/DynamoDS/Dynamo.
Zdrojové soubory aplikace Dynamo.
Klonování nebo stáhnutí celého úložiště
Zobrazení dalších úložišť DynamoDS
Zdrojové soubory aplikace Dynamo
Specifické soubory Gitu
Než bude možné úložiště klonovat, je třeba nainstalovat git. V této krátké příručce naleznete postup instalace a nastavení uživatelského jména a e-mailu pro github. V tomto příkladu použijeme git na příkazovém řádku. Tato příručka předpokládá, že budete používat systém Windows, ale ke klonování zdroje aplikace Dynamo můžete použít také git v systému Mac nebo Linux.
Potřebujeme adresu URL úložiště aplikace Dynamo, ze kterého se bude klonovat. Tu najdeme v tlačítku Clone or download (Klonovat nebo stáhnout) na stránce úložiště. Zkopírujte adresu URL, kterou chcete vložit do příkazového řádku.
Vyberte možnost Clone or download (Klonovat nebo stáhnout).
Zkopírujte adresu URL.
S nainstalovaným gitem můžeme klonovat úložiště aplikace Dynamo. Začněte otevřením příkazového řádku. Poté pomocí příkazu pro změnu adresáře cd
přejděte do složky, do které chcete zdrojové soubory klonovat. V tomto případě jsme vytvořili složku s názvem Github
ve složce Documents
.
cd C:\Users\username\Documents\GitHub
Parametr „username“ nahraďte svým uživatelským jménem.
V dalším kroku spustíme příkaz gitu, který naklonuje úložiště aplikace Dynamo do zadaného umístění. Adresu URL v příkazu získáte kliknutím na tlačítko Clone or download (Klonovat nebo stáhnout) na Githubu. Tento příkaz spusťte v příkazovém řádku. Tímto příkazem se naklonuje hlavní větev úložiště aplikace Dynamo, která obsahuje nejaktuálnější verzi kódu aplikace Dynamo. Tato větev se denně mění.
git clone https://github.com/DynamoDS/Dynamo.git
Pokud byla operace klonování úspěšně dokončena, víme, že git funguje. V Průzkumníku souborů přejděte do adresáře, do kterého jste klonovali, a zobrazte zdrojové soubory. Struktura adresáře by měla vypadat stejně jako hlavní větev úložiště aplikace Dynamo na Githubu.
Zdrojové soubory aplikace Dynamo
Soubory Git
Pomocí zdrojových souborů, které jsou nyní klonovány do místního počítače, můžeme vytvořit spustitelný soubor pro aplikaci Dynamo. Za tímto účelem je nutné nastavit prostředí Visual Studio IDE a zajistit instalaci rozhraní .NET Framework a DirectX.
Stáhněte a nainstalujte Microsoft Visual Studio Community 2015, bezplatné, plně vybavené integrované vývojové prostředí (IDE – mohou fungovat i novější verze).
Stáhněte a nainstalujte rozhraní Microsoft .NET Framework 4.5 nebo novější.
Nainstalujte rozhraní Microsoft DirectX z místního úložiště aplikace Dynamo (Dynamo\tools\install\Extra\DirectX\DXSETUP.exe
).
Rozhraní .NET a DirectX již mohou být nainstalována.
Po dokončení instalace můžete spustit aplikaci Visual Studio a otevřít řešení Dynamo.All.sln
, které se nachází v umístění Dynamo\src
.
Vyberte
File > Open > Project/Solution
.Přejděte do úložiště aplikace Dynamo a otevřete složku
src
.Vyberte soubor řešení
Dynamo.All.sln
.Klikněte na tlačítko
Open
.
Než budeme moct vytvořit řešení, je třeba zadat několik nastavení. Nejprve bychom měli vytvořit ladicí verzi aplikace Dynamo, aby aplikace Visual Studio mohla získat další informace při ladění, které nám pomůžou s vývojem, přičemž jako platformu vybereme možnost „AnyCPU“.
Tyto složky se stanou složkami ve složce
bin
.
V tomto příkladu jsme jako konfiguraci řešení vybrali
Debug
.Nastavte platformu řešení na
Any CPU
S otevřeným projektem můžeme vytvořit řešení. Tento proces vytvoří soubor DynamoSandbox.exe, který můžeme spustit.
Vytvořením projektu se obnoví závislosti NuGet.
Vyberte
Build > Build Solution
.V okně Výstup ověřte, zda sestavení proběhlo úspěšně. Měla by se zobrazit zpráva podobná této:
==== Build: 69 succeeded, 0 failed, 0 up-to-date, 0 skipped ====
Pokud sestavení aplikace Dynamo proběhlo úspěšně, vytvoří se v úložišti aplikace Dynamo složka bin
se souborem DynamoSandbox.exe. V našem případě vytváříme sestavení s možností Debug, takže spustitelný soubor se nachází v umístění bin\AnyCPU\Debug
. Spuštěním tohoto souboru otevřete místní sestavení aplikace Dynamo.
Spustitelný soubor DynamoSandbox, který jsme právě vytvořili. Jeho spuštěním spustíte aplikaci Dynamo.
Nyní jsme téměř plně připraveni začít s vývojem pro aplikaci Dynamo.
Pokyny k vytváření aplikace Dynamo pro další platformy (například Linux nebo OS X) naleznete na této stránce Wiki.
Ladění je proces identifikace, izolování a opravy chyby nebo problému. Po úspěšném sestavení aplikace Dynamo ze zdroje můžeme pomocí několika nástrojů v aplikaci Visual Studio ladit spuštěnou aplikaci, například doplněk DynamoRevit. Můžeme analyzovat jeho zdrojový kód a najít příčinu problému nebo sledovat aktuálně prováděný kód. Podrobnější informace o tom, jak ladit a procházet kód v aplikaci Visual Studio, naleznete v dokumentaci k aplikaci Visual Studio.
V případě samostatné aplikace Dynamo, DynamoSandbox, se budeme zabývat dvěma možnostmi ladění:
Sestavení a spuštění aplikace Dynamo přímo z aplikace Visual Studio
Připojení aplikace Visual Studio ke spuštěnému procesu aplikace Dynamo
Spuštění aplikace Dynamo z aplikace Visual Studio v případě potřeby znovu sestaví řešení pro každou relaci ladění, takže pokud jsme provedli změny zdroje, budou při ladění začleněny. Se stále otevřeným řešením Dynamo.All.sln
vyberte v rozevíracích nabídkách možnosti Debug
, AnyCPU
a DynamoSandbox
a klikněte na tlačítko Start
. Tím se vytvoří aplikace Dynamo, spustí se nový proces (DynamoSandbox.exe) a připojí se k němu ladicí program aplikace Visual Studio.
Vytvořte a spusťte aplikaci přímo z aplikace Visual Studio.
Nastavte konfiguraci na
Debug
.Nastavte platformu na
Any CPU
.Nastavte spouštěný projekt na
DynamoSandbox
.Kliknutím na tlačítko
Start
zahajte proces ladění.
Případně můžete chtít ladit proces aplikace Dynamo, který je již spuštěný, abyste vyřešili problém s konkrétním otevřeným grafem nebo balíčkem. Za tímto účelem otevřete zdrojové soubory projektu v aplikaci Visual Studio a připojte je ke spuštěnému procesu aplikace Dynamo pomocí položky nabídky ladění Attach to Process
.
Připojení spuštěného procesu k aplikaci Visual Studio
Vyberte
Debug > Attach to Process...
.Zvolte soubor
DynamoSandbox.exe
.Klikněte na tlačítko
Attach
.
V obou případech připojujeme ladicí program k procesu, který chceme ladit. V kódu můžeme před nebo po spuštění ladicího programu nastavit body přerušení, které způsobí, že se proces zastaví bezprostředně před provedením tohoto řádku kódu. Pokud je během ladění vyvolána nezachycená výjimka, aplikace Visual Studio přejde na místo jejího výskytu ve zdrojovém kódu. Jedná se o efektivní metodu hledání jednoduchých selhání, neošetřených výjimek a pochopení toku spuštění aplikace.
Při ladění aplikace DynamoSandbox jsme nastavili bod přerušení v konstruktoru uzlu Colour.ByARGB, který způsobí pozastavení procesu aplikace Dynamo při vytvoření instance uzlu. Pokud tento uzel způsobí výjimku nebo selhání aplikace Dynamo, můžeme postupně projít jednotlivé řádky konstruktoru a zjistit, kde k problému došlo.
Bod přerušení
Zásobník volání zobrazující funkci, která je právě vykonávána, a předchozí volání funkcí.
V další části Sestavení doplňku DynamoRevit ze zdroje si ukážeme konkrétní příklad ladění a vysvětlíme, jak nastavit body přerušení, krokovat kód a číst zásobník volání.
Protože je zdroj aplikace Dynamo hostován na Githubu, nejjednodušším způsobem, jak aktualizovat místní zdrojové soubory, je získávání změn pomocí příkazů git.
Pomocí příkazového řádku nastavte aktuální adresář na úložiště aplikace Dynamo:
cd C:\Users\username\Documents\GitHub\Dynamo
Parametr
"username"
nahraďte svým uživatelským jménem.
K získání nejnovějších změn použijte následující příkaz:
git pull origin master
Zde je vidět, že místní úložiště bylo aktualizováno změnami ze vzdáleného úložiště.
Kromě získávání aktualizací je třeba znát další čtyři pracovní postupy gitu.
Rozvětvením úložiště aplikace Dynamo vytvoříte kopii oddělenou od originálu. Jakékoli změny zde provedené nebudou mít vliv na původní úložiště a aktualizace mohou být získávány z úložiště nebo do něj odesílány pomocí žádostí o přijetí změn. Rozvětvení (fork) není příkaz gitu. Je to pracovní postup, který přidává github – rozvětvení a žádost o přijetí změn je jedním z nejběžnějších pracovních postupů pro přispívání do projektů s otevřeným zdrojovým kódem online. Chcete-li přispívat do aplikace Dynamo, je vhodné se ho naučit.
Větev (branch) – umožňuje pracovat na experimentech nebo nových prvcích izolovaně od ostatní práce ve větvích. Díky tomu je odesílání žádostí o přijetí změn jednodušší.
Často provádějte zápisy (commit), zejména po dokončení pracovní jednotky a po změně, kterou možná budete chtít vrátit zpět. Zápis zaznamenává změny v úložišti a bude viditelný při zadávání žádosti o přijetí změn do hlavního úložiště aplikace Dynamo.
Vytvářejte žádosti o přijetí změn (pull request), když jsou změny připraveny k oficiálnímu navržení do hlavního úložiště aplikace Dynamo.
Tým aplikace Dynamo má konkrétní pokyny pro vytváření žádostí o přijetí změn. Podrobnější informace najdete v části Žádosti o přijetí změn v této dokumentaci.
Na této stránce dokumentace naleznete referenční seznam příkazů git.
Zdrojové soubory doplňku DynamoRevit jsou také umístěny na Githubu DynamoDS, kde mohou vývojáři vytvářet příspěvky a sestavovat beta verze. Sestavení doplňku DynamoRevit ze zdroje obecně probíhá stejným způsobem jako u aplikace Dynamo s výjimkou několika důležitých detailů:
Doplněk DynamoRevit odkazuje na sestavy aplikace Dynamo, proto by měly být vytvořeny pomocí odpovídajících balíčků NuGet. Doplněk DynamoRevit 2.x například nebude načten do aplikace Dynamo 1.3.
Doplněk DynamoRevit je specifický pro konkrétní verzi aplikace Revit, například větev doplňku DynamoRevit 2018 by měla být spuštěna v aplikaci Revit 2018.
V této příručce použijeme následující zdroje:
Revit 2023
Nejnovější sestavení doplňku DynamoRevit založené na větvi aplikace Revit2023
Nejnovější sestavení aplikace Dynamo
Abychom zajistili úspěšné sestavení, naklonujeme a sestavíme úložiště aplikace Dynamo a doplňku DynamoRevit, která použijeme v této ukázce.
Poznámka: Ruční sestavení aplikace Dynamo před doplňkem DynamoRevit je nutné pouze v případě, že vytváříte aplikaci Dynamo 1.x a doplněk DynamoRevit 1.x. Novější verze úložiště doplňku DynamoRevit se při tvorbě závislostí aplikace Dynamo potřebných k sestavení spoléhají na správce balíčků NuGet. I když sestavení doplňku DynamoRevit 2.x nevyžaduje ruční stažení aplikace Dynamo, budete stále potřebovat základní knihovny dlls
, abyste mohli addin
DynamoRevit skutečně spustit, proto se vyplatí aplikaci Dynamo stáhnout a sestavit tak jako tak. Další informace naleznete níže: Tvorba úložiště pomocí aplikace Visual Studio
Kód projektu doplňku DynamoRevit se nachází v samostatném úložišti na Githubu, které je odděleno od základního zdrojového kódu aplikace Dynamo. Toto úložiště obsahuje zdrojové soubory pro uzly specifické pro aplikaci Revit a doplněk aplikace Revit, který načítá aplikaci Dynamo. Sestavení doplňku DynamoRevit pro různé verze aplikace Revit (například 2016, 2017 nebo 2018) jsou v úložišti uspořádána jako větve.
Zdroj doplňku DynamoRevit je hostován zde: https://github.com/DynamoDS/DynamoRevit
Klonování nebo stáhnutí úložiště
Větve doplňku DynamoRevit odkazují na verze aplikace Revit.
Podobně jako při získávání úložiště aplikace Dynamo použijeme příkaz git clone ke klonování doplňku DynamoRevit a k určení větve, která odpovídá verzi aplikace Revit. Nejprve otevřeme rozhraní příkazového řádku a nastavíme aktuální adresář do umístění, do kterého chcete soubory klonovat.
cd C:\Users\username\Documents\GitHub
změní aktuální adresář
Parametr
username
nahraďte svým uživatelským jménem.
Nyní můžeme do tohoto adresáře naklonovat úložiště. I když bude nutné zadat větev úložiště, můžeme se na ni po klonování přepnout.
Příkaz git clone https://github.com/DynamoDS/DynamoRevit.git
naklonuje úložiště ze vzdálené adresy URL a ve výchozím nastavení přepne na hlavní větev.
Po dokončení klonování úložiště změňte aktuální adresář na složku úložiště a přepněte na větev, která odpovídá nainstalované verzi aplikace Revit. V tomto příkladu používáme aplikaci Revit RC2.13.1_Revit2023. Všechny vzdálené větve lze zobrazit na stránce Githubu v rozevírací nabídce Branch (Větev).
Příkaz cd C:\Users\username\Documents\GitHub\DynamoRevit
změní adresář na DynamoRevit.
Příkaz git checkout RC2.13.1_Revit2023
nastaví aktuální větev na RC2.13.1_Revit2023
.
Příkaz git branch
ověří, ve které větvi se nacházíme, a zobrazí ostatní větve, které existují místně.
Větev s hvězdičkou je aktuálně rezervovaná větev. Větev
Revit2018
se zobrazuje, protože jsme ji dříve zarezervovali, takže existuje místně.
Je důležité vybrat správnou větev úložiště, abyste zajistili, že při vytváření projektu v aplikaci Visual Studio bude projekt odkazovat na sestavy ve správné verzi instalačního adresáře aplikace Revit, konkrétně RevitAPI.dll
a RevitAPIUI.dll
.
Před vytvořením úložiště bude nutné obnovit balíčky NuGet se souborem restorepackages.bat
umístěným ve složce src
. Tento soubor BAT používá správce balíčku nuget k získání vestavěných sestavených binárních souborů jádra aplikace Dynamo, které potřebuje doplněk DynamoRevit. Můžete se také rozhodnout sestavit je ručně, ale pouze pokud provádíte změny v doplňku DynamoRevit a ne v jádře aplikace Dynamo. Díky tomu bude začátek práce rychlejší. Nezapomeňte tento soubor spustit jako správce.
Klikněte pravým tlačítkem myši na soubor
restorepackages.bat
a vyberte příkazRun as administrator
.
Pokud jsou balíčky úspěšně obnoveny, složka packages
bude přidána do složky src
s nejnovějšími balíčky NuGet beta verze aplikace.
Nejnovější balíčky NuGet beta verze aplikace Dynamo
Po obnovení balíčků otevřete soubor řešení aplikace Visual Studio DynamoRevit.All.sln
ve složce src
a vytvořte řešení. Sestavení může mít zpočátku potíže s vyhledáním souboru AssemblySharedInfo.cs
. Pokud se tak stane, vyřešte tento problém opětovným spuštěním sestavení.
Vyberte
Build > Build Solution
.V okně Výstup ověřte, zda sestavení proběhlo úspěšně. Měla by se zobrazit následující zpráva:
===== Build: 13 succeeded, 0 failed, 0 up-to-date, 0 skipped =====
.
Aplikace Revit vyžaduje k rozpoznání doplňku DynamoRevit soubor doplňku, který instalační program vytvoří automaticky. Při vývoji je nutné ručně vytvořit soubor doplňku odkazující na sestavení doplňku DynamoRevit, které chceme používat, konkrétně na sestavu DynamoRevitDS.dll
. Také musíme doplněk DynamoRevit odkázat na sestavení aplikace Dynamo.
Vytvořte soubor Dynamo.addin
ve složce doplňku aplikace Revit, která se nachází v umístění C:\ProgramData\Autodesk\Revit\Addins\2023
. Již jsme nainstalovali verzi doplňku DynamoRevit, takže stačí upravit existující soubor tak, aby ukazoval na nové sestavení.
Zadejte cestu k souboru DynamoRevitDS.dll
uvnitř parametru <Assembly>...</Assembly>
.
Případně můžeme nechat doplněk načíst nástroj pro výběr verze místo konkrétní sestavy.
Nastavte cestu k souboru <Assembly>...</Assembly>
na DynamoRevitVersionSelector.dll
.
Parametr <FullClassName>...</FullClassName>
určuje, pro kterou třídu se má vytvořit instance ze sestavy, na kterou jsme odkázali pomocí výše uvedené cesty k prvku sestavy. Tato třída bude vstupním bodem pro náš doplněk.
Kromě toho je nutné odebrat existující aplikaci Dynamo dodávanou s aplikací Revit. Přejděte do složky C:\\Program Files\Autodesk\Revit 2023\AddIns
a odstraňte dvě složky, které obsahují aplikaci Dynamo – DynamoForRevit
a DynamoPlayerForRevit
. Můžete je buď odstranit, nebo je zálohovat do samostatné složky, pokud potřebujete obnovit původní aplikaci Dynamo pro aplikaci Revit.
Druhým krokem je přidání cesty k souborům sestav jádra aplikace Dynamo do souboru Dynamo.config
ve složce bin
doplňku DynamoRevit. Doplněk DynamoRevit je načte při otevření doplňku v aplikaci Revit. Tento konfigurační soubor umožňuje odkazovat doplněk DynamoRevit na různé verze jádra aplikace Dynamo při vývoji a testování změn v jádru i v doplňku DynamoRevit.
Kód by měl vypadat následovně:
Přidejte cestu adresáře složky bin
do <add key/>
Aplikaci Dynamo jsme naklonovali a vytvořili těsně před touto ukázkou, abychom zajistili, že bude s doplňkem DynamoRevit dobře fungovat. Cesta adresáře odkazuje na toto sestavení.
Když nyní otevřete aplikaci Revit, měl by se na kartě Správa nacházet doplněk Dynamo.
Vyberte kartu
Manage
.Klikněte na ikonu doplňku Dynamo.
Instance doplňku DynamoRevit
Pokud se zobrazí chybové okno s chybějícími sestavami, je pravděpodobné, že se neshodují verze DynamoCore, které jste sestavili, a verze, které se načítají za běhu. Například doplněk DynamoRevit s nejnovějšími balíčky DynamoCore verze 2.0 beta nebude fungovat, pokud se jej pokusíte spustit pomocí knihoven DLL aplikace Dynamo 1.3. Ujistěte se, že obě úložiště mají stejnou verzi a doplněk DynamoRevit získává odpovídající verzi závislých položek nuget. Ty jsou definovány v souboru package.json
úložiště DynamoRevit.
V předchozí části popisující sestavení aplikace Dynamo ze zdroje jsme stručně představili ladění v aplikaci Visual Studio a způsob připojení aplikace Visual Studio k procesu. Na příkladu výjimky v uzlu Wall.ByCurveAndHeight si ukážeme, jak se připojit k procesu, nastavíme body přerušení, projdeme kód a pomocí zásobníku volání určíme zdroj výjimky. Tyto nástroje pro ladění platí obecně pro pracovní postupy vývoje v prostředí .net a stojí za to je prozkoumat i mimo tuto příručku.
Připojení k procesu propojí spuštěnou aplikaci s aplikací Visual Studio za účelem ladění. Pokud chceme ladit chování, které se vyskytuje v sestavení doplňku DynamoRevit, můžeme otevřít zdrojové soubory doplňku DynamoRevit v aplikaci Visual Studio a připojit proces Revit.exe
, který je nadřazeným procesem doplňku DynamoRevit. Aplikace Visual Studio používá k vytvoření připojení mezi sestavami spouštěné doplňkem DynamoRevit a zdrojovým kódem soubor symbolů (.pbd
).
Body přerušení vytvoří ve zdrojovém kódu řádky, ve kterých bude aplikace před spuštěním pozastavena. Pokud nějaký uzel způsobuje selhání doplňku DynamoRevit nebo vrací neočekávaný výsledek, můžeme do zdroje uzlu přidat bod přerušení a proces pozastavit, zobrazit kód a kontrolovat živé hodnoty proměnných, dokud nenajdeme příčinu problému.
Krokování kódem prochází zdrojový kód řádek po řádku. Můžeme spouštět funkce jednu po druhé, vstoupit do volání funkce nebo vyskočit z právě prováděné funkce.
Zásobník volání zobrazuje funkci, kterou proces právě spouští, ve vztahu k předchozím voláním funkcí, která vyvolala toto volání funkce. Aplikace Visual Studio nabízí k tomuto zobrazení okno zásobníku volání. Pokud například dojde k výjimce mimo zdrojový kód, můžeme v zásobníku volání vidět cestu k volajícímu kódu.
Na webu 2 000 Things You Should Know About C# (2 000 věcí, které byste měli vědět o C#) naleznete podrobnější vysvětlení zásobníků hovorů.
Uzel Wall.ByCurveAndHeight vyvolá výjimku, pokud je jako vstup křivky zadán objekt PolyCurve, s následující zprávou: „Metoda převodu na objekt BSPlineCurve není implementována.“ Pomocí ladění můžeme zjistit, proč přesně tento typ geometrie uzel nepřijme jako vstup pro parametr křivky. V tomto příkladu předpokládáme, že doplněk DynamoRevit byl úspěšně vytvořen a lze jej spustit jako doplněk aplikace Revit.
Uzel Wall.ByCurveAndHeight vyvolávající výjimku
Začněte otevřením souboru řešení DynamoRevit.All.sln
, spuštěním aplikace Revit a spuštěním doplňku DynamoRevit. Poté pomocí okna Attach to Process
připojte aplikaci Visual Studio k procesu aplikace Revit.
Aplikace Revit a doplněk DynamoRevit je třeba spustit, aby se zobrazily jako dostupný proces.
Výběrem nabídky
Debug > Attach to Process...
otevřete oknoAttach to Process
.Nastavte
Transport
naDefault
Vyberte proces
Revit.exe
.Klikněte na tlačítko
Attach
.
S aplikací Visual Studio připojenou k aplikaci Revit otevřete zdrojový kód uzlu Wall.ByCurveAndHeight v souboru Wall.cs
. Tento kód naleznete v Průzkumníku řešení v části Libraries > RevitNodes > Elements
v oblasti Public static constructors
souboru. Nastavte bod přerušení v konstruktoru typu stěny tak, aby se při spuštění uzlu v aplikaci Dynamo proces přerušil a mohli jsme jednotlivě procházet každý řádek kódu. Konstruktory typu Zero-Touch aplikace Dynamo obvykle začínají na By<parameters>
.
Soubor třídy s konstruktorem pro uzel Wall.ByCurveAndHeight
Bod přerušení nastavíte buď kliknutím vlevo od čísla řádku, nebo kliknutím pravým tlačítkem myši na řádek kódu a výběrem možnosti
Breakpoint > Insert Breakpoint
.
Po nastavení bodu přerušení je potřeba, aby proces proběhl včetně spuštění funkce Wall.ByCurveAndHeight. Funkci lze v aplikaci Dynamo znovu spustit opakovaným připojením drátu k jednomu z portů uzlu, což vynutí opakované spuštění uzlu. Proces dojde v aplikaci Visual Studio až do bodu přerušení.
Po dosažení bodu přerušení se změní jeho ikona.
Okno Call Stack (Zásobník volání) zobrazující metodu, která je na řadě.
Nyní procházejte jednotlivé řádky v konstruktoru, dokud nenarazíte na výjimku. Kód zvýrazněný žlutě je další příkaz, který má být spuštěn.
Nástroje ladění pro navigaci v kódu
Stisknutím ikony
Step Over
spustíte zvýrazněný kód a po návratu funkce pozastavíte jeho provádění.Další příkaz, který se má spustit, označený žlutým zvýrazněním a šipkou
Když budeme funkcí dále procházet, narazíme na výjimku, která se zobrazí v okně doplňku DynamoRevit. Při pohledu na okno zásobníku volání je vidět, že výjimka byla původně vyvolána metodou s názvem Autodesk.Revit.CurveAPIUtils.CreateNurbsCurve
. Naštěstí je zde tato výjimka ošetřena, takže aplikace Dynamo neselhala. Proces ladění nám poskytl kontext problému tím, že nás přivedl k jiné metodě ve zdrojovém kódu.
Protože se nejedná o knihovnu s otevřeným zdrojovým kódem, nemůžeme zde provádět změny. Když nyní máme více informací, můžeme problém nahlásit s poskytnutím širšího kontextu vyplněním problému na Githubu nebo můžeme navrhnout řešení tohoto problému podáním žádosti o přijetí změn.
Když narazíme na příkaz způsobující výjimku v souboru
Walls.cs
, proces ladění nás přivede co nejblíže k jádru problému v uživatelském kódu uvnitř souboruProtoToRevitCurve.cs
.Příkaz způsobující výjimku v souboru
ProtoToRevitCurve.cs
.V zásobníku volání vidíme, že výjimka pochází z neuživatelského kódu.
Místní okno s informacemi o výjimce.
Tento proces lze použít u všech zdrojových souborů, se kterými pracujete. Pokud vyvíjíme knihovnu uzlů Zero-Touch pro aplikaci Dynamo Studio, můžeme otevřít zdroj knihovny a připojit proces aplikace Dynamo pro účely ladění knihovny uzlů. I když vše funguje bezchybně, ladění je skvělý způsob, jak prozkoumat kód a zjistit, jak věci fungují.
Tento proces je téměř identický se získáváním změn pro aplikaci Dynamo, jen je třeba se ujistit, že se nacházíme ve správné větvi. Pomocí příkazu git branch
v úložišti aplikace DynamoRevit zjistíte, které větve jsou k dispozici místně a které jsou aktuálně zarezervované.
Příkaz cd C:\Users\username\Documents\GitHub\DynamoRevit
nastaví aktuální adresář do úložiště aplikace DynamoRevit.
Příkaz git branch
ověřuje, zda se nacházíte ve správné větvi, tj. RC2.13.1_Revit2023
.
Příkaz git pull origin RC2.13.1_Revit2023
získává změny ze vzdálené původní větve RC2.13.1_Revit2023
.
Parametr origin jednoduše odkazuje na původní adresu URL, kterou jsme klonovali.
Chceme si být vědomi, ve které větvi se momentálně nacházíme a ze které se získáváme změny, abychom se vyhnuli například získávání změn z
RC2.13.1_Revit2023
doRevit2018
.
Jak je uvedeno v části popisující sestavení aplikace Dynamo ze zdroje, až budeme připraveni odeslat změnu do úložiště doplňku DynamoRevit, můžeme vytvořit požadavek na přijetí změn podle pokynů týmu aplikace Dynamo uvedených v části Žádosti o přijetí změn.
.