configdocu
Configurator Feature Documentation
Partlist
The Partlist is an aggregated view of the current Components (and SubComponents) in an Object or the full scene. The aggregation is based on the componentId, articleNr and Parameters, who are visible in the partlist: Two components are considered "equal" (and therefore appear as the same entry in the partlist) if:
they have the same componentId
the same articleNr
for every parameter visible in partlist the key and value of the parameter matches.
The count in the partlist can be a decimal number, as the script may define decimal numbers as numberInPartList
subPartId
Every element in the partlist also contains a subpartId. This id can be used to request the geometry for this element. This can be useful for interfaces which want to show images for each part in the partlist.
Bear in mind that some parts in the partlist might have no meaningful geometry. Additionally hasGeometry
tells the client if this subpart has a geometry or not.
main components
additionally to the fullList, each partlist contains an aggregated view per main component. Subelements in the partList are not combined with elements beneath other mainComponents, even if they are exactly the same. There is also no aggregation between main components, even if the resulting partlist and main component itself is identical.
Parameterrestrictions
When loading a componentdefinition into the Configurator, it is possible to add (json serialized) list of parameter restrictions. Those restrictions may restrict parameters and/or parametervalues from being shown to the user. It is possible to exclude elements or restrict the possible list of values.
If the restrictions contain multiple restriction lists for parameters or values of the same parameter, the intersection of all those lists applies.
The dataformat is defined in the Script documentation
Example
Component A has Parameters param1
, param2
and param3
. And param1 has values val1
,val2
,val3
and val4
.
If we now add restrictions :
restrict the parameters to param1 and param2
exclude param2
restrict values of param1 to val1, val2 and val3
restrict values of param1 to val2, val3 and val4
exclude values val2 and val4 from param1
the result would be showing only param1 with value val3.
Plugins
It is possible to add pluginData into rml components for wellknown plugins. for more details see plugins
imos
the imos pluginData includes the structural data necessary to convert the rml-configuration into a pxm format. With this it is possible to import the configuration into imos as long as the used construction-principles are known in imos.
You can use the IMOSGenerator
to generate pxm data out of the configuration.
Configurator DataTransferObjects
PlanComponent
A configuration consists of a tree of plancomponents.
members
id (long)
label (string)
hash (string) : the hash of the component itself. every plancomponent with the same parametervalues have the same hash.
position (Vector3f): position relative to the parent
rotation (Vector3f): rotation relative to the parent, eulerangles in degrees
transform (Matrix4f): transform relative to the parent
bounds (Vector3f): bounds within the parentspace
boundingBox (Cube): bounds within the parentspace
boxForMeasurement (Cube): bounds for measurement within the parentspace
valid (bool)
parameters (vector <Parameter>): visible parameters of this plancomponent
parameterGroups (vector <ParameterGroup>)
childIds (vector <long>)
possibleChildren (vector <PossibleChild>)
addOnSpots (vector <AddOnSpot>)
dimensionings (vector <Dimensioning>)
Dimensioning
represents a dimensioning to be shown on the current component. Each dimensioning has a type (currently which axis it should be shown on), a from and to position. Those values are relative to the component space on the line defined by the type.
The level defines on what level it should be shown the lower the level the further outside it is. Per convention 0 should be the overall dimensioning and 1 is the first level of the plancomponent dimensions.
members
type (Type = X|Y|Z)
from (float)
to (float)
label (string)
level (int)
maxLevel (int) the current maximum level within this type
Parameter
The parameter transfer object is used for both PlanComponent-Parameters and PlanObject-Parameters.
valuesAreEqual is always true for PlanComponent-Parameters. On PlanObject-Parameters it is true if all connected planComponent-parameters behind this object-parameter has the same value.
In ParameterDTO valuesAreEqual param is added, param is set to true, if their is a consensus otherwise it will be set to false
(Ex: consider the planObject-Parameter “colour” is set to “green”, if in plan component some of the components colours are different, then valuesAreEqual will be set to false. if all components are changed to “blue” then object param will automatically be changed to blue and valuesAreEqual will be set to “true”)
members
label (string)
enabled (bool)
highlighted (bool)
valuesAreEqual (bool)
sort (long)
group (string)
range (Range)
unitType (UnitType = UNKNOWN_UNIT | LENGTH | AREA | ANGLE |COUNT)
unitTypeString (string)
groups (vector <std::string>)
values (vector <ParameterValueDTO>)
Last updated