-
Notifications
You must be signed in to change notification settings - Fork 2
home
Tamu edited this page Jun 20, 2023
·
11 revisions
https://github.com/ENAC-CNPA/Speckle.TopSolid
How to identify the topological elements of a geometry (vertex, edge, face) to keep track of the modifications in Speckle ?
1. Sending first v1.0 geometry (every vertex, face has is own unique ID)

2. Send seconding v1.0 geometry : the Face 1.1 and 1.2 are merged to create one new surface.

Vertices 1, 2, 5, 6, 7, 8 are not modified. Only vertex 3 and 4 are moved.
- Doc A: Sending an item in Speckle (with Moniker info)
- Doc B: In another document import the Speckle element
- Doc B: Create a Topsolid Shape with the same Monikers
- Doc B: Edit Geometry and Reference in Speckle
- Doc A: Reception of the new geometry (with the links of the existing Operations: Coloring 1, etc.)

-
Geometry comparison : Like code in Git
-
Object tracking with ID : each ID can have a state (modified, unmodified)
-
Other ???
![]()
All geometries that remain after the update keep the link to their modifiers (color, fillet, etc.)
"elements": [
{
"id": "83d869f2927f51530a580651ac4313cb",
"area": 0,
"bbox": {},
// Example of new alias Class
"alias": {
// List of faces with are Moniker* (sorting matters)
"Faces": [
"F142(s132(7),0,1)",
"F142(s132(10),0,1)"
],
// List of edges with are Moniker* (sorting matters
"Edges": [
"E159.1(F142(s132(7),0,1),F159(1),0)",
"E159.1(F142(s132(7),0,1),F159(s149(10),0,1),0)"
],
// List of vertices with are Moniker* and a hash containing
// all the Monikers* of the faces and edges that are connected
"Vertices": [
{
"Moniker": "V159(v149(5),2)",
"Hash": "00F54800373471341CF5FE075B3768CD"
},
{
"Moniker": "V142(v132(3),2)",
"Hash": "36F4019130AA9DA5066FC2B95D3D9B20"
}
]
},
// * A Moniker is the geometry modification history,
// it can be compared to a unique identifier.
"units": "m",
"volume": 0,
"IsClosed": false,
"EdgesValue": [],
"FacesValue": [],
"LoopsValue": [],
"TrimsValue": [],
}
]
