AnsweredAssumed Answered

How to construct marker from stream containing 3D model

Question asked by deleted-user-JTyWy9b20ETO on Sep 30, 2020
Latest reply on Sep 30, 2020 by deleted-user-JTyWy9b20ETO

Using the ArcGIS Pro SDK, I can construct a 3d symbol from a model file, such as DAE or STL using  

ConstructMarkerFromFile() 

CIMMarker cimMarker = await QueuedTask.Run(() => 
    SymbolFactory.Instance.ConstructMarkerFromFile(filepath)
);

I want to achieve the same result except using a file that has been first read into a MemoryStream, using ConstructMarkerFromStream(Stream stream).

 

However, I get an exception "parameter is not valid". This suggests that ConstructMarkerFromStream is expecting a PNG image in the stream, not an XML 3D model.

 

In the only usage example I can find, an ImageFormat is being specifically identified as PNG to the stream.

Image newImage = Image.FromFile(@"C:\\downloads\\mymodel.dae");
var stream = new System.IO.MemoryStream();
newImage.Save(stream, ImageFormat.Png);
stream.Position = 0;
CIMMarker markerFromStream = SymbolFactory.Instance.ConstructMarkerFromStream(stream);

How can I get ConstructMarkerFromStream() to understand the stream is a DAE object and not an image? Or is there another way to import DAE from a stream?

 

 

Outcomes