<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>idea Allow Material API access en Revit Ideas</title>
    <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idi-p/7213772</link>
    <description>&lt;P&gt;It seems that Revit has a closed API for it's materials. It's very hard for plugin creators to have access to Revit's material maps and properties.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/revit-api-forum/how-to-get-the-material-s-image-path-or-name/td-p/5801466" target="_blank"&gt;https://forums.autodesk.com/t5/revit-api-forum/how-to-get-the-material-s-image-path-or-name/td-p/5801466&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2013/07/texture-bitmap-and-uv-coordinates.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2013/07/texture-bitmap-and-uv-coordinates.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://render.otoy.com/forum/viewtopic.php?f=25&amp;amp;t=52667&amp;amp;p=317585" target="_blank"&gt;https://render.otoy.com/forum/viewtopic.php?f=25&amp;amp;t=52667&amp;amp;p=317585&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please open up the API to developers so that they can create plugins that capture our design intents in Revit. Otherwise, we'll have to input the data ourselves. We want you to make it easy for developers to have access to your material information, instead of closing up the process and making it obscure.&lt;/P&gt;</description>
    <pubDate>Fri, 07 Jul 2017 21:00:10 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2017-07-07T21:00:10Z</dc:date>
    <item>
      <title>Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idi-p/7213772</link>
      <description>&lt;P&gt;It seems that Revit has a closed API for it's materials. It's very hard for plugin creators to have access to Revit's material maps and properties.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/revit-api-forum/how-to-get-the-material-s-image-path-or-name/td-p/5801466" target="_blank"&gt;https://forums.autodesk.com/t5/revit-api-forum/how-to-get-the-material-s-image-path-or-name/td-p/5801466&lt;/A&gt;&lt;BR /&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2013/07/texture-bitmap-and-uv-coordinates.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2013/07/texture-bitmap-and-uv-coordinates.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://render.otoy.com/forum/viewtopic.php?f=25&amp;amp;t=52667&amp;amp;p=317585" target="_blank"&gt;https://render.otoy.com/forum/viewtopic.php?f=25&amp;amp;t=52667&amp;amp;p=317585&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please open up the API to developers so that they can create plugins that capture our design intents in Revit. Otherwise, we'll have to input the data ourselves. We want you to make it easy for developers to have access to your material information, instead of closing up the process and making it obscure.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Jul 2017 21:00:10 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idi-p/7213772</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-07-07T21:00:10Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access - Status changed to: Implemented</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7250463#M9697</link>
      <description>&lt;P&gt;Thanks for submitting your idea. I'm happy to say that an API for Appearance Assets is available starting with Revit 2018.1. I am marking this idea as Implemented.&lt;/P&gt;</description>
      <pubDate>Mon, 24 Jul 2017 19:21:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7250463#M9697</guid>
      <dc:creator>sasha.crotty</dc:creator>
      <dc:date>2017-07-24T19:21:09Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7281436#M9926</link>
      <description>&lt;P&gt;Amazing! Thank you Sasha!&lt;/P&gt;</description>
      <pubDate>Mon, 07 Aug 2017 14:32:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7281436#M9926</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-08-07T14:32:34Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7286274#M9968</link>
      <description>Sasha - how do I get the full file path string from a string Asset from an AppearanceAssetElement please? I get a string like "Mats\\Metal\\external.dependency\\Simple_Metal_Mtl_Brush_pattern.jpg" which is not the full file path. Thanks. Paul</description>
      <pubDate>Wed, 09 Aug 2017 07:21:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7286274#M9968</guid>
      <dc:creator>pfk</dc:creator>
      <dc:date>2017-08-09T07:21:11Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7287323#M9976</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1199217"&gt;@sasha.crotty&lt;/a&gt;&amp;nbsp;Please have someone help Paul if possible &lt;img class="lia-deferred-image lia-image-emoji" src="https://forums.autodesk.com/html/@92EA44495104941280BAE166AF74BE62/emoticons/1f604.png" alt=":cara_que_ríe_con_la_boca_abierta_y_los_ojos_sonrientes:" title=":cara_que_ríe_con_la_boca_abierta_y_los_ojos_sonrientes:" /&gt; &lt;img class="lia-deferred-image lia-image-emoji" src="https://forums.autodesk.com/html/@92EA44495104941280BAE166AF74BE62/emoticons/1f604.png" alt=":cara_que_ríe_con_la_boca_abierta_y_los_ojos_sonrientes:" title=":cara_que_ríe_con_la_boca_abierta_y_los_ojos_sonrientes:" /&gt; &lt;img class="lia-deferred-image lia-image-emoji" src="https://forums.autodesk.com/html/@92EA44495104941280BAE166AF74BE62/emoticons/1f604.png" alt=":cara_que_ríe_con_la_boca_abierta_y_los_ojos_sonrientes:" title=":cara_que_ríe_con_la_boca_abierta_y_los_ojos_sonrientes:" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Revit materials in Octane render will be amazing!&lt;/P&gt;</description>
      <pubDate>Wed, 09 Aug 2017 13:24:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7287323#M9976</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-08-09T13:24:55Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7288043#M9995</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1197953"&gt;@pfk&lt;/a&gt;&amp;nbsp;If the file is in the default system library folder, - only the relative path is saved as a value of AssetPropertyString.&lt;/P&gt;&lt;P&gt;If it is not, then the absolute path is saved. But it is possible to get from the relative path to the full path by using Application.GetLibraryPaths(). I hope this helps.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Aug 2017 16:40:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7288043#M9995</guid>
      <dc:creator>bshafiro</dc:creator>
      <dc:date>2017-08-09T16:40:37Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7289617#M10008</link>
      <description>Thanks. It's still not particularly clear how this is used. For example, how do I get the Generic Image texturemap from the Carpet(1) material of the rac_basic_sample_project.rvt? The Material panel shows this texturemap as finishes.flooring.carpet.needlepunch.white.jpg, but which AssetProperty from element.GetRenderingAsset() contains this map name? It would be great to have this info in the documentation rather than requiring plugin devs to reverse engineer things. Thanks. Paul</description>
      <pubDate>Thu, 10 Aug 2017 06:09:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7289617#M10008</guid>
      <dc:creator>pfk</dc:creator>
      <dc:date>2017-08-10T06:09:53Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7306185#M10193</link>
      <description>&lt;P&gt;You can search for the schema in RevitAPI help. Here is the list of properties for an appearance asset of Generic schema: the property that is looking for is “GenericDiffuse”: the description in the help usually maps the name in Material browser.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Untitled.png" style="width: 705px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/390788iE99BC027284DA0E2/image-size/large?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now, as “GenericDiffuse” is a property that can be connected to another property, like all a texture map, he has to do the following (this is based from the code snippet we provide for new method GetSingleConnectedAsset):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;ElementId appearanceAssetId = material.AppearanceAssetId;

 

   AppearanceAssetElement assetElem = material.Document.GetElement(appearanceAssetId) as AppearanceAssetElement;

 

   using (Transaction t = new Transaction(material.Document, "Change material bumpmap bitmap"))

   {

      t.Start();

 

      using (AppearanceAssetEditScope editScope = new AppearanceAssetEditScope(assetElem.Document))

      {

         Asset editableAsset = editScope.Start(assetElem.Id);   // returns an editable copy of the appearance asset

 

         AssetProperty genericDiffuseProperty = editableAsset.FindByName(Generic.GenericDiffuse);

 

         // Find the connected asset (with a shortcut to get the only one)

 

         Asset connectedAsset = genericDiffuseProperty.GetSingleConnectedAsset();

 

 

         if (connectedAsset != null)

         {

            // Find the target asset property

            AssetPropertyString bitmapProperty = connectedAsset.FindByName( "unifiedbitmap_Bitmap") as AssetPropertyString;

 

            if (bitmapProperty.IsValidValue(imageFilePath))

 

               bitmapProperty.Value = imageFilePath;

         }

 

 

         editScope.Commit(true);

      }

 

      t.Commit();

   }

 
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I hope that helps.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Aug 2017 20:11:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7306185#M10193</guid>
      <dc:creator>bshafiro</dc:creator>
      <dc:date>2017-08-16T20:11:09Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7351224#M13413</link>
      <description>Thanks you for the above code. Whilst I am extremely grateful for your help - I am finding the documentation on this to be woefully lacking. And the naming conventions between the different material type schemas is very inconsistent. For instance, the Concrete class has a ConcreteBmMap and a ConcreteBumpMap! And Stone has StoneBumpMap and StoneColor.</description>
      <pubDate>Mon, 04 Sep 2017 02:33:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7351224#M13413</guid>
      <dc:creator>pfk</dc:creator>
      <dc:date>2017-09-04T02:33:04Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7351237#M13414</link>
      <description>When I query the "unifiedbitmap_Bitmap" Value from an existing material, I get something like "1\\mats\\woods &amp;amp; plastics.finish carpentry.wood.walnut.png". How can I determine that the texturemap path is incomplete and needs pre-pending with a library path pls?</description>
      <pubDate>Mon, 04 Sep 2017 02:47:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7351237#M13414</guid>
      <dc:creator>pfk</dc:creator>
      <dc:date>2017-09-04T02:47:09Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7351258#M13415</link>
      <description>Further to the above problem, the Wood - Medium Brown material (from the rac_basic_sample_project) has a Hardwood.Hardwood color of "1/Mats/Woods &amp;amp; Plastics.Finish Carpentry.Wood.Red Birch.png|1/Mats/Woods &amp;amp; Plastics.Finish Carpentry.Wood.Red Birch.png|1/Mats/Woods &amp;amp; Plastics.Finish Carpentry.Wood.Red Birch.png" - which appears to be corrupt. How is a plugin meant to get the correct map name pls? Thanks</description>
      <pubDate>Mon, 04 Sep 2017 03:08:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7351258#M13415</guid>
      <dc:creator>pfk</dc:creator>
      <dc:date>2017-09-04T03:08:27Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7737091#M18015</link>
      <description>&lt;P&gt;Looks like they closed this case? I was looking at just for remapping, &amp;amp; or to replace a Texture that has been moved/renamed &amp;amp; placed into a server location. Any help on which ones to use???&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jan 2018 17:42:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7737091#M18015</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-01-30T17:42:49Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7737210#M18016</link>
      <description>I suggest asking on the Revit API forums Hopefully they do a better job at supporting users than they do here &lt;A href="https://forums.autodesk.com/t5/revit-api-forum/bd-p/160" target="_blank"&gt;https://forums.autodesk.com/t5/revit-api-forum/bd-p/160&lt;/A&gt;</description>
      <pubDate>Tue, 30 Jan 2018 18:23:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7737210#M18016</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-01-30T18:23:13Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7737317#M18017</link>
      <description>&lt;P&gt;If I understand your question correctly, you are looking for&amp;nbsp;the right way to change the path for the texture in a particular Material. Please take a look at the code snippet below which does exactly that. Does it help? If not, please add more details to your question.&lt;/P&gt;
&lt;P&gt;public void SetBumpmapBitmap(Material material, String bumpmapImageFilepath)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; ElementId appearanceAssetId = material.AppearanceAssetId;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; AppearanceAssetElement assetElem&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = material.Document.GetElement(appearanceAssetId) as AppearanceAssetElement;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; using(Transaction t&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = new Transaction(material.Document, "Change material bumpmap bitmap"))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t.Start();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using(AppearanceAssetEditScope editScope&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = new AppearanceAssetEditScope(assetElem.Document))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// returns an editable copy of the appearance asset&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Asset editableAsset = editScope.Start(assetElem.Id);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssetProperty bumpMapProperty = editableAsset["generic_bump_map"];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Find the connected asset (with a shortcut to get the only one)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Asset connectedAsset = bumpMapProperty.GetSingleConnectedAsset();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (connectedAsset == null)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add a new default connected asset&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bumpMapProperty.AddConnectedAsset("UnifiedBitmap");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; connectedAsset = bumpMapProperty.GetSingleConnectedAsset();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (connectedAsset != null)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Find the target asset property&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AssetPropertyString bumpmapBitmapProperty&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = connectedAsset["unifiedbitmap_Bitmap"] as AssetPropertyString;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bumpmapBitmapProperty.IsValidValue(bumpmapImageFilepath))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bumpmapBitmapProperty.Value = bumpmapImageFilepath;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; editScope.Commit(true);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t.Commit();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;</description>
      <pubDate>Tue, 30 Jan 2018 18:57:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7737317#M18017</guid>
      <dc:creator>bshafiro</dc:creator>
      <dc:date>2018-01-30T18:57:34Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7738187#M18023</link>
      <description>&lt;P&gt;&amp;gt; Does it help? If not, please add more details to your question.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hi - I am still waiting on a response from Autodesk on my questions above.....in particular....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt; Thanks you for the above code. Whilst I am extremely grateful for your help - I am finding the documentation on this to be woefully lacking. And the naming conventions between the different material type schemas is very inconsistent. For instance, the Concrete class has a ConcreteBmMap and a ConcreteBumpMap! And Stone has StoneBumpMap and StoneColor.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt; When I query the "unifiedbitmap_Bitmap" Value from an existing material, I get something like "1\\mats\\woods &amp;amp; plastics.finish carpentry.wood.walnut.png". How can I determine that the texturemap path is incomplete and needs pre-pending with a library path pls?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt; Further to the above problem, the Wood - Medium Brown material (from the rac_basic_sample_project) has a Hardwood.Hardwood color of "1/Mats/Woods &amp;amp; Plastics.Finish Carpentry.Wood.Red Birch.png|1/Mats/Woods &amp;amp; Plastics.Finish Carpentry.Wood.Red Birch.png|1/Mats/Woods &amp;amp; Plastics.Finish Carpentry.Wood.Red Birch.png" - which appears to be corrupt. How is a plugin meant to get the correct map name pls? Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Paul&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jan 2018 00:53:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/7738187#M18023</guid>
      <dc:creator>pfk</dc:creator>
      <dc:date>2018-01-31T00:53:31Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access - Status changed to: Gathering Support</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/10751098#M41863</link>
      <description />
      <pubDate>Thu, 11 Nov 2021 15:28:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/10751098#M41863</guid>
      <dc:creator>Tarek_K</dc:creator>
      <dc:date>2021-11-11T15:28:07Z</dc:date>
    </item>
    <item>
      <title>Re: Allow Material API access - Status changed to: Implemented</title>
      <link>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/10771597#M42260</link>
      <description />
      <pubDate>Sun, 21 Nov 2021 10:16:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-ideas/allow-material-api-access/idc-p/10771597#M42260</guid>
      <dc:creator>Tarek_K</dc:creator>
      <dc:date>2021-11-21T10:16:40Z</dc:date>
    </item>
  </channel>
</rss>

