Új csomópontokat hoz létre az Autodesk Dynamo for Civil 3D programban pontok létrehozásához, pontok pontcsoporthoz adásához és felület létrehozásához pontcsoportokból.
Dynamo-mintaparancsfájl: CoGoPoints.dyn
Mintaprojekt: CoGoPoints.dwg
A CoGoPoints.dll fájl importálásakor létrehozott csomópontok a következő ábrán láthatók.
COGO pontok jönnek létre a rajzban és lesznek hozzáadva egy pontcsoporthoz, és egy felület jön létre a pontcsoportból.
![]() |
![]() |
A Dynamo kétféle lehetőséget kínál a nyomkövetési mechanizmus megvalósítására. Az egyik lehetőség a meglévő módszer (CommonConstruct) használata új csomópontok létrehozásakor. A másik lehetőség a követési kód írása sablon használatával.
A nyomkövetési mechanizmus új csomópontok esetében való létrehozásához az osztályokat a következők valamelyikéből kell származtatni: Autodesk.AutoCAD.DynamoNodes.ObjectBase vagy Autodesk.AutoCAD.DynamoNodes.Object. A követés érvényesítéséhez a követett csomópontnak rendelkeznie kell a csomópont létrehozott osztályának egyik kimenetével.
A CommonConstruct funkció az Autodesk.AutoCAD.DynamoNodes.ObjectBase és az Autodesk.AutoCAD.DynamoNodes.Object objektumban is létre lesz hozva.
Autodesk.AutoCAD.DynamoNodes.ObjectBase | Autodesk.AutoCAD.DynamoNodes.Object |
---|---|
![]() |
![]() |
Létrehozhat osztályokat, amelyek öröklik az Autodesk.AutoCAD.DynamoNodes.ObjectBase vagy az Autodesk.AutoCAD.DynamoNodes.Object elemet. Új csomópontok létrehozásakor a fenti módszerek az örökölt kapcsolatnak megfelelően hívhatók meg. Figyelje meg például az alábbi PointGroup.CreateFromPoints csomópontot.
Ez a csomópont pontok listájából hoz létre pontcsoportot a Civil 3D-ben.
Az Autodesk.Civil.DatabaseServices.PointGroup meghatároz egy, az Autodesk.AutoCAD.DatabaseServices.Object elemből származtatott pontcsoportot a Civil 3D-ben. Létre kell hozni egy új, az Autodesk.AutoCAD.DynamoNodes.Objectbase objektumból származtatott osztályt PointGroup néven a Civil 3D-pontcsoporttípus beágyazásához. A nyomkövetési mechanizmus létrehozásához a DynamoServices.RegisterForTrace attribútum hozzáadható a PointGroup osztályhoz. Ez nem kötelező, mivel a Dynamo alapértelmezés szerint is támogatja, de érdemes betartani ezt a kódolási konvenciót.
A CreateFromPoints csomópont ettől kezdve meghatározható a PointGroup osztályban. A beépített kapcsolat miatt a CommonConstruct meghívható az Autodesk.AutoCAD.DynamoNodes.ObjectBase objektumban.
A TNode metódus a csomópont típusa, és az Autodesk.AutoCAD.DynamoNodes.ObjectBase örökléséhez szükséges.
TNode = CogoPoints.PointGroupA TObject az Autodesk.AutoCAD.DatabaseServices.DBObject örökléséhez szükséges AutoCAD-objektum típusa.
TObject = Autodesk.Civil.DatabaseServices.PointGroupAz objectCreator funkció létrehoz egy objektumot. Ebben a példában ez a művelet egy új pontcsoport létrehozásaként van meghatározva.
Az objectUpdater funkció frissít egy objektumot. Ebben a példában ez a művelet egy meglévő pontcsoport frissítéseként van meghatározva.
A CommonConstruct függvény a követett kezelőből próbálja meg megkeresni a meglévő objektumokat. Ha ezek megtalálhatók, a frissítéshez meghívja az objectUpdater függvényt az isExisting==true paraméterrel. Ha a frissítés sikertelen, új objektumot hoz létre az objectCreator függvény meghívásával, majd meghívja az objectUpdater függvényt az isExisting==false paraméterrel.
A CommonConstruct függvény megpróbálja frissíteni a megegyező követett kezelő értékű létező objektumokat az adatbázisban. Ha ez sikertelen, létrehoz egy új objektumot. Ha az objektum nem támogatja a frissítéseket, az isExisting==false értéket adhatja vissza. Ez azt jelenti, hogy létre fog hozni egy új objektumot, és törli a régit. A CommonConstruct megpróbálja a régi kezelő értékét használni.
A teljes mintakód megtalálható a PointGroup.cs fájlban, és az Autodesk.AutoCAD.DynamoNodes.Object CommonConstruct metódusa a fent leírt módon működik.
Az alábbi sablonnal írhat követési kódot. Az új csomópontok osztályának azonban továbbra is örökölnie kell a következők valamelyikét: Autodesk.AutoCAD.DynamoNodes.Object vagy Autodesk.AutoCAD.DynamoNodes.Entity.
A követési kódnak a fenti sablonban való létrehozásához megadhatja a létrehozási és a frissítési kódot is.
A DocumentContext biztosítja az adatbázis írásához/olvasásához szükséges dokumentumzár és adatbázis-objektumok megnyitásához szükséges tranzakció beszerzését. Minden olyan csomópontnak, amely adatbázis-objektumokat kíván olvasni vagy írni, ezt a metódust kell használnia.