code: def add_property_grid_widget(self, part_instance, max_height=None, custom_title=False, show_headers=True,
                                   show_columns=None):
          height = max_height
          if isinstance(part_instance, Part):
              part_instance_id = part_instance.id
          elif isinstance(part_instance, text_type) and is_uuid(part_instance):
              part_instance_id = part_instance
              part_instance = self._client.part(id=part_instance_id)
          else:
              raise IllegalArgumentError("When using the add_property_grid_widget, part_instance must be a "
                                         "Part or Part id. Type is: {}".format(type(part_instance)))
          if not show_columns:
              show_columns = list()
          possible_columns = [ShowColumnTypes.DESCRIPTION, ShowColumnTypes.UNIT]
          display_columns = dict()
          for possible_column in possible_columns:
              if possible_column in show_columns:
                  display_columns[possible_column] = True
              else:
                  display_columns[possible_column] = False
          config = {
              "xtype": ComponentXType.PROPERTYGRID,
              "category": Category.INSTANCE,
              "filter": {
                  "activity_id": str(self.activity.id),
                  "part": part_instance_id
              },
              "hideHeaders": not show_headers,
              "viewModel": {
                  "data": {
                      "displayColumns": display_columns
                  }
              },
          }
          if height:
              config['height'] = height
          if custom_title is False:
              show_title_value = "Default"
              title = part_instance.name
          elif custom_title is None:
              show_title_value = "No title"
              title = str()
          else:
              show_title_value = "Custom title"
              title = str(custom_title)
          config["title"] = title
          config["showTitleValue"] = show_title_value
          meta = {
              "activityId": str(self.activity.id),
              "customHeight": height if height else None,
              "customTitle": title,
              "partInstanceId": part_instance_id,
              "showColumns": show_columns,
              "showHeaders": show_headers,
              "showHeightValue": "Set height" if height else "Automatic height",
              "showTitleValue": show_title_value
          }
          self._add_widget(dict(config=config, meta=meta, name=WidgetNames.PROPERTYGRIDWIDGET))