# How to design .sbt files?

**URL:** https://discourse.kitware.com/t/how-to-design-sbt-files/1648
**Category:** Using SMTK
**Created:** [November 14, 2025, 1:56pm UTC](https://discourse.kitware.com/t/how-to-design-sbt-files/1648 "2025-11-14T13:56:05Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![CsatiZoltan](https://discourse.kitware.com/letter_avatar_proxy/v4/letter/c/76d3ee/32.png) [@CsatiZoltan](https://discourse.kitware.com/u/CsatiZoltan)
#### Post date: [November 14, 2025, 1:56pm UTC](https://discourse.kitware.com/t/how-to-design-sbt-files/1648/1 "2025-11-14T13:56:05Z")

</div>

I see the following ways to write .sbt files, which are responsible for the automatic creation of GUI widgets in CMB.

1. Write them manually
  - Find a similar example in [smtk/data/attribute/attribute\_collection](https://gitlab.kitware.com/cmb/smtk/-/tree/master/data/attribute/attribute_collection) and adapt it to your needs.
  - Read the [attribute schema specification](https://smtk.readthedocs.io/en/latest/userguide/attribute/file-syntax.html).
  - Develop a VS Code extension, using its language server, to help in the discovery, autocompletion, pop-up help and formatting of the XML file.

2. Create them using the Template Editor. The Template Editor comes with the superbuild (why not with the standalone build of CMB?), but it seems to me that it can only _load_ existing templates, not help in the _creation_ (like Qt Designer).

What is the current state and the recommended way of .sbt file creation?

---

<div class="post-metadata">

### Author: ![dcthomp](https://discourse.kitware.com/user_avatar/discourse.kitware.com/dcthomp/32/10_2.png) [@dcthomp](https://discourse.kitware.com/u/dcthomp)
#### Post date: [November 16, 2025, 5:12am UTC](https://discourse.kitware.com/t/how-to-design-sbt-files/1648/2 "2025-11-16T05:12:34Z")

</div>

Currently, we edit the XML for attribute-resource schemas by hand.

The template editor is not something we have maintained as our customers so far have preferred editing the XML directly. The template editor is nice for smaller projects, but a lot of features – such as being able to split definitions across multiple files and maintain them separately – would require a lot of development effort to implement in the template editor.
