A Profile is a planar region surrounded by an outer boundary, and optionally containing inner 'hole' boundaries. It is not legal for holes to intersect each other or the outer boundary. A boundary is a close set of curves.


Parameter Rules
| boundary: | An array of CurveTo objects. It recommended that they be connected in a counter-clockwise (about the +Z axis) direction. |
| Example: | var myRadius = 1; |
| var myHeight = 3; |
| var myLength = 10; |
| var baseX = 0; |
| var baseY = 5; |
| return [ |
| {op: 'moveTo', x1: baseX, y1: baseY}, |
| {op: 'lineTo', x1: baseX, y1: baseY+myHeight-myRadius}, |
| {op: 'quadraticCurveTo', x1: baseX, y1: baseY+myHeight, x2: myRadius, y2:baseY+myHeight}, |
| {op: 'lineTo', x1: baseX+myLength-myRadius, y1: baseY+myHeight}, |
| {op: 'quadraticCurveTo', x1: baseX+myLength, y1: baseY+myHeight, x2: baseX+myLength , y2:baseY+myHeight-myRadius }, |
| {op: 'lineTo', x1: baseX+myLength, y1: baseY}, |
| {op: 'lineTo', x1: baseX, y1: baseY} |
| ]; |
| boundaryPolygon: | An array of co-planar Points. It recommended that they be connected in a counter-clockwise (about the +Z axis) direction. |
| Example: | return[p(0,0,0), |
| p(0,3,0), |
| p(10,3,0), |
| p(10,0,0), |
| p(0,0,0)]; |
| holePolygons: | An array of arrays of co-planar Points. It recommended that they be connected in a clockwise (about the +Z axis) direction. |
| Example: | return [[p(0.5,0.5,0),p(0.5,2.5,0),p(2.5,2.5,0),p(2.5,0.5,0),p(0.5,0.5,0)], |
| [p(6.5,0.5,0),p(6.5,2.5,0),p(8.5,2.5,0),p(8.5,0.5,0),p(6.5,0.5,0)]]; |
| //Needs to be an array of arrays |
| //[[holePoints],[holePoints]] |
| hole: | An array of arrays of CurveTo objects. It recommended that they be connected in a clockwise (about the +Z axis) direction. |
| Example: | var baseY = 5; |
| return [[{op: 'moveTo', x1: 0.5, y1: baseY+.5}, |
| {op: 'lineTo', x1: 0.5, y1: baseY+2.5}, |
| {op: 'lineTo', x1: 2.5, y1: baseY+2.5}, |
| {op: 'lineTo', x1: 2.5, y1: baseY+.5}, |
| {op: 'lineTo', x1: 0.5, y1: baseY+.5}], |
| [{op: 'moveTo', x1: 6.5, y1: baseY+.5}, |
| {op: 'lineTo', x1: 6.5, y1: baseY+2.5}, |
| {op: 'lineTo', x1: 8.5, y1: baseY+2.5}, |
| {op: 'lineTo', x1: 8.5, y1: baseY+.5}, |
| {op: 'lineTo', x1: 6.5, y1: baseY+.5}]]; |
| areaProps: | Returns { area: <number>, centroid: <Point> } ...Not a Parameter. |
| Example: | {"area":30,"centroid":{"x":5,"y":1.5,"z":0}} |
Mixins
ProfileRenderMixin
RULE NAME |
TYPE |
DEFAULTS |
CATEGORY |
FLAGS |
|---|---|---|---|---|
boundary |
array |
R.polygonToCurveTo(this.boundary2d) |
Inputs |
Cached |
boundaryPolygon |
array |
[] |
Inputs |
Cached |
holePolygons |
array |
[] |
Inputs |
Cached |
hole |
array |
this.holes2d.map(h => R.polygonToCurveTo(h)) |
Inputs |
Cached |
areaProps |
any |
R.THREE.areaProps(this.meshData) |
Internal |
Cached |
![]()
Project Example:
In your kBridge Examples Projects folder open the project called ‘Profile Example’.

Reference Location:
'world.profile_example.profilewithhole.myprofile1'
Link: https://knowledgebridge.engineer/projects
Open the Profile Example project.
If you look at Profile_Example/ProfileWithHole/myProfile1, the 2 parameter used are boundaryPolygon and holePolygons.


If you look at Profile_Example/ProfileWithHole/myProfile2, the 2 parameter used are boundary and holes. By using these 2 parameters you can
create curved corners.

