diff --git a/codegen/all_test_prop.xml b/codegen/all_test_prop.xml
index 79543b5d..f809849b 100644
--- a/codegen/all_test_prop.xml
+++ b/codegen/all_test_prop.xml
@@ -1 +1,139 @@
-Animation [0=none,1=controls,2=autoplay,3=controls+autoplay]Maximum video width in pixels[0=as movie (default,1=as image]Table [scientific,sigfigsX,floatdotX,str,date_XY]'format for column labels [scientific,sigfigsX,floatdotX,str,date_XY]''[column A,column B]''format for row labels [scientific,sigfigsX,floatdotX,str,date_XY]''[row 1,row 2]'[table,bar,line,pie]No options[#rrggbb,#rgb,@rowname/number] hexadecimal digits: #8b783f[circle,square,cross,x,triangle,star,diamond,hash,plus,times] -open -dot[Value={{v/x}},Position={{v/y}}]The marker size in pointsThe opacity of the line marker. Default: 1.0Apply a linear transform to marker sizes [M,B] = Mx+B. Example: [1.,0.]Scalar value or name of a row with size of error bars in Y axis units. May be a list.[none,solid,dot,dash,longdash,dashdot,longdashdot]The line width in pixels1=stack the bar chartsThe row number(s)/name(s) to use as the X axis values. Example: [2,Distance]The row number(s)/name(s) to use as the Y axis values. Example: [0,Pressure]The name of the color palette to use with line_color row data. '-'=invert. Example: HotPosition the colorbar center relative to plot bounds (0,1). Example (on left): [-0.2,0.5]Minimum and maximum line_color values, mapped to palette extremes. Example: [0,100]Show/hide the colorbar with the values 1/0. Example: 1String draw to the right of the colorbar as a title. Default: noneChart width in pixelsChart height in pixelsSet to 0 to hide the legend. Default: 1Position the legend relative to plot bounds (0,1). Example (on right): [1.2,0.5]Set to 1 to display a border around the legend. Default: 0Set to 1 to show the plot border. Default: 0Adjust plot margin sizes in pixels: [left,top,right,bottom] Example: [default, default, 5, default]The title of the plot[linear,log][linear,log]The range for the x axis. Example: [0., 10.]The range for the y axis. Example: [0., 10.]Format for the x axis tick labels. Example: floatdot2Format for the y axis tick labels. Example: floatdot2A title for the x axisA title for the y axisleft, center or right. By default, there will be no justification.The string to be displayed for a NaN value. Default: NaNAllow column sorting from headers: [none, all, data] Default: allThe title of the table'Alignment of data values in each column [left,right,center,justify]''Visibility of table value search field. Default: 0''Number of rows visible per page. Default: 0 (all)''Options for the number of rows per page menu. Default: [10, 25, 50, 100, -1]''Control visibility of horizontal scrollbar. Default: 1''Control visibility and height of vertical scrollbar. Height in points Default: 0''Control visibility of table borders. Default: 1''Control compactness of table. Default: 0''Control wrapping of content to the next line inside a table cell. Default: 0''Enable/disable default column labels. Default: 1''Specify conditional formatting rules for table cell formatting.'Image Image height in pixels[1=open in current page,2=open in new tab,3=image item details]Image width in pixelsScene 3D rendering panel height in pixels3D rendering panel width in pixelsSlider Image height in pixelsImage width in pixels[1=open in current page,2=open in new tab,3=image item details]String (macro displayed under imageA list of the initial values for each sliderNone=hide nodes, 1=show nodes, list. Example: [none, 1]1=Show value column 0=Hide value column. Default: 1Slider caption justification: center, left, right, justify. Default is leftA list of the caption strings (macros for each sliderWidth of the slider caption column in percent. Default is 30. 0 removes the column. 1=Show image controls like pan, zoom, etc. when image comparison is enabled. 0=Hide image controls. Default: 01=Show copy of image with sliders for comparison. 0=Disable comparison. Default: 01=Enable deep image display. 0=Disable deep image display. Note: image_comparison must also be enabled. Default: 01=Enable RGB differences. 0=Disable. Note: image_comparison must also be enabled. Default: 0A list of tag values that should be used for the common sliders when image comparison is enabled. Example: [timestep, variable]Width of the common slider caption column in percent. Default is 20. 0 removes the column.Common slider caption justification: center, left, right, justify. Default is leftA list of initial values for each slider, for each section in an image comparison layout. Eg: [[3.8,PRESSURE_Relative],[1.4,PRESSURE_Relative]]List of initial values to define the palette preset which is applied after the image has loaded. One list for each section in a deep image comparison layout. Must be of the form: [[max,min,palette,invert,hide,bg],[..section 2 here..]]. 'max' and 'min' must be numbers (float/int). 'palette' name must match exactly. 'invert' and 'hide' must be true or false. 'bg' must be any value between 0 and 1. Eg: [[30,-30,autumn,false,true,0.4],[50,-50,autumn,false,true,0.7]]List of initial values to use as presets for the variable dropdown in each section of a deep image comparison layout. Variable names must match exactly and are case sensitive. Eg: [PRESSURE_Relative,PRESSURE_Relative]List of initial values to use as presets for the view dropdown in each section of a deep image comparison layout. Allowed values are 'this', 'this-other', 'other-this', 'abs'. For example, for the left image, these would correspond to 'Left', 'Left-Right image', 'Right-Left image', 'Abs(Right-Left image)' respectively. Names must match exactly and are case sensitive. Eg: [this-other,this]Select a tag to manipulate via X axis click and dragNumber of cycles through the tag images for a image width drag. Default: 1.0Clamp the images to the min/max instead of wrapping during a drag. Default: 0Select a tag to manipulate via Y axis click and dragNumber of cycles through the tag images for a image height drag. Default: 1.0Clamp the images to the min/max instead of wrapping during a drag. Default: 0String String justification: center, left, right, justify. Default is centerTree left, center or right. By default, there will be no justification.True/False display values: True#False[date_XY][scientific,sigfigsX,floatdotX]Display of GUID referenced items: [link,inline]Tree node expansion: [expanded,collapsed]'Control visibility of tree borders. Default: 1''Control compactness of tree. Default: 0'Set to 1 to enable global tree toggling. Default: 0'Specify conditional formatting rules for tree value formatting.'Table of Contents Flag TOC items: 0=none, 1=this layout, 2=data itemsSet the inset level for TOC Items. Default: 0Flag figures: 0=none, 1=this layout, 2=data itemsFlag tables: 0=none, 1=this layout, 2=data itemsSet the name for the item, figure, table. Default: layout or item nameTemplates Applies to justification of all items in a report. Can be left, center or right. By default, there will be no justification.Set to 1 to render the item as a link. Default: 0Set to 1 to enable toggling. Default: 01 sets hint not to pagebreak in the template. Default: 0Size of the left margin in points. Default: -1=layout defaultSize of the right margin in points. Default: -1=layout defaultSize of the top margin in points. Default: -1=layout defaultSize of the bottom margin in points. Default: -1=layout defaultIf 1, start the template with a line break. Set to zero to remove the line. Default: 1If set to 1 and there are fewer items than the number of columns, reduce the number of columns to match the item count. Default: 0 0=display as tabs (default), 1=display tab content inline1=link, replace page, 2=link, new page, 3=button, inline (default), 4=button, inline w/imageThe default is the name of the target reportThe name of the input pptx file item or a filter query to find the item.The name to save the output pptx file as.Option to use all slides from the input pptx. Can be 1 or 0. Default is 0.The positional index of the slide in the input pptx to use as source in the output pptx.Debugging Set to 1 to embed item property and context information with each data item.Set to 1 to embed timing information for each template: search, sort, total time.
\ No newline at end of file
+
+ Animation [0=none,1=controls,2=autoplay,3=controls+autoplay]
+ Maximum video width in pixels
+ [0=as movie (default,1=as image]
+
+ Table [scientific,sigfigsX,floatdotX,str,date_XY]
+ 'format for column labels [scientific,sigfigsX,floatdotX,str,date_XY]'
+ '[column A,column B]'
+ 'format for row labels [scientific,sigfigsX,floatdotX,str,date_XY]'
+ '[row 1,row 2]'
+ [table,bar,line,pie,heatmap,parallel,sankey]
+ No options
+ [#rrggbb,#rgb,@rowname/number] hexadecimal digits: #8b783f
+ [circle,square,cross,x,triangle,star,diamond,hash,plus,times] -open -dot
+ [Value={{v/x}},Position={{v/y}}]
+ The marker size in points
+ The opacity of the line marker. Default: 1.0
+ Apply a linear transform to marker sizes [M,B] = Mx+B. Example: [1.,0.]
+ Scalar value or name of a row with size of error bars in Y axis units. May be a list.
+ [none,solid,dot,dash,longdash,dashdot,longdashdot]
+ The line width in pixels
+ 1=stack the bar charts
+ The row number(s)/name(s) to use as the X axis values. Example: [2,Distance]
+ The row number(s)/name(s) to use as the Y axis values. Example: [0,Pressure]
+ The name of the color palette to use with line_color row data. '-'=invert. Example: Hot
+ Position the colorbar center relative to plot bounds (0,1). Example (on left): [-0.2,0.5]
+ Minimum and maximum line_color values, mapped to palette extremes. Example: [0,100]
+ Show/hide the colorbar with the values 1/0. Example: 1
+ String draw to the right of the colorbar as a title. Default: none
+ Chart width in pixels
+ Chart height in pixels
+ Set to 0 to hide the legend. Default: 1
+ Position the legend relative to plot bounds (0,1). Example (on right): [1.2,0.5]
+ Set to 1 to display a border around the legend. Default: 0
+ Set to 1 to show the plot border. Default: 0
+ Adjust plot margin sizes in pixels: [left,top,right,bottom] Example: [default, default, 5, default]
+ The title of the plot
+ [linear,log]
+ [linear,log]
+ The range for the x axis. Example: [0., 10.]
+ The range for the y axis. Example: [0., 10.]
+ Format for the x axis tick labels. Example: floatdot2
+ Format for the y axis tick labels. Example: floatdot2
+ A title for the x axis
+ A title for the y axis
+ left, center or right. By default, there will be no justification.
+ The string to be displayed for a NaN value. Default: NaN
+ Allow column sorting from headers: [none, all, data] Default: all
+ The title of the table
+ 'Alignment of data values in each column [left,right,center,justify]'
+ 'Visibility of table value search field. Default: 0'
+ 'Number of rows visible per page. Default: 0 (all)'
+ 'Options for the number of rows per page menu. Default: [10, 25, 50, 100, -1]'
+ 'Control visibility of horizontal scrollbar. Default: 1'
+ 'Control visibility and height of vertical scrollbar. Height in points Default: 0'
+ 'Control visibility of table borders. Default: 1'
+ 'Control compactness of table. Default: 0'
+ 'Control wrapping of content to the next line inside a table cell. Default: 0'
+ 'Enable/disable default column labels. Default: 1'
+ 'Specify conditional formatting rules for table cell formatting.'
+ 'Scalar value or array of values used as column (category) minimum(s).'
+ 'Scalar value or array of values used as column (category) maximum(s).'
+
+ Image Image height in pixels
+ [1=open in current page,2=open in new tab,3=image item details]
+ Image width in pixels
+
+ Scene 3D rendering panel height in pixels
+ 3D rendering panel width in pixels
+
+ Slider Image height in pixels
+ Image width in pixels
+ [1=open in current page,2=open in new tab,3=image item details]
+ String (macro displayed under image
+ A list of the initial values for each slider
+ None=hide nodes, 1=show nodes, list. Example: [none, 1]
+ 1=Show value column 0=Hide value column. Default: 1
+ Slider caption justification: center, left, right, justify. Default is left
+ A list of the caption strings (macros for each slider
+ Width of the slider caption column in percent. Default is 30. 0 removes the column.
+ 1=Show image controls like pan, zoom, etc. when image comparison is enabled. 0=Hide image controls. Default: 0
+ 1=Show copy of image with sliders for comparison. 0=Disable comparison. Default: 0
+ 1=Enable deep image display. 0=Disable deep image display. Note: image_comparison must also be enabled. Default: 0
+ 1=Enable RGB differences. 0=Disable. Note: image_comparison must also be enabled. Default: 0
+ A list of tag values that should be used for the common sliders when image comparison is enabled. Example: [timestep, variable]
+ Width of the common slider caption column in percent. Default is 20. 0 removes the column.
+ Common slider caption justification: center, left, right, justify. Default is left
+ A list of initial values for each slider, for each section in an image comparison layout. Eg: [[3.8,PRESSURE_Relative],[1.4,PRESSURE_Relative]]
+ List of initial values to define the palette preset which is applied after the image has loaded. One list for each section in a deep image comparison layout. Must be of the form: [[max,min,palette,invert,hide,bg],[..section 2 here..]]. 'max' and 'min' must be numbers (float/int). 'palette' name must match exactly. 'invert' and 'hide' must be true or false. 'bg' must be any value between 0 and 1. Eg: [[30,-30,autumn,false,true,0.4],[50,-50,autumn,false,true,0.7]]
+ List of initial values to use as presets for the variable dropdown in each section of a deep image comparison layout. Variable names must match exactly and are case sensitive. Eg: [PRESSURE_Relative,PRESSURE_Relative]
+ List of initial values to use as presets for the view dropdown in each section of a deep image comparison layout. Allowed values are 'this', 'this-other', 'other-this', 'abs'. For example, for the left image, these would correspond to 'Left', 'Left-Right image', 'Right-Left image', 'Abs(Right-Left image)' respectively. Names must match exactly and are case sensitive. Eg: [this-other,this]
+ Select a tag to manipulate via X axis click and drag
+ Number of cycles through the tag images for a image width drag. Default: 1.0
+ Clamp the images to the min/max instead of wrapping during a drag. Default: 0
+ Select a tag to manipulate via Y axis click and drag
+ Number of cycles through the tag images for a image height drag. Default: 1.0
+ Clamp the images to the min/max instead of wrapping during a drag. Default: 0
+
+ String String justification: center, left, right, justify. Default is center
+
+ Tree left, center or right. By default, there will be no justification.
+ True/False display values: True#False
+ [date_XY]
+ [scientific,sigfigsX,floatdotX]
+ Display of GUID referenced items: [link,inline]
+ Tree node expansion: [expanded,collapsed]
+ 'Control visibility of tree borders. Default: 1'
+ 'Control compactness of tree. Default: 0'
+ Set to 1 to enable global tree toggling. Default: 0
+ 'Specify conditional formatting rules for tree value formatting.'
+
+ Table of Contents Flag TOC items: 0=none, 1=this layout, 2=data items
+ Set the inset level for TOC Items. Default: 0
+ Flag figures: 0=none, 1=this layout, 2=data items
+ Flag tables: 0=none, 1=this layout, 2=data items
+ Set the name for the item, figure, table. Default: layout or item name
+
+ Templates Applies to justification of all items in a report. Can be left, center or right. By default, there will be no justification.
+ Set to 1 to render the item as a link. Default: 0
+ Set to 1 to enable toggling. Default: 0
+ 1 sets hint not to pagebreak in the template. Default: 0
+ Size of the left margin in points. Default: -1=layout default
+ Size of the right margin in points. Default: -1=layout default
+ Size of the top margin in points. Default: -1=layout default
+ Size of the bottom margin in points. Default: -1=layout default
+ If 1, start the template with a line break. Set to zero to remove the line. Default: 1
+ If set to 1 and there are fewer items than the number of columns, reduce the number of columns to match the item count. Default: 0
+ 0=display as tabs (default), 1=display tab content inline
+ 1=link, replace page, 2=link, new page, 3=button, inline (default), 4=button, inline w/image
+ The default is the name of the target report
+ The name of the input pptx file item or a filter query to find the item.
+ The name to save the output pptx file as.
+ Option to use all slides from the input pptx. Can be 1 or 0. Default is 0.
+ The positional index of the slide in the input pptx to use as source in the output pptx.
+
+ Debugging Set to 1 to embed item property and context information with each data item.
+ Set to 1 to embed timing information for each template: search, sort, total time.
+
+
\ No newline at end of file
diff --git a/codegen/pyadritem.txt b/codegen/pyadritem.txt
index 890bf488..a7acd0c9 100644
--- a/codegen/pyadritem.txt
+++ b/codegen/pyadritem.txt
@@ -95,7 +95,7 @@ class Item:
self.item_image = None
"""Image object (Image and PNG binary files)"""
self.item_scene = None
- """3D scene (AVZ, PLY, SCDOC, and STL files)"""
+ """3D scene (AVZ, PLY, SCDOC, GLB, and STL files)"""
# Attributes for the table items
self.table_attr = table_attr
self.item_table = None
diff --git a/doc/source/lowlevelapi/TemplateObjects.rst b/doc/source/lowlevelapi/TemplateObjects.rst
index b74d3db1..58bb264c 100755
--- a/doc/source/lowlevelapi/TemplateObjects.rst
+++ b/doc/source/lowlevelapi/TemplateObjects.rst
@@ -3,28 +3,29 @@
Template Objects
================
-.. _here: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?LayoutTemplates.html
-.. _link: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?QueryExpressions.html
-.. _Columns: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?Columns.html
-.. _Panel: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?Panel.html
-.. _Boxes: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?Boxes.html
-.. _Tabs: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?Tabs.html
-.. _Carousel: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?Carousel.html
-.. _Slider: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?Slider.html
-.. _Page Footer: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?PageFooter.html
-.. _Page Header: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?PageHeader.html
-.. _Iterator: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?Iterator.html
-.. _Tag to Properties: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?TagProperties.html
-.. _Table of Contents: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?TableofContents.html
-.. _Link Report: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?LinkReport.html
-.. _Table Merge: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?TableMerge.html
-.. _Table Reduction: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?TableReduction.html
-.. _Table Row/Column Filter: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?TableRowColumnFilter.html
-.. _Table Value Filter: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?TableValueFilter.html
-.. _Table Row/Column Sort: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?TableRowColumnSort.html
-.. _SQL Query: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?SQLQuery.html
-.. _Tree Merge: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?TreeMerge.html
-.. _Generator templates: https://nexusdemo.ensight.com/docs/en/html/Nexus.html?GeneratorTemplates.html
+.. _here: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/LayoutTemplates.html
+.. _link: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/QueryExpressions.html
+.. _Columns: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/Columns.html
+.. _Panel: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/Panel.html
+.. _Boxes: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/Boxes.html
+.. _Tabs: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/Tabs.html
+.. _Carousel: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/Carousel.html
+.. _Slider: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/Slider.html
+.. _Page Footer: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/PageFooter.html
+.. _Page Header: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/PageHeader.html
+.. _Iterator: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/Iterator.html
+.. _Tag to Properties: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/TagProperties.html
+.. _Table of Contents: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/TableofContents.html
+.. _Link Report: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/LinkedReport.html
+.. _Table Merge: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/TableMerge.html
+.. _Table Reduction: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/TableReduction.html
+.. _Table Row/Column Filter: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/TableRowColumnFilter.html
+.. _Table Value Filter: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/TableValueFilter.html
+.. _Table Row/Column Sort: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/TableRowColumnSort.html
+.. _SQL Query: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/SQLQuery.html
+.. _Tree Merge: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/TreeMerge.html
+.. _Userdefined: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/Userdefined.html
+.. _Generator templates: https://s3.amazonaws.com/www3.ensight.com/nexus_docs/nexus_sphinx/is/GeneratorTemplates.html
@@ -296,6 +297,9 @@ toc `Table of Contents`_ :ref:`report_objects.tocRE
reportlink `Link Report`_ :ref:`report_objects.reportlinkREST()
`
+
+userdefined `Userdefined`_ :ref:`report_objects.userdefinedREST()
+ `
======================= ============================= ========================================
======================= ============================= ========================================
@@ -824,6 +828,50 @@ None
Set the guid of the linked report. It takes as input a valid guid. If
you want to set to link to no report, set the input to None
+.. _userdefinedREST:
+
+userdefinedREST object
+^^^^^^^^^^^^^^^^^^^^^^
+
+Inherits from TemplateREST, LayoutREST
+
+Class that corresponds to the `Userdefined`_ Layout
+template type. This template inserts a named div into the HTML output.
+This div can be filled with any HTML the user would like. By default,
+the HTML content will be filled in with the ``TemplateREST.set_html()``
+content (if any). This content may be placed before or after any
+child item/layout content.
+
+Specific properties include:
+
+**template.interactive_only: int**
+
+If this property is set to a non-zero value (the default), then the
+div will not be included when ADR is outputting PDF, PowerPoint or
+Offline HTML. If set to zero, it will be included in PDF and Offline
+HTML output.
+
+**template.before_children: int**
+
+If this property is set to zero (the default), then any child content
+is placed in the report before the div. If set to a non-zero value, the
+children will be placed in the report after the div.
+
+**template.userdef_name: str**
+
+This property is used to specify the value of the div ``adr_userdefined_template``
+attribute. The default value is ``unspecified``.
+
+For example, if this property is set to ``"Hello"`` and the HTML is set
+to ``Example
`` the generated div will look like this:
+
+.. code-block:: html
+
+
+
Example
+
+
+
.. _tablemergeREST:
tablemergeREST object