Is there a way to get icon_value for the UIList using icon name from enum? I know that I can use icon_value = layout.icon(_context.object), and I also know how to implement custom icons in Blender. But what if I'm writing my own class, want to be able to store it as a template list and just want to use existing Blender icon as its icon in the template list? Is there any place in API where the full icons list is stored somehow? Can I perform in any way something like
for i, j in enumerate(bpy.app.all_blender_icons): # fake pass
    if j.name == &quot;EVENT_M&quot;:
        return i

Of course I could just manually go over all int numbers and find out which one returns the icon I need, but it doesn't seem like a very good idea in any way.
Look at the icons addon.
If you look at the code to the Development Icons Addon will see that it uses data defined in that very UILayout.icon  development_icon_get.py Line 86 in version 1.4 method mentioned in question.
Which if crunched into python console
&gt;&gt;&gt; icons = bpy.types.UILayout.bl_rna.functions[
...                 &quot;prop&quot;].parameters[&quot;icon&quot;].enum_items.keys()

&gt;&gt;&gt; 
&gt;&gt;&gt; icons
['NONE', 'QUESTION', 'ERROR', 'CANCEL', 'TRIA_RIGHT', 'TRIA_DOWN', 'TRIA_LEFT', 'TRIA_UP', ...

There are over 800
&gt;&gt;&gt; len(icons)
802

Make a reverse lookup, name -&gt; index
&gt;&gt;&gt; icon_ref = {k : i for i, k in enumerate(icons)}
&gt;&gt;&gt; icon_ref['XRAY']
563

Or using items()
&gt;&gt;&gt; icons = bpy.types.UILayout.bl_rna.functions[
...                 &quot;prop&quot;].parameters[&quot;icon&quot;].enum_items.items()
&gt;&gt;&gt; icons[100]
('IMAGE', &lt;bpy_struct, EnumPropertyItem(&quot;IMAGE&quot;) at 0xbb1c6c0&gt;)