Failed to create Rule Engine: mil2525c

01-09-2018 04:04 AM
New Contributor II

I'm developing an UWP solution using 100.2.0 .NET Runtime and I should display some military tactical graphics on a map.

I'm trying to use mil2525c.stylx with this code:

DictionarySymbolStyle symbolDictionary = await DictionarySymbolStyle.OpenAsync("mil2525c", installedLocation.Path + @"\Assets\mil2525c.stylx") as DictionarySymbolStyle;

Running application it shows this error:

File not found: Failed to create Rule Engine: mil2525c

I noticed that that method only accepts "mil2525c_b2" as specification type but it doesn't render any tactical graphics.

The only way I was able to make it render some tactical graphics is using

DictionarySymbolStyle symbolDictionary = await DictionarySymbolStyle.OpenAsync("mil2525c_b2", installedLocation.Path + @"\Assets\mil2525c_b2.stylx") as DictionarySymbolStyle;

Frankly I don't understand the relationship between specification type parameter and *.stylx file.

Is specification type related to military standard? 

Is there a list of valid values for every *.stylx file (for example, I would like to know the correct specification type related to the "app6b.stylx")

Thanx in advance.


0 Kudos
3 Replies
Esri Frequent Contributor


The files available to download are mil2525c_b2.stylx and mil2525d.stylx (from Military Symbology Styles | ArcGIS for Defense). These are the physical files on disk (that you have referenced in `Assets`). The corresponding specification types are `mil2525c_b2` and `mil2525d`. The former provides you with mil2525c spec symbology. The `_b2` suffix indicates that the physical file also includes support for MIL-2525-B Change 2 spec symbols but that is not currently supported in the API.

It's an obvious source of confusion and we will try to improve this in a future release.




0 Kudos
New Contributor II

Hi Mike,

Thanks for answering.

Ok, so to recap, for mil2525 symbology:

- to render mil2525c symbols I have to use: "mil2525c_b2" specification type and "mil2525c_b2.stylx"

- rendering of mil2525b is still not supported in 100.2.0 API (no specificatin type/rule engine), despite the availability of stylx file.

- to render mil2525d I have to use: "mil2525d" specification type and "mil2525d.stylx"

Is it correct?

What about app6b? Is it still not supported in 100.2.0 API despite availabiloty of "app6b.stylx"?

On the download page it says Runtime 10.2.x or 100.1 or newer.

If still not supported, when will it be available?



0 Kudos
Esri Contributor

Hi Mauro,

You're mostly correct.  To recap, we do support mil2525b (change 2), mil2525c, and mil2525d: 

- mil2525c: use "mil2525c_b2" specification type and "mil2525c_b2.stylx"

- mil2525b: use "mil2525c_b2" specification type and "mil2525c_b2.stylx", but also specify the `legacy_standard` configuration property.  

We document this in the Qt API reference here: DictionarySymbolStyle Class | ArcGIS for Developers:

- mil2525d: use"mil2525d" specification type and "mil2525d.stylx"

Regarding APP-6(b), we are working to update the stylx on Military Symbology Styles | ArcGIS for Defense  to work with the Runtime SDKs. That should be available in the next few weeks.   

As Mike mentioned, we understand the confusion and are working on making this more clear for a future release.


0 Kudos