There are three objects we can use to define 3D representations:
Each Line object have to include:
first Point object
second Point object
at least one Section/Shape/Surface object
Given two points and a cross section, OpenBrIM can render the line with the specified section profile specified.
More than two points can be specified to define polylines. Also, more than one Section object may be contained in Line objects if more than two Point objects are defined in the line.
<O T="Line">
.
.
</O>
Parent elements: Project, Group, Repeat
Child elements: Parameters, Point, Surface, Circle, Section, Shape, Group, Repeat
Line with rectangular cross section.
<O N="Line: Sample 1" T="Project">
<P N="height" V="20" />
<P N="width" V="1" />
<P N="depth" V="2" />
<O N="Column3D" T="Line">
<O T="Point" X="0" Y="0" Z="0" />
<O T="Point" X="0" Y="0" Z="height" />
<O 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>
Figure 1.1.9.1: Line object with Section & Shape object.
Project with three Line objects and the same cross-section using ObjTypeDef parameter.
<O N="Line: Sample 2" T="Project">
<P N="height" V="100" />
<P N="width" V="10" />
<P N="depth" V="2" />
<P N="step" V="50" />
<O N="TShape1" T="Shape">
<P N="ObjTypeDef" V="1" />
<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 N="Column3D_1" T="Line">
<O T="Point" X="0" Y="0" Z="0" />
<O T="Point" X="0" Y="step" Z="height" />
<O T="Section">
<O N="Shape1" T="Shape" Extends="TShape1" />
</O>
</O>
<O N="Column3D_2" T="Line">
<O T="Point" X="0" Y="step" Z="height" />
<O T="Point" X="0" Y="step*2" Z="0" />
<O T="Section">
<O N="Shape1" T="Shape" Extends="TShape1" />
</O>
</O>
<O N="Column3D_3" T="Line">
<O T="Point" X="0" Y="step*2" Z="0" />
<O T="Point" X="0" Y="0" Z="0" />
<O T="Section">
<O N="Shape1" T="Shape" Extends="TShape1" />
</O>
</O>
</O>
Figure 1.1.9.2: Three Line objects using ObjTypeDef parameter for Shape object.
A Section object can consist of several shape profiles.
<O N="Line: Sample 3" T="Project">
<P N="height" V="20" />
<P N="width" V="1" />
<P N="depth" V="2" />
<P N="dx" V="4" />
<O N="Column3D" T="Line">
<O T="Point" X="0" Y="0" Z="0" />
<O T="Point" X="0" Y="0" Z="height" />
<O 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 T="Shape">
<O T="Point" X="-width/4+dx" Y="-depth" />
<O T="Point" X="-width/4+dx" Y="depth" />
<O T="Point" X="width*2+dx" Y="depth" />
</O>
</O>
</O>
</O>
Figure 1.1.9.3: Line objects having different section profiles.
DrawFaceA / DrawFaceB and DrawFaceABorder / DrawFaceBBorder
<O N="Line: Sample 4" T="Project">
<O T="Line">
<P N="DrawFaceA" V="0" />
<P N="DrawFaceB" V="0" />
<P N="DrawFaceABorder" V="1" />
<P N="DrawFaceBBorder" V="1" />
<O T="Point" X="0" Y="0" Z="0" />
<O T="Point" X="0" Y="0" Z="3" />
<O T="Circle">
<P N="Radius" V="5" />
</O>
</O>
</O>
Figure 1.1.9.4: Line objects with Draw Face and Draw Face Border parameters.