{"id":1321,"date":"2015-12-02T18:45:00","date_gmt":"2015-12-02T18:45:00","guid":{"rendered":"http:\/\/elbsolutions.com\/projects\/?p=1321"},"modified":"2022-02-03T11:24:35","modified_gmt":"2022-02-03T17:24:35","slug":"navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name","status":"publish","type":"post","link":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/","title":{"rendered":"Navisworks COM API &#8211; a little old and REALLY cantakerous. But I finally I can &#8216;FIND&#8217; an object by name"},"content":{"rendered":"<p>So about 4 hours of hacking and I FINALLY figured out how the whole thing is put together I want to drive Navis from Excel. Why? Because all engineers and managers use excel!. We are using Navisworks Simulate 2013 (or internally the com API is NavisworksAutomationAPI10). The key to understanding all we\u00a0need to make this work\u00a0is<\/p>\n<ul>\n<li>use the manual\/by-hand find tool in Navisworks<\/li>\n<li>on that screen, there is an export button &#8211; look at the XML &#8211; the internal names are the key<\/li>\n<li>then &#8211; to understand how that XML stuff helps you decode\/use the find in code be it the COM API or the .net API. Lets see how this all fits together.<\/li>\n<li>[UPDATE Jan 2016] <a href=\"http:\/\/elbsolutions.com\/projects\/getobjectclassnamehere-only-works-the-first-time-why-a-look-into-the-rot-table-navisworks-and-other-apps-too-that-use-activex\/\" target=\"_blank\" rel=\"noopener noreferrer\">Also, see my other post, save hours of time and know why Document.StayOpen is so critical when automating a live version of Navisworks Simulate.<\/a><\/li>\n<\/ul>\n<p>I am using VBA &#8211; because that is native to Excel -put it in an add-in and everyone can enjoy without having to know or do anything &#8211; just click and &#8220;Trust Macros&#8221; and zoom to the part of interest.<\/p>\n<p>Next, I knew one person online who seemed to &#8216;get it&#8217; and use it successfully is <a href=\"http:\/\/adndevblog.typepad.com\/aec\/xiaodong-liang\/\" target=\"_blank\" rel=\"noopener noreferrer\">Xiaodong Liang<\/a> as well as a co-worker who worked with Navis who said &#8211; yes, look here and there (in the GUI interface). Next, know where the help files are <!--more-->\u00a0&#8211; they are on your hard drive &#8211; I was trying to hard online to find the docs. Look under C:\\Program Files\\Autodesk\\Navisworks Simulate 2013\\api\\COM &#8211; and open the .chm file.<\/p>\n<p>Next, hacking around with getting to the active navisworks running on your computer &#8211; I found out a few things. First, the not user Dim myNewVar New MyFavoriteType. Just &#8211; simply Dim\u00a0WITHOUT the New. With the COM API &#8211; you have to use a factory creation idea. So<\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n\r\nDim find As New NavisworksIntegratedAPI10.InwOpFind ' won't work!!!\r\n\r\n' try this instead\r\n\r\nDim find As NavisworksIntegratedAPI10.InwOpFind 'it will be 'Nothing' as expected\r\nSet find = mstate.ObjectFactory(eObjectType_nwOpFind) 'now it will be initialized and filled with some goodness\r\n\r\n<\/pre>\n<p>Lets go back &#8211; what I am looking for is Category=Item, Property=Name, Value = _A1 . Putting this in perspective &#8211; the find window would look like<\/p>\n<p>insert aa_whatiwant.jpg here when wordpress finally decides to work<\/p>\n<p>Simple right? Well 4 hours later &#8211; I finally followed\u00a0Xiaodong&#8217;s example using something LIKE HIS and &#8230; really? Just leave &#8220;Item&#8221; out- because\u00a0the internal name &#8230; well does not exist.<\/p>\n<p>Lets try Xiaodong&#8217;s example. Put in the find, make sure it works, export the find xml, look at it. Then adjust the code using the INTERNAL names (another annoying thing you have to know) &#8230; oh my it works!!! I see the pattern here. (see bottom of article for the code differences)<\/p>\n<p>So then I can make the code work for mine &#8230; hey &#8211; choosing &#8220;Item&#8221; make the category isn&#8217;t there &#8230; so in the code that means DONT do the line of code findCond.SetAttributeNames. Also use the internal name for &#8220;Name&#8221; which is &#8220;LcOaSceneBaseUserName&#8221; and crap &#8211; it worked &#8230;. finally finally finally. I was about to post on the forum but no nee now.<\/p>\n<p>insert aa_whatitried.jpg here\u00a0when wordpress finally decides to work<\/p>\n<h2>Final code<\/h2>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n\r\nSub FindThisName()\r\nDim nwObj As NavisworksAutomationAPI10.Document\r\nSet nwObj = GetObject(, &quot;Navisworks.Document.10&quot;) 'nw 2013\r\n\r\nnwObj.Visible = True\r\nnwObj.StayOpen ' YOU HAVE TO DO THIS and do it following the line above... why?  because the &quot;GetObject&quot; above says &quot;attach onto the existing running copy of navisworks&quot; ... and if you don't do this stayopen thing, the ability to attach to it disappears. You have been warned - took me HOURS to figure this stupid tidbit out) - I had to restart navis all the time, which ... is stupid for live automation (it is ok to do it for background processing)\r\n\r\nDim mstate As InwOpState\r\nSet mstate = nwObj.state\r\n\r\nDim find As NavisworksIntegratedAPI10.InwOpFind\r\nSet find = mstate.ObjectFactory(eObjectType_nwOpFind)\r\n\r\nDim findSpec As InwOpFindSpec\r\nSet findSpec = mstate.ObjectFactory(eObjectType_nwOpFindSpec)\r\n\r\n\r\n' adpated from http:\/\/adndevblog.typepad.com\/aec\/2012\/05\/navisworks-net-api-find-item.html\r\n\r\nDim findCond As InwOpFindCondition\r\nSet findCond = mstate.ObjectFactory(eObjectType_nwOpFindCondition)\r\n\r\nIf (findSpec.Conditions.count &gt; 0) Then\r\n find.findSpec.Conditions.Clear\r\nEnd If\r\n\r\nfindCond.Condition = eFind_CONTAINS\r\n\r\nfindCond.SetPropertyNames &quot;LcOaSceneBaseUserName&quot;\r\nfindCond.StartGroup = False\r\nfindCond.value = &quot;_A1&quot;\r\n\r\nfindCond.ValueCaseSensitive = False\r\n\r\nDebug.Print &quot;******* NEW SEARCH DOUBLE CHECK&quot;\r\nDebug.Print &quot;AttributeInternalName:&quot; &amp; findCond.AttributeInternalName\r\nDebug.Print &quot;AttributeUserName:&quot; &amp; findCond.AttributeUserName\r\nDebug.Print &quot;PropertyInternalName:&quot; &amp; findCond.PropertyInternalName\r\nDebug.Print &quot;AttributeUserName:&quot; &amp; findCond.AttributeUserName\r\nDebug.Print &quot;value:&quot; &amp; findCond.value\r\n\r\nfindSpec.Selection.SelectAll\r\nfindSpec.Conditions.Add findCond\r\nfind.findSpec = findSpec\r\n\r\nDim results As InwOpSelection\r\nSet results = find.FindAll\r\n'results.SelectAll ' this selects everything - but it makes all the other commands below work\r\n\r\nDebug.Print &quot;Found this many items&quot; &amp; results.Paths.count\r\nmstate.CurrentSelection = results.Copy ' this seems to work once something is in results\r\nmstate.ZoomInCurViewOnCurSel\r\n\r\nEnd Sub\r\n\r\n<\/pre>\n<h2>A &#8216;find&#8217; XML export example<\/h2>\n<p>Well &#8211; there is a section called &#8220;category&#8221; missing &#8211; well how do we know that? Well look below where I snapped and just did Xiaodong&#8217;s example because &#8220;if he knows so well &#8211; and no one refutes it&#8230; lets try it&#8221;. Well there is a whole other section &#8230; oooooooh!!!!!! The key to solving the mystery is to STOP SETTING THE ATTRIBUTE TO ITEM!!! Just don&#8217;t have that line in our code. It worked.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n\r\n&lt;exchange xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;http:\/\/download.autodesk.com\/us\/navisworks\/schemas\/nw-exchange-8.0.xsd&quot; units=&quot;mm&quot;&gt;\r\n&lt;findspec mode=&quot;all&quot; disjoint=&quot;0&quot;&gt;\r\n&lt;conditions&gt;\r\n&lt;condition test=&quot;equals&quot; flags=&quot;16&quot;&gt;\r\n&lt;category&gt;\r\n&lt;name internal=&quot;LcOpDwgEntityAttrib&quot;&gt;Entity Handle&lt;\/name&gt;\r\n&lt;\/category&gt;\r\n&lt;property&gt;\r\n&lt;name internal=&quot;LcOaNat64AttributeValue&quot;&gt;Value&lt;\/name&gt;\r\n&lt;\/property&gt;\r\n&lt;value&gt;\r\n&lt;data type=&quot;wstring&quot;&gt;1A00&lt;\/data&gt;\r\n&lt;\/value&gt;\r\n&lt;\/condition&gt;\r\n&lt;\/conditions&gt;\r\n&lt;locator&gt;lcop_property_tree\/Entity Handle\/Value\/1A00&lt;\/locator&gt;\r\n&lt;\/findspec&gt;\r\n&lt;\/exchange&gt;\r\n\r\n<\/pre>\n<h2>Code to do set the find criteria and the XML that taught us.<\/h2>\n<p>Xiaodong, did YET ANOTHER post on how to do And and Or&#8217;s in your finds. Having condition groupings means &#8216;OR&#8217;, adding conditions within a grouping is an AND.\u00a0This does not have that complexity but follows\u00a0Xiaodong&#8217;s example online.<\/p>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n\r\nfindCond.Condition = eFind_CONTAINS\r\nfindCond.SetAttributeNames &quot;LcOpDwgEntityAttrib&quot;, &quot;LcOaSceneBaseUserName&quot;\r\nfindCond.SetPropertyNames &quot;LcOaNat64AttributeValue&quot;, &quot;LcOaSceneBaseUserName&quot;\r\nfindCond.StartGroup = False\r\nfindCond.value = &quot;1A00&quot;\r\n\r\n<\/pre>\n<p>Remember, doing a find manually in\u00a0the GUI, and doing an export &#8211; gives an XML file that should be able to help us properly develop the code\u00a0and understand how to do so. In\u00a0the xml above, see how there is a category section? Now look below &#8211; it is NOT there! Category &#8220;Item&#8221; is above. We DO NOT WANT IT in our code &#8211; so if it is not in the XML, don&#8217;t put it as a criteria in your code. I got\u00a0fooled that for\u00a0&#8220;Item&#8221; as a category, the had to be a category, but it is not in the XML\u00a0so don&#8217;t put it in the\u00a0code. I wonder if in the past, item used to be the only show in town, then the others were added. Item seems to be a special category &#8211; the &#8220;no category&#8221; category.\u00a0Now we know. We want to match the XML below which is the correct output for doing a find by\u00a0hand and choosing &#8220;Item&#8221; from the find tree on the left of the find window. That is how we got to the code above AND why I commented out so many lines (cause I didn&#8217;t get it until it worked &#8211; then I a saw the pattern and wrote this article).<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n\r\n&lt;exchange xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;http:\/\/download.autodesk.com\/us\/navisworks\/schemas\/nw-exchange-8.0.xsd&quot; units=&quot;mm&quot;&gt;\r\n&lt;findspec mode=&quot;all&quot; disjoint=&quot;0&quot;&gt;\r\n&lt;conditions&gt;\r\n    &lt;condition test=&quot;equals&quot; flags=&quot;16&quot;&gt;\r\n      &lt;property&gt;\r\n        &lt;name internal=&quot;LcOaSceneBaseUserName&quot;&gt;Name&lt;\/name&gt;\r\n      &lt;\/property&gt;\r\n      &lt;value&gt;\r\n       &lt;data type=&quot;wstring&quot;&gt;_A1&lt;\/data&gt;\r\n      &lt;\/value&gt;\r\n    &lt;\/condition&gt;\r\n&lt;\/conditions&gt;\r\n&lt;locator&gt;\/&lt;\/locator&gt;\r\n&lt;\/findspec&gt;\r\n&lt;\/exchange&gt;\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So about 4 hours of hacking and I FINALLY figured out how the whole thing is put together I want to drive Navis from Excel. Why? Because all engineers and managers use excel!. We are using Navisworks Simulate 2013 (or internally the com API is NavisworksAutomationAPI10). The key to understanding all we\u00a0need to make this [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1321","post","type-post","status-publish","format-standard","hentry","category-general"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Navisworks COM API - a little old and REALLY cantakerous. But I finally I can &#039;FIND&#039; an object by name - ELB Solutions.com Inc.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Navisworks COM API - a little old and REALLY cantakerous. But I finally I can &#039;FIND&#039; an object by name - ELB Solutions.com Inc.\" \/>\n<meta property=\"og:description\" content=\"So about 4 hours of hacking and I FINALLY figured out how the whole thing is put together I want to drive Navis from Excel. Why? Because all engineers and managers use excel!. We are using Navisworks Simulate 2013 (or internally the com API is NavisworksAutomationAPI10). The key to understanding all we\u00a0need to make this [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/\" \/>\n<meta property=\"og:site_name\" content=\"ELB Solutions.com Inc.\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-02T18:45:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-03T17:24:35+00:00\" \/>\n<meta name=\"author\" content=\"Etienne Bley\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Etienne Bley\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\\\/\"},\"author\":{\"name\":\"Etienne Bley\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#\\\/schema\\\/person\\\/51e717c68f4f5917c63baf88f0896c39\"},\"headline\":\"Navisworks COM API &#8211; a little old and REALLY cantakerous. But I finally I can &#8216;FIND&#8217; an object by name\",\"datePublished\":\"2015-12-02T18:45:00+00:00\",\"dateModified\":\"2022-02-03T17:24:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\\\/\"},\"wordCount\":1489,\"articleSection\":[\"General\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\\\/\",\"url\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\\\/\",\"name\":\"Navisworks COM API - a little old and REALLY cantakerous. But I finally I can 'FIND' an object by name - ELB Solutions.com Inc.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#website\"},\"datePublished\":\"2015-12-02T18:45:00+00:00\",\"dateModified\":\"2022-02-03T17:24:35+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#\\\/schema\\\/person\\\/51e717c68f4f5917c63baf88f0896c39\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Navisworks COM API &#8211; a little old and REALLY cantakerous. But I finally I can &#8216;FIND&#8217; an object by name\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#website\",\"url\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/\",\"name\":\"ELB Solutions.com Inc.\",\"description\":\"Bringing all your IT Pieces together\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/#\\\/schema\\\/person\\\/51e717c68f4f5917c63baf88f0896c39\",\"name\":\"Etienne Bley\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g\",\"caption\":\"Etienne Bley\"},\"url\":\"https:\\\/\\\/elbsolutions.com\\\/projects\\\/author\\\/etienne-bley\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Navisworks COM API - a little old and REALLY cantakerous. But I finally I can 'FIND' an object by name - ELB Solutions.com Inc.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/","og_locale":"en_US","og_type":"article","og_title":"Navisworks COM API - a little old and REALLY cantakerous. But I finally I can 'FIND' an object by name - ELB Solutions.com Inc.","og_description":"So about 4 hours of hacking and I FINALLY figured out how the whole thing is put together I want to drive Navis from Excel. Why? Because all engineers and managers use excel!. We are using Navisworks Simulate 2013 (or internally the com API is NavisworksAutomationAPI10). The key to understanding all we\u00a0need to make this [&hellip;]","og_url":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/","og_site_name":"ELB Solutions.com Inc.","article_published_time":"2015-12-02T18:45:00+00:00","article_modified_time":"2022-02-03T17:24:35+00:00","author":"Etienne Bley","twitter_misc":{"Written by":"Etienne Bley","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/#article","isPartOf":{"@id":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/"},"author":{"name":"Etienne Bley","@id":"https:\/\/elbsolutions.com\/projects\/#\/schema\/person\/51e717c68f4f5917c63baf88f0896c39"},"headline":"Navisworks COM API &#8211; a little old and REALLY cantakerous. But I finally I can &#8216;FIND&#8217; an object by name","datePublished":"2015-12-02T18:45:00+00:00","dateModified":"2022-02-03T17:24:35+00:00","mainEntityOfPage":{"@id":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/"},"wordCount":1489,"articleSection":["General"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/","url":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/","name":"Navisworks COM API - a little old and REALLY cantakerous. But I finally I can 'FIND' an object by name - ELB Solutions.com Inc.","isPartOf":{"@id":"https:\/\/elbsolutions.com\/projects\/#website"},"datePublished":"2015-12-02T18:45:00+00:00","dateModified":"2022-02-03T17:24:35+00:00","author":{"@id":"https:\/\/elbsolutions.com\/projects\/#\/schema\/person\/51e717c68f4f5917c63baf88f0896c39"},"breadcrumb":{"@id":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/elbsolutions.com\/projects\/navisworks-com-api-a-little-old-and-really-cantakerous-but-i-finally-i-can-find-an-object-by-name\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/elbsolutions.com\/projects\/"},{"@type":"ListItem","position":2,"name":"Navisworks COM API &#8211; a little old and REALLY cantakerous. But I finally I can &#8216;FIND&#8217; an object by name"}]},{"@type":"WebSite","@id":"https:\/\/elbsolutions.com\/projects\/#website","url":"https:\/\/elbsolutions.com\/projects\/","name":"ELB Solutions.com Inc.","description":"Bringing all your IT Pieces together","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/elbsolutions.com\/projects\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/elbsolutions.com\/projects\/#\/schema\/person\/51e717c68f4f5917c63baf88f0896c39","name":"Etienne Bley","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f8971dfb65b25b768415568f83247df4057f15d037137e386928a804e2c997b9?s=96&d=mm&r=g","caption":"Etienne Bley"},"url":"https:\/\/elbsolutions.com\/projects\/author\/etienne-bley\/"}]}},"_links":{"self":[{"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/posts\/1321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/comments?post=1321"}],"version-history":[{"count":9,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/posts\/1321\/revisions"}],"predecessor-version":[{"id":2704,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/posts\/1321\/revisions\/2704"}],"wp:attachment":[{"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/media?parent=1321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/categories?post=1321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elbsolutions.com\/projects\/wp-json\/wp\/v2\/tags?post=1321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}