Skip to content

Commit db32cb4

Browse files
authored
Merge pull request #22 from autodesk-platform-services/DXSDK5.2.0Beta
Update to DX SDK 5.2.2-beta
2 parents 0bd0478 + 5cc3a22 commit db32cb4

File tree

6 files changed

+413
-114
lines changed

6 files changed

+413
-114
lines changed

src/CreateExchangeHelper.cs

Lines changed: 314 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
using Autodesk.DataExchange.Core.Enums;
22
using Autodesk.DataExchange.DataModels;
33
using Autodesk.DataExchange.SchemaObjects.Units;
4-
using Autodesk.GeometryPrimitives.Design;
5-
using Autodesk.GeometryPrimitives.Geometry;
6-
using Autodesk.GeometryPrimitives.Math;
4+
using Autodesk.GeometryPrimitives.Data;
5+
using Autodesk.GeometryPrimitives.Data.DX;
6+
using Autodesk.GeometryUtilities.MeshAPI;
77
using Autodesk.Parameters;
88
using System.Collections.Generic;
99
using System.IO;
@@ -122,9 +122,9 @@ public void AddPrimitiveCurveAndSurfaceGeometries(ElementDataModel data)
122122
data.SetElementGeometryByElement(circleElement, circleElementGeometry);
123123
}
124124

125-
private void AddCurveGeometries(Autodesk.GeometryPrimitives.Design.GeometryContainer geometryContainer)
125+
private void AddCurveGeometries(GeometryContainer geometryContainer)
126126
{
127-
geometryContainer.Curves = new CurveArray();
127+
geometryContainer.Curves = new List<Curve>();
128128

129129
AddCircleGeometries(geometryContainer);
130130

@@ -202,7 +202,7 @@ private Ellipse GetEllipseGeometry()
202202

203203
private void AddSurfaceGeometries(GeometryContainer geometryContainer)
204204
{
205-
geometryContainer.Surfaces = new SurfaceArray()
205+
geometryContainer.Surfaces = new List<Surface>()
206206
{
207207
new Plane()
208208
{
@@ -236,11 +236,269 @@ private void AddSurfaceGeometries(GeometryContainer geometryContainer)
236236

237237
public void AddMeshGeometry(ElementDataModel data)
238238
{
239-
var newMeshElement = data.AddElement(new ElementProperties("MeshEElement", "SampleMesh", "GenericsMesh", "GenericMesh", "Mesh Object"));
240-
var newMeshGeometry = new List<ElementGeometry>();
241-
var filePathMesh = $"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}\\InputStepFile\\mesh1.obj";
242-
newMeshGeometry.Add(ElementDataModel.CreateGeometry(new GeometryProperties(filePathMesh, commonRenderStyle)));
243-
data.SetElementGeometryByElement(newMeshElement, newMeshGeometry);
239+
Autodesk.GeometryUtilities.MeshAPI.Mesh inMemoryMesh = new Autodesk.GeometryUtilities.MeshAPI.Mesh()
240+
{
241+
Vertices = new List<Vertex>
242+
{
243+
new Vertex(0.0, 0.0, 0.0),
244+
new Vertex(1.0, 0.0, 0.0),
245+
new Vertex(0.0, 1.0, 0.0),
246+
new Vertex(1.0, 1.0, 0.0),
247+
},
248+
Faces = new List<Face>
249+
{
250+
new Face()
251+
{
252+
Corners = new List<int> { 0, 1, 2 },
253+
Normals = new List<Normal>
254+
{
255+
new Normal(0, 0, 1),
256+
new Normal(0, 0, 1),
257+
new Normal(0, 0, 1),
258+
},
259+
},
260+
new Face()
261+
{
262+
Corners = new List<int> { 2, 1, 3 },
263+
Normals = new List<Normal>
264+
{
265+
new Normal(0, 0, 1),
266+
new Normal(0, 0, 1),
267+
new Normal(0, 0, 1),
268+
},
269+
},
270+
},
271+
};
272+
273+
var meshObjWithColor = new Autodesk.GeometryUtilities.MeshAPI.Mesh()
274+
{
275+
MeshColor = new Color(0.9f, 0.2f, 0.2f, 1.0f), // mesh body color
276+
Vertices = new List<Vertex>
277+
{
278+
new Vertex(0.0, 0.0, 0.0),
279+
new Vertex(1.0, 0.0, 0.0),
280+
new Vertex(0.0, 1.0, 0.0),
281+
new Vertex(1.0, 1.0, 0.0),
282+
},
283+
Faces = new List<Face>
284+
{
285+
new Face()
286+
{
287+
Corners = new List<int> { 0, 1, 2 },
288+
Normals = new List<Normal>
289+
{
290+
new Normal(0, 0, 1),
291+
new Normal(0, 0, 1),
292+
new Normal(0, 0, 1),
293+
},
294+
FaceColor = new Color(0.2f, 0.2f, 0.9f, 1.0f), // face color
295+
},
296+
new Face()
297+
{
298+
Corners = new List<int> { 2, 1, 3 },
299+
Normals = new List<Normal>
300+
{
301+
new Normal(0, 0, 1),
302+
new Normal(0, 0, 1),
303+
new Normal(0, 0, 1),
304+
},
305+
FaceColor = new Color(0.2f, 0.9f, 0.2f, 1.0f), // face color
306+
},
307+
},
308+
};
309+
310+
var complexMesh = new Autodesk.GeometryUtilities.MeshAPI.Mesh()
311+
{
312+
MeshColor = new Color(0.5f, 0.5f, 0.5f, 1.0f), // mesh body color
313+
Vertices = new List<Vertex>
314+
{
315+
new Vertex(0.0, 0.0, 0.0),
316+
new Vertex(1.0, 0.0, 0.0),
317+
new Vertex(0.0, 1.0, 0.0),
318+
new Vertex(1.0, 1.0, 0.0),
319+
new Vertex(0.0, 0.0, 1.0),
320+
new Vertex(1.0, 0.0, 1.0),
321+
new Vertex(0.0, 1.0, 1.0),
322+
new Vertex(1.0, 1.0, 1.0),
323+
new Vertex(0.5, 0.5, 1.5),
324+
},
325+
Faces = new List<Face>
326+
{
327+
new Face()
328+
{
329+
Corners = new List<int> { 0, 1, 2 },
330+
Normals = new List<Normal>
331+
{
332+
new Normal(0, 0, 1),
333+
new Normal(0, 0, 1),
334+
new Normal(0, 0, 1),
335+
},
336+
FaceColor = new Color(0.2f, 0.2f, 0.9f, 1.0f), // face color
337+
},
338+
new Face()
339+
{
340+
Corners = new List<int> { 2, 1, 3 },
341+
Normals = new List<Normal>
342+
{
343+
new Normal(0, 0, 1),
344+
new Normal(0, 0, 1),
345+
new Normal(0, 0, 1),
346+
},
347+
FaceColor = new Color(0.2f, 0.9f, 0.2f, 1.0f), // face color
348+
},
349+
new Face()
350+
{
351+
Corners = new List<int> { 0, 1, 4 },
352+
Normals = new List<Normal>
353+
{
354+
new Normal(0, 1, 0),
355+
new Normal(0, 1, 0),
356+
new Normal(0, 1, 0),
357+
},
358+
FaceColor = new Color(0.9f, 0.2f, 0.2f, 1.0f), // face color
359+
},
360+
new Face()
361+
{
362+
Corners = new List<int> { 1, 5, 4 },
363+
Normals = new List<Normal>
364+
{
365+
new Normal(0, 1, 0),
366+
new Normal(0, 1, 0),
367+
new Normal(0, 1, 0),
368+
},
369+
FaceColor = new Color(0.9f, 0.2f, 0.2f, 1.0f), // face color
370+
},
371+
new Face()
372+
{
373+
Corners = new List<int> { 0, 2, 4 },
374+
Normals = new List<Normal>
375+
{
376+
new Normal(1, 0, 0),
377+
new Normal(1, 0, 0),
378+
new Normal(1, 0, 0),
379+
},
380+
FaceColor = new Color(0.2f, 0.9f, 0.9f, 1.0f), // face color
381+
},
382+
new Face()
383+
{
384+
Corners = new List<int> { 2, 6, 4 },
385+
Normals = new List<Normal>
386+
{
387+
new Normal(1, 0, 0),
388+
new Normal(1, 0, 0),
389+
new Normal(1, 0, 0),
390+
},
391+
FaceColor = new Color(0.2f, 0.9f, 0.9f, 1.0f), // face color
392+
},
393+
new Face()
394+
{
395+
Corners = new List<int> { 1, 3, 5 },
396+
Normals = new List<Normal>
397+
{
398+
new Normal(0, -1, 0),
399+
new Normal(0, -1, 0),
400+
new Normal(0, -1, 0),
401+
},
402+
FaceColor = new Color(0.9f, 0.9f, 0.2f, 1.0f), // face color
403+
},
404+
new Face()
405+
{
406+
Corners = new List<int> { 3, 7, 5 },
407+
Normals = new List<Normal>
408+
{
409+
new Normal(0, -1, 0),
410+
new Normal(0, -1, 0),
411+
new Normal(0, -1, 0),
412+
},
413+
FaceColor = new Color(0.9f, 0.9f, 0.2f, 1.0f), // face color
414+
},
415+
new Face()
416+
{
417+
Corners = new List<int> { 2, 3, 6 },
418+
Normals = new List<Normal>
419+
{
420+
new Normal(-1, 0, 0),
421+
new Normal(-1, 0, 0),
422+
new Normal(-1, 0, 0),
423+
},
424+
FaceColor = new Color(0.9f, 0.2f, 0.9f, 1.0f), // face color
425+
},
426+
new Face()
427+
{
428+
Corners = new List<int> { 3, 7, 6 },
429+
Normals = new List<Normal>
430+
{
431+
new Normal(-1, 0, 0),
432+
new Normal(-1, 0, 0),
433+
new Normal(-1, 0, 0),
434+
},
435+
FaceColor = new Color(0.9f, 0.2f, 0.9f, 1.0f), // face color
436+
},
437+
new Face()
438+
{
439+
Corners = new List<int> { 4, 5, 6 },
440+
Normals = new List<Normal>
441+
{
442+
new Normal(0, 0, -1),
443+
new Normal(0, 0, -1),
444+
new Normal(0, 0, -1),
445+
},
446+
FaceColor = new Color(0.2f, 0.2f, 0.2f, 1.0f), // face color
447+
},
448+
new Face()
449+
{
450+
Corners = new List<int> { 5, 7, 6 },
451+
Normals = new List<Normal>
452+
{
453+
new Normal(0, 0, -1),
454+
new Normal(0, 0, -1),
455+
new Normal(0, 0, -1),
456+
},
457+
FaceColor = new Color(0.2f, 0.2f, 0.2f, 1.0f), // face color
458+
},
459+
new Face()
460+
{
461+
Corners = new List<int> { 4, 6, 8 },
462+
Normals = new List<Normal>
463+
{
464+
new Normal(0, 0, 1),
465+
new Normal(0, 0, 1),
466+
new Normal(0, 0, 1),
467+
},
468+
FaceColor = new Color(0.5f, 0.5f, 0.5f, 1.0f), // face color
469+
},
470+
new Face()
471+
{
472+
Corners = new List<int> { 5, 7, 8 },
473+
Normals = new List<Normal>
474+
{
475+
new Normal(0, 0, 1),
476+
new Normal(0, 0, 1),
477+
new Normal(0, 0, 1),
478+
},
479+
FaceColor = new Color(0.5f, 0.5f, 0.5f, 1.0f), // face color
480+
},
481+
new Face()
482+
{
483+
Corners = new List<int> { 6, 7, 8 },
484+
Normals = new List<Normal>
485+
{
486+
new Normal(0, 0, 1),
487+
new Normal(0, 0, 1),
488+
new Normal(0, 0, 1),
489+
},
490+
FaceColor = new Color(0.5f, 0.5f, 0.5f, 1.0f), // face color
491+
},
492+
},
493+
};
494+
495+
var meshGeom = ElementDataModel.CreateMeshGeometry(new GeometryProperties(meshObjWithColor, "Mesh With Color"));
496+
var meshElement = data.AddElement(new ElementProperties("Mesh1", "SampleMesh", "Mesh", "Mesh", "In memory mesh"));
497+
data.SetElementGeometryByElement(meshElement, new List<ElementGeometry> { meshGeom });
498+
499+
var complexMeshGeom = ElementDataModel.CreateMeshGeometry(new GeometryProperties(complexMesh, "Complex Mesh With Color"));
500+
var complexMeshElement = data.AddElement(new ElementProperties("ComplexMesh", "ComplexSampleMesh", "Mesh", "Mesh", "Complex In memory mesh"));
501+
data.SetElementGeometryByElement(complexMeshElement, new List<ElementGeometry> { complexMeshGeom });
244502
}
245503

246504
public void AddIFCGeometry(ElementDataModel data)
@@ -435,11 +693,47 @@ public void AddElementsForExchangeUpdate(ElementDataModel data)
435693
data.SetElementGeometryByElement(newBRep, newBRepGeometry);
436694

437695
//Add Element with Mesh Geometry
438-
var newMeshElement = data.AddElement(new ElementProperties("MeshElementUpdate", "SampleMesh", "GenericsMeshUpdate", "GenericMeshUpdate", "Mesh Object Update"));
439-
var newMeshGeometry = new List<ElementGeometry>();
440-
var filePathToMesh = $"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}\\InputStepFile\\mesh2.obj";
441-
newMeshGeometry.Add(ElementDataModel.CreateGeometry(new GeometryProperties(filePathToMesh, commonRenderStyle)));
442-
data.SetElementGeometryByElement(newMeshElement, newMeshGeometry);
696+
697+
var meshObjWithColor = new Autodesk.GeometryUtilities.MeshAPI.Mesh()
698+
{
699+
MeshColor = new Color(0.9f, 0.9f, 0.9f, 1.0f), // mesh body color
700+
Vertices = new List<Vertex>
701+
{
702+
new Vertex(0.0, 0.0, 0.0),
703+
new Vertex(1.0, 0.0, 0.0),
704+
new Vertex(0.0, 1.0, 0.0),
705+
new Vertex(1.0, 1.0, 0.0),
706+
},
707+
Faces = new List<Face>
708+
{
709+
new Face()
710+
{
711+
Corners = new List<int> { 0, 1, 2 },
712+
Normals = new List<Normal>
713+
{
714+
new Normal(0, 0, 1),
715+
new Normal(0, 0, 1),
716+
new Normal(0, 0, 1),
717+
},
718+
FaceColor = new Color(0.2f, 0.2f, 0.9f, 1.0f), // face color
719+
},
720+
new Face()
721+
{
722+
Corners = new List<int> { 2, 1, 3 },
723+
Normals = new List<Normal>
724+
{
725+
new Normal(0, 0, 1),
726+
new Normal(0, 0, 1),
727+
new Normal(0, 0, 1),
728+
},
729+
FaceColor = new Color(0.9f, 0.9f, 0.2f, 1.0f), // face color
730+
},
731+
},
732+
};
733+
734+
var meshGeom = ElementDataModel.CreateMeshGeometry(new GeometryProperties(meshObjWithColor, "Mesh With Color"));
735+
var meshElement = data.AddElement(new ElementProperties("Mesh3", "SampleMesh", "Mesh", "Mesh", "In memory mesh with Color"));
736+
data.SetElementGeometryByElement(meshElement, new List<ElementGeometry> { meshGeom });
443737
}
444738

445739
private void AddPrimitivePolylineGeometry(ElementDataModel dataModel)
@@ -448,7 +742,7 @@ private void AddPrimitivePolylineGeometry(ElementDataModel dataModel)
448742
var polyLineElementGeometry = new List<ElementGeometry>();
449743
var geomContainer = new GeometryContainer()
450744
{
451-
Curves = new CurveArray()
745+
Curves = new List<Curve>()
452746
{
453747
new Polyline()
454748
{
@@ -459,9 +753,9 @@ private void AddPrimitivePolylineGeometry(ElementDataModel dataModel)
459753
new Point3d(12.5, 4, 0),
460754
new Point3d(4.5, 4, 0),
461755
new Point3d(11.25, 0, 0)
462-
}
463-
}
464-
}
756+
},
757+
},
758+
},
465759
};
466760

467761
polyLineElementGeometry.Add(ElementDataModel.CreatePrimitiveGeometry(new GeometryProperties(geomContainer, commonRenderStyle)));

0 commit comments

Comments
 (0)