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.
Prerequisites
Section titled “Prerequisites”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.
Create a static entity
Section titled “Create a static entity”- Open the Lowgile platform design editor.
- In the left sidebar, locate the Static Entities section (under Object Types).
- Click the + button to create a new static entity.
- Enter
Materialsas the ID and click OK. - The static entity editor opens by default.
Tip
Refer to the Static Entity Editor documentation for an overview of the layout and configuration sections.
Configure the static entity
Section titled “Configure the static entity”Update the following settings and properties as follows:
1. GENERAL
Section titled “1. GENERAL”Review or update the general static entity properties:
| Property | Value | Review/Update | Notes |
|---|---|---|---|
| Source | Dynamic (needs to run on server) | Update | |
| Display Column | label | Review | Leave as default for now |
| Use "other" values | Unchecked | Review | Leave as default |
2. PROPERTIES
Section titled “2. PROPERTIES”- Update the default properties:
| Default property | Updated configuration | Purpose |
|---|---|---|
| id | Update the type to number | Stores the numeric identifier loaded from the spreadsheet. |
| label | Update the label property name to name | Stores the canonical material name. |
- Add a custom property by clicking the + Add property button:
| Property | Type | Purpose |
|---|---|---|
| alternativeNames | string | Stores alternative engineering material names, abbreviations, standards codes, and commercial product names used for material matching and AI-assisted extraction. |
-
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.
- 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.
3. CACHING
Section titled “3. CACHING”The server-side and client-side caching values can remain as their default values (0).
4. DYNAMIC ENTRIES SCRIPT
Section titled “4. DYNAMIC ENTRIES SCRIPT”- The code editor provides a default
optionsListfunction:
async function optionsList(): Promise<This.Materials.Entry[]> {
}- Add the XLS loading logic to the function:
const xls = await Sys.Xls.SimpleXls.fromFile('list-materials.xlsx', 'xlsx')return xls.parseToObjects({ sheetNameOrNumber: 'Materials' })-
Save and close the editor.
Test the static entity
Section titled “Test the static entity”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 materialsThe 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.