# Tips and Tricks

**URL:** https://discourse.kitware.com/c/smtk/tips-and-tricks/15.md

[Latest](https://discourse.kitware.com/latest.md) · [Categories](https://discourse.kitware.com/categories.md)

---

## [About the Tips and Tricks category](https://discourse.kitware.com/t/about-the-tips-and-tricks-category/478)

<div class="topic-metadata">

**Author:** [@kitware-sysadmin](https://discourse.kitware.com/u/kitware-sysadmin)\
**Replies:** 0

</div>

This category is for explanatory posts that describe how to use SMTK to perform a task. It is intended to capture the “officially sanctioned” way to do things (i.e. intended usage patterns, not anti-patterns) that are ei…

---

## [Adding a python operation to modelbuilder](https://discourse.kitware.com/t/adding-a-python-operation-to-modelbuilder/1146)

<div class="topic-metadata">

**Author:** [@dcthomp](https://discourse.kitware.com/u/dcthomp)\
**Replies:** 0\
**Last updated:** [October 31, 2023, 3:23pm UTC](https://discourse.kitware.com/t/adding-a-python-operation-to-modelbuilder/1146 "2023-10-31T15:23:18Z")

</div>

In the past, modelbuilder expected python operations to be registered each time the application was run. But if you place a small bit of code at the bottom of your python operation, you can have it automatically register…

---

## [Continuous integration tricks](https://discourse.kitware.com/t/continuous-integration-tricks/619)

<div class="topic-metadata">

**Author:** [@dcthomp](https://discourse.kitware.com/u/dcthomp)\
**Replies:** 3\
**Last updated:** [March 23, 2021, 2:41pm UTC](https://discourse.kitware.com/t/continuous-integration-tricks/619 "2021-03-23T14:41:27Z")

</div>

This topic is a wiki page (you can edit it) to collect tricks for working with our gitlab continuous integration system. Superbuild system The CMB and aeva projects have many dependencies. The cmb-superbuild project exi…

---

## [Using the python interpreter included with CMB and aevaCMB](https://discourse.kitware.com/t/using-the-python-interpreter-included-with-cmb-and-aevacmb/620)

<div class="topic-metadata">

**Author:** [@dcthomp](https://discourse.kitware.com/u/dcthomp)\
**Replies:** 0\
**Last updated:** [March 19, 2021, 9:52pm UTC](https://discourse.kitware.com/t/using-the-python-interpreter-included-with-cmb-and-aevacmb/620 "2021-03-19T21:52:15Z")

</div>

Packaged python If you download a Kitware-generated package of aevaCMB or CMB, it will come with a pvpython executable (in aevaCMB.app/Contents/bin on macos, in bin/pvpython on linux, and in bin/pvpython.exe on windows).…

---

## [Performance profiling](https://discourse.kitware.com/t/performance-profiling/568)

<div class="topic-metadata">

**Author:** [@dcthomp](https://discourse.kitware.com/u/dcthomp)\
**Replies:** 0\
**Last updated:** [December 4, 2020, 6:49am UTC](https://discourse.kitware.com/t/performance-profiling/568 "2020-12-04T06:49:08Z")

</div>

In the past, several SMTK users have asked about tools to understand performance. Instruments on macos is excellent but if you aren’t having the performance problem on macos, it does you no good. On linux, oprofile is a …

---

## [Tips for debugging SMTK](https://discourse.kitware.com/t/tips-for-debugging-smtk/304)

<div class="topic-metadata">

**Author:** [@dcthomp](https://discourse.kitware.com/u/dcthomp)\
**Replies:** 0\
**Last updated:** [August 29, 2019, 3:34pm UTC](https://discourse.kitware.com/t/tips-for-debugging-smtk/304 "2019-08-29T15:34:33Z")

</div>

NB: This topic is a “wiki page,” which means anyone (not just the author) can edit it. Please add your own tips below. LLDB Below are some niceties for using lldb with SMTK. There may be equivalents for gdb; if so, plea…

---

## [Subtracting UI components from ModelBuilder](https://discourse.kitware.com/t/subtracting-ui-components-from-modelbuilder/302)

<div class="topic-metadata">

**Author:** [@dcthomp](https://discourse.kitware.com/u/dcthomp)\
**Replies:** 0\
**Last updated:** [August 16, 2019, 9:53pm UTC](https://discourse.kitware.com/t/subtracting-ui-components-from-modelbuilder/302 "2019-08-16T21:53:25Z")

</div>

Purpose There are many parts of ParaView (and thus ModelBuilder) that preprocessing applications may not want to expose to users. To deal with this, we are adding (in SMTK MR 1690) a new class to the smtkPQComponentsExt …

---

## [Plugin to autoload an attribute resource](https://discourse.kitware.com/t/plugin-to-autoload-an-attribute-resource/180)

<div class="topic-metadata">

**Author:** [@tj.corona](https://discourse.kitware.com/u/tj.corona)\
**Replies:** 0\
**Last updated:** [November 21, 2018, 2:18pm UTC](https://discourse.kitware.com/t/plugin-to-autoload-an-attribute-resource/180 "2018-11-21T14:18:11Z")

</div>

I have created a plugin to demonstrate how to construct a standalone plugin for CMB that automatically loads an attribute resource to every server. Please let me know what you think!

---

## [A simple and quick guide on how to write a new descriptive phrase generation](https://discourse.kitware.com/t/a-simple-and-quick-guide-on-how-to-write-a-new-descriptive-phrase-generation/330)

<div class="topic-metadata">

**Author:** [@Haocheng\_Liu](https://discourse.kitware.com/u/Haocheng_Liu)\
**Replies:** 2\
**Last updated:** [October 28, 2019, 2:18pm UTC](https://discourse.kitware.com/t/a-simple-and-quick-guide-on-how-to-write-a-new-descriptive-phrase-generation/330 "2019-10-28T14:18:21Z")

</div>

A simple and quick guide on how to write a new descriptive phrase generation This post is WIP. Preface Descriptive phrase trees may be flat or deeply nested. They are flexible and may be configured to present the s…

---

## [Descriptive Observers](https://discourse.kitware.com/t/descriptive-observers/313)

<div class="topic-metadata">

**Author:** [@tj.corona](https://discourse.kitware.com/u/tj.corona)\
**Replies:** 1\
**Last updated:** [September 12, 2019, 11:35am UTC](https://discourse.kitware.com/t/descriptive-observers/313 "2019-09-12T11:35:30Z")

</div>

Descriptions for Observers As one of its primary entrypoints, SMTK’s Observer pattern enables consuming projects to dynamically interact with SMTK objects. Because Observers have the ability to change the functionality…
