Vytvoří v aplikaci Dynamo for Civil 3D nové uzly k vytváření bodů, přidání bodů do skupiny bodů a vytváření povrchů ze skupin bodů.
Vzorový skript aplikace Dynamo: CoGoPoints.dyn
Vzorový projekt: CoGoPoints.dwg
panel Vizuální programování
Dynamo
.
Importovat knihovnu a vyberte soubor CoGoPoints.dll.
Uzly, které byly vytvořeny při importu souboru CoGoPoints.dll, jsou ukázány na následujícím obrázku.

Ve výkresu se vytvoří body COGO a přidají se do skupiny bodů. Ze skupiny bodů se vytvoří povrch.
Aplikace Dynamo poskytuje dva způsoby realizace mechanismu trasování. Prvním je použití existující metody (CommonConstruct) při vytváření nových uzlů. Druhým je zápis kódu trasování pomocí šablony.
Chcete-li realizovat mechanismus trasování pro nové uzly, musí být třídy odvozeny z objektu Autodesk.AutoCAD.DynamoNodes.ObjectBase nebo Autodesk.AutoCAD.DynamoNodes.Object. Trasování je platné pouze v případě, že má trasovaný uzel výstup v podobě vytvořené třídy uzlu.
Funkce CommonConstruct je vytvořena v objektu Autodesk.AutoCAD.DynamoNodes.ObjectBase i Autodesk.AutoCAD.DynamoNodes.Object.
| Autodesk.AutoCAD.DynamoNodes.ObjectBase | Autodesk.AutoCAD.DynamoNodes.Object |
|---|---|
|
|
Vytvořit třídy k dědění můžete buď u objektu Autodesk.AutoCAD.DynamoNodes.ObjectBase, nebo Autodesk.AutoCAD.DynamoNodes.Object. Výše uvedené metody lze volat tehdy, když vytváříte nové uzly podle zděděného vztahu. Všimněte si například následujícího uzlu PointGroup.CreateFromPoints.
Uzel vytvoří v aplikaci Civil 3D skupinu bodů ze seznamu bodů.
Objekt Autodesk.Civil.DatabaseServices.PointGroup definuje skupinu bodů v aplikaci Civil 3D odvozenou z objektu Autodesk.AutoCAD.DatabaseServices.Object. K zapouzdření typu skupiny bodů aplikace Civil 3D je nutné vytvořit novou třídu s názvem PointGroup odvozenou z objektu Autodesk.AutoCAD.DynamoNodes.Objectbase. Za účelem realizace mechanismu trasování lze ke třídě PointGroup přidat atribut DynamoServices.RegisterForTrace. Není to vyžadováno, protože aplikace Dynamo to podporuje ve výchozím nastavení, ale je to vhodná konvence při vytváření kódu.

Uzel CreateFromPoints lze nyní definovat ve třídě PointGroup. Díky zděděnému vztahu lze u objektu Autodesk.AutoCAD.DynamoNodes.ObjectBase volat funkci CommonConstruct.

Metoda TNode je typ uzlu a je nutná k dědění objektu Autodesk.AutoCAD.DynamoNodes.ObjectBase.
TNode = CogoPoints.PointGroupObjekt TObject je typ objektu aplikace AutoCAD nutný k dědění objektu Autodesk.AutoCAD.DatabaseServices.DBObject.
TObject = Autodesk.Civil.DatabaseServices.PointGroupFunkce objectCreator vytvoří objekt. V tomto příkladu je to definováno jako vytvoření nové skupiny bodů.


Funkce objectUpdater aktualizuje objekt. V tomto příkladu je to definováno jako aktualizace existující skupiny bodů.
Funkce CommonConstruct se pokusí vyhledat existující objekty ze sledovaného identifikátoru. V případě nalezení se aktualizuje voláním metody objectUpdater s parametrem isExisting==true. Pokud se aktualizace nezdaří, metoda objectCreator vyvolá vytvoření nového objektu a následně použije parametr isExisting==false.
Funkce CommonConstruct se pokusí aktualizovat existující objekty v databázi pomocí stejné hodnoty sledovaného identifikátoru. Pokud se to nezdaří, vytvoří nový objekt. Pokud objekt nepodporuje aktualizace, může se vrátit parametr isExisting==false. To znamená, že vytvoříte nový objekt a odstraníte starý objekt. U funkce CommonConstruct se v tomto případě (pokud to bude možné) stále uchová stejná hodnota identifikátoru.


Úplné vzorové kódy jsou zobrazeny v souboru PointGroup.cs a metoda (CommonConstruct) v objektu Autodesk.AutoCAD.DynamoNodes.Object je popsána výše.
Kód trasování můžete zapsat pomocí následující šablony. Třída nových uzlů však musí stále dědit objekt Autodesk.AutoCAD.DynamoNodes.Object nebo entitu Autodesk.AutoCAD.DynamoNodes.Entity.

Při realizaci kódu trasování v šabloně výše můžete vyplnit kód k vytvoření i kód k aktualizaci.
Metoda DocumentContext zajišťuje získání zámku dokumentu pro přístup ke čtení/zápisu do databáze a při provádění transakcí u otevřených databázových objektů. Každý uzel, který se bude pokoušet o čtení nebo zápis u databázových objektů, bude muset použít výše uvedenou metodu.