Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


Additionally, applications that use ParamML and OpenBrIM objects can also utilize Group objects to store custom data. Group objects can be nested within all types of objects, providing a flexible and organized way to manage data within a project.

Syntax

Code Block
languagexml
<O T="Group">
.....
.....
.....
</O>

...

Code Block
languagexml
<O N="Volume _Group" T="Project" Category="Core Objects">
    <!-- created by ParamML Examples on 26.01.2023 -->
    <O N="Volume Object" T="Group" X="80" Alingment="Straight" AlignH="None" AlignT="None" AlignV="None">
        <O N="Volume1" T="Volume">
            <P N="Opacity" V="0.5" />
            <O T="Surface">
                <O T="Point" Y="-5" Z="0" />
                <O T="Point" Y="5" Z="0" />
                <O T="Point" Y="5" Z="10" />
                <O T="Point" Y="-5" Z="10" />
            </O>
            <O T="Surface" X="100">
                <O T="Point" Y="-5" Z="0" />
                <O T="Point" Y="5" Z="0" />
                <O T="Point" Y="5" Z="10" />
                <O T="Point" Y="-5" Z="10" />
            </O>
        </O>
        <O N="Volume2" T="Volume">
            <P N="Opacity" V="0.7" />
            <O T="Surface" X="150">
                <O T="Point" Y="-5" Z="0" />
                <O T="Point" Y="5" Z="0" />
                <O T="Point" Y="5" Z="10" />
                <O T="Point" Y="-5" Z="10" />
            </O>
            <O T="Surface" X="250">
                <O T="Point" Y="-5" Z="0" />
                <O T="Point" Y="5" Z="0" />
                <O T="Point" Y="5" Z="10" />
                <O T="Point" Y="-5" Z="10" />
            </O>
        </O>
    </O>
</O>
Image RemovedImage Added

To view this example in the library, see (https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&folder=Core+Objects&obj=objidjvbl1f51lproyl9yftagn)

...

Code Block
languagexml
<O N="Group Example 1_Example1" T="Project" Category="Core Objects">
    <!-- created by ParamML Examples on 26.01.2023 -->
    <O N="Parameters" T="Group">
        <P N="height" V="20" />
        <P N="width" V="1" />
        <P N="depth" V="2" />
    </O>
    <O N="Column3D" T="Surface">
        <P N="Thickness" V="height" />
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="width" Y="0" Z="0" />
        <O T="Point" X="width" Y="depth" Z="0" />
        <O T="Point" X="0" Y="depth" Z="0" />
    </O>
</O>

As demonstrated in the code, the parameters are organized and grouped together under a "Group" object. This allows for better organization and management of the parameters within the project, making it easier to access and manipulate the parameters as needed.

Image RemovedImage Added

To view this example in the library, see (https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&folder=Core+Objects&obj=objid28h88drjowaj081pbecbkcfw)

...

Code Block
languagexml
<O N="Group Example 2_Example2" T="Project" Category="Core Objects">
    <!-- created by ParamML Examples on 26.01.2023 -->
    <O N="Inputs" T="Group">
        <P N="height" V="240" Role="Input" Category="Inputs" />
        <P N="width" V="12" Role="Input" Category="Inputs" />
        <P N="depth" V="24" Role="Input" Category="Inputs" />
    </O>
    <O N="Column3D" T="Surface">
        <P N="Thickness" V="height" />
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="width" Y="0" Z="0" />
        <O T="Point" X="width" Y="depth" Z="0" />
        <O T="Point" X="0" Y="depth" Z="0" />
    </O>
</O>

You can see the component of the Group Object indicated by the red arrow under "Debug Traceā€

To view this example in the library, see (https://openbrim.org/platform/?application=inc&author=ParamML_Examples_OpenBrIM+Platform&folder=Core+Objects&obj=objidzng76y465jk6989dis4w)

...

Code Block
languagexml
<O N="Group Example 3_Example3" T="Project" Category="Core Objects">
    <!-- created by ParamML Examples on 26.01.2023 -->
    <O N="Inputs" T="Group">
        <P N="height" V="240" Role="Input" Category="Inputs" />
        <P N="width" V="12" Role="Input" Category="Inputs" />
        <P N="depth" V="12" Role="Input" Category="Inputs" />
        <P N="type" V="2" Role="Input" Category="Inputs" />
    </O>
    <O N="Rectangular Column" T="Line">
        <P N="Guard" V="type .EQ. 1" />
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="0" Y="0" Z="height" />
        <O N="Rectangular" T="Section">
            <O T="Shape">
                <O T="Point" X="-width/2" Y="-depth/2" />
                <O T="Point" X="-width/2" Y="depth/2" />
                <O T="Point" X="width/2" Y="depth/2" />
                <O T="Point" X="width/2" Y="-depth/2" />
            </O>
        </O>
    </O>
    <O N="Circular Column" T="Line">
        <P N="Guard" V="type .EQ. 2" />
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="0" Y="0" Z="height" />
        <O N="Circular" T="Section">
            <O T="Circle" Radius="width/2" />
        </O>
    </O>
</O>

...

Example: Group Object with Enumeration

Code Block
languagexml
<O N="Group Example 4_Example4" T="Project" Category="Core Objects">
    <!-- created by ParamML Examples on 26.01.2023 -->
    <O T="Group">
        <P N="RECTANGULAR" V="1" />
        <P N="CIRCULAR" V="2" />
    </O>
    <O N="Inputs" T="Group">
        <P N="height" V="50" />
        <P N="width" V="1" />
        <P N="depth" V="1" />
        <P N="type" V="RECTANGULAR" />
    </O>
    <O N="Rectangular Column" T="Line">
        <P N="Guard" V="type .EQ. RECTANGULAR" />
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="0" Y="0" Z="height" />
        <O N="Rectangular" T="Section">
            <O T="Shape">
                <O T="Point" X="-width/2" Y="-depth/2" />
                <O T="Point" X="-width/2" Y="depth/2" />
                <O T="Point" X="width/2" Y="depth/2" />
                <O T="Point" X="width/2" Y="-depth/2" />
            </O>
        </O>
    </O>
    <O N="Circular Column" T="Line">
        <P N="Guard" V="type .EQ. CIRCULAR" />
        <O T="Point" X="0" Y="0" Z="0" />
        <O T="Point" X="0" Y="0" Z="height" />
        <O N="Circular" T="Section">
            <O T="Circle" Radius="width/2" />
        </O>
    </O>
</O>

...