{"id":1031,"date":"2021-05-16T14:39:40","date_gmt":"2021-05-16T14:39:40","guid":{"rendered":"https:\/\/www.parametriczoo.com\/?page_id=1031"},"modified":"2021-05-19T14:53:17","modified_gmt":"2021-05-19T14:53:17","slug":"grasshopper-ui","status":"publish","type":"page","link":"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/","title":{"rendered":"Grasshopper UI+"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;3.22.7&#8243;][et_pb_row _builder_version=&#8221;3.22.7&#8243;][et_pb_column type=&#8221;2_5&#8243; _builder_version=&#8221;3.22.7&#8243;][et_pb_text _builder_version=&#8221;3.22.7&#8243;]After several months working on various Rhino + Grasshopper plugins and developing new UI for the custom components in grasshopper , I just decided to package all controls into a C# library and make it available to all Grasshopper developers. The current version includes several interactive controls which can be easily added to the GH component by implementing an abstract class called&nbsp;<\/p>\n<pre><span class=\"identifier\">GHCustomComponent<\/span><\/pre>\n<p>&nbsp;[\/et_pb_text][et_pb_text _builder_version=&#8221;3.22.7&#8243;]The complete documentation will follow soon, however, here is a brief &#8220;how to use&#8221; for whoever wants to put his hands on. If you wish to have access to the shared library please get in touch !<\/p>\n<p>&nbsp;[\/et_pb_text][et_pb_text _builder_version=&#8221;3.22.7&#8243;]In order to use the controls you first need to inherit from the abstract class&nbsp; <span>GHCustomComponent<\/span><span>&nbsp;and then create and add your controls when the&nbsp;<\/span><span>RegisterInputParams()<\/span><span>method is called.<\/span><\/p>\n<p>See the sample code for&nbsp; Declaration , Creation and Registering a custom control in below.<\/p>\n<p>When it comes to retrieving the value of the control simply check the <strong>CurrentValue<\/strong> property as it is shown in the next sample code.<\/p>\n<p>All the interactions and graphics are taken care so it must be easy for the end user to integrate the controls and use them through his code.&nbsp;<\/p>\n<p>&nbsp;[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;3_5&#8243; _builder_version=&#8221;3.22.7&#8243;][et_pb_image src=&#8221;https:\/\/www.parametriczoo.com\/wp-content\/uploads\/2021\/05\/grasshopper-UI.jpg&#8221; _builder_version=&#8221;3.22.7&#8243;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;3.22.7&#8243; custom_padding=&#8221;7px||10px|||&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.22.7&#8243;][et_pb_button custom_button=&#8221;on&#8221; button_text_size=&#8221;23px&#8221; button_text_color=&#8221;#000000&#8243; button_letter_spacing=&#8221;21px&#8221; button_text=&#8221;Download &#038; Collaborate&#8221; _builder_version=&#8221;3.22.7&#8243; button_url=&#8221;https:\/\/github.com\/Torabi\/GHCustomControls.git&#8221; button_alignment=&#8221;center&#8221; button_font=&#8221;||||||||&#8221; custom_margin=&#8221;-1px||-4px|||&#8221;][\/et_pb_button][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;3.22.7&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.22.7&#8243;][et_pb_accordion _builder_version=&#8221;3.22.7&#8243;][et_pb_accordion_item title=&#8221;Declaration , Creation and Registering a custom control&#8221; open=&#8221;on&#8221; _builder_version=&#8221;3.22.7&#8243; title_text_shadow_horizontal_length=&#8221;0em&#8221; title_text_shadow_vertical_length=&#8221;0em&#8221; title_text_shadow_blur_strength=&#8221;0em&#8221; body_text_shadow_horizontal_length=&#8221;0em&#8221; body_text_shadow_vertical_length=&#8221;0em&#8221; body_text_shadow_blur_strength=&#8221;0em&#8221; background_color=&#8221;#eeeeee&#8221; inline_fonts=&#8221;Georgia&#8221;]<\/p>\n<pre style=\"font-family: Consolas; font-size: 13px; color: black;\"><span class=\"keyword\" style=\"color: blue;\">using<\/span> <span class=\"identifier\">System<\/span><span class=\"punctuation\">;<\/span>\n<span class=\"keyword - unnecessary code - (TRANSIENT)\" style=\"color: blue;\">using<\/span><span class=\"unnecessary code\"> <\/span><span class=\"identifier - unnecessary code - (TRANSIENT)\">System<\/span><span class=\"operator - unnecessary code - (TRANSIENT)\">.<\/span><span class=\"identifier - unnecessary code - (TRANSIENT)\">Collections<\/span><span class=\"operator - unnecessary code - (TRANSIENT)\">.<\/span><span class=\"identifier - unnecessary code - (TRANSIENT)\">Generic<\/span><span class=\"punctuation - unnecessary code - (TRANSIENT)\">;<\/span>\n<span class=\"keyword\" style=\"color: blue;\">using<\/span> <span class=\"identifier\">Grasshopper<\/span><span class=\"operator\">.<\/span><span class=\"identifier\">Kernel<\/span><span class=\"punctuation\">;<\/span>\n<span class=\"keyword - unnecessary code - (TRANSIENT)\" style=\"color: blue;\">using<\/span><span class=\"unnecessary code\"> <\/span><span class=\"identifier - unnecessary code - (TRANSIENT)\">Rhino<\/span><span class=\"operator - unnecessary code - (TRANSIENT)\">.<\/span><span class=\"identifier - unnecessary code - (TRANSIENT)\">Geometry<\/span><span class=\"punctuation - unnecessary code - (TRANSIENT)\">;<\/span>\n<span class=\"keyword\" style=\"color: blue;\">using<\/span> <strong><span class=\"identifier\">GHCustomControls<\/span><\/strong><span class=\"punctuation\">;<\/span>\n \n<span class=\"comment\" style=\"color: green;\">\/\/ In order to load the result of this wizard, you will also need to<\/span>\n<span class=\"comment\" style=\"color: green;\">\/\/ add the output bin\/ folder of this project to the list of loaded<\/span>\n<span class=\"comment\" style=\"color: green;\">\/\/ folder in Grasshopper.<\/span>\n<span class=\"comment\" style=\"color: green;\">\/\/ You can use the _GrasshopperDeveloperSettings Rhino command for that.<\/span>\n \n<span class=\"keyword\" style=\"color: blue;\">namespace<\/span> <span class=\"namespace name\">GHCustomControlDemo<\/span>\n<span class=\"punctuation\">{<\/span>\n    <span class=\"keyword\" style=\"color: blue;\">public<\/span> <span class=\"keyword\" style=\"color: blue;\">class<\/span> <span class=\"class name\" style=\"color: #2b91af;\">GHCustomControlDemoComponent<\/span> <span class=\"punctuation\">:<\/span> <span class=\"identifier\">GHCustomComponent<\/span>\n    <span class=\"punctuation\">{<\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> <\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&lt;<\/span><span class=\"xml doc comment - name\" style=\"color: gray;\">summary<\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&gt;<\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> Declare the check box<\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> <\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&lt;\/<\/span><span class=\"xml doc comment - name\" style=\"color: gray;\">summary<\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&gt;<\/span>\n       <span style=\"font-family: inherit; font-weight: normal; color: #000000;\"> <strong><span class=\"identifier\">CheckBox<\/span> <span class=\"field name\">checkBox<\/span><span class=\"punctuation\">;<\/span><\/strong><\/span>\n \n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> <\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&lt;<\/span><span class=\"xml doc comment - name\" style=\"color: gray;\">summary<\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&gt;<\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> Each implementation of GH_Component must provide a public <\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> constructor without any arguments.<\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> Category represents the Tab in which the component will appear, <\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> Subcategory the panel. If you use non-existing tab or panel names, <\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> new tabs\/panels will automatically be created.<\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> <\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&lt;\/<\/span><span class=\"xml doc comment - name\" style=\"color: gray;\">summary<\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&gt;<\/span>\n        <span class=\"keyword\" style=\"color: blue;\">public<\/span> <span class=\"class name\" style=\"color: #2b91af;\">GHCustomControlDemoComponent<\/span><span class=\"punctuation\">()<\/span>\n          <span class=\"punctuation\">:<\/span> <span class=\"keyword\" style=\"color: blue;\">base<\/span><span class=\"punctuation\">(<\/span><span class=\"string\" style=\"color: #a31515;\">\"GHCustomControlDemo\"<\/span><span class=\"punctuation\">,<\/span> <span class=\"string\" style=\"color: #a31515;\">\"Nickname\"<\/span><span class=\"punctuation\">,<\/span>\n              <span class=\"string\" style=\"color: #a31515;\">\"Description\"<\/span><span class=\"punctuation\">,<\/span>\n              <span class=\"string\" style=\"color: #a31515;\">\"Category\"<\/span><span class=\"punctuation\">,<\/span> <span class=\"string\" style=\"color: #a31515;\">\"Subcategory\"<\/span><span class=\"punctuation\">)<\/span>\n        <span class=\"punctuation\">{<\/span>\n        <span class=\"punctuation\">}<\/span>\n \n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> <\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&lt;<\/span><span class=\"xml doc comment - name\" style=\"color: gray;\">summary<\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&gt;<\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> Registers all the input parameters for this component.<\/span>\n        <span class=\"xml doc comment - delimiter\" style=\"color: gray;\">\/\/\/<\/span><span class=\"xml doc comment - text\" style=\"color: green;\"> <\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&lt;\/<\/span><span class=\"xml doc comment - name\" style=\"color: gray;\">summary<\/span><span class=\"xml doc comment - delimiter\" style=\"color: gray;\">&gt;<\/span>\n        <span class=\"keyword\" style=\"color: blue;\">protected<\/span> <span class=\"keyword\" style=\"color: blue;\">override<\/span> <span class=\"keyword\" style=\"color: blue;\">void<\/span> <span class=\"method name\" style=\"color: #74531f;\">RegisterInputParams<\/span><span class=\"punctuation\">(<\/span><span class=\"identifier - unnecessary code - (TRANSIENT)\">GH_Component<\/span><span class=\"operator\">.<\/span><span class=\"identifier\">GH_InputParamManager<\/span> <span class=\"parameter name\" style=\"color: #1f377f;\">pManager<\/span><span class=\"punctuation\">)<\/span>\n        <span class=\"punctuation\">{<\/span>\n            <span class=\"comment\" style=\"color: green;\">\/\/ create the checkbox  <\/span>\n            <strong><span class=\"identifier\">checkBox<\/span> <span class=\"operator\">=<\/span> <span class=\"keyword\" style=\"color: blue;\">new<\/span> <span class=\"identifier\">CheckBox<\/span><span class=\"punctuation\">(<\/span><span class=\"string\" style=\"color: #a31515;\">\"MyCheckBox\"<\/span><span class=\"punctuation\">,<\/span><span class=\"string\" style=\"color: #a31515;\">\"This is a test\"<\/span><span class=\"punctuation\">,<\/span><span class=\"keyword\" style=\"color: blue;\">false<\/span><span class=\"punctuation\">);<\/span><\/strong>\n            <span class=\"comment\" style=\"color: green;\">\/\/register your input parameters as usual <\/span>\n            <span class=\"comment\" style=\"color: green;\">\/\/....<\/span>\n            <span class=\"comment\" style=\"color: green;\">\/\/....<\/span>\n \n            <span class=\"comment\" style=\"color: green;\">\/\/ register the check box.<\/span>\n            <strong><span class=\"identifier\">AddCustomControl<\/span><span class=\"punctuation\">(<\/span><span class=\"identifier\">checkBox<\/span><span class=\"punctuation\">);<\/span> <\/strong>\n        <span class=\"punctuation\">}<\/span><\/pre>\n<p>[\/et_pb_accordion_item][et_pb_accordion_item title=&#8221;Retrieving the value of the control.&#8221; open=&#8221;off&#8221; _builder_version=&#8221;3.22.7&#8243; title_text_shadow_horizontal_length=&#8221;0em&#8221; title_text_shadow_vertical_length=&#8221;0em&#8221; title_text_shadow_blur_strength=&#8221;0em&#8221; body_text_shadow_horizontal_length=&#8221;0em&#8221; body_text_shadow_vertical_length=&#8221;0em&#8221; body_text_shadow_blur_strength=&#8221;0em&#8221; background_color=&#8221;#eeeeee&#8221;]<\/p>\n<pre style=\"font-family:Consolas;font-size:13px;color:black;\"><span class=\"keyword\" style=\"color:blue;\">protected<\/span> <span class=\"keyword\" style=\"color:blue;\">override<\/span> <span class=\"keyword\" style=\"color:blue;\">void<\/span> <span class=\"method name\" style=\"color:#74531f;\">SolveInstance<\/span><span class=\"punctuation\">(<\/span><span class=\"identifier\">IGH_DataAccess<\/span> <span class=\"parameter name\" style=\"color:#1f377f;\">DA<\/span><span class=\"punctuation\">)<\/span>\n       <span class=\"punctuation\">{<\/span>\n           <span class=\"comment\" style=\"color:green;\">\/\/read the check box status <\/span>\n           <span class=\"keyword\" style=\"color:blue;\">bool<\/span> <span class=\"local name - unnecessary code - (TRANSIENT)\" style=\"color:#1f377f;\">checkBoxStatus<\/span> <span class=\"operator\">=<\/span> <span class=\"punctuation\">(<\/span><span class=\"keyword\" style=\"color:blue;\">bool<\/span><span class=\"punctuation\">)<\/span><span class=\"identifier\">checkBox<\/span><span class=\"operator\">.<\/span><span class=\"identifier\">CurrentValue<\/span><span class=\"punctuation\">;<\/span>\n       <span class=\"punctuation\">}<\/span><\/pre>\n<p>[\/et_pb_accordion_item][\/et_pb_accordion][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After several months working on various Rhino + Grasshopper plugins and developing new UI for the custom components in grasshopper , I just decided to package all controls into a C# library and make it available to all Grasshopper developers. The current version includes several interactive controls which can be easily added to the GH [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1036,"parent":219,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Grasshopper UI+ - Parametric Zoo<\/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:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Grasshopper UI+ - Parametric Zoo\" \/>\n<meta property=\"og:description\" content=\"After several months working on various Rhino + Grasshopper plugins and developing new UI for the custom components in grasshopper , I just decided to package all controls into a C# library and make it available to all Grasshopper developers. The current version includes several interactive controls which can be easily added to the GH [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/\" \/>\n<meta property=\"og:site_name\" content=\"Parametric Zoo\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-19T14:53:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.parametriczoo.com\/wp-content\/uploads\/2021\/05\/grasshopper-UI.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1242\" \/>\n\t<meta property=\"og:image:height\" content=\"1398\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.parametriczoo.com\/#website\",\"url\":\"https:\/\/www.parametriczoo.com\/\",\"name\":\"Parametric Zoo\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.parametriczoo.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/#primaryimage\",\"url\":\"https:\/\/www.parametriczoo.com\/wp-content\/uploads\/2021\/05\/grasshopper-UI.jpg\",\"contentUrl\":\"https:\/\/www.parametriczoo.com\/wp-content\/uploads\/2021\/05\/grasshopper-UI.jpg\",\"width\":1242,\"height\":1398,\"caption\":\"Grasshopper UI+\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/\",\"url\":\"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/\",\"name\":\"Grasshopper UI+ - Parametric Zoo\",\"isPartOf\":{\"@id\":\"https:\/\/www.parametriczoo.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/#primaryimage\"},\"datePublished\":\"2021-05-16T14:39:40+00:00\",\"dateModified\":\"2021-05-19T14:53:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.parametriczoo.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Products\",\"item\":\"https:\/\/www.parametriczoo.com\/index.php\/products\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Grasshopper UI+\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Grasshopper UI+ - Parametric Zoo","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:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/","og_locale":"en_US","og_type":"article","og_title":"Grasshopper UI+ - Parametric Zoo","og_description":"After several months working on various Rhino + Grasshopper plugins and developing new UI for the custom components in grasshopper , I just decided to package all controls into a C# library and make it available to all Grasshopper developers. The current version includes several interactive controls which can be easily added to the GH [&hellip;]","og_url":"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/","og_site_name":"Parametric Zoo","article_modified_time":"2021-05-19T14:53:17+00:00","og_image":[{"width":1242,"height":1398,"url":"https:\/\/www.parametriczoo.com\/wp-content\/uploads\/2021\/05\/grasshopper-UI.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/www.parametriczoo.com\/#website","url":"https:\/\/www.parametriczoo.com\/","name":"Parametric Zoo","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.parametriczoo.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/#primaryimage","url":"https:\/\/www.parametriczoo.com\/wp-content\/uploads\/2021\/05\/grasshopper-UI.jpg","contentUrl":"https:\/\/www.parametriczoo.com\/wp-content\/uploads\/2021\/05\/grasshopper-UI.jpg","width":1242,"height":1398,"caption":"Grasshopper UI+"},{"@type":"WebPage","@id":"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/","url":"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/","name":"Grasshopper UI+ - Parametric Zoo","isPartOf":{"@id":"https:\/\/www.parametriczoo.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/#primaryimage"},"datePublished":"2021-05-16T14:39:40+00:00","dateModified":"2021-05-19T14:53:17+00:00","breadcrumb":{"@id":"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.parametriczoo.com\/index.php\/products\/grasshopper-ui\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.parametriczoo.com\/"},{"@type":"ListItem","position":2,"name":"Products","item":"https:\/\/www.parametriczoo.com\/index.php\/products\/"},{"@type":"ListItem","position":3,"name":"Grasshopper UI+"}]}]}},"_links":{"self":[{"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/pages\/1031"}],"collection":[{"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/comments?post=1031"}],"version-history":[{"count":0,"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/pages\/1031\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/pages\/219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/media\/1036"}],"wp:attachment":[{"href":"https:\/\/www.parametriczoo.com\/index.php\/wp-json\/wp\/v2\/media?parent=1031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}