# Create and use reusable property schemas

**URL:** <https://forum.inductiveautomation.com/t/create-and-use-reusable-property-schemas/72859>\
**Category:** Module Development\
**Tags:** perspective\
**Created:** [April 25, 2023, 10:46am UTC](https://forum.inductiveautomation.com/t/create-and-use-reusable-property-schemas/72859 "2023-04-25T10:46:09Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [April 8, 2025, 1:38am UTC](https://forum.inductiveautomation.com/t/create-and-use-reusable-property-schemas/72859/4 "2025-04-08T01:38:55Z")

</div>

Necro bump 🪦

The approach supplied in this thread allows referencing both Perspective's native schemas and your own reusable schemas.

> [@Musson Industrial's Embr-Periscope Module](https://forum.inductiveautomation.com/t/musson-industrials-embr-periscope-module/99047/43):
>
> man_mage More testing required, but this seems to make the gateway happy (no more errors in the logs). override fun startup(activationState: LicenseState) { ... logger.debug("Registering components...") val originalClassLoader = Thread.currentThread().contextClassLoader Thread.currentThread().contextClassLoader = context.perspectiveContext.javaClass.classLoader ... componentRegistry.registerComponent(...) modelDelegateRegistry.re…

---

_[View the full topic](https://forum.inductiveautomation.com/t/create-and-use-reusable-property-schemas/72859)._
