Using the ArcGIS Pro SDK, I can construct a 3d symbol from a model file, such as DAE or STL using
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?
Chris, you can only read collada from a file. Note from: SymbolFactory ConstructMarkerFromStream(...)
Remarks: "Marker can be created from the following stream data type: JPG, BMP, PNG, GIF".
(I realize that the code example on the API reference page is a little misleading because it is actually using "ConstructMarkerFromFile".)
Thanks for the confirmation.
The document link you sent
states it clearly, but I was using this link which is identical except it
doesn't mention that limitation.
I am not sure what the difference is. I seem to have found an index page?