pdaBoundaryView

aspect is the "geometric" boundary, but you can specify multiple regions with other aspects like "metal", "rf" or special optical exclusions and so on.
You can define as many boundaries as needed.

You can define a polygon (use point), a rectangle, circle or ellips now. Additional types will be added later.
Via the <spt> tag you can use OptoDesigner specific shapes also in case you want a white-box building block.

The "purpose" attribute set more details in case multiple boundaries are used. And the "xsection" can be used to use the xsection's to write to GDS, support DRC and so on.

Structure

The attributes and elements are shown below, in a sorted per type fashion.
In case a list is printed after an element, it indicates that you can have many, otherwise it should be a single element. With a optional it tells the element is not required.

<pdaBoundaryView  
name="..."  purpose="..." ... > ...
  <arc> ... </arc>   list
  <circle> ... </circle>   list
  <cosinebend> ... </cosinebend>   list
  <ellipse> ... </ellipse>   list
  <extend> ... </extend>    optional
  <gdscell> ... </gdscell>   list
  <layertext> ... </layertext>   list
  <lineartaper> ... </lineartaper>   list
  <parabolictaper> ... </parabolictaper>   list
  <polygon> ... </polygon>   list
  <polynom> ... </polynom>   list
  <rectangle> ... </rectangle>   list
  <sinebend> ... </sinebend>   list
  <sptFooter> ... </sptFooter>    optional
  <sptHeader> ... </sptHeader>    optional
  <xsection> ... </xsection>    optional
</pdaBoundaryView>

XSD

The schema file can be downloaded or viewed at xPDK_Base.

Details

arc

In case there is no align given, the XY=[0,0] is the 'middle left' (OptoDesigner cin).
Type pdaPolarBend documentation:

circle

micron.
In case there is no align given, the XY=[0,0] is the center of the circle.
Type pdaCircle documentation:

cosinebend

In case there is no align given, the XY=[0,0] is the 'middle left' (OptoDesigner cin).
Type pdaCosineBend documentation:

ellipse

and [x,y] defined in micron.
In case there is no align given, the XY=[0,0] is the center of the circle.
Type pdaEllipse documentation:

extend

Type extend documentation:

gdscell

These will be blob loaded into the OptoDesigner design kit, but you can distribute them sepeare also.
In case there is no align given, the XY=[0,0] is the 'cell origin'. Type pdaGdsCell documentation:

layertext

Define text to be written in a xsection or gds layer. Type pdaLayerText documentation:

lineartaper

In case there is no align given, the XY=[0,0] is the 'middle left' (OptoDesigner cin).
Type pdaLinearTaper documentation: Values are in micron.

name

parabolictaper

In case there is no align given, the XY=[0,0] is the 'middle left' (OptoDesigner cin).
Type pdaParabolicTaper documentation: to width1. Values are in micron.

polygon

values for x & y can be expressions and have unit micron.
The [x,y] are defined always with respect to the port org and the portref/align can thus not be used for a polygon. This is defined this way to avoid complex boundary calculations to find the bic/boc and so on.
Type pdaPolygon documentation: The polygon points are implicitly closed, the last point is not needed to be the same as the starting one. It is ok to do this however, but not needed.

polynom

Create a x(t)=sum(ai*t^i) with ai being points.
Type pdaPolynom documentation: x(t)=sum(ai*t^i)

purpose

any value. However design software is likely to ignore "nice" names and just uses the listed ones. You can propose & use new ones however.

Typical region purposes are: boundary, metal, waveguide, dc, rf, drcMarkup but you can add others like thermal, mechanical and so on.
Without a purpose string it is defined as the global boundary and should contain all the other regions. This avoids the need of calculating (by software) the outer boundary which is used in the designs.

rectangle

[x,y] defined in micron.
Type pdaRectangle documentation:

sinebend

In case there is no align given, the XY=[0,0] is the 'middle left' (OptoDesigner cin).
Type pdaSineBend documentation:

sptFooter

Type sptFooter documentation:

sptHeader

Type sptHeader documentation:

xsection

via the design / mcs / cad layer. This is oriented at gray-box and black-box design rule checking, where you do not have the full data for things like distance checks.
Using the xsection can reduce the amount of cases where you need spt-sections in the cell definition as it allows to easily use white-box designs also. The example shows a reference on the locally defined A. Type pdaXsectionReference documentation: