Skip to content

Create a Materials Static Entity

This tutorial demonstrates how to create a dynamic Materials static entity that loads engineering material reference data from an XLS file, including canonical material names, alternative names, standards identifiers, abbreviations, and commercial terminologies used in engineering documents.

Before starting this tutorial, make sure the following are available:

  • Access to the Lowgile platform, where an application module has already been created, and
  • Basic familiarity with creating and configuring static entities.

Tip

See Configure a Static Entity for a tutorial on how to create a static entity.

  1. Open the Lowgile platform design editor.
  2. In the left sidebar, locate the Static Entities section (under Object Types).
  3. Click the + button to create a new static entity.
  4. Enter Materials as the ID and click OK.
  5. The static entity editor opens by default.

Tip

Refer to the Static Entity Editor documentation for an overview of the layout and configuration sections.

Update the following settings and properties as follows:

Review or update the general static entity properties:

PropertyValueReview/UpdateNotes
SourceDynamic (needs to run on server)Update
Display ColumnlabelReviewLeave as default for now
Use "other" valuesUncheckedReviewLeave as default
  1. Update the default properties:
Default propertyUpdated configurationPurpose
idUpdate the type to numberStores the numeric identifier loaded from the spreadsheet.
labelUpdate the label property name to nameStores the canonical material name.
  1. Add a custom property by clicking the + Add property button:
PropertyTypePurpose
alternativeNamesstringStores alternative engineering material names, abbreviations, standards codes, and commercial product names used for material matching and AI-assisted extraction.
  1. Save your changes before continuing.

Attention

After renaming the display property and adding a new property, the GENERAL section’s Display Column can lose its value.

  1. After saving, confirm that the Display Column is set to name; otherwise, select the correct value from the dropdown and resave.

Note

Ignore the STATIC ENTRIES section. A dynamic static entity does not require any manual entries.

The server-side and client-side caching values can remain as their default values (0).

  1. The code editor provides a default optionsList function:
async function optionsList(): Promise<This.Materials.Entry[]> {
}
  1. Add the XLS loading logic to the function:
const xls = await Sys.Xls.SimpleXls.fromFile('list-materials.xlsx', 'xlsx')
return xls.parseToObjects({ sheetNameOrNumber: 'Materials' })
  1. Save and close the editor.

To verify the values loaded by the dynamic static entity, open the console, select the correct module context, and execute:

const materials = This.Materials.getEntryList().map(e => ({ ...e, id: undefined }))
return materials

The console should return the entries loaded from the spreadsheet.

For example:

[
{
"name": "UP GM 203",
"alternativeNames": "GPO-3, HM2471"
},
{
"name": "PF CP 201",
"alternativeNames": "HP2061"
},
{
"name": "PF CC 201",
"alternativeNames": "HGW2082"
},
{
"name": "EP GC 201",
"alternativeNames": "G10, HGW2372"
},
{
"name": "EP GC 202",
"alternativeNames": "FR4, HGW2372.1"
}
]

As a second test, bind the static entity to a dropdown component on a test screen to confirm which values are displayed to users.

If the dropdown displays the spreadsheet values correctly, the dynamic static entity is loading as expected.

If the dropdown values display as Undefined, or the spreadsheet entries do not appear after testing the static entity in a dropdown, see Dynamic Static Entity Dropdown Does Not Load Values.

Key Takeaway

The dynamic Materials static entity can now be used throughout the application, including:

  • Workflows,
  • Services,
  • Task screens,
  • Dropdown lists, and
  • AI-assisted extraction workflows, like .

Applications can use this reference data to standardize engineering terminology, validate extracted values, and improve AI-assisted material recognition accuracy.