HomeByMe for Home Retailers Documentation

›Configuration Guide

Product Enhancements

  • Release Notes

Use the Home Planner

  • Overview
  • Get Started
  • From a HomeByMe Project
  • From a 2D Plan
  • From the Scratch
  • Add Products
  • Configure Products
  • Create Favorites
  • Finalize My Project
  • Access My Project
  • Recover My Project

Configuration Guide

  • Overview
  • Application Distribution Parameters
  • Sample of Application Distribution Parameters
  • Localizing Application and Content
  • Integrate Branding
  • Default Project
  • Default widgets
  • Print widget
  • Product Sheet widget
  • Project Overview widget
  • Projects List widget

Developer's Guide

  • Authentication Mechanism
  • Signing your Request
  • Integrate the Home Planner to your Website
  • Integrate with Ordering System
  • Bill of Material Reference
  • Home Planner iFrame Messages

Parameters to Configure the Application Distribution

 

Each application distribution must define its own parameters, that is to say parameters are dedicated to a Distribution of the Home Application.

The parameters are written in a JSON object.

↗ Open a sample of a complete JSON object 🔗 with the whole parameters.

❗ The JSON object cannot contain any comment.

For...See...
Language, Units and Currencylocale, locales
FramesharingOptions
MaterialsdefaultWallMaterialID, defaultFloorMaterialID, exteriorFloorMaterials
CatalogcatalogEntries
PricingpricingOptions
Property PanelpropertiesPanelOption
RenderingenableRender360
BrandsdisplayProductBrand

locale

Optional parameter – Value type: string

Name of the default locale for this Application Distribution. It must match the name of one of the defined available locales. Example: "en-US" The currency is inferred from the locales used in the application.

📌 If not set, the first locale specified in the list of available locales is used.


locales

This parameter contains the list of available locales for the Application Distribution. It must contain at least one element.

Mandatory parameter– Value type: list of local objects.

Object defining a set of regional parameters, can contain the keys / pairs below.

name

Mandatory key – Value type: string.

A combination of a mandatory and an optional element joined in a string and separated by a "-" (dash).

  • MANDATORY: 2-letter code of a language, following 🔗 ISO 639-1.
  • OPTIONAL: 2-letter code of a region / country, following 🔗 ISO 3166-1. Examples: "da-DK" for "Danish-Danemark" or "fr-FR" for "French-France".

fallback

Optional key – Value type: string

Used for translations only. If a translation key is not found for the given locale, the translation system falls back to this locale instead. If not specified, falls back to English.

unitSystem

Mandatory key – Value type: string.

Defines which unit system is used in the application. Valid values are:

  • "metrics"
  • "imperial"

lengthUnit

Mandatory parameter – Value type: string

Defines the base unit for length in the application. Valid values are:

  • "millimeter"
  • "centimeter"
  • "decimeter"
  • "meter"
  • "inch"
  • "foot"
  • "yard"

lengthPrecision

Mandatory parameter – Value type: integer

The various lengths displayed in the application will be displayed with lengthPrecision decimal digits.

lengthFractionPrecision

Mandatory if "imperial" – Value type: integer

Used only when the value of unitSystem is "imperial". lengthFractionPrecision is the minimal fraction of lengthUnit. Valid values are: "8", "16" or "32".

Example 1 – Array of three locales with metrics

{
    "locales":
    [
        {
            "name": "fr-BE",
            "unitSystem": "metrics",
            "lengthUnit": "millimeter",
            "lengthPrecision": 0,
            "fallback": "en"
        },
        {
            "name": "nl-BE",
            "unitSystem": "metrics",
            "lengthUnit": "millimeter",
            "lengthPrecision": 0,
            "fallback": "en"
        },
        {
            "name": "de-DE",
            "unitSystem": "metrics",
            "lengthUnit": "millimeter",
            "lengthPrecision": 0,
            "fallback": "en"
        }
    ]
}

Example 2 – Array of two locales with imperial

{
    "locales":
    [
        {
            "name": "en-US",
            "unitSystem": "imperial",
            "lengthUnit": "foot",
            "lengthPrecision": 0,
            "lengthFractionPrecision": 16,
            "fallback": "en"
        },
        {
            "name": "es-US",
            "unitSystem": "imperial",
            "lengthUnit": "foot",
            "lengthPrecision": 0,
            "lengthFractionPrecision": 16,
            "fallback": "en"
        }
    ]
}

sharingOptions

The sharingOptions array can contain the keys / pairs below.

name

Optional key – Value type: string Indicates where the share is enabled such as on a social media, a mail or embeded via an URL.

enabled

Optional key – Value type: boolean Indicates whether the application allows the user to share a product / his project on the targeted social media or via mail or via an embeded URL.

❗ Note: The application only supports the following social medias facebook, twitter, pinterest as well by mail and via an embeded URL in the possible sharing options.

Example

 "sharingOptions": [
        {
            "name": "facebook",
            "enabled": true
        },
        {
            "name": "twitter",
            "enabled": true
        },
        {
            "name": "pinterest",
            "enabled": true
        },
        {
            "name": "mail",
            "enabled": true
        },
        {
            "name": "embed",
            "enabled": true
        }
    ]

propertiesPanelOption

This object defines how to display the properties of a product depending on the context (the first definition level of the object) and the type.

The data structure of the propertiesPanelOption object is the following.

propertiesPanelOptions
|____ DefaultState (array)
|           |__ types (array of strings)
|           |__ presentation
|           |     |__ parameter 1
|           |     |      |__ parameter
|           |     |__ parameter 2
|           |     |      |__ parameter 1
|           |     |      |__ parameter2
|           |     |__ parameter 3
|           |     |      |__ parameter 1
|           |     |      |__ parameter 2
|           |     |      |__ parameter 3                    
|           |     |__ parameter 4
|           |     |__ parameter 5

The object can contain the keys / pairs below.

defaultState

Optional key – Value type: array

Use types to define the way the properties will be displayed in the home application, in the main state.

types

Mandatory key – Value type: array of integers

An array of closed tag IDs. If empty, it means that this presentation is for all type of products (closed tag type) that do not have a more specific presentation defined. If not empty, this presentation will represent all products matching one of the closed tags in the list.

presentation

Mandatory key – Value type: object

Define the list of parameters in the right order.

Each presentation contains the following kind of properties:

  • groups – array – Optional. In this array you will define grouping of parameters.
  • parameters – array – Mandatory. This array is made of objects that define a parameter and its possible sub-options. The property panel in the planner will use the order that you define in this array. If a parameter in a product is visible but does not appear in parameters or groups array, it will be display after all parameters define by those list.

General Example

    "types": [],
    "presentation": {
        "depth": [],
        "width": [],
        "height": []
    }

In this example, you have a defined presentation that works for any type of product. In this presentation, there are three main parameters that we want to show first.

  • The first one is the parameter depth.
  • The second one is the parameter width.
  • The third one is the parameter height.

pricingOptions

The pricingOptions object can contain the keys / pairs below.

priceTopAssembly

Optional key – Value type: boolean

The default value is "false".
Indicates whether the assembly product prices should include the price of the top assembly or not. This only affects assembly products (i.e. BMA products), single component products (i.e. BM3 products) are always priced with their own price.

Example

"pricingOptions": 
   {
      "priceTopAssembly": true,
   },

catalogEntries

This object is used to configure the different catalog entries that are displayed in the planner. The illustrations below show the hierarchy of the catalog entries (in the Home Planner).

Catalog entries hierarchy illustration

Then, the structure of data is the following:

  • The first level of definition is the catalog entry. Only this level has an icon.
  • The second level is the category. It is displayed as menu header in the planner.
  • The third level is the sub-level of the menu, i.e. the menu item.
catalogEntry (first level, with picto) e.g. "Building"
    |
    |__ category (second level) e.g.`exterior doors` 
    |   |
    |   |__ item (third level) e.g. `frontDoors`
    |   |
    |   |__ item (third level) e.g. `patioDoors`
    |   |
    |   |__ item (third level) e.g. `garageDoors`
    |   |
    |__ category (second level) e.g. `interior doors`
    |   |
    |   |__ item (third level) e.g. `foldingWindow` 
    |   |
    |   |__ item (third level) e.g. `slidingDoors` 
    |   |
    |__ category (second level) e.g. `windows` 
    |   |
    |   |__ item (third level) e.g. `simpleWindows` 
    |   |
    |   |__ item (third level) e.g. `doubleWindows` 
    |   |
    |   |__ item (third level) e.g. `slidingWindows` 

About the Icons

Each category entry is illustrated by an icon; some icons are fixed and others are customizable.

"Customizable" icons means that you can choose to have them or not.

"Customizable" does not mean that you can add your own icons. The ID of the icons point to an internal file.

📌 The code does not limit the number of icons, but there is a design limit: There is a risk that the pricing area blocks the expansion to the right of the icon area.

The catalogEntries object can contain the keys / pairs below.

Definition of the Catalog Entries

This level is the only one that has pictos.

picto

Mandatory key – Value type: string

The name of the SVG picto that will be used to represent this catalog entry.

translationKey

Mandatory key – Value type: string

The keys in the translation file corresponding to the translation of the catalog entry. The path to these translation keys is built by the code.

For example

"building": [
    {
        "picto": "windows",
        "categories": [
            {...}
        ],
        "translationKey": "windows"
    }
]

In this example, the complete translation key that must be in the translation find is:

navigation_catalog.building.windows

How deep is the key does not impact the final key. A same key can be used an many different levels.

categories

Mandatory key – Value type: array

Define in this array all the categories depending on the catalog entry.

Definition of the Categories

This level depends on the previous one and will be displayed as a menu in the planner. It is the first level of navigation.

translationKey

Mandatory key – Value type: string

Translation key. See above.

categories

Mandatory key – Value type: array

Define in this array all the subcategories below these categories.

Definition of the Items

The last level is the second level of navigation, i.e. the items in the menu.

translationKey

Mandatory key – Value type: string

Translation key. See above.

closedTags

Mandatory key – Value type: array

List of closed tag IDs that will be searched if the user clicks on that category.

The search made depending of the closedTags is a search of type OR.

For example: In this case, the search will browse all the products having the closedTags 253 OR 254.

 { "translationKey": "sliding_windows", "closedTags": [253, 254], "freeTags": []}

In this other example, clicking "Double windows" will start a search on all the products having the closedTag 252; clicking "Simple Window" will start a search on products having the closedTag 251, etc. But clicking on "Windows" will start a search on all the sub-categories, including tags 251, 252, 253 and 254.

 {
   "translationKey": "window",
   "categories": [
         { "translationKey": "double_windows", "closedTags": [252], "freeTags": [] },
         { "translationKey": "simple_windows", "closedTags": [251], "freeTags": [] },
         { "translationKey": "sliding_windows", "closedTags": [253, 254], "freeTags": [] }
   ]
}
freeTags

Mandatory key – Value type: array

List of free tag IDs that will be searched if the user clicks on that category.

The search made depending of the freeTags is a search of type OR. The operation is the same as for the closedTags, except that freeTags are strings while closedTags are integers.

Complete Example

The translationKey windows in the example below has multiple categories in the second level as a result, as illustrated:

Windows categories

catalogEntries impacts the catalog browser: the browser uses them to browse the catalog. The translationKey windows has two categories simple_windows, double_windows and sliding_windows that are displayed in the planner, as illustrated:

Windows items

"building": [
   {
        "picto": "windows",
        "categories": [
            {
                "freeTags": [],
                "closedTags": [
                    251
                ],
                "translationKey": "simple_windows"
            },
            {
                "freeTags": [],
                "closedTags": [
                    252
                ],
                "translationKey": "double_windows"
            },
            {
                "freeTags": [],
                "closedTags": [
                    253,
                    254
                ],
                "translationKey": "sliding_windows"
            },
        ],
        "translationKey": "windows"
    }
],

defaultWallMaterialID

Mandatory key – Value type: string

Define the wall material that will be used by default when adding a wall or a room. For example:

"defaultWallMaterialID": "4755",

defaultFloorMaterialID

Mandatory key – Value type: string

Defines the floor material that will be used by default when adding a new room. For example:

"defaultFloorMaterialID": "4296"

exteriorFloorMaterials

Mandatory key – Value type: object

This object defines the floor materials that will be proposed to the users when adding an exterior for a garden, a terrace or a driveway.

garden / terrace / driveway

Mandatory keys – Value type: string

Each key will define the floor material for the matching exterior.

For example:

"exteriorFloorMaterials":{
      "garden":"74526",
      "terrace":"GENERIC_MATERIAL_01324",
      "driveway":"GENERIC_MATERIAL_00463"
   },

enableRender360

Optional key – Value type: boolean

Defines the 360 rendering availability in the application to take 360 images of the project. By default, the value is set to "true" so that 360 rendering will be enabled by default. Set to "false" if the user does not want 360 rendering.

Example Example with 360 rendering enabled and the default value:

"enableRender360": true

Example where the 360 rendering is disabled:

"enableRender360": false

displayProductBrand

Optional key – Value type: boolean

Defines whether the product's brand should be displayed in the UI or not. By default the value is set to "false".

By default, we consider that an application distribution owns only one single brand so we hide it. Though, the brand information can be useful along with other product's information as long as the application distribution owns multiple brands.

When the parameter is set to true, the brand will be displayed on products browser cards, Product Sheet 🔗 as well as all UI modules that displayed a products list (Project Overview 🔗 price detail and Print 🔗 items list).

Examples:

For a single brand (default value):

"displayProductBrand": false

For multiple brands:

"displayProductBrand": true

 

 

← OverviewSample of Application Distribution Parameters →
  •  
    • locale
    • locales
    • sharingOptions
    • propertiesPanelOption
    • pricingOptions
    • catalogEntries
    • defaultWallMaterialID
    • defaultFloorMaterialID
    • exteriorFloorMaterials
    • enableRender360
    • displayProductBrand
3DVIA Documentation
Copyright © 2021 Dassault Systèmes