# Export Plug-in specification

The export specification is a JSON object that is part of the component definition and must be a child object of the "plugin-data" object. The first use of this object, which is no longer used today, was for IMOS plug-in data (subobject "imos"). Exports can be specified for the HOMAG technical configurator in the "service-export" subobject and for Stiles IMOS iX in the "imos-ix" subobject. The definition of the IMOS iX export and the HOMAG technical configurator export are described in the following sections and are based on the same rules.

# TC and IMOS iX export definition JSON Object

The export properties can either be constant values or scripts. All scripts are evaluated only at time of export in arbitrary order. All Roomle script functions can be used in the script and the script has full access to all parameters and variables of the component.

ServiceExport : { 
    "constructionLibrary": string | "<script>",
    "version": string | "<script>",
    "moduleId": string | "<script>",
    "isRoot": false | true | "<script>",
    "ignore": false | true | "<script>",
    "parentRuntimeId": number | "<script>",
    "masterSubComponent": string | "<script>",
    "sortOrder": number | "<script>",
    "excludeParameters": [
        "<pattern>"*
    ]
}

Properties:

key value default value description
constructionLibrary string or script catalogueId of the componentId The name of the construction library (HOMAG TC)
moduleId string or script externalId of the componentId The unique name of the module inside the construction libraray (HOMAG TC)
version string or script empty string The version of the construction library
isRoot Boolean value or script false If this flag is set, the component becomes an article, otherwise the component is a module
grouped Boolean value or script false If this flag is set, the articles from one configuration get the same "groupId"
ignore Boolean value or script false If this flag is set, the component ignores (nonetheless, the children and subparts continue to be processed)
relativeParentId string or script --- The relative path to a module's parent article or module. (*1)
parentRuntimeId number or script --- The parent article or module of a module. This property has no meaning if no "isRoot" is set. (*2)
masterSubComponent string or script --- Internal id of the subComponent which is to completely replace the component. (*3)
sortOrder number or script --- An array of modules is sorted by this number.
articleId string or script --- The name of the article (HOMAG TC)
description string --- Description of the article (HOMAG TC)
excludeParameters array of patterns --- Lists of parameters that must be excluded from the export. Each item in the list is a "LIKE" (*4) pattern.

*1) relativeParentId: This property has no meaning if "isRoot" is set and defines the relative subComponent path of the internal IDs to the parent component. The path is defined like a Linux file path. The elements of the path are separated with '/' (slash), '..' addresses the parent element and a name indicates the internal name of a subComponent.

*2) parentRuntimeId: This property has no meaning if "isRoot" or "relativeParentId" is set. If not defined, this will automatically be the runtime ID of the parent component. Override with runtime ID of the actual parent component if the component-subComponent or parent-child hierarchy is not matching the defined module-submodule hierarchy.

*3) masterSubComponent: Internal ID of the subComponent that is to completely replace the component. The component itself is ignored and all other subComponents become modules of the master subComponent.

*4) excludeParameters: "LIKE" pattern:

  • _ is a placeholder for any single character
  • % is a placeholder for any string
  • \_ is the _ character
  • \% is the % character

Example:

{
    "id": "hbocean:carcass_02",
    ...

    "plugin-data": {
        "service-export": {
            "constructionLibrary": "bathlibrary_ts",
            "version": "1.2.3",
            "moduleId": "mr_StorageUnit_Single",
            "isRoot": true,
            "ignore": false,
            "parentRuntimeId": -1,
            "excludeParameters": [
                "rml_%",
                "view"
            ] 
        }
    }
}