[
  {
    "name": "Get_number_of_command_arguments",
    "id": 432,
    "returnType": "Integer",
    "parameters": [],
    "description": "Get the number of tokens in the program command-line. The number of tokens is returned as the function return value. For some example code, see 5.4 Command Line-Arguments."
  },
  {
    "name": "Get_command_argument",
    "id": 433,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&argument",
        "type": "Text"
      }
    ],
    "description": "Get the i\u2019th token from the command-line. The token is returned by the Text argument. The arguments start from 1. A function return value of zero indicates the i\u2019th argument was successfully returned. For some example code, see 5.4 Command Line-Arguments. Page 78 Command Line-Arguments Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Exit",
    "id": 417,
    "returnType": "void",
    "parameters": [
      {
        "name": "exit_code",
        "type": "Integer"
      }
    ],
    "description": "Immediately exit the program and write the message macro exited with code exit_code to the information/error message area of the macro console panel."
  },
  {
    "name": "Exit",
    "id": 418,
    "returnType": "void",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      }
    ],
    "description": "Immediately exit the program and write the message macro exited with message msg to the information/error message area of the macro console panel."
  },
  {
    "name": "Destroy_on_exit",
    "id": 815,
    "returnType": "void",
    "parameters": [],
    "description": "Destroy current macro console panel when exit the program."
  },
  {
    "name": "Retain_on_exit",
    "id": 816,
    "returnType": "void",
    "parameters": [],
    "description": "Retain current macro console panel on the screen after exit the macro. Exit Page 81 12d Model Macro Manual"
  },
  {
    "name": "Text_length",
    "id": 381,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "The function return value is the length of the Text text."
  },
  {
    "name": "Numchr",
    "id": 478,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "The function return value is the position of the last non-blank character in the Text text. If there are no non-blank characters, the return value is zero."
  },
  {
    "name": "Text_lower",
    "id": 384,
    "returnType": "Text",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Create a Text from the Text text that has all the alphabetic characters converted to lower- case. The function return value is the lower case Text."
  },
  {
    "name": "Text_justify",
    "id": 382,
    "returnType": "Text",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Create a Text from the Text text that has all the leading and trailing spaces removed. The function return value is the justified Text."
  },
  {
    "name": "Find_text",
    "id": 380,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "tofind",
        "type": "Text"
      }
    ],
    "description": "Find the first occurrence of the Text tofind within the Text text. If tofind exists within text, the start position of tofind is returned as the function return value. If tofind does not exist within text, a start position of zero is returned as the function return value. If tofind is a empty, the function will return value one, even when text itself is empty. Hence a function return value of zero indicates the Text tofind does not exist within the Text text."
  },
  {
    "name": "Get_subtext",
    "id": 379,
    "returnType": "Text",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "start",
        "type": "Integer"
      },
      {
        "name": "end",
        "type": "Integer"
      }
    ],
    "description": "From the Text text, create a new Text from character position start to character position end inclusive. Page 86 Text Chapter 5 12dPL Library Calls The function return value is the sub-Text."
  },
  {
    "name": "Set_subtext",
    "id": 389,
    "returnType": "void",
    "parameters": [
      {
        "name": "&text",
        "type": "Text"
      },
      {
        "name": "start",
        "type": "Integer"
      },
      {
        "name": "sub",
        "type": "Text"
      }
    ],
    "description": "Set the Text text from character position start to be the Text sub. The existing characters of text are overwritten by sub. If required, Text text will be automatically extended to fit sub. If start is greater than the length of text, text will be extended with spaces and sub inserted at position start. There is no function return value."
  },
  {
    "name": "Insert_text",
    "id": 390,
    "returnType": "void",
    "parameters": [
      {
        "name": "&text",
        "type": "Text"
      },
      {
        "name": "start",
        "type": "Integer"
      },
      {
        "name": "sub",
        "type": "Text"
      }
    ],
    "description": "Insert the Text sub into Text text starting at position start. The displaced characters of text are placed after sub. The Text text is automatically extended to fit sub and no characters of text are lost. There is no function return value."
  },
  {
    "name": "Any_escape_characters",
    "id": 2809,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Return one if the Text text contain any two consecutive characters representing an escape character; i.e a backslash character followed by the character n, r, or t. Return zero otherwise."
  },
  {
    "name": "Any_literal_escape_characters",
    "id": 7952,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Return one if the Text text contain any literal escape characters. Return zero otherwise."
  },
  {
    "name": "Convert_escape_characters",
    "id": 2810,
    "returnType": "Text",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Convert all escape characters in the Text text; i.e a backslash character followed by the character n, r, or t; to the equivalent embedded characters i.e new line, return, tab. The converted Text is the returned result of the function call."
  },
  {
    "name": "Convert_legal_XML",
    "id": 7898,
    "returnType": "Text",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Convert all special characters < & > \u2019 \" in the Text text; into their legal XML forms & lt; & amp; & gt; & apos; & quot; The converted Text is the returned result of the function call."
  },
  {
    "name": "From_text",
    "id": 30,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Convert the Text text to an Integer value. The text should only include digits. The function return value is zero if the conversion is successful."
  },
  {
    "name": "From_text",
    "id": 387,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer"
      },
      {
        "name": "format",
        "type": "Text"
      }
    ],
    "description": "Convert the Text text to an Integer value using the Text format as a C++ format string. The function return value is zero if the conversion is successful. Warning The user is responsible for ensuring that the format string is sensible."
  },
  {
    "name": "From_text",
    "id": 3437,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer64"
      }
    ],
    "description": "Convert the Text text to a 64 bit Integer value. The text should only include digits. The function return value is zero if the conversion is successful."
  },
  {
    "name": "From_text",
    "id": 3438,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer64"
      },
      {
        "name": "format",
        "type": "Text"
      }
    ],
    "description": "Convert the Text text to a 64 bit Integer value using the Text format as a C++ format string. The function return value is zero if the conversion is successful. Warning The user is responsible for ensuring that the format string is sensible."
  },
  {
    "name": "Parse_real_expression",
    "id": 7754,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input",
        "type": "Text"
      },
      {
        "name": "&output",
        "type": "Real"
      }
    ],
    "description": "Parse the Text input to a Real output. Valid text input can be any expression accepted by Real_Box. The function return value is zero if the conversion is successful."
  },
  {
    "name": "From_text",
    "id": 388,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Real"
      },
      {
        "name": "format",
        "type": "Text"
      }
    ],
    "description": "Convert the Text text to a Real value using the Text format as a C++ format string. The function return value is zero if the conversion is successful. Warning The user is responsible for ensuring that the format string is sensible."
  },
  {
    "name": "From_text",
    "id": 3440,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Guid"
      }
    ],
    "description": "Convert the Text text to a Guid value. The function return value is zero if the conversion is successful."
  },
  {
    "name": "From_text",
    "id": 3442,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Attribute_Blob"
      }
    ],
    "description": "Convert the Text text to an Attribute_Blob value. The function return value is zero if the conversion is successful. Page 90 Text Chapter 5 12dPL Library Calls"
  },
  {
    "name": "From_text",
    "id": 392,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      },
      {
        "name": "format",
        "type": "Text"
      }
    ],
    "description": "Convert the Text text to a Text value using the Text format as a C++ format. The function return value is zero if the conversion is successful. Warning The user is responsible for ensuring that the format string is sensible."
  },
  {
    "name": "From_text",
    "id": 377,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&dtext",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Break the Text text into separate words (tokens) and add the individual words to the Dynamic_Text dtext. Free format is used to break text up individual words EXCEPT for characters between matching double quotes \". Hence any characters (including blanks) between matching double quotes are considered to be one word, and one or more spaces are the separators between individual words. For example, in This is \"an example\" there are three words - \"This\", \"is\", and \"an example\". Note that there is more than one space between \"This\" and \"is\" but they are ignored and taken to be only one space. The function return value is the number of words returned in dtext."
  },
  {
    "name": "From_text",
    "id": 2105,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "delimiter",
        "type": "Integer"
      },
      {
        "name": "separator",
        "type": "Integer"
      },
      {
        "name": "&text",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Break the Text text into separate words (tokens) and add the individual words to the Dynamic_Text dtext. The character used to break up the text into individual words is given by the Integer separator. Any characters between matching the character given by the Integer delimiter (including any characters equal to separator) are considered to be one word. For example, if the delimiter is double quotes \" and the separator is a semi-colon ; then This;is;\"an;example\" Text Page 91 12d Model Macro Manual has three words - \"this\", \"is\", and \"an;example\". Note: delimiter and separator are Integers and can be specified by the actual number of a character or by giving the actual character between single quotes. For example, separator = 32 is the number for a space separator = \u2019 \u2019 is the number for a space separator = \u2019a\u2019 will be the number for the letter a separator = \u2019\\t\u2019 will be the number for a tab The function return value is the number of words returned in dtext."
  },
  {
    "name": "From_text",
    "id": 7827,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input_string",
        "type": "Text"
      },
      {
        "name": "separators",
        "type": "Text"
      },
      {
        "name": "quote",
        "type": "Integer"
      },
      {
        "name": "honour_all_separators",
        "type": "Integer"
      },
      {
        "name": "concat_after_n_words",
        "type": "Integer"
      },
      {
        "name": "&output_count",
        "type": "Integer"
      },
      {
        "name": "&output_words",
        "type": "Dynamic_Text"
      },
      {
        "name": "&error_message",
        "type": "Text"
      }
    ],
    "description": "Break the Text input_string into separate words (tokens) and add the individual words to the Dynamic_Text output_words, the number of individual words is returned in output_count. The character used to break up the text into individual words is given by any characters in separators. Any characters between matching the character given by the Integer quote (including any characters in separators) are considered to be one word. For example, if the quote is double quotes \" and the separators is a semi-colon ; then This;is;\"an;example\" has three words - \"this\", \"is\", and \"an;example\". Note: quote is an Integer and can be specified as the number for the character or the character enclosed in single quotes. For example, quote = 32 is the number for a space quote = \u2019 \u2019 is the number for a space quote = \u2019a\u2019 will be the number for the letter a quote = \u2019\\t\u2019 will be the number for a tab honour_all_separators is for the case when there are multiple separator characters next to one another. For example to parse this comma separated string as 5 words set honour_all_separators to 1: 1,2,,3,4 and to parse this whitespaced string as 4 characters set honour_all_separators as 0: 1 2 3 4 It is possible to split just a portion of the string into words, to do this set concat_after_n_words to a non zero value, once the number of words has been reached the rest of the string will have the separators and delimiters removed and all set to the next word. If an error has occurred then an error message will be returned in error_message, for example: Page 92 Text Chapter 5 12dPL Library Calls \"String is empty!\" the string had no data \"Unmatched quote in input!\" the string contained a starting quote but no terminating quote before the end of the string, for example 123.0, 456.1, \"PM45653 \"Unexpected quote in middle of word! pos:\" indicates the position in the string where a quote follows a non separator character, for example 123.0,32\",45.0 A function return value of zero indicates that output_count and output_words were successfully returned."
  },
  {
    "name": "To_text",
    "id": 32,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "Convert the Integer value to text. The function return value is the converted value."
  },
  {
    "name": "To_text",
    "id": 385,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Integer"
      },
      {
        "name": "format",
        "type": "Text"
      }
    ],
    "description": "Convert the Integer value to text using the Text format as a C++ format string. The function return value is the converted value. Warning The user is responsible for ensuring that the format string is sensible, invalid format might crash 12D Model."
  },
  {
    "name": "To_text",
    "id": 33,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Real"
      },
      {
        "name": "no_dec",
        "type": "Integer"
      }
    ],
    "description": "Convert the Real value to text with no_dec decimal places. If the Integer argument no_dec is missing, the number of decimal places defaults to zero. The function return value is the converted value."
  },
  {
    "name": "Real_to_text",
    "id": 7828,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Real"
      },
      {
        "name": "precision",
        "type": "Integer"
      }
    ],
    "description": "Convert the Real value to text with precision decimal places. A positive precision indicates keeping all the trailing zero. A nagative precision indicates dropping the trailing zero.. For example Real_to_text(1.23, 5) ---> \"1.23000\" Real_to_text(1.23, -5) ---> \"1.23\" The function return value is the converted value."
  },
  {
    "name": "To_text",
    "id": 3560,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Convert the Real value to text after truncated to nearest Integer. The function return value is the converted value."
  },
  {
    "name": "To_text",
    "id": 391,
    "returnType": "Text",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "format",
        "type": "Text"
      }
    ],
    "description": "Convert the Text text to text using the Text format as a C++ format string. The function return value is the converted value. Warning The user is responsible for ensuring that the format string is sensible, invalid format might crash 12D Model."
  },
  {
    "name": "To_text",
    "id": 3439,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Guid"
      }
    ],
    "description": "Convert the Guid value to text. The function return value is the converted value."
  },
  {
    "name": "To_text",
    "id": 3441,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Attribute_Blob"
      }
    ],
    "description": "Convert the Attribute_Blob value to text. The function return value is the converted value."
  },
  {
    "name": "Get_char",
    "id": 829,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "t",
        "type": "Text"
      },
      {
        "name": "pos",
        "type": "Integer"
      },
      {
        "name": "&c",
        "type": "Integer"
      }
    ],
    "description": "Get a character from Text t. The position of the character is pos. The character is returned in the Integer c. The function return value of zero indicates the character returned successfully."
  },
  {
    "name": "Set_char",
    "id": 830,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&t",
        "type": "Text"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "c",
        "type": "Integer"
      }
    ],
    "description": "Set the nth position (where position starts at 1 for the first character) in the Text t to the character given by integer c. Note that \u2019c\u2019 can be used to specify the number corresponding to the letter c. A function return value of zero indicates the Text character is successfully set."
  },
  {
    "name": "To_text",
    "id": 3435,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Integer64"
      }
    ],
    "description": "Convert the 64 bit Integer value to text. Text Page 95 12d Model Macro Manual The function return value is the converted value."
  },
  {
    "name": "To_text",
    "id": 3436,
    "returnType": "Text",
    "parameters": [
      {
        "name": "value",
        "type": "Integer64"
      },
      {
        "name": "format",
        "type": "Text"
      }
    ],
    "description": "Convert the 64 bit Integer value to text using the Text format as a C++ format string. The function return value is the converted value. Warning The user is responsible for ensuring that the format string is sensible, invalid format might crash 12D Model."
  },
  {
    "name": "Null",
    "id": 1639,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      }
    ],
    "description": "Set the Textstyle_Data textdata to null. A function return value of zero indicates the textdata was successfully nulled."
  },
  {
    "name": "Null",
    "id": 1640,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Various fields of a Textstyle_Data can be turned of so they won\u2019t display (and so can\u2019t be set) in a Textstyle_Data pop-up. To turn off the Textstyle_Data fields, the Null(Textstyle_Data textdata,Integer mode) call is made with mode giving what fields are to be turned off. The values of mode and the Textstyle_Data field that they turn off are: Textstyle_Data_Textstyle = 0x00001, Textstyle_Data_Colour = 0x00002, Textstyle_Data_Type = 0x00004, Textstyle_Data_Size = 0x00008, Textstyle_Data_Offset = 0x00010, Textstyle_Data_Raise = 0x00020, Textstyle_Data_Justify_X = 0x00040, Textstyle_Data_Justify_Y = 0x00080, Textstyle_Data_Angle = 0x00100, Textstyle_Data_Slant = 0x00200, Textstyle_Data_X_Factor = 0x00400, Textstyle_Data_Name = 0x00800, Textstyle_Data_Underline = 0x01000, Textstyle_Data_Strikeout = 0x02000, Textstyle_Data_Italic = 0x04000, Textstyle_Data_Weight = 0x08000, Textstyle_Data_Whiteout = 0x10000, Textstyle_Data_Border = 0x20000, Textstyle_Data_Outline = 0x40000, Textstyle_Data_Border_Style = 0x80000, Textstyle_Data_All = 0xfffff, Note: the fields can be turned off one at a time by calling Null(Textstyle_Data textdata,Integer mode) a number of times, and/or more that one can be turned off at the one time by combining them with the logical OR operator \"|\". For example, Page 100 Textstyle Data Chapter 5 12dPL Library Calls Textstyle_Data_Offset | Textstyle_Data_Raise will turn off both the fields Textstyle_Data_Offset and Textstyle_Data_Raise. A function return value of zero indicates the parts of the Textstyle_Data were successfully nulled."
  },
  {
    "name": "Set_data",
    "id": 2163,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Textstyle_Data text to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 2162,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textstyle",
        "type": "Textstyle_Data"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Textstyle_Data textstyle and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_textstyle",
    "id": 1652,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "style",
        "type": "Text"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the textstyle to style. A function return value of zero indicates the textstyle was successfully set."
  },
  {
    "name": "Get_textstyle",
    "id": 1641,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&style",
        "type": "Text"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the style and return it in style. A function return value of zero indicates the style was successfully returned."
  },
  {
    "name": "Get_colour",
    "id": 1642,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&colour_num",
        "type": "Integer"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the colour number and return it in colour_num. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_text_type",
    "id": 1654,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the units (pixel, world, paper) of the Textstyle_Data to be given by the Integer type. For the value for each type of units, see 5.9 Textstyle Data. The default units is pixel (type = 0). A function return value of zero indicates the text units was successfully set."
  },
  {
    "name": "Get_text_type",
    "id": 1643,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, get the units (pixel, world, paper) of the Textstyle_Data and return the value in type. For the values of type, see 5.9 Textstyle Data. The default units is pixel (type = 0). If the field is not set then the function return value is 1. A function return value of zero indicates the text units was successfully returned."
  },
  {
    "name": "Set_size",
    "id": 1655,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "Page 102 Textstyle Data Chapter 5 12dPL Library Calls For the Textstyle_Data textdata, set the height to be height. A function return value of zero indicates the height was successfully set."
  },
  {
    "name": "Get_size",
    "id": 1644,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&height",
        "type": "Real"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the height and return it in height. A function return value of zero indicates the height was successfully returned."
  },
  {
    "name": "Set_offset",
    "id": 1656,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "offset",
        "type": "Real"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the offset to be offset. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the offset was successfully set."
  },
  {
    "name": "Get_offset",
    "id": 1645,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&offset",
        "type": "Real"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the offset and return it in offset. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the offset was successfully returned."
  },
  {
    "name": "Set_raise",
    "id": 1657,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "raise",
        "type": "Real"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the raise to be raise. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the raise was successfully set."
  },
  {
    "name": "Get_raise",
    "id": 1646,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&raise",
        "type": "Real"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the raise and return it in raise. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the raise was successfully returned."
  },
  {
    "name": "Set_justify",
    "id": 1658,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "justify",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the justification number to be justify. justify can have the value 1 to 9. For the meaning of the values for justify, see 5.9 Textstyle Data. A function return value of zero indicates the justification number was successfully set."
  },
  {
    "name": "Get_justify",
    "id": 1647,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&justify",
        "type": "Integer"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the justification number and return it in justify. justify can have the value 1 to 9. For the meaning of the values for justify, see 5.9 Textstyle Data. A function return value of zero indicates the justification number was successfully returned."
  },
  {
    "name": "Set_angle",
    "id": 1659,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the angle to be angle. angle is in radians and is measured in a counterclockwise direction from the positive x-axis. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the angle was successfully set."
  },
  {
    "name": "Set_angle2",
    "id": 3564,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "angle2",
        "type": "Real"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the 3D beta angle to be angle2. angle2 is in radians. A function return value of zero indicates the angle was successfully set."
  },
  {
    "name": "Get_angle2",
    "id": 3565,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&angle2",
        "type": "Real"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the 3D beta angle and return it in angle2. angle2 is in radians. A function return value of zero indicates the angle was successfully returned."
  },
  {
    "name": "Set_angle3",
    "id": 3566,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "angle3",
        "type": "Real"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the 3D gamma angle to be angle3. angle3 is in radians. A function return value of zero indicates the angle was successfully set."
  },
  {
    "name": "Get_angle3",
    "id": 3567,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&angle3",
        "type": "Real"
      }
    ],
    "description": "Textstyle Data Page 105 12d Model Macro Manual From the Textstyle_Data textdata, get the 3D gamma angle and return it in angle3. angle3 is in radians. A function return value of zero indicates the angle was successfully returned."
  },
  {
    "name": "Set_slant",
    "id": 1660,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "slant",
        "type": "Real"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the slant to be slant. Note that the value of slant is measured as tangent here, where in 12da the value is writen in decimal angle. The valid value for slant much be at least -1 and at most 1 (as the angle much be between -45 to 45 degree). A function return value of zero indicates the slant was successfully set."
  },
  {
    "name": "Get_slant",
    "id": 1649,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&slant",
        "type": "Real"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the slant of the textstyle and return it in slant. Note that the value of slant is measured as tangent here, where in 12da the value is writen in decimal angle. A function return value of zero indicates the textstyle was successfully returned."
  },
  {
    "name": "Set_x_factor",
    "id": 1661,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "xfactor",
        "type": "Real"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the xfactor to be xfactor. A function return value of zero indicates the xfactor was successfully set."
  },
  {
    "name": "Get_x_factor",
    "id": 1650,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&xfactor",
        "type": "Real"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the xfactor and return it in xfactor. Page 106 Textstyle Data Chapter 5 12dPL Library Calls A function return value of zero indicates the xfactor was successfully returned."
  },
  {
    "name": "Set_name",
    "id": 1662,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the name to be name. A function return value of zero indicates the name was successfully set."
  },
  {
    "name": "Get_name",
    "id": 1651,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "From the Textstyle_Data textdata, get the name of the Textstyle_Data and return it in name. A function return value of zero indicates the name was successfully returned."
  },
  {
    "name": "Set_whiteout",
    "id": 2753,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the colour number of the colour used for the whiteout box around the text, to be colour. If no text whiteout is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_whiteout",
    "id": 2754,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, get the colour number that is used for the whiteout box around the text. The whiteout colour is returned as Integer colour. NO_COLOUR is the returned as the colour number if whiteout is not being used. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. Textstyle Data Page 107 12d Model Macro Manual A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_border",
    "id": 2763,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the colour number of the colour used for the border of the whiteout box around the text, to be colour. If no whiteout border is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_border",
    "id": 2764,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, get the colour number that is used for the border of the whiteout box around the text. The whiteout border colour is returned as Integer colour. NO_COLOUR is the returned as the colour number if there is no whiteout border. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_boder_style",
    "id": 3138,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "border_style",
        "type": "Integer"
      }
    ],
    "description": "Note: there is a typo in the name of the function, the correct one should be Set_border_style For the Textstyle_Data textdata, set the border style to be border_style. border_style can have the value 1 to 12. For the meaning of the values for border_style, see 5.9 Textstyle Data. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_border_style",
    "id": 3139,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&border_style",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, return the value border style in border_style. border_style can have the value 1 to 12. For the meaning of the values for border_style, see 5.9 Textstyle Data. If the field is not set then the function return value is 1. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_ttf_underline",
    "id": 2620,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "underline",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the underline state to underline. If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates underline was successfully set."
  },
  {
    "name": "Get_ttf_underline",
    "id": 2616,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&underline",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, get the underline state and return it in underline. If underline = 1, then for a true type font, the text will be underlined. If underline = 0, then text will not be underlined. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates underlined was successfully returned."
  },
  {
    "name": "Set_ttf_strikeout",
    "id": 2621,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "strikeout",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the strikeout state to strikeout. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates strikeout was successfully set."
  },
  {
    "name": "Get_ttf_strikeout",
    "id": 2617,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&strikeout",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, get the strikeout state and return it in strikeout. If strikeout = 1, then for a true type font, the text will be strikeout. If strikeout = 0, then text will not be strikeout. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates strikeout was successfully returned."
  },
  {
    "name": "Set_ttf_italic",
    "id": 2622,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "italic",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the italic state to italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates italic was successfully set."
  },
  {
    "name": "Get_ttf_italic",
    "id": 2618,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&italic",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, get the italic state and return it in italic. If italic = 1, then for a true type font, the text will be italic. If italic = 0, then text will not be italic. Page 110 Textstyle Data Chapter 5 12dPL Library Calls For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates italic was successfully returned."
  },
  {
    "name": "Set_ttf_outline",
    "id": 2773,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "outline",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the outline state to outline. For the Element elt of type Text, set the outline state to outline. If outline = 1, then for a true type font the text will be only shown in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates outline was successfully set."
  },
  {
    "name": "Get_ttf_outline",
    "id": 2774,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&outline",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, get the outline state and return it in outline. If outline = 1, then for a true type font the text will be shown only in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates outline was successfully returned."
  },
  {
    "name": "Set_ttf_weight",
    "id": 2623,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "weight",
        "type": "Integer"
      }
    ],
    "description": "For the Textstyle_Data textdata, set the font weight to weight. For the list of allowable weights, go to Allowable Weights A function return value of zero indicates weight was successfully set."
  },
  {
    "name": "Get_ttf_weight",
    "id": 2619,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textdata",
        "type": "Textstyle_Data"
      },
      {
        "name": "&weight",
        "type": "Integer"
      }
    ],
    "description": "Textstyle Data Page 111 12d Model Macro Manual For the Textstyle_Data textdata, get the font weight and return it in weight. For the list of allowable weights, go to Allowable Weights A function return value of zero indicates weight was successfully returned."
  },
  {
    "name": "Set_random_number",
    "id": 1900,
    "returnType": "void",
    "parameters": [
      {
        "name": "seed",
        "type": "Integer"
      },
      {
        "name": "method",
        "type": "Integer"
      }
    ],
    "description": "Set up the random number generator with the Integer seed, seed (the current time in seconds is a good seed). If method is any value other than 1, the standard c library random number generator is used. If method is 1, then a far more random seed generator than the standard c library one is used. Once the random number generator is set with a seed, calling Get_Random_number will return a random number. There is no function return value."
  },
  {
    "name": "Get_random_number",
    "id": 1901,
    "returnType": "Integer",
    "parameters": [],
    "description": "Generate the next random number as an Integer and return it as the function return value. Note: the random number generator is initially set using Set_random_number."
  },
  {
    "name": "Get_random_number_closed",
    "id": 1933,
    "returnType": "Real",
    "parameters": [],
    "description": "Generate the next random number as a number between 0 and 1 inclusive, and return it as the function return value. Note: this function is only applicable is the random number generator is initially set using Set_random_number with method = 1."
  },
  {
    "name": "Get_random_number_open",
    "id": 1934,
    "returnType": "Real",
    "parameters": [],
    "description": "Generate the next random number as a number between 0 (included) and 1 (not included), and return it as the function return value. Random Numbers Page 123 12d Model Macro Manual Note: this function is only applicable is the random number generator is initially set using Set_random_number with method = 1."
  },
  {
    "name": "Set_vector",
    "id": 2306,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Set the two components of the two dimensional vector vect to the same Real value, value. A function return value of zero indicates the values were successfully set."
  },
  {
    "name": "Set_vector",
    "id": 2307,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Set the three components of the three dimensional vector vect to the same Real value, value. A function return value of zero indicates the values were successfully set."
  },
  {
    "name": "Set_vector",
    "id": 2308,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Set the four components of the four dimensional vector vect to the same Real value, value. A function return value of zero indicates the values were successfully set."
  },
  {
    "name": "Set_vector",
    "id": 2309,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Set the first component of the two dimensional vector vect to the value x. Set the second component of the two dimensional vector vect to the value y. A function return value of zero indicates the values were successfully set."
  },
  {
    "name": "Set_vector",
    "id": 2311,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "w",
        "type": "Real"
      }
    ],
    "description": "Set the first component of the four dimensional vector vect to the value x. Set the second component of the four dimensional vector vect to the value y. Set the third component of the four dimensional vector vect to the value z. Set the fourth component of the four dimensional vector vect to the value w. A function return value of zero indicates the values were successfully set."
  },
  {
    "name": "Get_vector",
    "id": 2312,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      }
    ],
    "description": "For the two dimensional vector vect: return the first component of vect in x. return the second component of vect in y A function return value of zero indicates the components were successfully returned."
  },
  {
    "name": "Get_vector",
    "id": 2313,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "For the three dimensional vector vect:\uf020 return the first component of vect in x. return the second component of vect in y return the third component of vect in z A function return value of zero indicates the components were successfully returned."
  },
  {
    "name": "Set_vector",
    "id": 2315,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Set component number index of the two dimensional vector vect to the value value. A function return value of zero indicates the component was successfully set."
  },
  {
    "name": "Set_vector",
    "id": 2316,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Set component number index of the three dimensional vector vect to the value value. A function return value of zero indicates the component was successfully set."
  },
  {
    "name": "Set_vector",
    "id": 2317,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Set component number index of the four dimensional vector vect to the value value. A function return value of zero indicates the component was successfully set."
  },
  {
    "name": "Get_vector",
    "id": 2319,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the three dimensional vector vect return the component number index in value. A function return value of zero indicates the component was successfully returned."
  },
  {
    "name": "Get_vector",
    "id": 2320,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the four dimensional vector vect return the component number index in value. A function return value of zero indicates the component was successfully returned."
  },
  {
    "name": "Get_vector",
    "id": 2321,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "index",
        "type": "Integer"
      }
    ],
    "description": "For the two dimensional vector vect, return the component number index as the return value of the function."
  },
  {
    "name": "Get_vector",
    "id": 2322,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "index",
        "type": "Integer"
      }
    ],
    "description": "For the three dimensional vector vect, return the component number index as the return value of the function."
  },
  {
    "name": "Get_vector",
    "id": 2323,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      },
      {
        "name": "index",
        "type": "Integer"
      }
    ],
    "description": "Page 128 Vectors and Matrices Chapter 5 12dPL Library Calls For the four dimensional vector vect, return the component number index as the return value of the function."
  },
  {
    "name": "Get_vector_length",
    "id": 2324,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the two dimensional vector vect, return the length of the vector in value. Note: for V(x,y), length = square root of (x*x + y*y) A function return value of zero indicates the length was successfully returned."
  },
  {
    "name": "Get_vector_length",
    "id": 2325,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the three dimensional vector vect, return the length of the vector in value. Note: for V(x,y,z), length = square root of (x*x + y*y +z*z) A function return value of zero indicates the length was successfully returned."
  },
  {
    "name": "Get_vector_length",
    "id": 2326,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the four dimensional vector vect, return the length of the vector in value. Note: for V(x,y,z,w), length = square root of (x*x + y*y +z*z + w*w) A function return value of zero indicates the length was successfully returned."
  },
  {
    "name": "Get_vector_length",
    "id": 2327,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      }
    ],
    "description": "Standard vector length and return it as return value For the two dimensional vector vect, return the length of the vector as the return value of the function. Note: for V(x,y), length = square root of (x*x + y*y)"
  },
  {
    "name": "Get_vector_length",
    "id": 2328,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      }
    ],
    "description": "For the three dimensional vector vect, return the length of the vector as the return value of the function. Note: for V(x,y,z), length = square root of (x*x + y*y +z*z)"
  },
  {
    "name": "Get_vector_length",
    "id": 2329,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      }
    ],
    "description": "For the four dimensional vector vect, return the length of the vector as the return value of the function. Note: for V(x,y,z,w), length = square root of (x*x + y*y +z*z + w*w)"
  },
  {
    "name": "Get_vector_length_squared",
    "id": 2330,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the two dimensional vector vect, return the square of the length of the vector in value. Note: for V(x,y), length squared = x*x + y*y A function return value of zero indicates the length squared was successfully returned."
  },
  {
    "name": "Get_vector_length_squared",
    "id": 2331,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the three dimensional vector vect, return the square of the length of the vector in value. Note: for V(x,y,z), length squared = x*x + y*y + z*z A function return value of zero indicates the length squared was successfully returned."
  },
  {
    "name": "Get_vector_length_squared",
    "id": 2333,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      }
    ],
    "description": "For the two dimensional vector vect, return the square of the length of the vector as the function return value. Note: for V(x,y), length squared = x*x + y*y"
  },
  {
    "name": "Get_vector_length_squared",
    "id": 2334,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      }
    ],
    "description": "For the three dimensional vector vect, return the square of the length of the vector as the function return value. Note: for V(x,y,z), length squared = x*x + y*y + z*z"
  },
  {
    "name": "Get_vector_length_squared",
    "id": 2335,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      }
    ],
    "description": "For the four dimensional vector vect, return the square of the length of the vector as the function return value. Note: for V(x,y,z,w), length squared = x*x + y*y + z*z + w*w"
  },
  {
    "name": "Get_vector_normalize",
    "id": 2336,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "&normalised",
        "type": "Vector2"
      }
    ],
    "description": "For the two dimensional vector vect, return the normalised vector of vect in the Vector2 normalised. Note: for a normalised vector, length = 1 and for the vector V(x,y), the normalised vector N(a,b) is: Vectors and Matrices Page 131 12d Model Macro Manual N(a,b) = (x/length(V),y/length(V)) A function return value of zero indicates the normalised vector was successfully returned."
  },
  {
    "name": "Get_vector_normalize",
    "id": 2337,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "&normalised",
        "type": "Vector3"
      }
    ],
    "description": "For the three dimensional vector vect, return the normalised vector of vect in the Vector3 normalised. Note: for a normalised vector, length = 1 and for the vector V(x,y,z), the normalised vector N(a,b,c) is: N(a,b,c) = (x/length(V),y/length(V),z/length(V)) A function return value of zero indicates the normalised vector was successfully returned."
  },
  {
    "name": "Get_vector_normalize",
    "id": 2338,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      },
      {
        "name": "&normalised",
        "type": "Vector4"
      }
    ],
    "description": "For the four dimensional vector vect, return the normalised vector of vect in the Vector4 normalised. Note: for a normalised vector, length = 1 and for the vector V(x,y,z,w), the normalised vector N(a,b,c,d) is: N(a,b,c,d) = (x/length(V),y/length(V),z/length(V),w/length(V)) A function return value of zero indicates the normalised vector was successfully returned."
  },
  {
    "name": "Get_vector_normalize",
    "id": 2339,
    "returnType": "Vector2",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      }
    ],
    "description": "For the two dimensional vector vect, return the normalised vector of vect as the function return value. Note: for a normalised vector, length = 1 and for the vector V(x,y), the normalised vector N(a,b) is: N(a,b) = (x/length(V),y/length(V))"
  },
  {
    "name": "Get_vector_normalize",
    "id": 2341,
    "returnType": "Vector4",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      }
    ],
    "description": "For the four dimensional vector vect, return the normalised vector as the function return value. Note: for a normalised vector, length = 1 and for the vector V(x,y,z,w), the normalised vector N(a,b,c,d) is: N(a,b,c,d) = (x/length(V),y/length(V),z/length(V),w/length(V))"
  },
  {
    "name": "Get_vector_homogenize",
    "id": 2342,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "&homogenized",
        "type": "Vector3"
      }
    ],
    "description": "For the three dimensional vector vect, return the homogenized vector of vect in the Vector3 homogenized. Note: for a homogenized vector, the third component = 1 and for the vector V(x,y,z), the homogenized vector H(a,b,c) is: H(a,b,c) = (x/z,y/z,1) A function return value of zero indicates the homogenized vector was successfully returned."
  },
  {
    "name": "Get_vector_homogenize",
    "id": 2343,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      },
      {
        "name": "&homogenized",
        "type": "Vector4"
      }
    ],
    "description": "For the four dimensional vector vect, return the homogenized vector of vect in the Vector4 homogenized. Note: for a homogenized vector, the fourth component = 1 and for the vector V(x,y,z,w), the homogenized vector H(a,b,c,d) is: H(a,b,c,d) = (x/z,y/w,z/w,1) A function return value of zero indicates the homogenized vector was successfully returned."
  },
  {
    "name": "Get_vector_homogenize",
    "id": 2344,
    "returnType": "Vector3",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      }
    ],
    "description": "For the three dimensional vector vect, return the homogenized vector of vect as the function return value. Note: for a homogenized vector, the third component = 1 and for the vector V(x,y,z), the homogenized vector H(a,b,c) is: H(a,b,c) = (x/z,y/z,1)"
  },
  {
    "name": "Get_vector_homogenize",
    "id": 2345,
    "returnType": "Vector4",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector4"
      }
    ],
    "description": "For the four dimensional vector vect, return the homogenized vector of vect as the function return value. Note: for a homogenized vector, the fourth component = 1 and for the vector V(x,y,z,w), the homogenized vector H(a,b,c,d) is: H(a,b,c,d) = (x/z,y/w,z/w,1)"
  },
  {
    "name": "Set_matrix_zero",
    "id": 2346,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      }
    ],
    "description": "For the three by three Matrix3 matrix, set all the values in the matrix to zero. A function return value of zero indicates the matrix was successfully zero\u2019d."
  },
  {
    "name": "Set_matrix_zero",
    "id": 2347,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      }
    ],
    "description": "For the four by four Matrix4 matrix, set all the values in the matrix to zero. A function return value of zero indicates the matrix was successfully zero\u2019d."
  },
  {
    "name": "Set_matrix_identity",
    "id": 2349,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      }
    ],
    "description": "For the four by four Matrix4 matrix, set matrix to the identity matrix. That is, for the matrix (row,column) values are: matrix(1,1) = 1 matrix (1,2) = 0 matrix(1,3) = 0 matrix(1,4) = 0 matrix(2,1) = 0 matrix (2,2) = 1 matrix(2,3) = 0 matrix(2,4) = 0 matrix(3,1) = 0 matrix (3,2) = 0 matrix(3,3) = 1 matrix(3,4) = 0 matrix(4,1) = 0 matrix (4,2) = 0 matrix(4,3) = 0 matrix(4,4) = 1 A function return value of zero indicates the matrix was successfully set to the identity matrix."
  },
  {
    "name": "Set_matrix",
    "id": 2350,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "For the three by three Matrix4 matrix, set all the values in the rows and columns of matrix to value. A function return value of zero indicates the matrix was successfully set to value."
  },
  {
    "name": "Set_matrix",
    "id": 2351,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "For the four by four Matrix4 matrix, set all the values in the rows and columns of matrix to value. A function return value of zero indicates the matrix was successfully set to value."
  },
  {
    "name": "Set_matrix",
    "id": 2352,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "For the three by three Matrix3 matrix, set the value of matrix(row,col) to value. A function return value of zero indicates the matrix(row,col) was successfully set to value."
  },
  {
    "name": "Set_matrix",
    "id": 2353,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "For the four by four Matrix4 matrix, set the value of matrix(row,col) to value. A function return value of zero indicates the matrix(row,col) was successfully set to value."
  },
  {
    "name": "Get_matrix",
    "id": 2354,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the three by three Matrix3 matrix, get the value of matrix(row,col) and return it in value. A function return value of zero indicates the matrix(row,col) was successfully returned."
  },
  {
    "name": "Get_matrix",
    "id": 2355,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the four by four Matrix4 matrix, get the value of matrix(row,col) and return it in value. A function return value of zero indicates the matrix(row,col) was successfully returned."
  },
  {
    "name": "Get_matrix",
    "id": 2356,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      }
    ],
    "description": "For the three by three Matrix3 matrix, the value of matrix(row,col) is returned as the function return value."
  },
  {
    "name": "Get_matrix",
    "id": 2357,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      }
    ],
    "description": "For the four by four Matrix3 matrix, the value of matrix(row,col) /."
  },
  {
    "name": "Set_matrix_row",
    "id": 2358,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "&vect",
        "type": "Vector3"
      }
    ],
    "description": "For the three by three Matrix3 matrix, set the values of row row to the values of the components of the Vector3 vect. That is: matrix(row,1) = vect(1) matrix(row,2) = vect(2) matrix(row,3) = vect(3). A function return value of zero indicates that the row of matrix was successfully set."
  },
  {
    "name": "Set_matrix_row",
    "id": 2359,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "&vect",
        "type": "Vector4"
      }
    ],
    "description": "For the four by four Matrix4 matrix, set the values of row row to the values of the components of the Vector4 vect. That is: matrix(row,1)=vect(1) matrix(row,2)=vect(2) matrix(row,3)=vect(3) matrix(row,4)=vect(4). A function return value of zero indicates the row of matrix was successfully set."
  },
  {
    "name": "Get_matrix_row",
    "id": 2360,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "&vect",
        "type": "Vector3"
      }
    ],
    "description": "For the three dimensional vector vect, set the values of vect to the values of row row of the three by three Matrix3 matrix. That is: vect(1) = matrix(row,1) vect(2) = matrix(row,2) vect(3) = matrix(row,3). A function return value of zero indicates that the components of vect were successfully set."
  },
  {
    "name": "Get_matrix_row",
    "id": 2362,
    "returnType": "Vector3",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "row",
        "type": "Integer"
      }
    ],
    "description": "For the three by three Matrix3 matrix, the values of row row of matrix are returned as the Vector3 function return value."
  },
  {
    "name": "Get_matrix_row",
    "id": 2363,
    "returnType": "Vector4",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      },
      {
        "name": "row",
        "type": "Integer"
      }
    ],
    "description": "For the four by four Matrix4 matrix, the values of row row of matrix are returned as the Vector4 function return value."
  },
  {
    "name": "Get_matrix_transpose",
    "id": 2364,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&source",
        "type": "Matrix3"
      },
      {
        "name": "&target",
        "type": "Matrix3"
      }
    ],
    "description": "For the three by three Matrix3 matrix, return the transpose of matrix as Matrix3 target. That is, target(row,column) = matrix(column,row). A function return value of zero indicates the matrix transpose was successfully returned."
  },
  {
    "name": "Get_matrix_transpose",
    "id": 2365,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&source",
        "type": "Matrix4"
      },
      {
        "name": "&target",
        "type": "Matrix4"
      }
    ],
    "description": "For the four by four Matrix3 matrix, return the transpose of matrix as Matrix4 target. That is, target(row,column) = matrix(column,row). A function return value of zero indicates the matrix transpose was successfully returned. Page 138 Vectors and Matrices Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_matrix_transpose",
    "id": 2366,
    "returnType": "Matrix3",
    "parameters": [
      {
        "name": "&source",
        "type": "Matrix3"
      }
    ],
    "description": "For the three by three Matrix3 source, return the transpose of matrix as the function return value."
  },
  {
    "name": "Get_matrix_transpose",
    "id": 2367,
    "returnType": "Matrix4",
    "parameters": [
      {
        "name": "&source",
        "type": "Matrix4"
      }
    ],
    "description": "For the four by four Matrix4 source, return the transpose of matrix as the function return value."
  },
  {
    "name": "Get_matrix_inverse",
    "id": 2368,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&source",
        "type": "Matrix3"
      },
      {
        "name": "&target",
        "type": "Matrix3"
      }
    ],
    "description": "For the three by three Matrix3 source, return the inverse of the matrix as Matrix3 target. A function return value of zero indicates the matrix inverse was successfully returned."
  },
  {
    "name": "Get_matrix_inverse",
    "id": 2369,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&source",
        "type": "Matrix4"
      },
      {
        "name": "&target",
        "type": "Matrix4"
      }
    ],
    "description": "For the four by four Matrix4 source, return the inverse of the matrix as Matrix4 target. A function return value of zero indicates the matrix inverse was successfully returned."
  },
  {
    "name": "Get_matrix_inverse",
    "id": 2370,
    "returnType": "Matrix3",
    "parameters": [
      {
        "name": "&source",
        "type": "Matrix3"
      }
    ],
    "description": "For the three by three Matrix3 source, return the inverse of the matrix as the function return value."
  },
  {
    "name": "Get_matrix_inverse",
    "id": 2371,
    "returnType": "Matrix4",
    "parameters": [
      {
        "name": "&source",
        "type": "Matrix4"
      }
    ],
    "description": "For the four by four Matrix4 source, return the inverse of the matrix as the function return value."
  },
  {
    "name": "Swap_matrix_rows",
    "id": 2372,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "row1",
        "type": "Integer"
      },
      {
        "name": "row2",
        "type": "Integer"
      }
    ],
    "description": "For the three by three Matrix3 matrix, swap row row1 with row row2. A function return value of zero indicates the swapped matrix was successfully returned."
  },
  {
    "name": "Swap_matrix_rows",
    "id": 2373,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      },
      {
        "name": "row1",
        "type": "Integer"
      },
      {
        "name": "row2",
        "type": "Integer"
      }
    ],
    "description": "For the four by four Matrix4 matrix, swap row row1 with row row2. A function return value of zero indicates the swapped matrix was successfully returned."
  },
  {
    "name": "Swap_matrix_cols",
    "id": 2374,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix3"
      },
      {
        "name": "col1",
        "type": "Integer"
      },
      {
        "name": "col2",
        "type": "Integer"
      }
    ],
    "description": "For the three by three Matrix3 matrix, swap column col1 with column col2. A function return value of zero indicates the swapped matrix was successfully returned."
  },
  {
    "name": "Swap_matrix_cols",
    "id": 2375,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&matrix",
        "type": "Matrix4"
      },
      {
        "name": "col1",
        "type": "Integer"
      },
      {
        "name": "col2",
        "type": "Integer"
      }
    ],
    "description": "For the four by four Matrix4 matrix, swap column col1 with column col2. A function return value of zero indicates the swapped matrix was successfully returned."
  },
  {
    "name": "Get_translation_matrix",
    "id": 2376,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      },
      {
        "name": "&matrix",
        "type": "Matrix3"
      }
    ],
    "description": "From the two dimension vector vect, create the three by three matrix representing the vector as a translation and return it as matrix. That is, for vect(x,y), the matrix(row,column) values are: matrix(1,1) = 1 matrix(1,2) = 0 matrix(1,3) = x matrix(2,1) = 0 matrix(2,2) = 1 matrix(2,3) = y matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = 1 A function return value of zero indicates the translation matrix was successfully returned."
  },
  {
    "name": "Get_translation_matrix",
    "id": 2377,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      },
      {
        "name": "&matrix",
        "type": "Matrix4"
      }
    ],
    "description": "From the three dimension vector vect, create the four by four Matrix4 matrix representing the vector as a translation and return it as matrix. That is, for vect(x,y,z), the matrix(row,column) values are: matrix(1,1) = 1 matrix(1,2) = 0 matrix(1,3) = 0 matrix(1,4) = x matrix(2,1) = 0 matrix(2,2) = 1 matrix(2,3) = 0 matrix(2,4) = y matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = 1 matrix(3,4) = z matrix(4,1) = 0 matrix(4,2) = 0 matrix(4,3) = 0 matrix(4,4) = 1 A function return value of zero indicates the translation matrix was successfully returned."
  },
  {
    "name": "Get_translation_matrix",
    "id": 2378,
    "returnType": "Matrix3",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector2"
      }
    ],
    "description": "For the two dimension vector vect, the three by three Matrix3 representing the vector as a translation is returned as the function return value."
  },
  {
    "name": "Get_translation_matrix",
    "id": 2379,
    "returnType": "Matrix4",
    "parameters": [
      {
        "name": "&vect",
        "type": "Vector3"
      }
    ],
    "description": "Vectors and Matrices Page 141 12d Model Macro Manual For the three dimension vector vect, the four by four Matrix4 representing the vector as a translation is returned as the function return value."
  },
  {
    "name": "Get_rotation_matrix",
    "id": 2380,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&centre",
        "type": "Vector2"
      },
      {
        "name": "angle",
        "type": "Real"
      },
      {
        "name": "&matrix",
        "type": "Matrix3"
      }
    ],
    "description": "From the Vector2 centre and Real angle, construct the three by three Matrix3 matrix given below. If centre is (x,y), C = cos(angle) and S = sin(angle). the matrix(row,column) values are: matrix(1,1) = C matrix(1,2) = -S matrix(1,3) = x*(1 - C) + y*S matrix(2,1) = S matrix(2,2) = C matrix(2,3) = y*(1 - C) - x*S matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = 1 angle is in radians and is measured in a counterclockwise direction from the positive x-axis. A function return value of zero indicates the matrix was successfully returned."
  },
  {
    "name": "Get_rotation_matrix",
    "id": 2381,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&axis",
        "type": "Vector3"
      },
      {
        "name": "angle",
        "type": "Real"
      },
      {
        "name": "&matrix",
        "type": "Matrix4"
      }
    ],
    "description": "From the Vector3 axis and Real angle, construct the four by four Matrix4 matrix given below. If Naxis is axis normalised and Naxis = (X,Y,Z), C = cos(angle), S = sin(angle) and T = 1 - C the matrix(row,column) values are: matrix(1,1) = T*X*X+C matrix(1,2) = T*X*Y-SZ matrix(1,3) = T*X*Z+S*Y matrix(1,4) = 0 matrix(2,1) = T*X*Y+S*Z matrix(2,2) = T*Y*Y+C matrix(2,3) = T*Y*Z-S*X matrix(1,4) = 0 matrix(3,1) = T*X*Z-S*Y matrix(3,2) = T*Y*Z+S*X matrix(3,3) = T*Z*Z+C matrix(1,4) = 0 matrix(4,1) = 0 matrix(4,2) = 0 matrix(4,3) = 0 matrix(4,1) = 1 angle is in radians and is measured a rotation on the plane orthogonal to the axis, the direction of the rotation is counterclockwise in relative to axis as the plane upward vector. A function return value of zero indicates the matrix was successfully returned."
  },
  {
    "name": "Get_rotation_matrix",
    "id": 2382,
    "returnType": "Matrix3",
    "parameters": [
      {
        "name": "&centre",
        "type": "Vector2"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "From the Vector2 centre and Real angle, construct the three by three Matrix3 matrix given below and return it as the function return value. If centre is (X,Y), C = cos(angle) and S = sin(angle) and Matrix3 matrix. Page 142 Vectors and Matrices Chapter 5 12dPL Library Calls the matrix(row,column) values are: matrix(1,1) = C matrix(1,2) = -S matrix(1,3) = X*(1 - C) + Y*S matrix(2,1) = S matrix(2,2) = C matrix(2,3) = Y*(1 - C) - X*S matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = 1 angle is in radians and is measured in a counterclockwise direction from the positive x-axis."
  },
  {
    "name": "Get_rotation_matrix",
    "id": 2383,
    "returnType": "Matrix4",
    "parameters": [
      {
        "name": "&axis",
        "type": "Vector3"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "From the Vector3 axis and Real angle, construct the four by four Matrix4 matrix given below and return it as the function return value. If Naxis is axis normalised and Naxis = (X,Y,Z), C = cos(angle), S = sin(angle), T = 1 - C and Matrix4 matrix the matrix(row,column) values are: matrix(1,1) = T*X*X+C matrix(1,2) = T*X*Y-SZ matrix(1,3) = T*X*Z+S*Y matrix(1,4) = 0 matrix(2,1) = T*X*Y+S*Z matrix(2,2) = T*Y*Y+C matrix(2,3) = T*Y*Z-S*X matrix(1,4) = 0 matrix(3,1) = T*X*Z-S*Y matrix(3,2) = T*Y*Z+S*X matrix(3,3) = T*Z*Z+C matrix(1,4) = 0 matrix(4,1) = 0 matrix(4,2) = 0 matrix(4,3) = 0 matrix(4,1) = 1 angle is in radians and is measured a rotation on the plane orthogonal to the axis, the direction of the rotation is counterclockwise in relative to axis as the plane upward vector."
  },
  {
    "name": "Get_scaling_matrix",
    "id": 2384,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&scale",
        "type": "Vector2"
      },
      {
        "name": "&matrix",
        "type": "Matrix3"
      }
    ],
    "description": "From the two dimension vector scale, create the three by three Matrix3 representing the vector as a scaling matrix and return it as matrix. That is, for scale(S,T), the matrix(row,column) values are: matrix(1,1) = S matrix(1,2) = 0 matrix(1,3) = 0 matrix(2,1) = 0 matrix(2,2) = T matrix(2,3) = 0 matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = 1 A function return value of zero indicates the translation matrix was successfully returned."
  },
  {
    "name": "Get_scaling_matrix",
    "id": 2385,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&scale",
        "type": "Vector3"
      },
      {
        "name": "&matrix",
        "type": "Matrix4"
      }
    ],
    "description": "Vectors and Matrices Page 143 12d Model Macro Manual From the three dimension vector scale, create the four by four Matrix4 representing the vector as a scaling matrix and return it as matrix. That is, for scale(S,T,U), the matrix(row,column) values are: matrix(1,1) = S matrix(1,2) = 0 matrix(1,3) = 0 matrix(1,4) = 0 matrix(2,1) = 0 matrix(2,2) = T matrix(2,3) = 0 matrix(2,4) = 0 matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = U matrix(3,4) = 0 matrix(4,1) = 0 matrix(4,2) = 0 matrix(4,3) = 0 matrix(4,4) = 1 A function return value of zero indicates the scaling matrix was successfully returned."
  },
  {
    "name": "Get_scaling_matrix",
    "id": 2386,
    "returnType": "Matrix3",
    "parameters": [
      {
        "name": "&scale",
        "type": "Vector2"
      }
    ],
    "description": "From the two dimension vector scale, create the three by three Matrix3 matrix as given below. The matrix represents the vector as a scaling and it is return as the function return value. That is, for scale(S,T), the returned matrix(row,column) values are: matrix(1,1) = S matrix(1,2) = 0 matrix(1,3) = 0 matrix(2,1) = 0 matrix(2,2) = T matrix(2,3) = 0 matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = 1"
  },
  {
    "name": "Get_scaling_matrix",
    "id": 2387,
    "returnType": "Matrix4",
    "parameters": [
      {
        "name": "&scale",
        "type": "Vector3"
      }
    ],
    "description": "From the three dimension vector scale, create the four by four Matrix4 matrix as given below. The matrix represents the vector as a scaling and it is return as the function return value. That is, for scale(S,T,U), the returned matrix(row,column) values are: matrix(1,1) = S matrix(1,2) = 0 matrix(1,3) = 0 matrix(1,4) = 0 matrix(2,1) = 0 matrix(2,2) = T matrix(2,3) = 0 matrix(2,4) = 0 matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = U matrix(3,4) = 0 matrix(4,1) = 0 matrix(4,2) = 0 matrix(4,3) = 0 matrix(4,4) = 1"
  },
  {
    "name": "Get_perspective_matrix",
    "id": 2388,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "d",
        "type": "Real"
      },
      {
        "name": "&matrix",
        "type": "Matrix4"
      }
    ],
    "description": "For the distance d, create the four by four Matrix4 and return it as matrix. That is, for Real d, the matrix(row,column) values are: Page 144 Vectors and Matrices Chapter 5 12dPL Library Calls matrix(1,1) = 1 matrix(1,2) = 0 matrix(1,3) = 0 matrix(1,4) = 0 matrix(2,1) = 0 matrix(2,2) = 1 matrix(2,3) = 0 matrix(2,4) = 0 matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = 1 matrix(3,4) = 0 matrix(4,1) = 0 matrix(4,2) = 0 matrix(4,3) = 1/d matrix(4,4) = 0 A function return value of zero indicates the matrix was successfully returned."
  },
  {
    "name": "Get_perspective_matrix",
    "id": 2389,
    "returnType": "Matrix4",
    "parameters": [
      {
        "name": "d",
        "type": "Real"
      }
    ],
    "description": "For the distance d, create the four by four Matrix4 and return it as the function return value. That is, for Real d, the matrix(row,column) values are: matrix(1,1) = 1 matrix(1,2) = 0 matrix(1,3) = 0 matrix(1,4) = 0 matrix(2,1) = 0 matrix(2,2) = 1 matrix(2,3) = 0 matrix(2,4) = 0 matrix(3,1) = 0 matrix(3,2) = 0 matrix(3,3) = 1 matrix(3,4) = 0 matrix(4,1) = 0 matrix(4,2) = 0 matrix(4,3) = 1/d matrix(4,4) = 0 matrix is returned as the function return value."
  },
  {
    "name": "Triangle_normal",
    "id": 1737,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xarray[]",
        "type": "Real"
      },
      {
        "name": "yarray[]",
        "type": "Real"
      },
      {
        "name": "zarray[]",
        "type": "Real"
      },
      {
        "name": "Normal[]",
        "type": "Real"
      }
    ],
    "description": "Calculate the normal vector to the triangle given by the coordinates in the arrays xarray[], yarray[], zarray[] (the arrays are of dimension 3). The normal vector is returned in Normal[1], Normal [2] and Normal[3]. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Triangle_normal",
    "id": 1738,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "z1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "z2",
        "type": "Real"
      },
      {
        "name": "x3",
        "type": "Real"
      },
      {
        "name": "y3",
        "type": "Real"
      },
      {
        "name": "z3",
        "type": "Real"
      },
      {
        "name": "&xn",
        "type": "Real"
      },
      {
        "name": "&yn",
        "type": "Real"
      },
      {
        "name": "&zn",
        "type": "Real"
      }
    ],
    "description": "Calculate the normal vector to the triangle given by the coordinates (x1,y1,z1), (x2,y2,z2) and (x3,y3,z3). The normal vector is returned in (xn,yx,zn). A function return value of zero indicates the function was successful."
  },
  {
    "name": "Triangle_slope",
    "id": 1739,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xarray[]",
        "type": "Real"
      },
      {
        "name": "yarray[]",
        "type": "Real"
      },
      {
        "name": "zarray[]",
        "type": "Real"
      },
      {
        "name": "&slope",
        "type": "Real"
      }
    ],
    "description": "Calculate the slope of the triangle given by the coordinates in the arrays xarray[], yarray[], zarray[] (the arrays are of dimension 3), and return the value as slope. The units for slope is an angle in radians measured from the horizontal plane. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Triangle_slope",
    "id": 1740,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "z1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "z2",
        "type": "Real"
      },
      {
        "name": "x3",
        "type": "Real"
      },
      {
        "name": "y3",
        "type": "Real"
      },
      {
        "name": "z3",
        "type": "Real"
      },
      {
        "name": "&slope",
        "type": "Real"
      }
    ],
    "description": "Calculate the slope of the triangle given by the coordinates (x1,y1,z1), (x2,y2,z2) and (x3,y3,z3), and return the value as slope. Page 146 Triangles Chapter 5 12dPL Library Calls The units for slope is an angle in radians measured from the horizontal plane. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Triangle_aspect",
    "id": 1741,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xarray[]",
        "type": "Real"
      },
      {
        "name": "yarray[]",
        "type": "Real"
      },
      {
        "name": "zarray[]",
        "type": "Real"
      },
      {
        "name": "&aspect",
        "type": "Real"
      }
    ],
    "description": "Calculate the aspect of the triangle given by the coordinates in the arrays xarray[], yarray[], zarray[] (the arrays are of dimension 3), and return the value as aspect. The units for aspect is a bearing in radians. That is, aspect is given as a clockwise angle measured from the positive y-axis (North). A function return value of zero indicates the function was successful."
  },
  {
    "name": "Triangle_aspect",
    "id": 1742,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "z1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "z2",
        "type": "Real"
      },
      {
        "name": "x3",
        "type": "Real"
      },
      {
        "name": "y3",
        "type": "Real"
      },
      {
        "name": "z3",
        "type": "Real"
      },
      {
        "name": "&aspect",
        "type": "Real"
      }
    ],
    "description": "Calculate the aspect of the triangle given by the coordinates (x1,y1,z1), (x2,y2,z2) and (x3,y3,z3), and return the value as aspect. The units for aspect is a bearing in radians. That is, aspect is given as a clockwise angle measured from the positive y-axis (North). A function return value of zero indicates the function was successful."
  },
  {
    "name": "System",
    "id": 21,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      }
    ],
    "description": "Make a system call. The message passed to the system call is given by Text msg. For example, system (\"ls *.tmp>fred\") A function return value of zero indicates success. Note The types of system calls that can be made is operating system dependant."
  },
  {
    "name": "Date",
    "id": 658,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&date",
        "type": "Text"
      }
    ],
    "description": "Get the current date. The date is returned in Text date with the format DDD MMM dd yyyy where DDD is three characters for the day, MMM is three characters for the month dd is two numbers for the day of the month and yyyy is four numbers for the year, and each is separated by one space. For example, Sun Mar 17 1996 A function return value of zero indicates the date was returned successfully."
  },
  {
    "name": "Date",
    "id": 659,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&d",
        "type": "Integer"
      },
      {
        "name": "&m",
        "type": "Integer"
      },
      {
        "name": "&y",
        "type": "Integer"
      }
    ],
    "description": "Get the current date as the day of the month, month & year. The day of the month value is returned in Integer d. The month value is returned in Integer m. The year value is returned in Integer y (fours digits). A function return value of zero indicates the date was returned successfully. Page 148 System Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_time",
    "id": 660,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "Get the current time as seconds since January 1 1970. The time value is returned in Integer time. A function return value of zero indicates the time was returned successfully."
  },
  {
    "name": "Get_time",
    "id": 661,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&time",
        "type": "Real"
      }
    ],
    "description": "Get the current time as the number of seconds since January 1st 1601 down to precision of 10-7 (100 nanoseconds) and return it as time. A function return value of zero indicates the time was returned successfully."
  },
  {
    "name": "Get_time",
    "id": 662,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&time",
        "type": "Text"
      }
    ],
    "description": "Get the current time. The time is returned in Text time with the format (known as the ctime format) DDD MMM dd hh:mm:ss yyyy where where DDD is three characters for the day, MMM is three characters for the month dd two digits for the day of the month, hh two digits for the hour, mm two digits for the hour (in twenty four hour format), ss two digits for seconds and yyyy is four digits for the year. For example, Sun Mar 17 23:19:24 1996 A function return value of zero indicates the time was returned successfully."
  },
  {
    "name": "Get_time",
    "id": 663,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&h",
        "type": "Integer"
      },
      {
        "name": "&m",
        "type": "Integer"
      },
      {
        "name": "&sec",
        "type": "Real"
      }
    ],
    "description": "Get the current time in hours, minutes & seconds. System Page 149 12d Model Macro Manual The hours value is returned in Integer h. The minutes value is returned in Integer m. The seconds value is returned in Real s. A function return value of zero indicates the time was returned successfully."
  },
  {
    "name": "Convert_time",
    "id": 671,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "t1",
        "type": "Integer"
      },
      {
        "name": "&t2",
        "type": "Text"
      }
    ],
    "description": "Convert the time in seconds since 00:00:00 am January, 1 1970 Coordinated Universal Time (UTC), to the standard ctime format given in an earlier Time function. The time in seconds is given by Integer t1 and the Text t2 returns the time in ctime format."
  },
  {
    "name": "Convert_time",
    "id": 672,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&t1",
        "type": "Text"
      },
      {
        "name": "t2",
        "type": "Integer"
      }
    ],
    "description": "Convert the time in ctime format to the time in seconds since 00:00:00 am January, 1 1970 Coordinated Universal Time (UTC). The time in ctime format is given by Text t1 and the time in seconds is returned as Integer t2. Note Not yet implemented."
  },
  {
    "name": "Convert_time",
    "id": 683,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "t1",
        "type": "Integer"
      },
      {
        "name": "format",
        "type": "Text"
      },
      {
        "name": "&t2",
        "type": "Text"
      }
    ],
    "description": "Convert the time in seconds since 00:00:00 am January, 1 1970 Coordinated Universal Time (UTC), to the Text format (as defined in the section on Title Blocks in the 12d Model Reference Manual). The time in seconds is given by Integer t1 and the Text t2 returns the time in the specified format."
  },
  {
    "name": "Get_macro_name",
    "id": 1093,
    "returnType": "Text",
    "parameters": [],
    "description": "Get the name of the macro file. Page 150 System Chapter 5 12dPL Library Calls The function return value is the macro file name."
  },
  {
    "name": "Recalc_chain_running",
    "id": 3811,
    "returnType": "Integer",
    "parameters": [],
    "description": "Check if the macro is running through a chain. The function returns 1 if the macro is running through the a chain; and 0 otherwise."
  },
  {
    "name": "Create_macro",
    "id": 1627,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "macro_name",
        "type": "Text"
      },
      {
        "name": "run_now",
        "type": "Integer"
      }
    ],
    "description": "Start the macro from the file named macro_name; if run_now is not zero then also execute the macro. macro_name are comprised of \"macro_options user_macro_name macro_arguments\" where the macro_options (optional) is a list of zero or more key words (all starting with - (minus) character): -no_console don\u2019t display macro console -close_on_exit remove console when macro terminates -buttons have buttons for finish, restart and quit on console -allow_defaults allow default answers for console questions -execute_now same as run_now where macro_arguments (optional) are space delimited values and user_macro_name is the full path name to the 4do file to be executed For example Create_macro( \"-no_console -close_on_exit \\\"my macro name.4do\\\" \\\"arg 1\\\" \\\"arg 2\\\"\" , 1 ); A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_user_name",
    "id": 814,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get user\u2019s name, the name currently logged onto the system. System Page 151 12d Model Macro Manual The name is returned in Text name. A function return value of zero indicates the name was returned successfully."
  },
  {
    "name": "Get_host_id",
    "id": 2678,
    "returnType": "Text",
    "parameters": [],
    "description": "For the current 12d Model session, get the 12d dongle number of the 12d dongle being used to provide the 12d Model license for the session. The dongle number, which is alphanumeric, is returned as Text as the function return value."
  },
  {
    "name": "Get_module_license",
    "id": 1094,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "module_name",
        "type": "Text"
      }
    ],
    "description": "Get the status of each module license. If the module_name is: points_limit tins_limit remaining_days warned the function returns number of available units. If the module_name is: ok lite drainage digitizer hec_ras hec_rasII dranald water_supply landxml sharing 12d_field_setout 12d_field_pickup 12d_field_tunnel drainage_dynamic track solids_modelling gold_survey gold gis tuflow_1d_wbm_dongle tuflow_tcf tuflow_10k tuflow_100k tuflow_open tuflow_open_gpu tuflow_road tuflow_road_gpu point_cloud tmr_point_cloud pipeline sewer survey tin_analysis volumes volumesII trarr vehicle_path sight_distance cartographic dxf genio keays Page 152 System Chapter 5 12dPL Library Calls geocomp dgn arcview alignment educational demonstration loan rental subscription temporary maintenance training The function returns 1 if the module is licensed, 0 if it is not licensed."
  },
  {
    "name": "Getenv",
    "id": 1087,
    "returnType": "Text",
    "parameters": [
      {
        "name": "env",
        "type": "Text"
      }
    ],
    "description": "Get the value of the environment variable named env and return it as Text as the function return value."
  },
  {
    "name": "Backup_version_file",
    "id": 2139,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "recycle",
        "type": "Integer"
      }
    ],
    "description": "Back up a file using extra numbered extension. When a .4d file is updated (like survey.4d), you get the files survey.4d survey.4d.1 survey.4d.2 etc where the highest numbered file is the most recent backup. We limit the number of backup versions to 100. The recycle only takes affect when 100 is reached. If the value of recycle is 0, an error message is displayed. For nonzero recycle , will push down all the files. (ie) survey.4d.1 is deleted survey.4d.2 renamed to survey.4d.1 survey.4d.3 renamed to survey.4d.2 etc to 100 and the \"most recent\" backup of survey.4d is survey.4d.100. This means that the most recent will always be survey.4d.100"
  },
  {
    "name": "Restore_version_file",
    "id": 2140,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "swap",
        "type": "Integer"
      }
    ],
    "description": "System Page 153 12d Model Macro Manual Restore a file to the most recent backup (highest numbered file). The swap value does the following: for a non 0 value, if the most recent backup files is survey.4d.77, the survey.4d is renamed to survey.4d.77, and survey.4d.77 is renamed to survey.4d. You could view this as a swapping of the contents of the file. If the swap value is 0, survey.4d is deleted, and survey.4d.77 is renamed to survey.4d"
  },
  {
    "name": "Find_system_file",
    "id": 1088,
    "returnType": "Text",
    "parameters": [
      {
        "name": "new_file_name",
        "type": "Text"
      },
      {
        "name": "old_file_name",
        "type": "Text"
      },
      {
        "name": "env",
        "type": "Text"
      }
    ],
    "description": "Returns the path to the setup file new_file_name as the function return value. If old_file_name is not blank, it also looks for the old file names for the set ups files that were used in the Unix version of 12d Model. So if you want to support the legacy file names then you pass in new_file_name and old_file_name. If you are only looking for the post Unix names for the set up files, pass old_file_name = \"\". env is the name of the environment variable that can also point to the set up file. The search order is 1. If not blank, search for the file given by the environment variable env 2. If new_file_name is not blank, next search for a file with the name new_file_name in the normal Set Ups files search order. 3. Finally if the no file has yet been found, if old_file_name is not blank, search for old_file_name in the normal Set Ups files search order. If no file is found then the function return value is a blank Text (i.e. \"\"). For example, Find_system_file(\"colours.4d\", \"colour_map.def\", \"COLOURS_4D\") will find the colours set up file which may be pointed to by the environment variable COLOURS_4D (if non zero), or may have the name \"colours.4d\", or finally may have the name \"colour_map.def\"."
  },
  {
    "name": "Find_system_file_quiet",
    "id": 7667,
    "returnType": "Text",
    "parameters": [
      {
        "name": "new_file_name",
        "type": "Text"
      },
      {
        "name": "old_file_name",
        "type": "Text"
      },
      {
        "name": "env",
        "type": "Text"
      }
    ],
    "description": "Identical to Find_system_file call except there is no error message on output windows when no file found."
  },
  {
    "name": "Get_4dmodel_version",
    "id": 1089,
    "returnType": "void",
    "parameters": [
      {
        "name": "&major",
        "type": "Integer"
      },
      {
        "name": "&minor",
        "type": "Integer"
      },
      {
        "name": "&patch",
        "type": "Text"
      }
    ],
    "description": "Page 154 System Chapter 5 12dPL Library Calls Get information about the 12d Model build. The function return value is a special patch version description for pre-release versions and it is written after the 12d Model version information. It is blank for release versions. major - is the major number for 12d Model. That is, the number before the \".\". For example 14 for 12d Model 14.00 minor - is the minor number for 12d Model. That is, the number after the \".\". For example 00 for 12d Model 14.00 patch - special patch description for pre-release versions. It is written after the 12d Model version information. It is blank for release versions. For example \"Alpha 274 SLF,SLX,Image Dump - Not For Production\" A function return value of zero indicates the function was successful."
  },
  {
    "name": "Is_practise_version",
    "id": 1090,
    "returnType": "Integer",
    "parameters": [],
    "description": "Check if the current 12d Model is a practise version. A non-zero function return value indicates that 12d Model is a practise version. A zero function return value indicates that 12d Model is not a practise version. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Create_process",
    "id": 1620,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "program_name",
        "type": "Text"
      },
      {
        "name": "command_line",
        "type": "Text"
      },
      {
        "name": "start_directory",
        "type": "Text"
      },
      {
        "name": "flags",
        "type": "Integer"
      },
      {
        "name": "wait",
        "type": "Integer"
      },
      {
        "name": "inherit",
        "type": "Integer"
      }
    ],
    "description": "This function basically calls the Microsoft CreateProcess function as defined in http://msdn.microsoft.com/en-us/library/ms682425%28v=vs.85%29.aspx. The 12d function gives access to the Microsoft CreateProcess arguments that are in bold (and also do not have a // in front of them): BOOL WINAPI CreateProcess( __in_opt LPCTSTR lpApplicationName, __inout_opt LPTSTR lpCommandLine, // __in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes, // __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes, __in BOOL bInheritHandles, __in DWORD dwCreationFlags, // __in_opt LPVOID lpEnvironment, __in_opt LPCTSTR lpCurrentDirectory, // __in LPSTARTUPINFO lpStartupInfo, System Page 155 12d Model Macro Manual // __out LPPROCESS_INFORMATION lpProcessInformation ); where program_name is passed as lpApplicationName, command_line is passed as dwCreationFlags lpCommandLine, start_directory is passed as lpCurrentDirectory, flags is passed as dwCreationFlags and inherit is passed as bInheritHandles. If wait = 1, the macro will wait until the process finishes before continuing. If wait = 0, the macro won\u2019t wait until the process finishes before continuing. A function return value of zero indicates the function was successful. Note: Create_process can not be called from the 12d Model Practise version."
  },
  {
    "name": "Create_process",
    "id": 2635,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "program_name",
        "type": "Text"
      },
      {
        "name": "command_line",
        "type": "Text"
      },
      {
        "name": "start_directory",
        "type": "Text"
      },
      {
        "name": "flags",
        "type": "Integer"
      },
      {
        "name": "inherit",
        "type": "Integer"
      },
      {
        "name": "&handle",
        "type": "Unknown"
      }
    ],
    "description": "This function calls the Microsoft CreateProcess function as defined in http://msdn.microsoft.com/en-us/library/ms682425%28v=vs.85%29.aspx. The 12d function gives access to the Microsoft CreateProcess arguments that are in bold (and also not have a // in front of them): BOOL WINAPI CreateProcess( __in_opt LPCTSTR lpApplicationName, __inout_opt LPTSTR lpCommandLine, // __in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes, // __in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes, __in BOOL bInheritHandles, __in DWORD dwCreationFlags, // __in_opt LPVOID lpEnvironment, __in_opt LPCTSTR lpCurrentDirectory, // __in LPSTARTUPINFO lpStartupInfo, // __out LPPROCESS_INFORMATION lpProcessInformation ); where program_name is passed as lpApplicationName, command_line is passed as dwCreationFlags lpCommandLine, start_directory is passed as lpCurrentDirectory, flags is passed as dwCreationFlags and inherit is passed as bInheritHandles. The handle to the created process is returned in Unknown handle. The macro can check if the process is still running by calling Process_exists. A function return value of zero indicates the function was successful. Note: The difference between this function and Create_process(Text program_name,Text command_line,Text start_directory,Integer flags,Integer wait,Integer inherit) is that a handle to the process is created and returned as handle and this can be checked to see if the process is still running. So there is no wait flag but there is more flexibility since the macro can check with Process_exists and decide when, and when not to wait. Note: Create_process can not be called from 12d Model Practise version."
  },
  {
    "name": "Process_exists",
    "id": 2636,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "handle",
        "type": "Unknown"
      }
    ],
    "description": "Check to see if the process given by handle exists. That is, check that the process created by Create_process(Text program_name,Text command_line,Text start_directory,Integer flags,Integer inherit,Unknown &handle) is still running. A non-zero function return value indicates that the process handle is still running (i.e. the process exists). A zero function return value indicates that the process does not exist. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Shell_execute",
    "id": 1623,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "operation",
        "type": "Text"
      },
      {
        "name": "file",
        "type": "Text"
      },
      {
        "name": "parameters",
        "type": "Text"
      },
      {
        "name": "directory",
        "type": "Text"
      },
      {
        "name": "showcmd",
        "type": "Integer"
      }
    ],
    "description": "This function calls the Microsoft ShellExecute function as defined in http://msdn.microsoft.com/en-us/library/bb762153%28v=vs.85%29.aspx This Microsoft call executes an operation on a file. The 12d function gives access to the Microsoft ShellExecute arguments that are in bold (and also not have a // in front of them): HINSTANCE ShellExecute( __in_opt HWND hwnd, __in_opt LPCTSTR lpOperation, __in LPCTSTR lpFile, __in_opt LPCTSTR lpParameters, __in_opt LPCTSTR lpDirectory, __in INT nShowCmd); where operation is passed as lpOperation, file is passed as lp, parameters is passed as lpParameters, directory is passed as lpDirectory and showcmd is passed as ShowCmd. widget is passed as hwnd, and in most standard case, it is the current macro panel. The handle to the created process is returned in Unknown handle. The macro can check if the process is still running by calling Process_exists. A function return value of zero indicates the function was successful. Note: Create_process can not be called from 12d Model Practise version."
  },
  {
    "name": "Get_number_of_monitors",
    "id": 7977,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return the number of monitors of the computer."
  },
  {
    "name": "Get_monitor_info",
    "id": 7978,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "&display_left",
        "type": "Integer"
      },
      {
        "name": "&display_top",
        "type": "Integer"
      },
      {
        "name": "&display_right",
        "type": "Integer"
      },
      {
        "name": "&display_bottom",
        "type": "Integer"
      },
      {
        "name": "&work_area_left",
        "type": "Integer"
      },
      {
        "name": "&work_area_top",
        "type": "Integer"
      },
      {
        "name": "&work_area_right",
        "type": "Integer"
      },
      {
        "name": "&work_area_bottom",
        "type": "Integer"
      },
      {
        "name": "&flags",
        "type": "Integer"
      },
      {
        "name": "&device_name",
        "type": "Text"
      }
    ],
    "description": "Get the monitor number index and return its information in Integer &display_left,Integer &display_top,Integer &display_right,Integer &display_bottom,Integer &work_area_left,Integer &work_area_top,Integer &work_area_right,Integer &work_area_bottom,Integer &flags,Text &device_name. The flag 1 usually indicates the monitor is the primary one. A return value of zero indicates the get was successful."
  },
  {
    "name": "Get_monitor_info",
    "id": 7979,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&display_left",
        "type": "Integer"
      },
      {
        "name": "&display_top",
        "type": "Integer"
      },
      {
        "name": "&display_right",
        "type": "Integer"
      },
      {
        "name": "&display_bottom",
        "type": "Integer"
      },
      {
        "name": "&work_area_left",
        "type": "Integer"
      },
      {
        "name": "&work_area_top",
        "type": "Integer"
      },
      {
        "name": "&work_area_right",
        "type": "Integer"
      },
      {
        "name": "&work_area_bottom",
        "type": "Integer"
      },
      {
        "name": "&flags",
        "type": "Integer"
      },
      {
        "name": "&device_name",
        "type": "Text"
      }
    ],
    "description": "Get the main monitor of the current session and return its information in Integer &display_left,Integer &display_top,Integer &display_right,Integer &display_bottom,Integer &work_area_left,Integer &work_area_top,Integer &work_area_right,Integer &work_area_bottom,Integer &flags,Text &device_name. The flag 1 usually indicates the monitor is the primary one. If 12D display is crossing multiple monitors, the main monitor is usually the one retain when maximizing 12D. A return value of zero indicates the get was successful. Page 158 System Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_monitor_info",
    "id": 7980,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "point_x",
        "type": "Integer"
      },
      {
        "name": "point_y",
        "type": "Integer"
      },
      {
        "name": "&display_left",
        "type": "Integer"
      },
      {
        "name": "&display_top",
        "type": "Integer"
      },
      {
        "name": "&display_right",
        "type": "Integer"
      },
      {
        "name": "&display_bottom",
        "type": "Integer"
      },
      {
        "name": "&work_area_left",
        "type": "Integer"
      },
      {
        "name": "&work_area_top",
        "type": "Integer"
      },
      {
        "name": "&work_area_right",
        "type": "Integer"
      },
      {
        "name": "&work_area_bottom",
        "type": "Integer"
      },
      {
        "name": "&flags",
        "type": "Integer"
      },
      {
        "name": "&device_name",
        "type": "Text"
      }
    ],
    "description": "Get the monitor at the cursor point_x point_y of the work area return its information in Integer &display_left,Integer &display_top,Integer &display_right,Integer &display_bottom,Integer &work_area_left,Integer &work_area_top,Integer &work_area_right,Integer &work_area_bottom,Integer &flags,Text &device_name. The flag 1 usually indicates the monitor is the primary one. A return value of zero indicates the get was successful."
  },
  {
    "name": "Get_monitor_info",
    "id": 7981,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "&display_left",
        "type": "Integer"
      },
      {
        "name": "&display_top",
        "type": "Integer"
      },
      {
        "name": "&display_right",
        "type": "Integer"
      },
      {
        "name": "&display_bottom",
        "type": "Integer"
      },
      {
        "name": "&work_area_left",
        "type": "Integer"
      },
      {
        "name": "&work_area_top",
        "type": "Integer"
      },
      {
        "name": "&work_area_right",
        "type": "Integer"
      },
      {
        "name": "&work_area_bottom",
        "type": "Integer"
      },
      {
        "name": "&flags",
        "type": "Integer"
      },
      {
        "name": "&device_name",
        "type": "Text"
      }
    ],
    "description": "Get the main monitor of the view v and return its information in Integer &display_left,Integer &display_top,Integer &display_right,Integer &display_bottom,Integer &work_area_left,Integer &work_area_top,Integer &work_area_right,Integer &work_area_bottom,Integer &flags,Text &device_name. The flag 1 usually indicates the monitor is the primary one. If the view display is crossing multiple monitors, the main monitor is???. A return value of zero indicates the get was successful."
  },
  {
    "name": "Get_monitor_info",
    "id": 7982,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "w",
        "type": "Widget"
      },
      {
        "name": "&display_left",
        "type": "Integer"
      },
      {
        "name": "&display_top",
        "type": "Integer"
      },
      {
        "name": "&display_right",
        "type": "Integer"
      },
      {
        "name": "&display_bottom",
        "type": "Integer"
      },
      {
        "name": "&work_area_left",
        "type": "Integer"
      },
      {
        "name": "&work_area_top",
        "type": "Integer"
      },
      {
        "name": "&work_area_right",
        "type": "Integer"
      },
      {
        "name": "&work_area_bottom",
        "type": "Integer"
      },
      {
        "name": "&flags",
        "type": "Integer"
      },
      {
        "name": "&device_name",
        "type": "Text"
      }
    ],
    "description": "System Page 159 12d Model Macro Manual Get the main monitor of the widget w and return its information in Integer &display_left,Integer &display_top,Integer &display_right,Integer &display_bottom,Integer &work_area_left,Integer &work_area_top,Integer &work_area_right,Integer &work_area_bottom,Integer &flags,Text &device_name. The flag 1 usually indicates the monitor is the primary one. If the widget display is crossing multiple monitors, the main monitor is???. A return value of zero indicates the get was successful."
  },
  {
    "name": "Is_12d_exe_64bit",
    "id": 3840,
    "returnType": "Integer",
    "parameters": [],
    "description": "Return one if the current session of 12D is running from 64bit exe; return zero otherwise."
  },
  {
    "name": "Play_sound",
    "id": 3910,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      }
    ],
    "description": "Play a sound file with given path name file_name A return value of zero indicates the function call was successful."
  },
  {
    "name": "Dump_slx_image",
    "id": 3911,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "slx_file_name",
        "type": "Text"
      },
      {
        "name": "image_format",
        "type": "Integer"
      },
      {
        "name": "image_file_name",
        "type": "Text"
      }
    ],
    "description": "Dump an image file in the given location image_file_name using given format image_format from the panel defined by slx configuration slx_file_name. The list for valid image_format JPEG 6 TIF 8 BMP 9 JPEG 2000 12 PNG 17 A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_next_uid",
    "id": 1920,
    "returnType": "Uid",
    "parameters": [],
    "description": "Get the next available Uid and return it as the function return value. This is often used in Undo\u2019s."
  },
  {
    "name": "Get_next_id",
    "id": 1892,
    "returnType": "Integer",
    "parameters": [],
    "description": "Get the next available Id and return it as the function return value. Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Uid Get_next_uid() instead."
  },
  {
    "name": "Get_last_uid",
    "id": 2072,
    "returnType": "Uid",
    "parameters": [],
    "description": "Get the last used Uid (that is the one from the last created Element) and return it as the function return value. Ids, Uids and Guids Page 163 12d Model Macro Manual"
  },
  {
    "name": "Get_last_id",
    "id": 2071,
    "returnType": "Integer",
    "parameters": [],
    "description": "Get the last used Id (that is the one from the last created Element) and return it as the function return value. Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Get_last_uid instead (see Get_last_uid()."
  },
  {
    "name": "Print",
    "id": 2052,
    "returnType": "void",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "Prints a text conversion of the UID uid to the Output Window. Three is no function return value."
  },
  {
    "name": "Convert_uid",
    "id": 2053,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      },
      {
        "name": "&txt",
        "type": "Text"
      }
    ],
    "description": "Convert the UID uid to a Text. The Text is returned in txt. A function return value of zero indicates the Uid was successfully converted to text."
  },
  {
    "name": "Convert_uid",
    "id": 2054,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      },
      {
        "name": "&id",
        "type": "Integer"
      }
    ],
    "description": "Convert the UID uid to an Integer The Integer is returned in id. Note - this in only possible if the uid can be expressed as an Integer, A function return value of zero indicates the Uid was successfully converted. to an Integer."
  },
  {
    "name": "Convert_uid",
    "id": 7835,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      },
      {
        "name": "&id",
        "type": "Integer64"
      }
    ],
    "description": "Convert the UID uid to a 64 bit Integer. The 64 bit Integer is returned in id. Note - this in only possible if the uid can be expressed as a 64 bit Integer, A function return value of zero indicates the Uid was successfully converted. to a 64 bit Integer."
  },
  {
    "name": "Convert_uid",
    "id": 2055,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "txt",
        "type": "Text"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Convert the Text txt to an UID. The Uid is returned in uid. Note - this in only possible if txt is in the correct form of an Uid. A function return value of zero indicates the Text was successfully converted to a Uid."
  },
  {
    "name": "Convert_uid",
    "id": 7836,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer64"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Convert the 64 bit Integer id to an UID. The Uid is returned in uid. Note - this in only possible if the 64 bit Integer id can be expressed as an Uid. A function return value of zero indicates the 64 bit Integer was successfully converted to a Uid."
  },
  {
    "name": "To_text",
    "id": 2057,
    "returnType": "Text",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "Convert the UID uid to a Text. The Text is returned as the function return value. Ids, Uids and Guids Page 165 12d Model Macro Manual"
  },
  {
    "name": "From_text",
    "id": 2063,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "txt",
        "type": "Text"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Convert the Text txt to a Uid and the Uid is returned in uid. A function return value of zero indicates the txt was successfully converted to a Uid."
  },
  {
    "name": "Null",
    "id": 2058,
    "returnType": "void",
    "parameters": [
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Set the UID uid to be a null Uid. There is no function return value."
  },
  {
    "name": "Is_contour",
    "id": 2064,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "Check to see if the UID uid is the Uid of a string created by a 12d Model Contour option. Note - such strings are ignored in 12d Model number counts for Base size. A non-zero function return value indicates that the uid is of a string created by a 12d Model Contour option. A zero function return value indicates that the uid is not the uid of a string created by a 12d Model Contour option. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Is_plot",
    "id": 2065,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "Check to see if the UID uid is the Uid of a string created by a 12d Model Plot option. Note - such strings are ignored in 12d Model number counts for Base size. A non-zero function return value indicates that the uid is of a string created by a 12d Model Plot option. A zero function return value indicates that the uid is not the uid of a string created by a 12d Model Plot option. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Is_function",
    "id": 2066,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "Check to see if the UID 12d Model is the Uid of a 12d Model Function/Macro_Function. A non-zero function return value indicates that the uid is of a 12d Model Function/Macro_Function A zero function return value indicates that the uid is not the uid of a 12d Model Function/ Macro_Function. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Function_exists",
    "id": 1187,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      }
    ],
    "description": "Check to see if id is the Id of a 12d Function. 1 for yes A non-zero function return value indicates that id is the Id of a 12d Model Function/Macro_Function A zero function return value indicates that id is not the Id of a 12d Model Function/Macro_Function. Warning this is the opposite of most 12dPL function return values Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Integer Is_function(Uid uid) instead."
  },
  {
    "name": "Is_unknown",
    "id": 2061,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "Check to see if the UID uid is a valid Uid. A non-zero function return value indicates that uid is not a valid Uid. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Is_global",
    "id": 2062,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "Check to see if the UID uid is of a shared element. That is, the element has not been created in this project but has been shared in from another project. A non-zero function return value indicates that uid is of a shared element. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Convert_guid",
    "id": 3213,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "guid",
        "type": "Guid"
      },
      {
        "name": "&txt",
        "type": "Text"
      }
    ],
    "description": "Convert the GUID guid to a Text. The Text is returned in txt. A function return value of zero indicates the Guid was successfully converted to text."
  },
  {
    "name": "Convert_guid",
    "id": 3214,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "txt",
        "type": "Text"
      },
      {
        "name": "&guid",
        "type": "Guid"
      }
    ],
    "description": "Convert the Text txt to a GUID. The Guid is returned in guid. Note - this in only possible if txt is in the correct form of a Guid. Page 168 Ids, Uids and Guids Chapter 5 12dPL Library Calls A function return value of zero indicates the Text was successfully converted to a Guid."
  },
  {
    "name": "Print",
    "id": 3562,
    "returnType": "void",
    "parameters": [
      {
        "name": "guid",
        "type": "Guid"
      }
    ],
    "description": "Prints a text conversion of the GUID guid to the Output Window. Three is no function return value."
  },
  {
    "name": "Null",
    "id": 3771,
    "returnType": "void",
    "parameters": [
      {
        "name": "&guid",
        "type": "Guid"
      }
    ],
    "description": "Set the GUID guid to be a null Guid. There is no function return value."
  },
  {
    "name": "Is_valid",
    "id": 3772,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "guid",
        "type": "Guid"
      }
    ],
    "description": "Check to see if the GUID guid is valid. A non-zero function return value indicates that guid is a valid Guid. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Is_same",
    "id": 3773,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "guid1",
        "type": "Guid"
      },
      {
        "name": "guid2",
        "type": "Guid"
      }
    ],
    "description": "Check to see if the GUID guid1 is the same as the GUID guid2. A non-zero function return value indicates that the two GUID are the same."
  },
  {
    "name": "GUID_Gen",
    "id": 3832,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "guid",
        "type": "Guid"
      },
      {
        "name": "format",
        "type": "Integer"
      },
      {
        "name": "comment",
        "type": "Integer"
      },
      {
        "name": "&guid_text",
        "type": "Text"
      }
    ],
    "description": "Form the text representation to Text guid_text of a given Guid guid. Valid format is Integer from 0 to 7 Format 0 example guid EEE5D2B7-DCCE-11D3-B4C4-D237E35336F0 Format 1 example guid // {EEE5D2B4-DCCE-11D3-B4C4-D237E35336F0} ... only there if comment is not zero IMPLEMENT_OLECREATE(<<class>>, <<external_name>>, Page 170 Ids, Uids and Guids Chapter 5 12dPL Library Calls 0xeee5d2b4, 0xdcce, 0x11d3, 0xb4, 0xc4, 0xd2, 0x37, 0xe3, 0x53, 0x36, 0xf0); Format 2 example guid // {EEE5D2B5-DCCE-11D3-B4C4-D237E35336F0} ... only there if comment is not zero DEFINE_GUID(<<name>>, 0xeee5d2b5, 0xdcce, 0x11d3, 0xb4, 0xc4, 0xd2, 0x37, 0xe3, 0x53, 0x36, 0xf0); Format 3 example guid // {EEE5D2B6-DCCE-11D3-B4C4-D237E35336F0} ... only there if comment is not zero static const GUID <<name>> = { 0xeee5d2b6, 0xdcce, 0x11d3, { 0xb4, 0xc4, 0xd2, 0x37, 0xe3, 0x53, 0x36, 0xf0 } }; Format 4 example guid {EEE5D2B7-DCCE-11D3-B4C4-D237E35336F0} Format 5 example guid EEE5D2B7-DCCE-11D3-B4C4-D237E35336F0 Format 6 example guid __declspec(uuid(\"EEE5D2B4-DCCE-11D3-B4C4-D237E35336F0\")) Format 7 the guid contains six 32 Bit integers from the components of the GUID structure in base 64 A function return value of zero indicates the guid text was successfully set."
  },
  {
    "name": "Print",
    "id": 24,
    "returnType": "void",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      }
    ],
    "description": "Print the Text msg to the Output Window."
  },
  {
    "name": "Print",
    "id": 22,
    "returnType": "void",
    "parameters": [
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "Print the Integer value out in text to the Output Window."
  },
  {
    "name": "Print",
    "id": 3561,
    "returnType": "void",
    "parameters": [
      {
        "name": "value",
        "type": "Integer64"
      }
    ],
    "description": "Print the 64 bit Integer value out in text to the Output Window."
  },
  {
    "name": "Print",
    "id": 23,
    "returnType": "void",
    "parameters": [
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Print the Real value with six (6) decimal places out in text to the Output Window. For more (or less) decimal places, use To_text call to create the text to be printed with the call Print(Text msg); for example Print(To_text(r,12)) will print Real r with 12 decimal places to the Output Window."
  },
  {
    "name": "Print",
    "id": 3563,
    "returnType": "void",
    "parameters": [
      {
        "name": "value",
        "type": "Attribute_Blob"
      }
    ],
    "description": "Page 172 Input/Output Chapter 5 12dPL Library Calls Convert Attribute_Blob value to text and print out the text to the Output Window."
  },
  {
    "name": "Print",
    "id": 25,
    "returnType": "void",
    "parameters": [],
    "description": "Print the text \"\\n\" (a new line) to the Output Window."
  },
  {
    "name": "Clear_console",
    "id": 1295,
    "returnType": "void",
    "parameters": [],
    "description": "Clear the Output Window of any previous information. Warning: This function work on the Output Window, not the Macro Console."
  },
  {
    "name": "Show_console",
    "id": 1728,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "show",
        "type": "Integer"
      }
    ],
    "description": "If show = 0, the Output Window is hidden. If show = 1, the Output Window is shown. Warning: This function works on the Output Window, not the Macro Console. A function return value of zero indicates the function was successful. Note: the Output Window can also be turned on/off with the 12d Model toggle option Window =>Output Window."
  },
  {
    "name": "Is_console_visible",
    "id": 1729,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return value indicates if the Output Window is visible or hidden. If the Integer return value is 0 then the Output Window is hidden. If the Integer return value is 1 then the Output Window is visible (not hidden). Warning: This function works on the Output Window, not the Macro Console."
  },
  {
    "name": "Is_console_floating",
    "id": 1731,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return value indicates if the Output Window is floating or not floating. If the Integer return value is 1 then the Output Window is floating. If the Integer return value is 0 then the Output Window is either not floating or not visible. Warning: This function works on the Output Window, not the Macro Console."
  },
  {
    "name": "Save_output_window_to_XML",
    "id": 7829,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&filename",
        "type": "Text"
      }
    ],
    "description": "Save the whole content of the Output Window to an XML file of given filename. A function return value of zero indicates the save was successful."
  },
  {
    "name": "Read_output_window_from_XML",
    "id": 7830,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&filename",
        "type": "Text"
      },
      {
        "name": "&log_line_group_name",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Load an XML file of given filename to the Output Window under a log_line_group_name. The mode is for future use, for now it must be 0. A function return value of zero indicates the load was successful."
  },
  {
    "name": "Console_to_clipboard",
    "id": 1736,
    "returnType": "Integer",
    "parameters": [],
    "description": "Copy the highlighted contents of the Output Window to the clip board. Warning: This function works on the Output Window, not the Macro Console. Page 174 Input/Output Chapter 5 12dPL Library Calls A function return value of zero indicates the copy was successful."
  },
  {
    "name": "Set_clipboard_text",
    "id": 1521,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "txt",
        "type": "Text"
      }
    ],
    "description": "Write the Text txt to the clip board. A function return value of zero indicates the write was successful."
  },
  {
    "name": "Get_clipboard_text",
    "id": 1522,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&txt",
        "type": "Text"
      }
    ],
    "description": "Get the text in the clipboard and return in Text txt. A function return value of zero indicates the read was successful."
  },
  {
    "name": "File_exists",
    "id": 202,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a file of name file_name exists. A non-zero function return value indicates the file exists. A zero function return value indicates the file does not exist. Warning - this is the opposite to most 12dPL function return values"
  },
  {
    "name": "File_open",
    "id": 2076,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Text"
      },
      {
        "name": "ccs_text",
        "type": "Text"
      },
      {
        "name": "&file",
        "type": "File"
      }
    ],
    "description": "Opens a file of name file_name with open type mode. The file unit is returned as File file. The file can be opened as a Unicode file with a specified encoding or as an ANSI file by using a non- blank value for the ccs_text parameter. The available modes are r open for reading. If the file does not exist then it fails. r+ open for update, that is for reading and writing. The file must exist. rb read binary w opens a file for writing. If the files exists, its current contents are destroyed. w+ opens a file for reading and writing. If the files exists, its current contents are\uf020 destroyed wb write binary a open for writing at the end of file (before the end of file marker). \uf020 If the file does not exist then it is created. a+ opens for reading and writing to the end of the file (before the end of file marker).\uf020 If the file does not exist then it is created. When a file is open for append (i.e. a or a+), it is impossible to overwrite information that is already in the file. Any writes are automatically added to the end of the file. ccs_text specifies the coded character set to use and can have the values: ccs_text = \"ccs = UTF-8\" Page 176 Input/Output Chapter 5 12dPL Library Calls ccs_text = \"ccs = UTF-16LE\" ccs_text = \"ccs = UNICODE\" or ccs_text = \"\" (leave it blank) if ANSI encoding is required. For example File_open(\"test file\", \"w\",\"ccs=UNICODE\",file_handle); Note: BOM detection only applies to files that are opened in Unicode mode (that is, by passing a non blank ccs parameter). If the file already exists and is opened for reading or appending, the Byte Order Mark (BOM), if it present in the file, determines the encoding. The BOM encoding takes precedence over the encoding that is specified by the ccs flag. The ccs encoding is only used when no BOM is present or the file is a new file. The following table summarises the use of Byte Order Marks (BOM\u2019s) for the various ccs flags given to File_open and what happens when there is a BOM in an existing file. Encodings Used When Opening a File Based on non blank ccs Flag and BOM ccs flag No BOM (or new file) BOM: UTF-8 BOM: UTF-16 UNICODE UTF-16LE UTF-8 UTF-16LE UTF-8 UTF-8 UTF-8 UTF-16LE UTF-16LE UTF-16LE UTF-8 UTF-16LE Files opened for writing in Unicode mode (non-blank ccs) automatically have a BOM written to them. When a file that begins with a Byte Order Mark (BOM) is opened, the file pointer is positioned after the BOM (that is, at the start of the file's actual content). For more information on ANSI, ASCII, Unicode, UTF\u2019s and BOM\u2019s, please see Set Ups.hwhich is a copy of the information from the 12d Model Reference manual. A function return value of zero indicates the file was opened successfully."
  },
  {
    "name": "File_open",
    "id": 335,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Text"
      },
      {
        "name": "&file",
        "type": "File"
      }
    ],
    "description": "Note: this option now only creates UNICODE files. To open a ANSI file, use File_open(Text file_name,Text mode,Text ccs_text,File &file) with ccs_text = \"\" instead. Opens a file of name file_name with open type mode. The file unit is returned as File file. The available modes are r open for reading r+ open for update, reading and writing rb read binary w truncate or create for writing w+ truncate or create for update wb write binary Input/Output Page 177 12d Model Macro Manual a append open for writing at the end of file or create for writing a+ open for update at end of file or create for update When a file is open for append (i.e. a or a+), it is impossible to overwrite information that is already in the file. A function return value of zero indicates the file was opened successfully."
  },
  {
    "name": "File_read_line",
    "id": 337,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "&text_in",
        "type": "Text"
      }
    ],
    "description": "Read a line of text from the File file. The text is read into the Text text_in. A function return value of -1 indicates the end of the file. A function return value of zero indicates the text was successfully read in."
  },
  {
    "name": "File_write_line",
    "id": 338,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "text_out",
        "type": "Text"
      }
    ],
    "description": "Write a line of text to the File file. The text to write out is Text text_out. A function return value of zero indicates the text was successfully written out."
  },
  {
    "name": "File_tell",
    "id": 341,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "&pos",
        "type": "Integer"
      }
    ],
    "description": "Get the current position in the File file. A function return value of zero indicates the file position was successfully found."
  },
  {
    "name": "File_seek",
    "id": 342,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "pos",
        "type": "Integer"
      }
    ],
    "description": "Go to the position pos in the File file. Position pos has normally been found by a previous File_tell call. If the file open type was a or a+, then a File_seek cannot be used to position for a write in any part of the file that existed when the file was opened. Page 178 Input/Output Chapter 5 12dPL Library Calls If you have to File_seek to the beginning of the file, use File_tell to get the initial position and File_seek to it rather than to position 0. So for a Unicode file, if you have to File_seek to the beginning of the file but after the BOM you need to first have used a File_tell to get and record the position of the initial start of the file when it is opened (for a Unicode file, File_open positions after the BOM) and then to File_seek to that recorded beginning of the file rather than to File_seek to position 0. For more information on ANSI, ASCII, Unicode, UTF\u2019s and BOM\u2019s, please see Set Ups.hwhich is a copy of the information from the 12d Model Reference manual. A function return value of zero indicates the file position was successfully found."
  },
  {
    "name": "File_flush",
    "id": 340,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      }
    ],
    "description": "Make sure the File file is up to date with what has been written out. A function return value of zero indicates the file was successfully flushed."
  },
  {
    "name": "File_rewind",
    "id": 339,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      }
    ],
    "description": "Rewind the File file to its beginning. WARNING: This function is not to be used with a Unicode file. If the file is a Unicode file then File_rewind will rewind to BEFORE the BOM. Then writing out any information will overwrite the BOM. So for a Unicode file, to correctly position to the beginning of the file but after the BOM you need to first have used a File_tell when opening the file to get and record position of the initial start of the file (for a Unicode file, File_open positions after the BOM) and then to File_seek to that recorded beginning of the file rather than to File_seek to position 0. For more information on ANSI, ASCII, Unicode, UTF\u2019s and BOM\u2019s, please see Set Ups.hwhich is a copy of the information from the 12d Model Reference manual. A function return value of zero indicates the file was successfully rewound."
  },
  {
    "name": "File_read",
    "id": 1710,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Read four bytes from the binary file file and return it as an Integer in value. A function return value of zero indicates the Integer was successfully returned. Input/Output Page 179 12d Model Macro Manual"
  },
  {
    "name": "File_write",
    "id": 1713,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "Write out value as a four byte integer to the binary file file. A function return value of zero indicates the Integer was successfully written."
  },
  {
    "name": "File_read",
    "id": 1711,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "Read eight bytes from the binary file file and return it as a Real in value. A function return value of zero indicates the Real was successfully returned."
  },
  {
    "name": "File_write",
    "id": 1714,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Write out value as an eight byte real to the binary file file. A function return value of zero indicates the Real was successfully written."
  },
  {
    "name": "File_read_unicode",
    "id": 2676,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "length",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Read length bytes from the binary file file and return it as Text in value. Note - this works for UNICODE files. For more information on ANSI, ASCII, Unicode, UTF\u2019s and BOM\u2019s, please see Set Ups.hwhich is a copy of the information from the 12d Model Reference manual. A function return value of zero indicates the Text was successfully returned."
  },
  {
    "name": "File_read",
    "id": 1712,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "length",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Read length bytes from the binary file file and return it as Text in value. Note - this only works for ANSI Text. If any of the characters of Text is not ANSI, then a non-zero function return value is returned. WARNING: This function is not to be used for Unicode files. For Unicode files, use File_read_unicode(File file,Integer length,Text &value) instead. For more information on ANSI, ASCII, Unicode, UTF\u2019s and BOM\u2019s, please see Set Ups.hwhich is a copy of the information from the 12d Model Reference manual. A function return value of zero indicates the Text was successfully returned."
  },
  {
    "name": "File_write",
    "id": 1715,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "length",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "Write out value as length lots of one byte ANSI characters to the binary file file. If any of the characters of Text is not ANSI, then no data is written out and a non-zero function return value is returned. If there is less than length characters in Text then the number of characters is brought up to length by writing out null padding. WARNING: This function is not to be used for Unicode files. For Unicode files, use File_write_unicode(File file,Integer length,Text value) instead. For more information on ANSI, ASCII, Unicode, UTF\u2019s and BOM\u2019s, please see Set Ups.hwhich is a copy of the information from the 12d Model Reference manual. A function return value of zero indicates the Text was successfully written."
  },
  {
    "name": "File_write",
    "id": 1718,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "length",
        "type": "Integer"
      },
      {
        "name": "array[]",
        "type": "Integer"
      }
    ],
    "description": "Write out the Integer array array[] as length lots of four byte integers to the binary file file. A function return value of zero indicates the Integer array was successfully written."
  },
  {
    "name": "File_read",
    "id": 1717,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "length",
        "type": "Integer"
      },
      {
        "name": "array[]",
        "type": "Real"
      }
    ],
    "description": "Read the next length lots of eight bytes from the binary file file and return them as a Real array in array[]. A function return value of zero indicates the Real array was successfully returned."
  },
  {
    "name": "File_write",
    "id": 1719,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "length",
        "type": "Integer"
      },
      {
        "name": "array[]",
        "type": "Real"
      }
    ],
    "description": "Write out the Integer array array[] as length lots of eight byte reals to the binary file file. A function return value of zero indicates the Real array was successfully written."
  },
  {
    "name": "File_read_short",
    "id": 1720,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Read two bytes from the binary file file and return it as an Integer in value. A function return value of zero indicates the Integer was successfully returned."
  },
  {
    "name": "File_write_short",
    "id": 1722,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "Write out value as a two byte integer to the binary file file. Because it is only a two byte integer, value must be between -2 to the power of 32, and +2 to the power 32. A function return value of zero indicates the Integer was successfully written."
  },
  {
    "name": "File_read_short",
    "id": 1721,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "Read four bytes from the binary file file and return it as a Real in value. Note - value can only be in the range -32,768 and 32,767. A function return value of zero indicates the Real was successfully returned."
  },
  {
    "name": "File_write_short",
    "id": 1723,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Write out value as a four byte real to the binary file file. Because it is only a four byte real, only seven significant figures can be written out. A function return value of zero indicates the Real was successfully written."
  },
  {
    "name": "File_close",
    "id": 336,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      }
    ],
    "description": "Close the File file. A function return value of zero indicates file was closed successfully."
  },
  {
    "name": "File_copy",
    "id": 3837,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "new_name",
        "type": "Text"
      },
      {
        "name": "old_name",
        "type": "Text"
      }
    ],
    "description": "Copy a file from the disk. A function return value of zero indicates the file was copied successfully."
  },
  {
    "name": "File_set_endian",
    "id": 1708,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "big",
        "type": "Integer"
      }
    ],
    "description": "<not implemented>"
  },
  {
    "name": "File_get_endian",
    "id": 1709,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "&big",
        "type": "Integer"
      }
    ],
    "description": "<not implemented>"
  },
  {
    "name": "File_redirect",
    "id": 3481,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input_file_path",
        "type": "Text"
      },
      {
        "name": "read_write",
        "type": "Integer"
      },
      {
        "name": "use_cache",
        "type": "Integer"
      },
      {
        "name": "&output_file_path",
        "type": "Text"
      }
    ],
    "description": "Currently, this function is to work out the local file path output_file_path from a Synergy input path input_file_path. Integer read_write 0 means the file is for reading. Integer read_write 1 means the file is for writing. Integer use_cache 1 means true. A function return value of zero indicates the Real was successfully written."
  },
  {
    "name": "Read_PDF",
    "id": 3839,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pdf_file",
        "type": "Text"
      },
      {
        "name": "output_12da",
        "type": "Text"
      }
    ],
    "description": "This call is for internal 12D staff only. Read the vectors, texts and clipping boundaries of an exist pdf file pdf_file and write the result to an output 12da file output_12da. A function return value of zero indicates the file was copied successfully."
  },
  {
    "name": "Delete_files",
    "id": 3921,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name_match",
        "type": "Text"
      }
    ],
    "description": "Delete all the files with name matching the wild card pattern name_match A function return value of zero indicates the delete was successful."
  },
  {
    "name": "Find_files",
    "id": 7976,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name_match",
        "type": "Text"
      },
      {
        "name": "&file_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "File all the files with name matching the wild card pattern name_match and returns the list in Dynamic_Text file_names. A function return value of zero indicates the find was successful."
  },
  {
    "name": "Read_4d_ascii",
    "id": 1166,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      }
    ],
    "description": "Read in and process the file called filename as a 12d Ascii file. The post-prefix for models is given in prefix. A function return value of zero indicates the file was successfully read."
  },
  {
    "name": "Read_4d_ascii",
    "id": 2073,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "&list",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Read the data from the 12d Ascii file called filename and load all the created Elements into the Dynamic_Element list. A function return value of zero indicates the file was successfully read."
  },
  {
    "name": "Read_12d_data",
    "id": 5437,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      }
    ],
    "description": "Read in and process the file called filename as a 12d Ascii or 12d XML file. If the extension of filename is .12dxml or 12dxmlz, then the reading will try to process the file as of 12d XML format; otherwise the reading will try to process the file as of 12d Ascii format. The post-prefix for models is given in prefix. A function return value of zero indicates the file was successfully read."
  },
  {
    "name": "Read_12d_data",
    "id": 5438,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "&list",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Read the data from the 12d Ascii or 12d XML file called filename and load all the created Elements into the Dynamic_Element list. If the extension of filename is .12dxml or 12dxmlz, then the reading will try to process the file as of 12d XML format; otherwise the reading will try to process the file as of 12d Ascii format. A function return value of zero indicates the file was successfully read."
  },
  {
    "name": "Read_12d_data",
    "id": 6890,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "use_super",
        "type": "Integer"
      },
      {
        "name": "project_att_mode",
        "type": "Integer"
      },
      {
        "name": "project_att_dup_mode",
        "type": "Integer"
      },
      {
        "name": "model_att_mode",
        "type": "Integer"
      },
      {
        "name": "model_att_dup_mode",
        "type": "Integer"
      },
      {
        "name": "existing_tin_mode",
        "type": "Integer"
      },
      {
        "name": "prefix",
        "type": "Text"
      }
    ],
    "description": "Read in and process the file called filename as a 12d Ascii or 12d XML file. If the extension of filename is .12dxml or 12dxmlz, then the reading will try to process the file as of 12d XML format; otherwise the reading will try to process the file as of 12d Ascii format. The post-prefix for models is given in prefix. If use_super is non zero then old string types will be read in as super string. For the choice in reading project attributes or model attributes; valid values for project_att_mode and model_att_mode: 0 - read and merge 1 - delete all old attributes and read 2 - do not read (and keep the existing attributes) When read and merge project/model attributes, valid values for project_att_dup_mode and model_att_dup_mode: 0 - ignore new values 1 - subfix name 2 - duplicate 3 - delete the existing When read a tin that already exists in the current project; valid values for existing_tin_mode: 0 - error 1 - delete old tin 2 - skip new tin 3 - rename old tin A function return value of zero indicates the file was successfully read."
  },
  {
    "name": "Read_12d_data",
    "id": 6891,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "use_super",
        "type": "Integer"
      },
      {
        "name": "project_att_mode",
        "type": "Integer"
      },
      {
        "name": "project_att_dup_mode",
        "type": "Integer"
      },
      {
        "name": "model_att_mode",
        "type": "Integer"
      },
      {
        "name": "model_att_dup_mode",
        "type": "Integer"
      },
      {
        "name": "existing_tin_mode",
        "type": "Integer"
      },
      {
        "name": "&list",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Read the data from the 12d Ascii or 12d XML file called filename and load all the created Elements into the Dynamic_Element list. If the extension of filename is .12dxml or 12dxmlz, then the reading will try to process the file as of 12d XML format; otherwise the reading will try to process the file as Input/Output Page 187 12d Model Macro Manual of 12d Ascii format. If use_super is non zero then old string types will be read in as super string. For the choice in reading project attributes or model attributes; valid values for project_att_mode and model_att_mode: 0 - read and merge 1 - delete all old attributes and read 2 - do not read (and keep the existing attributes) When read and merge project/model attributes, valid values for project_att_dup_mode and model_att_dup_mode: 0 - ignore new values 1 - subfix name 2 - duplicate 3 - delete the existing When read a tin that already exists in the current project; valid values for existing_tin_mode: 0 - error 1 - delete old tin 2 - skip new tin 3 - rename old tin A function return value of zero indicates the file was successfully read."
  },
  {
    "name": "Write_4d_ascii",
    "id": 1630,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      }
    ],
    "description": "Open the file called filename, and append the 12d Ascii of the Element elt to the file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then write the name of the Model containing elt to the file before writing out elt. If output_model_name = 0 then don\u2019t write out the Model name. For output in full tin format see 5.17.4.1 MACRO_CALL_WRITE_FULL_TIN_4D. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_4d_ascii",
    "id": 3192,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Open the file called filename, and append the 12d Ascii of the Element elt to the file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then write the name of the Model containing elt to the file before writing out elt. Page 190 Input/Output Chapter 5 12dPL Library Calls If output_model_name = 0 then don\u2019t write out the Model name. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_4d_ascii",
    "id": 1631,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Dynamic_Element"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      }
    ],
    "description": "Open the file called filename, and append the 12d Ascii of all the Elements in the Dynamic_Element list to the file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then if write the name of the Model containing each Element to the file before writing out the Element. The Model name is not repeated if is the same as the previous Element). If output_model_name = 0 then don\u2019t write out the Model names. For output in full tin format see 5.17.4.1 MACRO_CALL_WRITE_FULL_TIN_4D. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_4d_ascii",
    "id": 3193,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Dynamic_Element"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Open the file called filename, and append the 12d Ascii of all the Elements in the Dynamic_Element list to the file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then if write the name of the Model containing each Element to the file before writing out the Element. The Model name is not repeated if is the same as the previous Element). If output_model_name = 0 then don\u2019t write out the Model names. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_4d_ascii",
    "id": 3194,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Open the file called filename, and append the 12d Ascii of all the Elements in the Model model to the file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then write the name of model out to the file before the Elements. If output_model_name = 0 then don\u2019t write out the Model name. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_4d_ascii",
    "id": 1928,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "indent_level",
        "type": "Integer"
      }
    ],
    "description": "Write the 12d Ascii of the Element elt to the File file. Any coordinates and Reals are written out to precision decimal places. The information written to the file is indented by indent_level spaces. For output in full tin format see 5.17.4.1 MACRO_CALL_WRITE_FULL_TIN_4D. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_4d_ascii",
    "id": 3195,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "indent_level",
        "type": "Integer"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Write the 12d Ascii of the Element elt to the File file. Any coordinates and Reals are written out to Page 192 Input/Output Chapter 5 12dPL Library Calls precision decimal places. The information written to the file is indented by indent_level spaces. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_4d_ascii",
    "id": 1929,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "indent_level",
        "type": "Integer"
      },
      {
        "name": "header",
        "type": "Text"
      }
    ],
    "description": "Write the Text header to the File file and then write the 12d Ascii of the Element elt to the File file. Any coordinates and Reals are written out to precision decimal places. The information written to the file is indented by indent_level spaces. For output in full tin format see 5.17.4.1 MACRO_CALL_WRITE_FULL_TIN_4D. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_4d_ascii",
    "id": 3196,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "file",
        "type": "File"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "indent_level",
        "type": "Integer"
      },
      {
        "name": "header",
        "type": "Text"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Write the Text header to the File file and then write the 12d Ascii of the Element elt to the File file. Any coordinates and Reals are written out to precision decimal places. The information written to the file is indented by indent_level spaces. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_12d_data",
    "id": 5439,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Dynamic_Element"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Write all the Elements in the Dynamic_Element list to the file filename using the format indicated by the file extension. If the extension of filename is .12dxml or 12dxmlz, then the output file will be processed as of12d Input/Output Page 193 12d Model Macro Manual XML format - normal and zipped accordingly. If the extension of filename is .12da or 12daz, then the output file will be processed as of 12d Ascii format - normal and zipped accordingly. Any other file extension will be process as 12da. If the file format is not zipped, then new information would be append at the end of existing file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then if write the name of the Model containing each Element to the file before writing out the Element. If output_model_name = 0 then don\u2019t write out the Model names. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_12d",
    "id": 5440,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Dynamic_Element"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Write all the Elements in the Dynamic_Element list to the file filename using the format indicated by the file extension. If the extension of filename is .12dxml or 12dxmlz, then the output file will be processed as of12d XML format - normal and zipped accordingly. If the extension of filename is .12da or 12daz, then the output file will be processed as of 12d Ascii format - normal and zipped accordingly. Any other file extension will be process as 12da. If the file format is not zipped, then new information would be append at the end of existing file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then if write the name of the Model containing each Element to the file before writing out the Element. If output_model_name = 0 then don\u2019t write out the Model names. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Write_12d_data",
    "id": 5442,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Write all the Elements in the Model model to the file filename using the format indicated by the file extension. If the extension of filename is .12dxml or 12dxmlz, then the output file will be processed as of12d XML format - normal and zipped accordingly. If the extension of filename is .12da or 12daz, then the output file will be processed as of 12d Ascii format - normal and zipped accordingly. Any other file extension will be process as 12da. If the file format is not zipped, then new information would be append at the end of existing file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then if write the name of model to the file before writing out the Elements data. If output_model_name = 0 then don\u2019t write out the Model names. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Create_menu",
    "id": 171,
    "returnType": "Menu",
    "parameters": [
      {
        "name": "menu_title",
        "type": "Text"
      }
    ],
    "description": "A Menu is created which is used when referring to this particular menu. The menu title is defined when the menu variable is created and is the Text menu_title. The function return value is the required Menu variable. (To represent menus, 12dPL has this special variable type called Menu.)"
  },
  {
    "name": "Menu_delete",
    "id": 588,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "menu",
        "type": "Menu"
      }
    ],
    "description": "Delete the menu defined by Menu menu. A function return value of zero indicates the menu was deleted successfully."
  },
  {
    "name": "Create_button",
    "id": 172,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "menu",
        "type": "Menu"
      },
      {
        "name": "button_text",
        "type": "Text"
      },
      {
        "name": "button_reply",
        "type": "Text"
      }
    ],
    "description": "This function adds buttons to the menu with button_text as the text for the button. The button is also supplied with a Text button_reply which is returned to the macro through the function Display or Display_relative when the button is selected. Page 196 Menus Chapter 5 12dPL Library Calls The menu buttons will appear in the Menu in the order that they are added to the menu structure by the Create_button function. A function return value of zero indicates that the button was created successfully."
  },
  {
    "name": "Display",
    "id": 173,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "menu",
        "type": "Menu"
      },
      {
        "name": "&across_pos",
        "type": "Integer"
      },
      {
        "name": "&down_pos",
        "type": "Integer"
      },
      {
        "name": "&reply",
        "type": "Text"
      }
    ],
    "description": "When called, the Menu menu is displayed on the screen with screen co-ordinates (across_pos,down_pos). The menu remains displayed on the screen until a menu button is selected by the user. When a menu button is selected, the menu is removed from the screen and the appropriate button return code returned in the Text variable reply. Whilst displayed on the screen, the menu can be moved around the 12d Model window by using the mouse. When a menu selection is finally made, the actual position of the menu at selection time is returned as (across_pos,down_pos). A function return value of zero indicates that a successful menu selection was made. Note An (across_pos,down_pos) of (-1,-1) indicates the current cursor position."
  },
  {
    "name": "Display_relative",
    "id": 364,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "menu",
        "type": "Menu"
      },
      {
        "name": "&across_rel",
        "type": "Integer"
      },
      {
        "name": "&down_rel",
        "type": "Integer"
      },
      {
        "name": "&reply",
        "type": "Text"
      }
    ],
    "description": "When called, the Menu menu is displayed on the screen with screen co-ordinates of (across_rel,down_rel) relative to the cursor position. The menu remains displayed until a menu button is selected. When a menu button is selected, the menu is removed from the screen and the appropriate button return code returned in the Text variable reply. Whilst displayed, the menu can be moved in 12d Model by using the mouse. When the selection is made, the final absolute position of the menu is returned as (across_rel,down_rel). A function return value of zero indicates that a successful menu selection was made. Thus the sequence used to define and display a menu and the relevant functions used are: (a) a Menu variable is created which is used when referring to this particular menu. The menu title is defined when the menu variable is created. Use: Create_menu(Text menu_title) For example Menu menu = Create_menu(\"Test\"); (b) the menu buttons are added to the menu structure in the order that they will appear in the menu. The button text and the text that will be returned to the macro if the button is selected are both supplied. Use: Menus Page 197 12d Model Macro Manual Create_button(Menu menu,Text button_text,Text reply) For example Create_button(menu,\"First options\",\"Op1\"); Create_button(menu,\"Second options\",\"Op2\"); Create_button(menu,\"Finish\",\"Fin\"); (c) the menu is displayed on the screen. The menu will continued to be displayed until a menu button is selected. When the menu button is selected, the menu is removed from the screen and the appropriate button return code returned to the macro. Use: Display(Menu menu,Integer row_pos,Integer col_pos,\uf020 Text &reply) Display_relative(Menu menu,Integer row_pos,Integer col_pos,\uf020 Text &reply) For example Display(menu,5,10,reply); A more complete example of defining and using a menu is: void main() { // create a menu with title \"Silly Menu\" Menu menu = Create_menu(\"Silly Menu\"); /* add menu button with titles \"Read\", \"Write\", \"Draw\" and \"Quit\". The returns codes for the buttons are the same as the button titles */ Create_button(menu,\"Read\",\"Read\"); Create_button(menu,\"Write\",\"Write\"); Create_button(menu,\"Draw\",\"Draw\"); Create_button(menu,\"Quit\",\"Quit\"); /* display the menu on the screen at the current cursor position and wait for a button to selected. When a button is selected, print out its return code If the return code isn't \"Quit\", redisplay the menu. */ Text reply; do { Display(menu,-1,-1,reply); Print(reply); Print(\"\\n\"); } while(reply != \"Quit\"); }"
  },
  {
    "name": "Append",
    "id": 220,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "from_de",
        "type": "Dynamic_Element"
      },
      {
        "name": "&to_de",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Append the items of the Dynamic_Element from_de to the Dynamic_Element to_de. A function return value of zero indicates the append was successful. Note 1: Because 12dPL has automatic variable type promotions from Element to Dynamic_Element, the function can be used as Integer Append(Element from,Dynamic_Element &to_de); Note 2: this Append only act on as the pointer level of the elements, e.g. no new elements being created nor copied."
  },
  {
    "name": "Null",
    "id": 127,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&delt",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Removes and nulls all the Elements from the Dynamic_Element delt and sets the number of items to zero. A function return value of zero indicates that delt was successfully nulled."
  },
  {
    "name": "Get_number_of_items",
    "id": 128,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&delt",
        "type": "Dynamic_Element"
      },
      {
        "name": "&no_items",
        "type": "Integer"
      }
    ],
    "description": "Get the number of Elements currently in the Dynamic_Element delt. The number of Elements is returned in Integer no_items. A function return value of zero indicates the number of Elements was returned successfully."
  },
  {
    "name": "Get_item",
    "id": 129,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&delt",
        "type": "Dynamic_Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&elt",
        "type": "Element"
      }
    ],
    "description": "Get the ith Element from the Dynamic_Element delt. The Element is returned in elt. A function return value of zero indicates the ith Element was returned successfully."
  },
  {
    "name": "Set_item",
    "id": 130,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&delt",
        "type": "Dynamic_Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Set the ith Element in the Dynamic_Element delt to the Element elt. If the position i is greater or equal to the total number of Elements in the Dynamic_Element, then the Dynamic_Element will automatically be extended so that the number of Elements is i. Any extra Elements that are added will be set to null. A function return value of zero indicates the Element was successfully set."
  },
  {
    "name": "Null_item",
    "id": 131,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&delt",
        "type": "Dynamic_Element"
      },
      {
        "name": "i",
        "type": "Integer"
      }
    ],
    "description": "Set the ith Element to null. A function return value of zero indicates the Element was successfully set to null."
  },
  {
    "name": "Append",
    "id": 434,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "&dt",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Append the Text text to the end of the contents of the Dynamic_Text dt. This will increase the size of the Dynamic_Text by one. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Append",
    "id": 230,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "from_dt",
        "type": "Dynamic_Text"
      },
      {
        "name": "&to_dt",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Append the contents of the Dynamic_Text from_dt to the Dynamic_Text to_dt. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Null",
    "id": 226,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&dt",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Removes and deletes all the Texts from the Dynamic_Text dt and sets the number of items to zero. A function return value of zero indicates that dt was successfully nulled."
  },
  {
    "name": "Get_number_of_items",
    "id": 227,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&dt",
        "type": "Dynamic_Text"
      },
      {
        "name": "&no_items",
        "type": "Integer"
      }
    ],
    "description": "Get the number of Texts currently in the Dynamic_Text dt. Page 202 Dynamic Arrays Chapter 5 12dPL Library Calls The number of Texts is returned by Integer no_items. A function return value of zero indicates the number of Texts was successfully returned."
  },
  {
    "name": "Get_item",
    "id": 228,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&dt",
        "type": "Dynamic_Text"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "Get the ith Text from the Dynamic_Text dt. The Text is returned by text. A function return value of zero indicates the ith Text was returned successfully."
  },
  {
    "name": "Set_item",
    "id": 229,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&dt",
        "type": "Dynamic_Text"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Set the ith Text in the Dynamic_Text dt to the Text text. A function return value of zero indicates success."
  },
  {
    "name": "Get_all_linestyles",
    "id": 688,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&linestyles",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get all linestyle names defined in the Linestyles pop-up for the current project, and return the list in the Dynamic_Text linestyles. A function return value of zero indicates the linestyle names were returned successfully."
  },
  {
    "name": "Get_all_textstyles",
    "id": 689,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&textstyles",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get all textstyle names defined in the Textstyles pop-up for the current project, and return the list in the Dynamic_Text textstyles. A function return value of zero indicates the textstyle names are returned successfully."
  },
  {
    "name": "Get_all_symbols",
    "id": 1724,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&symbols",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get all symbol names defined in the Symbols pop-up for the current project, and return the list in the Dynamic_Text symbols. A function return value of zero indicates the symbol names were returned successfully."
  },
  {
    "name": "Get_all_patterns",
    "id": 1725,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&patterns",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get all pattern names defined in the Patterns pop-up for the current project, and return the list in the Dynamic_Text patterns. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Append",
    "id": 1795,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "value",
        "type": "Real"
      },
      {
        "name": "&real_list",
        "type": "Dynamic_Real"
      }
    ],
    "description": "Append the Real value to the end of the contents of the Dynamic_Real real_list. This will increase the size of the Dynamic_Real by one. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Append",
    "id": 1794,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "from_dr",
        "type": "Dynamic_Real"
      },
      {
        "name": "&to_dr",
        "type": "Dynamic_Real"
      }
    ],
    "description": "Append the contents of the Dynamic_Real from_dr to the Dynamic_Real to_dr. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Null",
    "id": 1790,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&real_list",
        "type": "Dynamic_Real"
      }
    ],
    "description": "Removes all the Reals from the Dynamic_Real real_list and sets the number of items to zero. A function return value of zero indicates that real_list was successfully nulled."
  },
  {
    "name": "Get_number_of_items",
    "id": 1791,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&real_list",
        "type": "Dynamic_Real"
      },
      {
        "name": "&no_items",
        "type": "Integer"
      }
    ],
    "description": "Get the number of Reals currently in the Dynamic_Real real_list. Dynamic Arrays Page 205 12d Model Macro Manual The number of Reals is returned in Integer no_items. A function return value of zero indicates the number of Reals was returned successfully."
  },
  {
    "name": "Set_item",
    "id": 1793,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&real_list",
        "type": "Dynamic_Real"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Set the ith Real in the Dynamic_Real real_list to the Real value. If the position i is greater or equal to the total number of Real in the Dynamic_Real, then the Dynamic_Real will automatically be extended so that the number of Reals is i. Any extra Real values that are added will be not be set, e.g. may contain any random Real number. A function return value of zero indicates the Real was successfully set."
  },
  {
    "name": "Get_item",
    "id": 1792,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&real_list",
        "type": "Dynamic_Real"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "Get the i\u2019th Real from the Dynamic_Real real_list. The Real is returned in value. A function return value of zero indicates the i\u2019th Real was returned successfully."
  },
  {
    "name": "Append",
    "id": 1785,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "value",
        "type": "Integer"
      },
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Append the Integer value to the end of the contents of the Dynamic_Integer integer_list. This will increase the size of the Dynamic_Integer by one. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Append",
    "id": 1784,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "from_di",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&to_di",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Append the contents of the Dynamic_Integer from_di to the Dynamic_Integer to_di. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Null",
    "id": 1780,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Removes all the Integers from the Dynamic_Integer integer_list and sets the number of items to zero. A function return value of zero indicates that integer_list was successfully nulled."
  },
  {
    "name": "Get_number_of_items",
    "id": 1781,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Dynamic Arrays Page 207 12d Model Macro Manual Get the number of Integers currently in the Dynamic_Integer integer_list. The number of Integers is returned in Integer no_items. A function return value of zero indicates the number of Integers was returned successfully."
  },
  {
    "name": "Set_item",
    "id": 1783,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "Set the ith Integer in the Dynamic_Integer integer_list to the Integer value. If the position i is greater or equal the total number of Integer in the Dynamic_Integer, then the Dynamic_Integer will automatically be extended so that the number of Integers is i. Any extra Integer values that are added will be not be set, e.g. may contain any random Integer number. A function return value of zero indicates the Integer was successfully set."
  },
  {
    "name": "Get_item",
    "id": 1782,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Get the i\u2019th Integer from the Dynamic_Integer integer_list. The Integer is returned in value. A function return value of zero indicates the i\u2019th Integer was returned successfully."
  },
  {
    "name": "Append",
    "id": 8010,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "value",
        "type": "Integer64"
      },
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer64"
      }
    ],
    "description": "Append the Integer64 value to the end of the contents of the Dynamic_Integer64 integer_list. This will increase the size of the Dynamic_Integer64 by one. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Append",
    "id": 8009,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "from_di",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&to_di",
        "type": "Dynamic_Integer64"
      }
    ],
    "description": "Append the contents of the Dynamic_Integer64 from_di to the Dynamic_Integer64 to_di. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Null",
    "id": 8005,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer64"
      }
    ],
    "description": "Removes all the Integers from the Dynamic_Integer64 integer_list and sets the number of items to zero. A function return value of zero indicates that integer_list was successfully nulled."
  },
  {
    "name": "Get_number_of_items",
    "id": 8006,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Dynamic Arrays Page 209 12d Model Macro Manual Get the number of Integers currently in the Dynamic_Integer64 integer_list. The number of Integer64s is returned in Integer no_items. A function return value of zero indicates the number of Integers was returned successfully."
  },
  {
    "name": "Set_item",
    "id": 8008,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Integer64"
      }
    ],
    "description": "Set the ith Integer64 in the Dynamic_Integer64 integer_list to the Integer64 value. If the position i is greater or equal the total number of Integer in the Dynamic_Integer64, then the Dynamic_Integer64 will automatically be extended so that the number of Integer64s is i. Any extra Integer64 values that are added will be not be set, e.g. may contain any random Integer64 number. A function return value of zero indicates the Integer64 was successfully set."
  },
  {
    "name": "Get_item",
    "id": 8007,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&integer_list",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Integer64"
      }
    ],
    "description": "Get the i\u2019th Integer from the Dynamic_Integer64 integer_list. The Integer64 is returned in value. A function return value of zero indicates the i\u2019th Integer64 was returned successfully."
  },
  {
    "name": "Get_x",
    "id": 241,
    "returnType": "Real",
    "parameters": [
      {
        "name": "pt",
        "type": "Point"
      }
    ],
    "description": "Get the x co-ordinate of the Point pt. The function return value is the x co-ordinate value of pt."
  },
  {
    "name": "Get_y",
    "id": 242,
    "returnType": "Real",
    "parameters": [
      {
        "name": "pt",
        "type": "Point"
      }
    ],
    "description": "Get the y co-ordinate of the Point pt. The function return value is the y co-ordinate value of pt."
  },
  {
    "name": "Get_z",
    "id": 243,
    "returnType": "Real",
    "parameters": [
      {
        "name": "pt",
        "type": "Point"
      }
    ],
    "description": "Get the z co-ordinate of the Point pt. The function return value is the z co-ordinate value of pt."
  },
  {
    "name": "Set_x",
    "id": 244,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&pt",
        "type": "Point"
      },
      {
        "name": "x",
        "type": "Real"
      }
    ],
    "description": "Set the x co-ordinate of the Point pt to the value x. The function return value is the x co-ordinate value of pt."
  },
  {
    "name": "Set_y",
    "id": 245,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&pt",
        "type": "Point"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Set the y co-ordinate of the Point pt to the value y. The function return value is the y co-ordinate value of pt."
  },
  {
    "name": "Set_z",
    "id": 246,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&pt",
        "type": "Point"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Set the z co-ordinate of the Point pt to the value z. The function return value is the z co-ordinate value of pt."
  },
  {
    "name": "Get_start",
    "id": 251,
    "returnType": "Point",
    "parameters": [
      {
        "name": "line",
        "type": "Line"
      }
    ],
    "description": "Get the start Point of the Line line. The function return value is the start Point of line."
  },
  {
    "name": "Get_end",
    "id": 252,
    "returnType": "Point",
    "parameters": [
      {
        "name": "line",
        "type": "Line"
      }
    ],
    "description": "Get the end Point of the Line line. The function return value is the start Point of line."
  },
  {
    "name": "Set_start",
    "id": 253,
    "returnType": "Point",
    "parameters": [
      {
        "name": "&line",
        "type": "Line"
      },
      {
        "name": "pt",
        "type": "Point"
      }
    ],
    "description": "Set the start Point of the Line line to be the Point pt. The function return value is also the start Point of line."
  },
  {
    "name": "Set_end",
    "id": 254,
    "returnType": "Point",
    "parameters": [
      {
        "name": "&line",
        "type": "Line"
      },
      {
        "name": "pt",
        "type": "Point"
      }
    ],
    "description": "Lines Page 213 12d Model Macro Manual Set the end Point of the Line line to be the Point pt. The function return value is also the end Point of line."
  },
  {
    "name": "Reverse",
    "id": 255,
    "returnType": "Line",
    "parameters": [
      {
        "name": "line",
        "type": "Line"
      }
    ],
    "description": "Reverse the direction of the Line line. That is, Reverse swaps the start and end Points of the Line line. The unary operator \"-\" will also reverse a Line. The function return value is the reversed Line."
  },
  {
    "name": "Get_centre",
    "id": 260,
    "returnType": "Point",
    "parameters": [
      {
        "name": "arc",
        "type": "Arc"
      }
    ],
    "description": "Get the centre point of the Arc arc. The function return value is the centre point of the arc."
  },
  {
    "name": "Get_radius",
    "id": 261,
    "returnType": "Real",
    "parameters": [
      {
        "name": "arc",
        "type": "Arc"
      }
    ],
    "description": "Get the radius of the Arc arc. Arcs Page 215 12d Model Macro Manual The function return value is the radius of the arc."
  },
  {
    "name": "Get_start",
    "id": 262,
    "returnType": "Point",
    "parameters": [
      {
        "name": "arc",
        "type": "Arc"
      }
    ],
    "description": "Get the start point of the Arc arc. The function return value is the start point of the arc."
  },
  {
    "name": "Get_end",
    "id": 263,
    "returnType": "Point",
    "parameters": [
      {
        "name": "arc",
        "type": "Arc"
      }
    ],
    "description": "Get the end point of the Arc arc. The function return value is the end point of the arc."
  },
  {
    "name": "Set_centre",
    "id": 264,
    "returnType": "Point",
    "parameters": [
      {
        "name": "&arc",
        "type": "Arc"
      },
      {
        "name": "pt",
        "type": "Point"
      }
    ],
    "description": "Set the centre point of the Arc arc to be the Point pt. The start and end points are also translated by the vector between the new and old arc centres. The function return value is the centre point of the arc."
  },
  {
    "name": "Set_radius",
    "id": 265,
    "returnType": "Real",
    "parameters": [
      {
        "name": "&arc",
        "type": "Arc"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "Set the radius of the Arc arc to the value rad. The start and end points are projected radially onto the new arc. The function return value is the radius of the arc."
  },
  {
    "name": "Set_end",
    "id": 267,
    "returnType": "Point",
    "parameters": [
      {
        "name": "&arc",
        "type": "Arc"
      },
      {
        "name": "end",
        "type": "Point"
      }
    ],
    "description": "Set the end point of the Arc arc to be the Point end. If the end point is not on the Arc, the point is dropped perpendicularly onto the Arc to define the actual end point that lies on the Arc. The function return value is the actual end point on the arc."
  },
  {
    "name": "Reverse",
    "id": 268,
    "returnType": "Arc",
    "parameters": [
      {
        "name": "arc",
        "type": "Arc"
      }
    ],
    "description": "Reverse the sign of the radius and swap the start and end points of the Arc arc. Hence the direction of travel for the Arc is reversed. The unary operator \"-\" will also reverse an Arc. The function return value is the Arc arc."
  },
  {
    "name": "Set_type",
    "id": 1805,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "spiral",
        "type": "Spiral"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "LJG - this could have problems with changes. This is broken for V8, V9, V10 V7? depends on file Spirals.4d; type = 0 clothoid, 1 westrail cubic, 2 cubic spiral 3 natural clothoid (LandXML) 4 NSW cubic parabola V9? type = 1 clothoid, 2 westrail cubic, 3 clothoid LandXML 4 Cubic spiral 5 Natural clothoid 6 Cubic parabola"
  },
  {
    "name": "Set_leading",
    "id": 1806,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "transition",
        "type": "Spiral"
      },
      {
        "name": "leading",
        "type": "Integer"
      }
    ],
    "description": "Set whether transition is a leading transition (radius decreases along the transition) or a trailing transition (radius increases along the transition). If leading is non-zero then it is a leading transition. If leading is zero then it is a trailing transition. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_length",
    "id": 1807,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "transition",
        "type": "Spiral"
      },
      {
        "name": "length",
        "type": "Real"
      }
    ],
    "description": "Set the length of the full length transition to length. A function return value of zero indicates that the function call was successful. Note - the length of the transition is defined from the position on the transition where the radius is infinity (i.e. is a straight) to the other end of the transition. For a leading transition, the radius is infinity at the start of the transition. For a trailing transition, the radius is infinity at the end of the transition."
  },
  {
    "name": "Set_radius",
    "id": 1808,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "radius",
        "type": "Real"
      }
    ],
    "description": "Sign of radius. For a leading transition, set the end radius of the transition trans to radius. For a trailing transition, set the start radius of the transition trans to radius. Page 222 Spirals and Transitions Chapter 5 12dPL Library Calls Note - the radius is a signed value. \uf020 If radius > 0 the transition curves to the right.\uf020 If radius <0, the transition curves to the left. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_direction",
    "id": 1809,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "For the end of the transition trans where the radius is infinity, set the angle of the tangent at that position to angle. angle is in radians and is measured in a counterclockwise direction from the positive x-axis. For a leading transition, set the angle of the tangent at the start of trans to angle. For a trailing transition, set the angle of the tangent at the end of trans to angle. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_anchor",
    "id": 1810,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "point",
        "type": "Real"
      }
    ],
    "description": "For the end of the transition trans where the radius is infinity, set the co-ordinates of that position to point. For a leading transition, the anchor point is the start of trans. For a trailing transition, the anchor point is the end of trans. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_start_length",
    "id": 1811,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "start_length",
        "type": "Real"
      }
    ],
    "description": "Set the start length of the transition trans to start_length. A function return value of zero indicates that the function call was successful. Note - the start length is the distance from the position on the full transition where the radius is infinity (anchor point) to the start of the transition. If the start_length is non-zero then it is not a full transition but a partial transition."
  },
  {
    "name": "Set_start_height",
    "id": 1813,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "For the transition trans, set the z-value at the position start length along the transition to height. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_end_height",
    "id": 1814,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "For the transition trans, set the z-value at the position end length along the transition to height. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Get_valid",
    "id": 1815,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "If trans is a valid transition, then the function return value is zero. If trans is not a valid transition, then the function return value is non-zero. Note - the parameters given to define the transition may be inconsistent and not be able to define an actual transition."
  },
  {
    "name": "Get_leading",
    "id": 1817,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "A transition is a leading transition if the radius decreases along the transition, or a trailing transition if the radius increases along the transition. If trans is a leading transition then return a non-zero function return value. If trans is a trailing transition then return zero as the function return value."
  },
  {
    "name": "Get_length",
    "id": 1818,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "For the full transition of trans, return the length to the end of the full transition as the function return value."
  },
  {
    "name": "Get_radius",
    "id": 1819,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "Spirals and Transitions Page 225 12d Model Macro Manual For a leading transition trans, get the radius at the end of the full transition and return it as the function return value. For a trailing transition trans, get the radius at the start of the full transition and return it as the function return value."
  },
  {
    "name": "Get_direction",
    "id": 1820,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "Get the angle of the tangent at the anchor point (the end of the transition trans where the radius is infinity), and return it as the function return value. angle is in radians and is measured in a counterclockwise direction from the positive x-axis. For a leading transition trans, it is the angle of the tangent at the start of the full transition. For a trailing transition trans, it is the angle of the tangent at the end of the full transition."
  },
  {
    "name": "Get_anchor",
    "id": 1821,
    "returnType": "Point",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "Get the co-ordinates of the anchor point (the end of the full transition where the radius is infinity), and return them as the function return value. For a leading transition trans, the anchor point is the start of the full transition. For a trailing transition trans, the anchor point is the end of the full transition."
  },
  {
    "name": "Get_start_length",
    "id": 1822,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "Get the start length of the transition trans and return it as the function return value."
  },
  {
    "name": "Get_end_length",
    "id": 1823,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "Get the end length of the transition trans and return it as the function return value."
  },
  {
    "name": "Get_start_height",
    "id": 1824,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "For the transition trans, get the height at the position start length along the transition and return it as the function return value."
  },
  {
    "name": "Get_end_height",
    "id": 1825,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "For the transition trans, get the height at the position end length along the transition and return it as the function return value."
  },
  {
    "name": "Get_start_point",
    "id": 1826,
    "returnType": "Point",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "For the transition trans, get the Point at the position start length along the transition and return it as the function return value."
  },
  {
    "name": "Get_end_point",
    "id": 1827,
    "returnType": "Point",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "For the transition trans, get the Point at the position end length along the transition and return it as the function return value."
  },
  {
    "name": "Get_local_point",
    "id": 1828,
    "returnType": "Point",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "len",
        "type": "Real"
      }
    ],
    "description": "For the transition trans, get the local co-ordinates (as a Point) of the position at length len from the start of the full transition and return it as the function return value. Note - the transition is in world coordinates and needs to be translated and rotated before getting the local coordinates of the position at length len along the transition."
  },
  {
    "name": "Get_point",
    "id": 1829,
    "returnType": "Point",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "len",
        "type": "Real"
      }
    ],
    "description": "For the transition trans, get the co-ordinates of the position (as a Point) at length len from the start of the full transition, and return it as the function return value."
  },
  {
    "name": "Get_local_angle",
    "id": 1830,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "len",
        "type": "Real"
      }
    ],
    "description": "For the transition trans, get the local angle of the tangent at the position at length len from the start of the full transition, and return it as the function return value. angle is in radians and is measured in a counterclockwise direction from the positive x-axis. Note - the transition is in world coordinates and needs to be translated and rotated before getting the angle of the tangent of the position at length len along the transition."
  },
  {
    "name": "Get_angle",
    "id": 1831,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "len",
        "type": "Real"
      }
    ],
    "description": "For the transition trans, get the angle of the tangent of the position at length len from the start of the full transition, and return it as the function return value. angle is in radians and is measured in a counterclockwise direction from the positive x-axis."
  },
  {
    "name": "Get_radius",
    "id": 1832,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      },
      {
        "name": "len",
        "type": "Real"
      }
    ],
    "description": "For the transition trans, get the radius at the position at length len from the start of the full transition, and return it as the function return value."
  },
  {
    "name": "Get_shift_y",
    "id": 1834,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "shift at end point of transition trans"
  },
  {
    "name": "Get_shift",
    "id": 1835,
    "returnType": "Real",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "shift"
  },
  {
    "name": "Reverse",
    "id": 1803,
    "returnType": "Spiral",
    "parameters": [
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "Create a Spiral that is the same as transition trans but has the reverse travel direction. The created transition is returned as the function return value. So a leading transition becomes a trailing transition and a trailing transition becomes a leading transition. The unary operator \"-\" will also reverse a Spiral. The function return value is the reversed Spiral."
  },
  {
    "name": "Get_type",
    "id": 273,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      }
    ],
    "description": "Get the type of the Segment segment. A Segment type of 1 denotes a Point 2 denotes a Line 3 denotes an Arc 4 denotes a Spiral The function return value is the Segment type."
  },
  {
    "name": "Get_point",
    "id": 274,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&point",
        "type": "Point"
      }
    ],
    "description": "If the Segment is of type 1, the Point of the Segment is returned as point, otherwise it is an error. A function return value of zero indicates the Segment was a Point Segment and that the Point was returned successfully."
  },
  {
    "name": "Get_line",
    "id": 275,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&line",
        "type": "Line"
      }
    ],
    "description": "If the Segment is of type 2, the Line of the Segment is returned as line, otherwise it is an error. A function return value of zero indicates the Segment was a Line Segment and that the Line was returned successfully."
  },
  {
    "name": "Get_arc",
    "id": 276,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&arc",
        "type": "Arc"
      }
    ],
    "description": "Segments Page 231 12d Model Macro Manual If the Segment is of type 3, the Arc of the Segment is returned as arc, otherwise it is an error. A function return value of zero indicates the Segment was an Arc Segment and that the Arc was returned successfully."
  },
  {
    "name": "Get_spiral",
    "id": 1837,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&trans",
        "type": "Spiral"
      }
    ],
    "description": "If the Segment is of type 4, the Spiral of the Segment is returned as transition trans, otherwise it is an error. A function return value of zero indicates the Segment was an Spiral Segment and that the Spiral was returned successfully."
  },
  {
    "name": "Get_start",
    "id": 550,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&point",
        "type": "Point"
      }
    ],
    "description": "Get the start Point of the Segment segment. The start value is returned by Point point. A function return value of zero indicates the start point was successfully returned."
  },
  {
    "name": "Get_end",
    "id": 551,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&point",
        "type": "Point"
      }
    ],
    "description": "Get the end Point of the Segment segment. The end value is returned by Point point. A function return value of zero indicates the end point was successfully returned."
  },
  {
    "name": "Set_point",
    "id": 277,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&segment",
        "type": "Segment"
      },
      {
        "name": "point",
        "type": "Point"
      }
    ],
    "description": "Sets the Segment type to 1 and the Point of the Segment to point. A function return value of zero indicates the Segment was successfully set."
  },
  {
    "name": "Set_line",
    "id": 278,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&segment",
        "type": "Segment"
      },
      {
        "name": "line",
        "type": "Line"
      }
    ],
    "description": "Sets the Segment type to 2 and the Line of the Segment to line. A function return value of zero indicates the Segment was successfully set."
  },
  {
    "name": "Set_arc",
    "id": 279,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&segment",
        "type": "Segment"
      },
      {
        "name": "arc",
        "type": "Arc"
      }
    ],
    "description": "Sets the Segment type to 3 and the Arc of the Segment to arc. A function return value of zero indicates the Segment was successfully set."
  },
  {
    "name": "Set_spiral",
    "id": 1836,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&segment",
        "type": "Segment"
      },
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "Sets the Segment type to 4 and the Spiral of the Segment to transition trans. A function return value of zero indicates the Segment was successfully set."
  },
  {
    "name": "Get_curve",
    "id": 2838,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&curve",
        "type": "Curve"
      }
    ],
    "description": "If the Segment is of type 6, the Curve of the Segment is returned as curve, otherwise it is an error. A function return value of zero indicates the Segment was a Curve Segment and that the Curve was returned successfully."
  },
  {
    "name": "Set_curve",
    "id": 2839,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&segment",
        "type": "Segment"
      },
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Segments Page 233 12d Model Macro Manual Sets the Segment type to 6 and the Curve of the Segment to curve. A function return value of zero indicates the Segment was successfully set."
  },
  {
    "name": "Set_start",
    "id": 552,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&segment",
        "type": "Segment"
      },
      {
        "name": "point",
        "type": "Point"
      }
    ],
    "description": "Set the start Point of the Segment segment. The start value is defined by Point point. A function return value of zero indicates the start point was successfully set."
  },
  {
    "name": "Set_end",
    "id": 553,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&segment",
        "type": "Segment"
      },
      {
        "name": "point",
        "type": "Point"
      }
    ],
    "description": "Set the end Point of the Segment segment. The end value is defined by Point point. A function return value of zero indicates the end point was successfully set."
  },
  {
    "name": "Reverse",
    "id": 280,
    "returnType": "Segment",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      }
    ],
    "description": "Reverse the direction of the Segment segment. Note that the reverse of a segment of type 1 (a Point segment) is simply a point of exactly the same co-ordinates. The unary operator \"-\" will also reverse a Segment. The function return value is the reversed Segment."
  },
  {
    "name": "Get_segments",
    "id": 545,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&nsegs",
        "type": "Integer"
      }
    ],
    "description": "Get the number of segments for a string Element elt. The number of segments is returned as nsegs A function return value of zero indicates the data was successfully returned. Page 234 Segments Chapter 5 12dPL Library Calls Note If a string is open and has n points, then it has n-1 segments. If a string is closed it has the same number of points and segments. If a string is closed and has n points, then it also has n segments. That is, If a string is closed it has the same number of points and segments. For example, a seven point open string has six segments. A seven point closed string has seven segments."
  },
  {
    "name": "Get_segment",
    "id": 546,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&seg",
        "type": "Segment"
      }
    ],
    "description": "Get the segment for the ith segment on the string. The segment is returned as seg. The types of segments returned are Line, or Arc. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_type",
    "id": 2817,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "Set the type of the Curve curve to the Integer type. A return value of zero indicates the function call was successful. The list of values for valid type: 1 Clothoid 2 Westrail Cubic Clothoid 3 Cubic Spiral 4 Natural Clothoid 5 Cubic Parabola 7 Bloss 8 Sinusoidal 9 Cosinusoidal"
  },
  {
    "name": "Get_type",
    "id": 2827,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Return the type of the Curve curve as an Integer. The list of values for valid type: 1 Clothoid 2 Westrail Cubic Clothoid 3 Cubic Spiral 4 Natural Clothoid 5 Cubic Parabola 7 Bloss 8 Sinusoidal 9 Cosinusoidal"
  },
  {
    "name": "Get_leading",
    "id": 2828,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "A Curve is a leading if the radius decreases along the curve or trailing if the radius increases along the curve. If curve is a leading then the function returns one. If curve is trailing then the function returns zero."
  },
  {
    "name": "Set_start_length",
    "id": 2819,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "length",
        "type": "Real"
      }
    ],
    "description": "Set the start length of the Curve curve to the Real length. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_start_length",
    "id": 2842,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Get the start length of Curve curve and return it as the function return value."
  },
  {
    "name": "Set_end_length",
    "id": 2820,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "length",
        "type": "Real"
      }
    ],
    "description": "Set the end length of the Curve curve to the Real length. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_end_length",
    "id": 2843,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Get the end length of Curve curve and return it as the function return value."
  },
  {
    "name": "Set_direction",
    "id": 2821,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "For the end of the Curve curve where the radius is infinity, set the angle of the tangent at that position to angle. The Real angle is in radians and is measured in a counterclockwise direction from the positive x- axis. For a leading curve, set the angle of the tangent at the start of curve to angle. For a trailing curve, set the angle of the tangent at the end of curve to angle. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Get_direction",
    "id": 2831,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Get the angle of the tangent at the anchor point (the end of the Curve curve where the radius is infinity), and return it as the function return value. The returned angle is in radians and is measured in a counterclockwise direction from the positive x- axis. For a leading Curve curve, it is the angle of the tangent at the start of the full curve. For a trailing Curve curve, it is the angle of the tangent at the end of the full curve."
  },
  {
    "name": "Set_anchor",
    "id": 2822,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "point",
        "type": "Point"
      }
    ],
    "description": "For the end of the Curve curve where the radius is infinity, set the co-ordinates of that position to point. For a leading transition, the anchor point is the start of curve. For a trailing transition, the anchor point is the end of curve. Page 238 Curve Chapter 5 12dPL Library Calls A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Get_anchor",
    "id": 2832,
    "returnType": "Point",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Get the coordinates the anchor point (the end of the Curve curve where the radius is infinity), and return it as the function return value. For a leading Curve curve, it is the anchor point is the start of the full curve. For a trailing Curve curve, it is the anchor point is the end of the full curve."
  },
  {
    "name": "Set_start_height",
    "id": 2823,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "For the Curve curve, set the z-value at the position start length along the curve to height. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_end_height",
    "id": 2824,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "For the Curve curve, set the z-value at the position end length along the curve to height. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_offset",
    "id": 2825,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "offset",
        "type": "Real"
      }
    ],
    "description": "Set the offset of the Curve curve to the Real offset. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_valid",
    "id": 2826,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "If curve is a valid Curve, then the function return value is one. If curve is not a valid Curve, then the function return value is zero."
  },
  {
    "name": "Get_start_point",
    "id": 2829,
    "returnType": "Point",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Return the start point of the Curve curve."
  },
  {
    "name": "Get_end_point",
    "id": 2830,
    "returnType": "Point",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Return the end point of the Curve curve."
  },
  {
    "name": "Get_point",
    "id": 2833,
    "returnType": "Point",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "l",
        "type": "Real"
      }
    ],
    "description": "For the Curve curve, get the co-ordinates of the position (as a Point) at length l from the start of the full curve, and return it as the function return value."
  },
  {
    "name": "Get_angle",
    "id": 2834,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "l",
        "type": "Real"
      }
    ],
    "description": "Page 240 Curve Chapter 5 12dPL Library Calls For the Curve curve, get the angle of the tangent of the position at length l from the start of the full curve, and return it as the function return value. The returned angle is in radians and is measured in a counterclockwise direction from the positive x- axis."
  },
  {
    "name": "Get_radius",
    "id": 2835,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      },
      {
        "name": "l",
        "type": "Real"
      }
    ],
    "description": "For the Curve curve, get the radius at the position at length l from the start of the full curve, and return it as the function return value."
  },
  {
    "name": "Get_mvalue",
    "id": 2837,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Return the m-value of the Curve curve. Only use when the type of the curve is cubic parabola; m-value is used in the curve equation \"y = m*x*x*x\"."
  },
  {
    "name": "Get_length",
    "id": 2840,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "For the full Curve of curve, return the length to the end of the full curve as the function return value."
  },
  {
    "name": "Get_end_length",
    "id": 2843,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Get the end length of Curve curve and return it as the function return value."
  },
  {
    "name": "Get_shift_x",
    "id": 2844,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Get the shift x of Curve curve and return it as the function return value. The x in \"shift x\" indicates the direction of the tangent at the start of the full curve. The shift x of a curve is the projected distance from the start point of the of the end point in the \"x\" direction of the curve."
  },
  {
    "name": "Get_shift_y",
    "id": 2845,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Get the shift y of Curve curve and return it as the function return value. The y in \"shift y\" indicates the direction perpendicular to the tangent at the start of the full curve. The shift y of a curve is the projected distance from the start point of the of the end point in the \"y\" direction of the curve."
  },
  {
    "name": "Get_shift",
    "id": 2846,
    "returnType": "Real",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Get the shift of Curve curve and return it as the function return value. The shift of a curve is the distance from the tangent at the start of the full curve to the circle at the end of the full curve."
  },
  {
    "name": "Reverse",
    "id": 2815,
    "returnType": "Curve",
    "parameters": [
      {
        "name": "curve",
        "type": "Curve"
      }
    ],
    "description": "Return the reverse Curve of the input Curve curve. Page 242 Curve Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_length",
    "id": 361,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the plan length of the Segment segment. A function return value of zero indicates the plan length was successfully returned."
  },
  {
    "name": "Get_length_3d",
    "id": 362,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the 3d length of the Segment segment. A function return value of zero indicates the 3d length was successfully returned."
  },
  {
    "name": "Plan_area",
    "id": 360,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "&plan_area",
        "type": "Real"
      }
    ],
    "description": "Calculate the plan area of the Segment segment. For an Arc, the plan area of the sector is returned. For a Line and a Point, zero area is returned. The area is returned in the Real plan_area. A function return value of zero indicates the plan area was successfully returned."
  },
  {
    "name": "Parallel",
    "id": 284,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Line"
      },
      {
        "name": "distance",
        "type": "Real"
      },
      {
        "name": "&parallelled",
        "type": "Line"
      }
    ],
    "description": "Plan parallel the Line line by the distance distance. The parallelled Line is returned as the Line parallelled. The z-values are not modified, i.e. they are the same as for line. A function return value of zero indicates the parallel was successful."
  },
  {
    "name": "Parallel",
    "id": 285,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "arc",
        "type": "Arc"
      },
      {
        "name": "distance",
        "type": "Real"
      },
      {
        "name": "&parallelled",
        "type": "Arc"
      }
    ],
    "description": "Plan parallel the Arc arc by the distance distance. The parallelled Arc is returned as the Arc parallelled. The z-values are not modified, i.e. they are the same as for arc. A function return value of zero indicates the parallel was successful."
  },
  {
    "name": "Parallel",
    "id": 286,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "dist",
        "type": "Real"
      },
      {
        "name": "&parallelled",
        "type": "Segment"
      }
    ],
    "description": "Plan parallel the Segment segment by the distance dist. The parallelled Segment is returned as the Segment parallelled. The z-values are not modified, i.e. they are the same as for segment. If the Segment is of type Point, a Segment is not returned and the function return value is set to non- zero. A function return value of zero indicates the parallel was successful."
  },
  {
    "name": "Fitarc",
    "id": 289,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pt_1",
        "type": "Point"
      },
      {
        "name": "pt_2",
        "type": "Point"
      },
      {
        "name": "pt_3",
        "type": "Point"
      },
      {
        "name": "&fillet",
        "type": "Arc"
      }
    ],
    "description": "Fit a plan arc through the (x,y) co-ordinates of the three Points pt_1, pt_2 and pt_3. The arc is returned as Arc fillet and the z-values of its start and end points are zero. A function return value of zero indicates success. A non-zero return value indicates no arc exists."
  },
  {
    "name": "Fitarc",
    "id": 287,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seg_1",
        "type": "Segment"
      },
      {
        "name": "seg_2",
        "type": "Segment"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "cpt",
        "type": "Point"
      },
      {
        "name": "&fillet",
        "type": "Arc"
      }
    ],
    "description": "Create an plan arc from Segment seg_1 to Segment seg_2 with radius rad. The arc start point is on the extended Segment seg_1 with start direction the same as the direction of seg_1. The arc end point is on the extended Segment seg_2 with end direction the same as the direction of seg_1. If more than one arc satisfies the above conditions, then the arc with centre closest to the Point cpt will be selected. The arc is returned as Arc fillet and the z-values of its start and end points are zero. A function return value of zero indicates an arc exists. A non-zero return value indicates no arc exists."
  },
  {
    "name": "Fitarc",
    "id": 288,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seg_1",
        "type": "Segment"
      },
      {
        "name": "seg_2",
        "type": "Segment"
      },
      {
        "name": "start_tp",
        "type": "Point"
      },
      {
        "name": "&fillet",
        "type": "Arc"
      }
    ],
    "description": "Create a plan arc from Segment seg_1 to Segment seg_2. The arc start point is the perpendicular projection of the Point start_tp onto the extended Segment seg_1. The start direction of the arc is the same as the direction of seg_1. The arc end point is be on the extended Segment seg_2 with end direction the same as the direction of seg_1. There is at most one arc that satisfies the above conditions. The arc is returned as Arc fillet and the z-values of its start and end points are zero. A function return value of zero indicates success. A non-zero return value indicates no arc exists."
  },
  {
    "name": "Tangent",
    "id": 290,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seg_1",
        "type": "Segment"
      },
      {
        "name": "seg_2",
        "type": "Segment"
      },
      {
        "name": "&line",
        "type": "Line"
      }
    ],
    "description": "Create the plan tangent line from the extended Segment seg_1 to the extended Segment set_2. The direction of the Segments seg_1 and seg_2 is used to select a unique tangent line. The tangent line is returned as the Line line with z-values of zero. A function return value of zero indicates there were no errors in the calculations."
  },
  {
    "name": "Intersect",
    "id": 291,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seg_1",
        "type": "Segment"
      },
      {
        "name": "seg_2",
        "type": "Segment"
      },
      {
        "name": "&no_intersects",
        "type": "Integer"
      },
      {
        "name": "&p1",
        "type": "Point"
      },
      {
        "name": "&p2",
        "type": "Point"
      }
    ],
    "description": "Find the internal intersection between the Segments seg_1 and seg_2. That is, only find the intersections of the two Segments that occur between the start and end points of the Segments. The number of intersections is given by no_intersects and the possible intersections are given in Points p1 and p2. The z-values of p1 and p2 are set to zero. There may be zero, one or two intersection points. A function return value of zero indicates there were no errors in the calculations."
  },
  {
    "name": "Intersect_extended",
    "id": 303,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seg_1",
        "type": "Segment"
      },
      {
        "name": "seg_2",
        "type": "Segment"
      },
      {
        "name": "&no_intersects",
        "type": "Integer"
      },
      {
        "name": "&p1",
        "type": "Point"
      },
      {
        "name": "&p2",
        "type": "Point"
      }
    ],
    "description": "Find the intersection between the extended Segments seg_1 and seg_2. The number of intersections is given by no_intersects and the possible intersections are given in Points p1 and p2. The z-values of p1 and p2 are set to zero. There may be zero, one or two intersection points. A function return value of zero indicates there were no errors in the calculations."
  },
  {
    "name": "Line_cut_string",
    "id": 7623,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "px",
        "type": "Real"
      },
      {
        "name": "py",
        "type": "Real"
      },
      {
        "name": "dir",
        "type": "Real"
      },
      {
        "name": "cut_lim",
        "type": "Real"
      },
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "&cx",
        "type": "Real"
      },
      {
        "name": "&cy",
        "type": "Real"
      },
      {
        "name": "&cz",
        "type": "Real"
      }
    ],
    "description": "Find the first intersection between the line starting at px,py,pz in the direction dir within the cut limit cut_lim to the Element string. The x y z cooridnate of the cut is returned in cx cy cz. A function return value of zero indicates success."
  },
  {
    "name": "Line_cut_trimesh_named_edges",
    "id": 7624,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "px",
        "type": "Real"
      },
      {
        "name": "py",
        "type": "Real"
      },
      {
        "name": "dir",
        "type": "Real"
      },
      {
        "name": "cut_lim",
        "type": "Real"
      },
      {
        "name": "edge_name",
        "type": "Text"
      },
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&cx",
        "type": "Real"
      },
      {
        "name": "&cy",
        "type": "Real"
      },
      {
        "name": "&cz",
        "type": "Real"
      },
      {
        "name": "&error_msg",
        "type": "Text"
      }
    ],
    "description": "Find the first intersection between the line starting at px,py,pz in the direction dir within the cut limit cut_lim to an egde of given name edge_name of a trimesh Element trimesh. The x y z cooridnate of the cut is returned in cx cy cz. Some warning and error message would be set to the Text error_msg. A function return value of zero indicates success."
  },
  {
    "name": "Offset_intersect",
    "id": 292,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seg_1",
        "type": "Segment"
      },
      {
        "name": "off_1",
        "type": "Real"
      },
      {
        "name": "seg_2",
        "type": "Segment"
      },
      {
        "name": "off_2",
        "type": "Real"
      },
      {
        "name": "&no_intersects",
        "type": "Integer"
      },
      {
        "name": "&p1",
        "type": "Point"
      },
      {
        "name": "&p2",
        "type": "Point"
      }
    ],
    "description": "Find the internal intersection between the Segments seg_1 and seg_2 that have been perpendicularly offset by the amounts off_1 and off_2 respectively. The number of intersections is given by no_intersects and the possible intersections are given in Points p1 and p2. The z-values of p1 and p2 are set to zero. There may be zero, one or two intersection points. A function return value of zero indicates there were no errors in the calculations."
  },
  {
    "name": "Offset_intersect_extended",
    "id": 304,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seg_1",
        "type": "Segment"
      },
      {
        "name": "off_1",
        "type": "Real"
      },
      {
        "name": "seg_2",
        "type": "Segment"
      },
      {
        "name": "off_2",
        "type": "Real"
      },
      {
        "name": "&no_intersects",
        "type": "Integer"
      },
      {
        "name": "&p1",
        "type": "Point"
      },
      {
        "name": "&p2",
        "type": "Point"
      }
    ],
    "description": "Find the intersection between the extended Segments seg_1 and seg_2 that have been perpendicularly offset by the amounts off_1 and off_2 respectively. The number of intersections is given by no_intersects and the possible intersections are given in Points p1 and p2. The z-values of p1 and p2 are set to zero. There may be zero, one or two intersection points. A function return value of zero indicates there were no errors in the calculations."
  },
  {
    "name": "Angle_intersect",
    "id": 293,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pt_1",
        "type": "Point"
      },
      {
        "name": "ang_1",
        "type": "Real"
      },
      {
        "name": "pt_2",
        "type": "Point"
      },
      {
        "name": "ang_2",
        "type": "Real"
      },
      {
        "name": "&p",
        "type": "Point"
      }
    ],
    "description": "Find the point of intersection of the line going through the Point pt_1 with angle ang_1 and the line going through the Point pt_2 with angle ang_2. The intersection point is returned as Point p. The z-values of p1 and p2 are set to zero. A function return value of zero indicates that the two lines intersect. A function return value of zero indicates there were no errors in the calculations."
  },
  {
    "name": "Get_distance",
    "id": 297,
    "returnType": "Real",
    "parameters": [
      {
        "name": "p1",
        "type": "Point"
      },
      {
        "name": "p2",
        "type": "Point"
      }
    ],
    "description": "Calculate the plan distance between the Points p1 and p2. The function return value is the plan distance."
  },
  {
    "name": "Get_distance_3d",
    "id": 363,
    "returnType": "Real",
    "parameters": [
      {
        "name": "p1",
        "type": "Point"
      },
      {
        "name": "p2",
        "type": "Point"
      }
    ],
    "description": "Calculate the 3d distance between the Points p1 and p2. The function return value is the 3d distance."
  },
  {
    "name": "Get_distance",
    "id": 7695,
    "returnType": "Real",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      }
    ],
    "description": "Calculate the plane distance between the two points with x-y coordinates x1,y1 and x2,y2. The function return value is the plan distance."
  },
  {
    "name": "Get_distance",
    "id": 7696,
    "returnType": "Real",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "z1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "z2",
        "type": "Real"
      }
    ],
    "description": "Calculate the 3d distance between the two points with x-y-z coordinates x1,y1,z1 and x2,y2,z2. The function return value is the 3d distance."
  },
  {
    "name": "Locate_point",
    "id": 298,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "from",
        "type": "Point"
      },
      {
        "name": "ang",
        "type": "Real"
      },
      {
        "name": "dist",
        "type": "Real"
      },
      {
        "name": "&to",
        "type": "Point"
      }
    ],
    "description": "Create the Point to which is a plan distance dist along the line of angle ang which goes through the Point from. The z-value of to is the same as the z-value of from. A function return value of zero indicates there were no errors in the calculations."
  },
  {
    "name": "Drop_point",
    "id": 299,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "pt_to_drop",
        "type": "Point"
      },
      {
        "name": "&dropped_pt",
        "type": "Point"
      }
    ],
    "description": "Drop a Point pt_to_drop perpendicularly in plan onto the Segment segment. The position of the dropped point on the Segment in returned in the Point dropped_pt. If the point cannot be dropped perpendicularly onto the Segment, then the point is dropped onto the closest end point of the Segment. A z-value for dropped_pt is created by interpolation. A function return value of zero indicates the point was dropped successfully."
  },
  {
    "name": "Drop_point",
    "id": 306,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "pt_to_drop",
        "type": "Point"
      },
      {
        "name": "&dropped_pt",
        "type": "Point"
      },
      {
        "name": "&dist",
        "type": "Real"
      }
    ],
    "description": "Drop a Point pt_to_drop onto the Segment segment. The position of the dropped point on the Segment in returned in the Point dropped_pt. The plan distance from pt_to_drop to dropped_pt is returned as dist. If the point cannot be dropped perpendicularly onto the Segment, then the point is dropped onto the closest end point of the Segment. A z-value for dropped_pt is created by interpolation. A function return value of zero indicates the point was dropped successfully."
  },
  {
    "name": "Projection",
    "id": 300,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "dist",
        "type": "Real"
      },
      {
        "name": "&projected_pt",
        "type": "Point"
      }
    ],
    "description": "Create the Point projected_pt that is a plan distance of dist along from the start of the extended Segment segment. The z-value for projected_pt is calculated by linear interpolation. Note that for an Arc, the z- value is interpolated for one full circuit of the arc beginning at the start point and the one circuit is used for z-values for distances greater than the length of one circuit. A function return value of zero indicates the projection was successful."
  },
  {
    "name": "Projection",
    "id": 301,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "segment",
        "type": "Segment"
      },
      {
        "name": "start_point",
        "type": "Point"
      },
      {
        "name": "dist",
        "type": "Real"
      },
      {
        "name": "&projected_pt",
        "type": "Point"
      }
    ],
    "description": "Create the Point projected_pt that is a plan distance of dist along the extended Segment segment where distance is measured from the Point start_point. If start_point does not lie on the extended Segment, then start_point is automatically dropped onto the extended Segment to create the start point for distance measurement. The z-value for projected_pt is calculated by linear interpolation. Note that for an Arc, the z- value is interpolated for one full circuit of the arc beginning at the start point and the one circuit is used for z-values for distances greater than the length of one circuit. A function return value of zero indicates the projection was successful."
  },
  {
    "name": "Change_of_angle",
    "id": 656,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "x3",
        "type": "Real"
      },
      {
        "name": "y3",
        "type": "Real"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "Calculate the deflection angle between the directed line going from (x1,y1) to (x2,y2) and the directed line going from (x2,x2) and (x3,y3) where the deflection angle is measured in radians and in a CLOCKWISE direction. The deflection angle is returned in angle. (x3,y3) deflection angle directed line from (x2,y2) to (x3,y3) (x2,y2) directed line from (x1,y1) x1,y1) to (x2,y2) The use of clockwise fits in with the definition of travelling along a road where going to the right is considered positive and going to the left is considered negative. WARNING: This is not the normal mathematical angle between the two vectors which is measured in the counter clockwise direction and would be the negative of this value. A function return value of zero indicates the angle was returned successfully."
  },
  {
    "name": "Change_of_angle",
    "id": 657,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "L1",
        "type": "Line"
      },
      {
        "name": "L2",
        "type": "Line"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "Calculate the deflection angle between the line L1 and the line L2 where the deflection angle is measured in radians and in a CLOCKWISE direction. The deflection angle is returned in angle. end of line L2 deflection angle line L2 start of line L2 end of line L1 line L1 start of line L1 The use of clockwise fits in with the definition of travelling along a road where going to the right is considered positive and going to the left is considered negative. WARNING: This is not the normal mathematical angle between the two vectors which is measured in the counter clockwise direction and would be the negative of this value. A function return value of zero indicates the angle was returned successfully."
  },
  {
    "name": "Colour_exists",
    "id": 66,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "col_name",
        "type": "Text"
      }
    ],
    "description": "Checks if a colour of name col_name exists in 12dPL. The colour name to check for is given by Text col_name. A non-zero function return value indicates the colour exist. A zero function return value indicates the colour does not exist. Warning - this is the opposite to most 12dPL function return values"
  },
  {
    "name": "Colour_exists",
    "id": 65,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "col_number",
        "type": "Integer"
      }
    ],
    "description": "Checks if a number is a valid colour number. The number to check for is given by Integer col_number. A non-zero function return value indicates the number is a valid colour number. A zero function return value indicates the number is not a valid colour number. Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Convert_colour",
    "id": 67,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "col_name",
        "type": "Text"
      },
      {
        "name": "&col_number",
        "type": "Integer"
      }
    ],
    "description": "Tries to convert the Text col_name to a colour number. If successful, the colour number is returned in Integer col_number. A function return value of zero indicates the conversion was successful."
  },
  {
    "name": "Convert_colour",
    "id": 68,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "col_number",
        "type": "Integer"
      },
      {
        "name": "&col_name",
        "type": "Text"
      }
    ],
    "description": "Tries to convert the Integer col_number to a colour name. If successful, the colour name is returned in Text col_name. A function return value of zero indicates the conversion was successful."
  },
  {
    "name": "Convert_colour",
    "id": 2138,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "value",
        "type": "Integer"
      },
      {
        "name": "&red",
        "type": "Integer"
      },
      {
        "name": "&green",
        "type": "Integer"
      },
      {
        "name": "&blue",
        "type": "Integer"
      }
    ],
    "description": "Convert the colour number value to its red, green and blue components (0-255) and return them in red, green and blue respectively. A function return value of zero indicates the colour was successfully converted."
  },
  {
    "name": "Get_project_colours",
    "id": 235,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&colours",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get a Dynamic_Text of all the colour names defined for the project. The colour names are returned in the Dynamic_Text colours. A function return value of zero indicates the colours were returned successfully."
  },
  {
    "name": "Attribute_exists",
    "id": 1939,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if an attribute with the name att_name exists in the Attributes attr. att_name can have a full path name of the attribute. Attribute names are case sensitive and they support the array syntax. A non-zero function return value indicates that the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Attribute_exists",
    "id": 1940,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&no",
        "type": "Integer"
      }
    ],
    "description": "Checks to see if an attribute with the name att_name exists in the Attributes attr. att_name can have a full path name of the attribute. Attribute names are case sensitive and they support the array syntax. If the attribute exists, its position is returned in Integer no. This position can be used in other Attribute functions. A non-zero function return value indicates the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Attribute_delete",
    "id": 1941,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "User Defined Attributes Page 261 12d Model Macro Manual Deletes the first attribute with the name att_name from the Attributes attr. Attribute names are case sensitive and they support the array syntax. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Attribute_delete",
    "id": 1942,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      }
    ],
    "description": "Delete the attribute with the attribute number att_no from the Attributes attr. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Attribute_delete_all",
    "id": 1943,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      }
    ],
    "description": "Delete all attributes from the Attributes attr. A function return value of zero indicates all the attribute were deleted."
  },
  {
    "name": "Move_attributes",
    "id": 7803,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "target",
        "type": "Attributes"
      },
      {
        "name": "source",
        "type": "Attributes"
      }
    ],
    "description": "Move the content of Attributes source to the end of target. Note that the source will not be valid after the move. A function return value of zero indicates the attribute were moved."
  },
  {
    "name": "Move_attributes",
    "id": 7819,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "target",
        "type": "Attributes"
      },
      {
        "name": "count",
        "type": "Integer"
      },
      {
        "name": "source_array[]",
        "type": "Attributes"
      }
    ],
    "description": "Move the all content of count number in Attributes source_array to the end of target. Note that the source_array will not be valid after the move. A function return value of zero indicates the attribute were moved."
  },
  {
    "name": "Get_number_of_attributes",
    "id": 1944,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "&no_atts",
        "type": "Integer"
      }
    ],
    "description": "Get the number of top level attributes in the Attributes attr. The number is returned in no_atts. A function return value of zero indicates the number is successfully returned."
  },
  {
    "name": "Get_attribute",
    "id": 1945,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name and return the attribute value in att. The attribute must be of type Text. If the attribute is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 1946,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name and return the attribute value in att. The attribute must be of type Integer. If the attribute is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 1947,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name and return the attribute value in att. The attribute must be of type Real. If the attribute is not of type Real then a non-zero return value is returned. User Defined Attributes Page 263 12d Model Macro Manual A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 1948,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Uid"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name and return the attribute value in att. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 1949,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name and return the attribute value in att. The attribute must be of type Attributes. If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attributes value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 3243,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Integer64"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name and return the attribute value in att. The attribute must be of type 64 bit Integer. If the attribute is not of type 64 bit Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 3244,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Guid"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name and return the attribute value in att. The attribute must be of type Guid. If the attribute is not of type Guid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 3393,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attribute_Blob"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name and return the attribute value in att. The attribute must be of type Attribute_Blob. If the attribute is not of type Attribute_Blob then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 1950,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "From the Attributes attr, get the first attribute with number att_no and return the attribute value in att. The attribute must be of type Text. If the attribute is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute",
    "id": 1951,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "User Defined Attributes Page 265 12d Model Macro Manual From the Attributes attr, get the first attribute with number att_no and return the attribute value in att. The attribute must be of type Integer. If the attribute is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute",
    "id": 1952,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "From the Attributes attr, get the first attribute with number att_no and return the attribute value in att. The attribute must be of type Real. If the attribute is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute",
    "id": 1953,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Uid"
      }
    ],
    "description": "From the Attributes attr, get the first attribute with number att_no and return the attribute value in att. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute",
    "id": 1954,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "From the Attributes attr, get the first Attribute with number att_no and return the Attributes value in att. The attribute must be of type Attributes. Page 266 User Defined Attributes Chapter 5 12dPL Library Calls If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute",
    "id": 3245,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Integer64"
      }
    ],
    "description": "From the Attributes attr, get the first attribute with number att_no and return the attribute value in att. The attribute must be of type 64 bit Integer. If the attribute is not of type 64 bit Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute",
    "id": 3246,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Guid"
      }
    ],
    "description": "From the Attributes attr, get the first attribute with number att_no and return the attribute value in att. The attribute must be of type Guid. If the attribute is not of type Guid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute",
    "id": 3394,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attribute_Blob"
      }
    ],
    "description": "From the Attributes attr, get the first attribute with number att_no and return the attribute value in att. The attribute must be of type Attribute_Blob. If the attribute is not of type Attribute_Blob then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. User Defined Attributes Page 267 12d Model Macro Manual Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute_name",
    "id": 1955,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "From the Attributes attr, get the attribute with number att_no and return the Text value in name. The attribute must be of type Text. If the attribute is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute_type",
    "id": 1956,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the attribute with the name att_name from the Attribute attr. The type is returned in att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_attribute_type",
    "id": 1957,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_num",
        "type": "Integer"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the attribute with the number att_num from the Attribute attr. The type is returned in att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type is successfully returned."
  },
  {
    "name": "Get_attribute_length",
    "id": 1959,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "For the Attributes attr, get the length in bytes of the attribute with number att_no. The number of bytes is returned in att_len. This is mainly for use with attributes of types Text and Binary (blobs) A function return value of zero indicates the attribute length is successfully returned."
  },
  {
    "name": "Set_attribute",
    "id": 1960,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name does not exist then create it as type Text and give it the value att.\uf020 if the first attribute called att_name does exist and it is type Text, then set its value to att. If the attribute exists and is not of type Text, then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 1961,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name does not exist then create it as type Integer and give it the value att.\uf020 if the attribute called att_name does exist and it is type Integer, then set its value to att. If the attribute exists and is not of type Integer then a non-zero return value is returned. User Defined Attributes Page 269 12d Model Macro Manual A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 1962,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name does not exist then create it as type Real and give it the value att.\uf020 if the first attribute called att_name does exist and it is type Real, then set its value to att. If the attribute exists and is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 1963,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Uid"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name does not exist then create it as type Uid and give it the value att.\uf020 if the first attribute called att_name does exist and it is type Uid, then set its value to att. If the attribute exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 1964,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name does not exist then create it as type Attributes and give it the value att.\uf020 if the first attribute called att_name does exist and it is type Attributes, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 3247,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Integer64"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name does not exist then create it as type 64 bit Integer and give it the value att.\uf020 if the first attribute called att_name does exist and it is type 64 bit Integer, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 3248,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Guid"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name does not exist then create it as type Guid and give it the value att.\uf020 if the first attribute called att_name does exist and it is type Guid, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 3395,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attribute_Blob"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name does not exist then create it as type Attribute_Blob (binary) and give it the value att.\uf020 if the first attribute called att_name does exist and it is type Attribute_Blob (binary), then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 1966,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "For the Attributes attr, if the attribute number att_no exists and it is of type Integer, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_attribute",
    "id": 1967,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "For the Attributes attr, if the attribute number att_no exists and it is of type Real, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_attribute",
    "id": 1969,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Attributes attr, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no Attributes with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_attribute",
    "id": 3250,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Integer64"
      }
    ],
    "description": "For the Attributes attr, if the attribute number att_no exists and it is of type 64 bit Integer, then its value is set to att. If there is no Attributes with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type 64 bit Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_attribute",
    "id": 3396,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attribute_Blob"
      }
    ],
    "description": "For the Attributes attr, if the attribute number att_no exists and it is of type Attribute_Blob (binary), then its value is set to att. If there is no Attributes with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attribute_Blob (binary) then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Attribute_debug",
    "id": 1971,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      }
    ],
    "description": "For internal 12d Solutions use only. Write out even more information about the Attributes attr to the Output Window. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_attribute_by_type",
    "id": 3251,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name with the type Text and return the attribute value in att. If there is no such attribute then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Page 274 User Defined Attributes Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_attribute_by_type",
    "id": 3252,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name with the type Integer and return the attribute value in att. If there is no such attribute then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned."
  },
  {
    "name": "Get_attribute_by_type",
    "id": 3253,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name with the type Real and return the attribute value in att. If there is no such attribute then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned."
  },
  {
    "name": "Get_attribute_by_type",
    "id": 3254,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Uid"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name with the type Uid and return the attribute value in att. If there is no such attribute then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned."
  },
  {
    "name": "Get_attribute_by_type",
    "id": 3255,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name with the type Attributes (group) and return the attribute value in att. If there is no such attribute then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. User Defined Attributes Page 275 12d Model Macro Manual"
  },
  {
    "name": "Get_attribute_by_type",
    "id": 3256,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Integer64"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name with the type 64 bit Integer and return the attribute value in att. If there is no such attribute then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned."
  },
  {
    "name": "Get_attribute_by_type",
    "id": 3257,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Guid"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name with the type Guid and return the attribute value in att. If there is no such attribute then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned."
  },
  {
    "name": "Get_attribute_by_type",
    "id": 3397,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attribute_Blob"
      }
    ],
    "description": "From the Attributes attr, get the first attribute called att_name with the type Attribute_Blob (binary) and return the attribute value in att. If there is no such attribute then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned."
  },
  {
    "name": "Set_attribute_by_type",
    "id": 3258,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name with type Text does not exist then create it and give it the value att.\uf020 if the attributes called att_name with type Text does exist, then assign the value of the first one to att. A function return value of zero indicates the attribute value is successfully set. Page 276 User Defined Attributes Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Set_attribute_by_type",
    "id": 3259,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name with type Integer does not exist then create it and give it the value att.\uf020 if the attributes called att_name with type Integer does exist, then assign the value of the first one to att. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Set_attribute_by_type",
    "id": 3260,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name with type Real does not exist then create it and give it the value att.\uf020 if the attributes called att_name with type Real does exist, then assign the value of the first one to att. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Set_attribute_by_type",
    "id": 3261,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Uid"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name with type Uid does not exist then create it and give it the value att.\uf020 if the attributes called att_name with type Uid does exist, then assign the value of the first one to att. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Set_attribute_by_type",
    "id": 3262,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name with type Attributes (group) does not exist then create it and give it User Defined Attributes Page 277 12d Model Macro Manual the value att.\uf020 if the attributes called att_name with type Attributes (group) does exist, then assign the value of the first one to att. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Set_attribute_by_type",
    "id": 3263,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Integer64"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name with type 64 bit Integer does not exist then create it and give it the value att.\uf020 if the attributes called att_name with type 64 bit Integer does exist, then assign the value of the first one to att. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Set_attribute_by_type",
    "id": 3264,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Guid"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name with type Guid does not exist then create it and give it the value att.\uf020 if the attributes called att_name with type Guid does exist, then assign the value of the first one to att. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Set_attribute_by_type",
    "id": 3398,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attribute_Blob"
      }
    ],
    "description": "For the Attributes attr,\uf020 if the attribute called att_name with type Attribute_Blob (binary) does not exist then create it and give it the value att.\uf020 if the attributes called att_name with type Attribute_Blob (binary) does exist, then assign the value of the first one to att. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Insert_attribute_at_position",
    "id": 3659,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "For the Attributes attr, insert a new attribute called att_name with type Integer and with the value att at the given index position. All existing attributes with the old indices greater or equal position will have their indices increased by one. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Insert_attribute_at_position",
    "id": 3660,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "For the Attributes attr, insert a new attribute called att_name with type Real and with the value att at the given index position. All existing attributes with the old indices greater or equal position will have their indices increased by one. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Insert_attribute_at_position",
    "id": 3661,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Uid"
      }
    ],
    "description": "For the Attributes attr, insert a new attribute called att_name with type Uid and with the value att at the given index position. All existing attributes with the old indices greater or equal position will have their indices increased by one. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Insert_attribute_at_position",
    "id": 3663,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attribute_Blob"
      }
    ],
    "description": "For the Attributes attr, insert a new attribute called att_name with type Attribute_Blob (binary) and with the value att at the given index position. All existing attributes with the old indices greater or equal position will have their indices increased by one. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Insert_attribute_at_position",
    "id": 3664,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Integer64"
      }
    ],
    "description": "For the Attributes attr, insert a new attribute called att_name with type 64 bit Integer and with the value att at the given index position. All existing attributes with the old indices greater or equal position will have their indices increased by one. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Insert_attribute_at_position",
    "id": 3665,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Guid"
      }
    ],
    "description": "For the Attributes attr, insert a new attribute called att_name with type Guid and with the value att at the given index position. All existing attributes with the old indices greater or equal position will have their indices increased by one. A function return value of zero indicates the attribute value is successfully set."
  },
  {
    "name": "Directory_exists",
    "id": 2468,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "folder_name",
        "type": "Text"
      }
    ],
    "description": "Check if a folder of name folder_name exists. If folder_name is a relative path, the folder is checked in the current working folder of the project. If folder_name is an absolute (starts with say C:, \\\\, //), then the folder is checked using the absolute path. A non-zero function return value indicates that the folder exists. A zero function return value indicates that the folder does not existed. Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "List_files_in_folder",
    "id": 7895,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input_folder",
        "type": "Text"
      },
      {
        "name": "search_pattern",
        "type": "Text"
      },
      {
        "name": "&output_count",
        "type": "Integer"
      },
      {
        "name": "&output_file_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Search all files with names following search_pattern from a given input_folder. The number of files is returned in output_count, the list of file names is returned in output_file_names. A function return value of zero indicates the function was successful."
  },
  {
    "name": "List_files_in_folder",
    "id": 8011,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input_folder",
        "type": "Text"
      },
      {
        "name": "search_pattern",
        "type": "Text"
      },
      {
        "name": "recursive_mode",
        "type": "Integer"
      },
      {
        "name": "&output_count",
        "type": "Integer"
      },
      {
        "name": "&file_names",
        "type": "Dynamic_Text"
      },
      {
        "name": "&file_sizes",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&times_created",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&times_modified",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&times_accessed",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&attributes",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&output_message",
        "type": "Text"
      }
    ],
    "description": "Search all files/directory with names following search_pattern from a given input_folder. The number of files is returned in output_count, the list of file names is returned in file_names; other information of the files are returned in file_sizes times_created times_modified times_accessed attributes. List of valid values for recursive_mode : Folders Page 281 12d Model Macro Manual 1 - search all files on the local folder only, output names are relative to input folder 2 - search all directories on the local folder only, output names are relative to input folder 3 - search all files and directories on the local folder only, output names are relative to input folder 4 - search all files on the local folder only, output names are absolute 5 - search all directories on the local folder only, output names are absolute 6 - search all files and directories on the local folder only, output names are absolute 11 - search all files on the local folder and also sub folders recursively 12 - search all directories on the local folder and also sub folders recursively 13 - search all files and directories on the local folder and also sub folders recursively 21 - search all files on the local folder and also sub folders breadth first recursively 22 - search all directories on the local folder and also sub folders breadth first recursively 23 - search all files and directories on the local folder and also sub folders breadth first recursively A function return value of zero indicates the function was successful."
  },
  {
    "name": "List_files_in_folder",
    "id": 8042,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input_folder",
        "type": "Text"
      },
      {
        "name": "recursive_mode",
        "type": "Integer"
      },
      {
        "name": "&output_count",
        "type": "Integer"
      },
      {
        "name": "&file_names",
        "type": "Dynamic_Text"
      },
      {
        "name": "&file_sizes",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&times_created",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&times_modified",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&times_accessed",
        "type": "Dynamic_Integer64"
      },
      {
        "name": "&attributes",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&output_message",
        "type": "Text"
      }
    ],
    "description": "Search all files/directory from a given input_folder. The number of files is returned in output_count, the list of file names is returned in file_names; other information of the files are returned in file_sizes times_created times_modified times_accessed attributes. List of valid values for recursive_mode : 1 - search all files on the local folder only, output names are relative to input folder 2 - search all directories on the local folder only, output names are relative to input folder 3 - search all files and directories on the local folder only, output names are relative to input folder 4 - search all files on the local folder only, output names are absolute 5 - search all directories on the local folder only, output names are absolute 6 - search all files and directories on the local folder only, output names are absolute 11 - search all files on the local folder and also sub folders recursively 12 - search all directories on the local folder and also sub folders recursively 13 - search all files and directories on the local folder and also sub folders recursively 21 - search all files on the local folder and also sub folders breadth first recursively 22 - search all directories on the local folder and also sub folders breadth first recursively 23 - search all files and directories on the local folder and also sub folders breadth first recursively A function return value of zero indicates the function was successful. Page 282 Folders Chapter 5 12dPL Library Calls"
  },
  {
    "name": "List_subfolders_in_folder",
    "id": 7896,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input_folder",
        "type": "Text"
      },
      {
        "name": "search_pattern",
        "type": "Text"
      },
      {
        "name": "&output_count",
        "type": "Integer"
      },
      {
        "name": "&output_subfolder_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Search all subfolders with names following search_pattern from a given input_folder. The number of files is returned in output_count, the list of subfolder names is returned in output_subfolder_names. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_file_size",
    "id": 2407,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&size",
        "type": "Integer"
      }
    ],
    "description": "Get the size in bytes of the file named file_name and returns the number of bytes in Integer size. Note that the file needs to be a file of size less than 2 Gigabytes. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_file_size",
    "id": 3874,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&size",
        "type": "Integer64"
      }
    ],
    "description": "Get the size in bytes of the file named file_name and returns the number of bytes in 64bit Integer size. Note that the size of the file can be larger than 2 Gigabytes. s A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_file_created_time_utc",
    "id": 3875,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&time",
        "type": "Integer64"
      }
    ],
    "description": "Get the created time as the number of seconds elapsed since midnight, January 1st 1970 UTC of file_name and returns the number of bytes in 64bit Integer time. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_file_modified_time_utc",
    "id": 3876,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&time",
        "type": "Integer64"
      }
    ],
    "description": "Get the last modified time as the number of seconds elapsed since midnight, January 1st 1970 UTC of file_name and returns the number of bytes in 64bit Integer time. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_file_accessed_time_utc",
    "id": 3877,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&time",
        "type": "Integer64"
      }
    ],
    "description": "Get the accessed time as the number of seconds elapsed since midnight, January 1st 1970 UTC of file_name and returns the number of bytes in 64bit Integer time. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Touch_file_modified_time",
    "id": 7984,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "path_name",
        "type": "Text"
      }
    ],
    "description": "Change the modified time of path_name to the current time. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Touch_file_accessed_time",
    "id": 7985,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "path_name",
        "type": "Text"
      }
    ],
    "description": "Change the accessed time of path_name to the current time. A function return value of zero indicates the function was successful."
  },
  {
    "name": "File_contains",
    "id": 3878,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Text"
      },
      {
        "name": "search_text",
        "type": "Text"
      },
      {
        "name": "case_sensitive",
        "type": "Integer"
      },
      {
        "name": "whole_word",
        "type": "Integer"
      },
      {
        "name": "&found",
        "type": "Integer"
      }
    ],
    "description": "Search for the key word search_text in a given text file and set the output Integer found to 1 if the file Page 284 Folders Chapter 5 12dPL Library Calls contain the key word; 0 otherwise. The search is case sensitive if case_sensitive is 1; and the search is looking for only the whole word if whole_word is 1. A function return value of zero indicates the function was successful."
  },
  {
    "name": "File_contains_XML_element",
    "id": 3930,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Text"
      },
      {
        "name": "search_mode",
        "type": "Integer"
      },
      {
        "name": "search_for",
        "type": "Text"
      },
      {
        "name": "&found",
        "type": "Integer"
      }
    ],
    "description": "Search for the key word search_node in a given XML file and set the output Integer found to 1 if the file contain the key word; 0 otherwise. The valid values for Integer search_mode are: 0 search names only 1 search attributes only 2 search values only 3 search all A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_file_encoding",
    "id": 3821,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&encode",
        "type": "Integer"
      }
    ],
    "description": "Get the encoding style encode of the file named file_name. List of encoding File_Encoding_Error -1 File_Encoding_None 0 File_Encoding_UTF_8 1 File_Encoding_UTF_16_LE 2 File_Encoding_UTF_16_BE 3 File_Encoding_UTF_32_LE 4 File_Encoding_UTF_32_BE 5 A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_file_read_only",
    "id": 7744,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&read_only",
        "type": "Integer"
      }
    ],
    "description": "Folders Page 285 12d Model Macro Manual Get the read_only property of the file named file_name: 1 means true, 0 means false A function return value of zero indicates the function was successful."
  },
  {
    "name": "Set_file_read_only",
    "id": 7745,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "read_only",
        "type": "Integer"
      }
    ],
    "description": "Set the read_only property of the file named file_name: 1 means true, 0 means false A function return value of zero indicates the function was successful."
  },
  {
    "name": "Directory_create",
    "id": 2470,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "folder_name",
        "type": "Text"
      }
    ],
    "description": "Create the folder folder_name in the current working folder (the folder name can not contain any paths) Note - Directory_create_recursive will create a folder tree. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Directory_create_recursive",
    "id": 2471,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "folder_name",
        "type": "Text"
      }
    ],
    "description": "Create the folder folder_name. The folder name can contain paths and if any of the folders along the path do not exist, then they will also be created. If folder_name does not contain any path then the folder is created in the current working folder. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Directory_delete",
    "id": 2469,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "folder_name",
        "type": "Text"
      }
    ],
    "description": "If the folder named folder_name is empty, delete the folder folder_name. Note - Directory_delete_recursive will delete a non-empty folder and all of its sub-folders. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Directory_delete_recursive",
    "id": 2472,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "folder_name",
        "type": "Text"
      }
    ],
    "description": "Delete the folder named folder_name, and all the sub-folders of folder_name. A function return value of zero indicates the function was successful. WARNING Using a folder name of d: will delete the entire d drive. You have been warned."
  },
  {
    "name": "Is_absolute_path",
    "id": 7814,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "path_name",
        "type": "Text"
      }
    ],
    "description": "Check the given directory path_name is absolute path . A function return value of one indicates the path is absolute; zero indicates the path is not absolute."
  },
  {
    "name": "Get_absolute_path",
    "id": 7815,
    "returnType": "Text",
    "parameters": [
      {
        "name": "path_name",
        "type": "Text"
      }
    ],
    "description": "Return the text representing the absolute path from the given directory path_name. For examples: Get_absolute_path(\"$LIB/\"); // return the absolute path to the library folder Get_absolute_path(\"$USER_LIB/\"); // return the absolute path to the user library folder Get_absolute_path(\"options_logs/\"); // usually return the absolute path to options usage folder in the working project"
  },
  {
    "name": "Get_program_version_number",
    "id": 2291,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return value is the 12d Model version number. For example, 14 for 12d Model 14C1c"
  },
  {
    "name": "Get_program_major_version_number",
    "id": 2292,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return value is the 12d Model major version number. That is 1 for C1, 2 for C2 etc, 0 for Alpha or Beta. For example, 1 for 12d Model 14C1c"
  },
  {
    "name": "Get_program_minor_version_number",
    "id": 2293,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return value is the 12d Model minor version number. That is 1 for a, 2 for b, 3 of c etc. For example, 3 for 12d Model 14C1c"
  },
  {
    "name": "Get_program_folder_version_number",
    "id": 2294,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return value is the 12d Model folder version number. For example, 00 in \"Program Files\\12dModel\\14.00"
  },
  {
    "name": "Get_program_build_number",
    "id": 2295,
    "returnType": "Integer",
    "parameters": [],
    "description": "Page 288 12d Model Program and Folders Chapter 5 12dPL Library Calls The function return value is the 12d Model build number. This is for internal use only and for minidumps."
  },
  {
    "name": "Get_program_patch_version_name",
    "id": 2297,
    "returnType": "Text",
    "parameters": [],
    "description": "The function return value is a special patch version description for pre-release versions and it is written after the 12d Model version information. It is blank for release versions. For example \"Alpha 274 SLF,SLX,Image Dump - Not For Production\""
  },
  {
    "name": "Get_program_full_title_name",
    "id": 2298,
    "returnType": "Text",
    "parameters": [],
    "description": "The function return value is the full name that is written out after 12d Model on the top of the 12d Model Window. For example \"10.0 Alpha 274 SLF,SLX,Image Dump - Not For Production\""
  },
  {
    "name": "Get_program",
    "id": 2299,
    "returnType": "Text",
    "parameters": [],
    "description": "The function return value is the full path to where the 12d.exe is on disk. It includes the \"12d.exe\". For example \"C:\\Program Files\\12d\\12dmodel\\10.00\\nt.x86\\12d.exe\""
  },
  {
    "name": "Is_12d_view",
    "id": 7893,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return value is 1 if the current executable is 12d View, and 0 otherwise."
  },
  {
    "name": "Is_12d_model",
    "id": 7894,
    "returnType": "Integer",
    "parameters": [],
    "description": "The function return value is 1 if the current executable is 12d Model, and 0 otherwise."
  },
  {
    "name": "Get_program_folder",
    "id": 2301,
    "returnType": "Text",
    "parameters": [],
    "description": "The function return value is the full path to the folder where the 12d Model executable (12d.exe) is on disk. For example \"C:\\Program Files\\12d\\12dmodel\\10.00\\nt.x86\""
  },
  {
    "name": "Get_program_parent_folder",
    "id": 2302,
    "returnType": "Text",
    "parameters": [],
    "description": "The function return value is the full path to the folder above where the 12d Model executable (12d.exe) is on disk. For example \"C:\\Program Files\\12d\\12dmodel\\10.00\""
  },
  {
    "name": "Get_temporary_directory",
    "id": 2473,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&folder_name",
        "type": "Text"
      }
    ],
    "description": "Get the name of the Windows temporary folder %TEMP% and return it as folder_name. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_temporary_12d_directory",
    "id": 2474,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&folder_name",
        "type": "Text"
      }
    ],
    "description": "Get the name of the 12d Model temporary folder \"%TEMP%\\12d\", and return it as folder_name. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_temporary_project_directory",
    "id": 2475,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&folder_name",
        "type": "Text"
      }
    ],
    "description": "Get the name of the current 12d Model Project temporary folder \"%TEMP%\\12d\\process-id\" (where process-id is the process id of the current running 12d.exe), and return it as folder_name A function return value of zero indicates the function was successful. Note - Every 12d project has a independent temporary folder."
  },
  {
    "name": "Set_cad_controlbar",
    "id": 3141,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "linestyle",
        "type": "Text"
      },
      {
        "name": "weight",
        "type": "Real"
      },
      {
        "name": "tinable",
        "type": "Integer"
      }
    ],
    "description": "Set fields of CAD control bar with Text name, Model model, standard 12D colour Integer colour, height measure Real z, linestyle name Text linestyle, line weight Real weight, Integer tinable A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_cad_controlbar",
    "id": 3140,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&name",
        "type": "Text"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&linestyle",
        "type": "Text"
      },
      {
        "name": "&weight",
        "type": "Real"
      },
      {
        "name": "&tinable",
        "type": "Integer"
      }
    ],
    "description": "Get fields of CAD control bar to Text name, Model model, standard 12D colour Integer colour, height measure Real z, linestyle name Text linestyle, line weight Real weight, Integer tinable A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_text_controlbar",
    "id": 3143,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textstyle_name",
        "type": "Text"
      },
      {
        "name": "size",
        "type": "Real"
      }
    ],
    "description": "Set fields of text control bar with textstyle name Text textstyle_name, size Real size A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_text_controlbar",
    "id": 3142,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&textstyle_name",
        "type": "Text"
      },
      {
        "name": "&size",
        "type": "Real"
      }
    ],
    "description": "Get fields of text control bar to textstyle name Text textstyle_name, size Real size A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_text_controlbar",
    "id": 3145,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "textstyle_data",
        "type": "Textstyle_Data"
      }
    ],
    "description": "Set fields of text control bar with Textstyle_Data textstyle_data A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_text_controlbar",
    "id": 3144,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&textstyle_data",
        "type": "Textstyle_Data"
      }
    ],
    "description": "Get fields of text control bar to Textstyle_Data textstyle_data A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_symbol_controlbar",
    "id": 3147,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "symbol_name",
        "type": "Text"
      },
      {
        "name": "size",
        "type": "Real"
      }
    ],
    "description": "Set fields of symbol control bar with symbol name Text symbol_name, size Real size A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_symbol_controlbar",
    "id": 3146,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&symbol_name",
        "type": "Text"
      },
      {
        "name": "&size",
        "type": "Real"
      }
    ],
    "description": "Get fields of symbol control bar to symbol name Text symbol_name, size Real size A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_symbol_controlbar",
    "id": 3149,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "use_flag",
        "type": "Integer"
      },
      {
        "name": "symbol_name",
        "type": "Text"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "offset",
        "type": "Real"
      },
      {
        "name": "raise",
        "type": "Real"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "Control bar Page 293 12d Model Macro Manual Set fields of symbol control bar with symbol name Text symbol_name, Integer colour, Real size, Real offset, Real raise, Real angle Integer use_flag is the bit-wise sum of a subset of 0x001 Style 0x002 Colour 0x004 Size 0x008 Offset 0x010 Raise 0x020 Angle A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_symbol_controlbar",
    "id": 3148,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&use_flag",
        "type": "Integer"
      },
      {
        "name": "&symbol_name",
        "type": "Text"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&size",
        "type": "Real"
      },
      {
        "name": "&offset",
        "type": "Real"
      },
      {
        "name": "&raise",
        "type": "Real"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "Get fields of symbol control bar to symbol name Text symbol_name, Integer colour, Real size, Real offset, Real raise, Real angle Integer use_flag is the bit-wise sum of a subset of 0x001 Style 0x002 Colour 0x004 Size 0x008 Offset 0x010 Raise 0x020 Angle A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_pipe_controlbar",
    "id": 3151,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "shape",
        "type": "Integer"
      },
      {
        "name": "justify",
        "type": "Integer"
      },
      {
        "name": "size1",
        "type": "Real"
      },
      {
        "name": "size2",
        "type": "Real"
      }
    ],
    "description": "Set fields of pipe control bar with Integer shape, Integer justify, Real size1, Real size2 Value for shape: 0 not use, 1 pipe, 2 culvert Value for justify: 0 invert, 1 centre, 2 obvert A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_attributes_controlbar",
    "id": 3153,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "Set field of attributes control bar with Attributes att A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_attributes_controlbar",
    "id": 3152,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "Get field of attributes control bar to Attributes att A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_project_name",
    "id": 813,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the names of the current project. The names is returned in the Text name. A function return value of zero indicates the function names were successfully returned."
  },
  {
    "name": "Project_save",
    "id": 1570,
    "returnType": "Integer",
    "parameters": [],
    "description": "Save the Project to the disk. A function return value of zero indicates the Project was successfully saved."
  },
  {
    "name": "Program_exit",
    "id": 1571,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ignore_save",
        "type": "Integer"
      }
    ],
    "description": "Exit the 12d Model program. If ignore_save is non-zero then the project is closed without saving and 12d Model then stops. If ignore_save is zero then a save of the project is done and 12d Model then stops."
  },
  {
    "name": "Get_project_functions",
    "id": 236,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&function_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the names of all the functions in the project. The dynamic array of function names is returned in the Dynamic_Text function_names. A function return value of zero indicates the function names were successfully returned. Page 296 Project Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Sleep",
    "id": 2476,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "milli",
        "type": "Integer"
      }
    ],
    "description": "Send 12d Model to sleep for milli milliseconds A function return value of zero indicates the function was successful."
  },
  {
    "name": "Set_project_attributes",
    "id": 1982,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Project, set the Attributes to att. A function return value of zero indicates the Attributes was successfully set."
  },
  {
    "name": "Get_project_attributes",
    "id": 1983,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Project, return the Attributes for the Project as att. If the Project has no attribute then a non-zero return value is returned. A function return value of zero indicates the attribute is successfully returned."
  },
  {
    "name": "Get_project_attribute",
    "id": 1984,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Uid"
      }
    ],
    "description": "For the Project, get the attribute called att_name and return the attribute value in uid. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_project_attribute",
    "id": 1986,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "For the Project, get the attribute with number att_no and return the attribute value in uid. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_project_attribute",
    "id": 1987,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Project, get the attribute with number att_no and return the attribute value in att. The attribute must be of type Attributes. If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Set_project_attribute",
    "id": 1988,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Project,\uf020 if the attribute called att_name does not exist then create it as type Uid and give it the value uid.\uf020 if the attribute called att_name does exist and it is type Uid, then set its value to uid. If the attribute exists and is not of type Uid then a non-zero return value is returned. Page 298 Project Chapter 5 12dPL Library Calls A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_project_attribute",
    "id": 1989,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Project,\uf020 if the attribute called att_name does not exist then create it as type Attributes and give it the value att.\uf020 if the attribute called att_name does exist and it is type Attributes, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_project_attribute",
    "id": 1990,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For Project, if the attribute number att_no exists and it is of type Uid, then its value is set to uid. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_project_attribute",
    "id": 1991,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For Project, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no. Project Page 299 12d Model Macro Manual"
  },
  {
    "name": "Project_attribute_exists",
    "id": 1378,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a Project attribute with the name att_name exists in current project. A non-zero function return value indicates that the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Project_attribute_exists",
    "id": 1379,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&no",
        "type": "Integer"
      }
    ],
    "description": "Checks to see if a project attribute with the name name exists in current project. If the attribute exists, its position is returned in Integer no. This position can be used in other Attribute functions described below. A non-zero function return value indicates the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Project_attribute_delete",
    "id": 1380,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Delete the project attribute with the name att_name in current project. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Project_attribute_delete",
    "id": 1381,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      }
    ],
    "description": "Delete the project attribute with the Integer att_no in current project. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Project_attribute_dump",
    "id": 1383,
    "returnType": "Integer",
    "parameters": [],
    "description": "Write out information about the Project attributes to the Output Window. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_project_number_of_attributes",
    "id": 1385,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&no_atts",
        "type": "Integer"
      }
    ],
    "description": "Get number of attributes Integer no_atts in current project. A function return value of zero indicates the number is successfully returned."
  },
  {
    "name": "Get_project_attribute_name",
    "id": 1392,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get project attribute name Text name with attribute number Integer att_no in current project. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Get_project_attribute_length",
    "id": 1396,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "Project Page 301 12d Model Macro Manual Get the length of the project attribute at position att_no. The project attribute length is returned in att_len. A function return value of zero indicates the attribute type was successfully returned. Note The length is useful for user attributes of type Text and Binary (Blobs)."
  },
  {
    "name": "Get_project_attribute_length",
    "id": 1395,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "Get the length of the project attribute with the name att_name for the current project. The project attribute length is returned in att_len. A function return value of zero indicates the attribute type was successfully returned. Note The length is useful for user attributes of type Text and Binary (Blobs)."
  },
  {
    "name": "Get_project_attribute_type",
    "id": 1393,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the project attribute with the name att_name from the current project. The project attribute type is returned in Integer att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_project_attribute_type",
    "id": 1394,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the project attribute at position att_no for the current project. The project attribute type is returned in att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_project_attribute",
    "id": 1388,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "Page 302 Project Chapter 5 12dPL Library Calls Get project attribute Real att with attribute name Text att_name in current project. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_project_attribute",
    "id": 1399,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "Set the project attribute with name att_name to the Real att. The project attribute must be of type Real A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Get_project_attribute",
    "id": 1387,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "Get project attribute Integer att with attribute name Text att_name in current project. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_project_attribute",
    "id": 1398,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "Set the project attribute with name att_name to the Integer att. The project attribute must be of type Integer A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Get_project_attribute",
    "id": 1389,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "Get project attribute Text att with attribute number Integer att_no in current project. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Get_project_attribute",
    "id": 1390,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "Get project attribute Integer att with attribute number Integer att_no in current project. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_project_attribute",
    "id": 1401,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "Set the project attribute at position att_no to the Integer att. The project attribute must be of type Integer A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Get_project_attribute",
    "id": 1391,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "Get project attribute Real att with attribute number Integer att_no in current project. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_project_attribute",
    "id": 1402,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "Set the project attribute at position att_no to the Real att. The project attribute must be of type Real A function return value of zero indicates the attribute was successfully set. Page 304 Project Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_project_attribute",
    "id": 1386,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "Get project attribute Text att with attribute name Text att_name in current project. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_project_attribute",
    "id": 1397,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "Set the project attribute with name att_name to the Text att. The project attribute must be of type Text A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Project_attribute_delete_all",
    "id": 2679,
    "returnType": "Integer",
    "parameters": [],
    "description": "Delete all the project attributes. A function return value of zero indicates all the attribute were successfully deleted."
  },
  {
    "name": "Create_model",
    "id": 59,
    "returnType": "Model",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "Create a Model with the name model_name. If the model is created, its handle is returned as the function return value. If no model can be created, a null Model is returned as the function return value."
  },
  {
    "name": "Get_model_create",
    "id": 60,
    "returnType": "Model",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "Get a handle to the model with name model_name. If the model exists, its handle is returned as the function return value. If no such model exists, then a new model with the name model_name is created, and its handle returned as the function return value. If no model exists and the creation fails, a null Model is returned as the function return value. Page 306 Models Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_number_of_items",
    "id": 452,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&num",
        "type": "Integer"
      }
    ],
    "description": "Get the number of items (Elements) in the Model model. The number of Elements is returned as the Integer num. A function return value of zero indicates success."
  },
  {
    "name": "Get_number_of_items_peek",
    "id": 7675,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&num",
        "type": "Integer"
      }
    ],
    "description": "Get the number of items (Elements) in the Model model without force loading the full model. The number of Elements is returned as the Integer num. A function return value of zero indicates success."
  },
  {
    "name": "Get_elements",
    "id": 132,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&de",
        "type": "Dynamic_Element"
      },
      {
        "name": "&total_no",
        "type": "Integer"
      }
    ],
    "description": "Get all the Elements from the Model model and add them to the Dynamic_Element array, de. The total number of Elements in de is returned by total_no. Note: whilst this Dynamic_Element exists, all of the elements with handles in the Dynamic_Element are locked. A function return value of zero indicates success."
  },
  {
    "name": "Model_exists",
    "id": 63,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a model with the name model_name exists. A non-zero function return value indicates a model does exist. A zero function return value indicates that no model of name model_name exists. Models Page 307 12d Model Macro Manual Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Model_exists",
    "id": 62,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Checks if the Model model is valid (that is, not null). A non-zero function return value indicates model is not null. A zero function return value indicates that model is null. Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_project_models",
    "id": 231,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&model_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the names of all the models in the project. The dynamic array of model names is returned in the Dynamic_Text model_names. A function return value of zero indicates the model names are returned successfully."
  },
  {
    "name": "Get_model",
    "id": 58,
    "returnType": "Model",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "Get the Model model with the name model_name. If the model exists, its handle is returned as the function return value. If no model of name model_name exists, a null Model is returned as the function return value."
  },
  {
    "name": "Find_models",
    "id": 3946,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name_match",
        "type": "Text"
      },
      {
        "name": "&model_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Find all models with names matching wild card pattern name_match and set the model names to the list of Text model_names. A function return the number of models found."
  },
  {
    "name": "Get_name",
    "id": 57,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&model_name",
        "type": "Text"
      }
    ],
    "description": "Get the name of the Model model. The model name is returned in the Text model_name. A function return value of zero indicates the model name was successfully returned. If model is null, the function return value is non-zero."
  },
  {
    "name": "Get_time_created",
    "id": 2111,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "Get the time that the Model model was created and return the time in time. The time time is given as seconds since January 1 1970. A function return value of zero indicates the time was successfully returned."
  },
  {
    "name": "Get_time_updated",
    "id": 2112,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "Get the time that the Model model was last updated and return the time in time. The time time is given as seconds since January 1 1970. A function return value of zero indicates the time was successfully returned."
  },
  {
    "name": "Set_time_updated",
    "id": 2113,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "time",
        "type": "Integer"
      }
    ],
    "description": "Set the update time for the Model model to time. The time time is given as seconds since January 1 1970. A function return value of zero indicates the time was successfully set."
  },
  {
    "name": "Get_id",
    "id": 1182,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&id",
        "type": "Integer"
      }
    ],
    "description": "Get the id of the Model model and return it in id. A function return value of zero indicates the id was successfully returned. Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Get_id(Model model,Uid &id) instead."
  },
  {
    "name": "Get_model",
    "id": 1912,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_id",
        "type": "Uid"
      },
      {
        "name": "&model",
        "type": "Model"
      }
    ],
    "description": "Get the model in the Project that has the Uid model_id and return it in model. If the model does not exist then a non-zero function return value is returned. A function return value of zero indicates the model was successfully returned."
  },
  {
    "name": "Get_model",
    "id": 1180,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_id",
        "type": "Integer"
      },
      {
        "name": "&model",
        "type": "Model"
      }
    ],
    "description": "Get the model in the Project that has the id model_id and return it in model. If the model does not exist then a non-zero function return value is returned. A function return value of zero indicates the model was successfully returned. Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Get_model(Uid model_id,Model &model) instead."
  },
  {
    "name": "Get_element",
    "id": 1913,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_id",
        "type": "Uid"
      },
      {
        "name": "element_id",
        "type": "Uid"
      },
      {
        "name": "&elt",
        "type": "Element"
      }
    ],
    "description": "Get the Element with Uid element_id from the model that has the Uid model_id and return it in elt. If the Element does not exist in the model with Uid model_id then a non-zero function return value is returned. A function return value of zero indicates the Element was successfully returned."
  },
  {
    "name": "Get_element",
    "id": 1181,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_id",
        "type": "Integer"
      },
      {
        "name": "element_id",
        "type": "Integer"
      },
      {
        "name": "&elt",
        "type": "Element"
      }
    ],
    "description": "Get the Element with id element_id from the model that has the id model_id and return it in elt. If the Element does not exist in the model with model_id then a non-zero function return value is returned. A function return value of zero indicates the Element was successfully returned. Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Get_element(Uid model_id,Uid element_id,Element &elt) instead."
  },
  {
    "name": "Get_extent_x",
    "id": 163,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&xmin",
        "type": "Real"
      },
      {
        "name": "&xmax",
        "type": "Real"
      }
    ],
    "description": "Gets the x-extents of the Model model. The minimum x extent is returned by the Real xmin. The maximum x extent is returned by the Real xmax. A function return value of zero indicates the x-extents were returned successfully."
  },
  {
    "name": "Get_extent_z",
    "id": 165,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&zmin",
        "type": "Real"
      },
      {
        "name": "&zmax",
        "type": "Real"
      }
    ],
    "description": "Gets the z-extents of the Model model. The minimum z extent is returned by the Real zmin. The maximum z extent is returned by the Real zmax. A function return value of zero indicates the z-extents were returned successfully."
  },
  {
    "name": "Calc_extent",
    "id": 166,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Calculate the extents of the Model model. This is necessary when Elements have been deleted from a model. A function return value of zero indicates the extent calculation was successful."
  },
  {
    "name": "Model_duplicate",
    "id": 428,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "dup_name",
        "type": "Text"
      }
    ],
    "description": "Create a new Model with the name dup_name and add duplicates of all the elements in model to it. It is an error if a Model called dup_name already exists. A function return value of zero indicates the duplication was successful."
  },
  {
    "name": "Model_rename",
    "id": 423,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "original_name",
        "type": "Text"
      },
      {
        "name": "new_name",
        "type": "Text"
      }
    ],
    "description": "Change the name of the Model original_name to the new name new_name. Page 312 Models Chapter 5 12dPL Library Calls A function return value of zero indicates the rename was successful."
  },
  {
    "name": "Model_draw",
    "id": 415,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Draw each element in the Model model for each view that the model is on. The elements are drawn in their own colour. A function return value of zero indicates the draw was successful."
  },
  {
    "name": "Model_draw",
    "id": 416,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "col_num",
        "type": "Integer"
      }
    ],
    "description": "Draw, in the colour number col_num, each element in the Model model for each view that the model is on. A function return value of zero indicates the draw was successful."
  },
  {
    "name": "Model_draw2",
    "id": 7763,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Do not use. Mode: bit 1024 on exclusive or, off replace; bit 1 on draw all, off draw normal. Draw each element in the Model model for each view that the model is on. The elements are drawn in their own colour. A function return value of zero indicates the draw was successful."
  },
  {
    "name": "Model_draw2",
    "id": 7764,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "col_num",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Do not use. Mode: bit 1024 on exclusive or, off replace; bit 1 on draw all, off draw normal. Draw, in the colour number col_num, each element in the Model model for each view that the model is on. A function return value of zero indicates the draw was successful."
  },
  {
    "name": "Null",
    "id": 134,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Set the Model handle model to null. This does not affect the 12d Model model that the handle pointed to. A function return value of zero indicates model was successfully nulled."
  },
  {
    "name": "Model_empty",
    "id": 7671,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&is_empty",
        "type": "Integer"
      }
    ],
    "description": "Check if the Model model is empty and set is_empty to 1 for empty; 0 for not empty. A function return value of zero indicates the check was successfully returned."
  },
  {
    "name": "Model_delete",
    "id": 61,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Delete from the project and the disk, the 12d Model model pointed to by the Model model. The handle model is then set to null. A function return value of zero indicates the model was successfully deleted."
  },
  {
    "name": "Model_delete",
    "id": 7887,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "ignore_shared_out_flag",
        "type": "Integer"
      }
    ],
    "description": "Delete from the project and the disk, the 12d Model model pointed to by the Model model. The handle model is then set to null. If the model is shared out and ignore_shared_out_flag is zero then then the function fails with return value 6. If ignore_shared_out_flag is non-zero, then model will be delete even when being shared out. A function return value of zero indicates the model was successfully deleted."
  },
  {
    "name": "Delete_all_models",
    "id": 3913,
    "returnType": "Integer",
    "parameters": [],
    "description": "Delete all models from the project and the disk. Note the the operation cannot be undo. A function return value of zero indicates the model was successfully deleted."
  },
  {
    "name": "Delete_all_empty_models",
    "id": 3916,
    "returnType": "Integer",
    "parameters": [],
    "description": "Delete all empty models from the project and the disk. Note the the operation cannot be undo. A function return value of zero indicates the model was successfully deleted."
  },
  {
    "name": "Delete_all_empty_models",
    "id": 7668,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "check_model_attributes",
        "type": "Integer"
      }
    ],
    "description": "Delete all empty models - in addition with having no attribute when check_model_attributes is non zero - from the project and the disk. Note the the operation cannot be undo. A function return value of zero indicates the model was successfully deleted."
  },
  {
    "name": "Model_clean",
    "id": 3836,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "raster_mode",
        "type": "Integer"
      }
    ],
    "description": "Clean all elements from an existing Model model. If the model or any element in the model is locked, a non zero value is returned. Raster elements in the model being considered specially, Models Page 315 12d Model Macro Manual based on the value of Integer raster_mode. The valid value for raster_mode are: 0 retain all raster element in the model 1 pop up confirmation for each raster 2 pop up confirmation once (for this current macro call) 3 clean all raster elements without confirmation A function return value of zero indicates the model was successfully cleaned."
  },
  {
    "name": "Model_clean",
    "id": 7958,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "raster_mode",
        "type": "Integer"
      },
      {
        "name": "redraw",
        "type": "Integer"
      }
    ],
    "description": "Clean all elements from an existing Model model. If the model or any element in the model is locked, a non zero value is returned. Raster elements in the model being considered specially, based on the value of Integer raster_mode. The valid value for raster_mode are: 0 retain all raster element in the model 1 pop up confirmation for each raster 2 pop up confirmation once (for this current macro call) 3 clean all raster elements without confirmation If redraw is non zero, then all the views containg the model will be redrawn after the clean, if redraw is zero, then no redraw after the clean A function return value of zero indicates the model was successfully cleaned."
  },
  {
    "name": "Get_model_attributes",
    "id": 2042,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Model model, return the Attributes for the Model as att. If the Model has no Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute is successfully returned."
  },
  {
    "name": "Set_model_attributes",
    "id": 2043,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Model model, set the Attributes for the Model to att. A function return value of zero indicates the attribute is successfully set."
  },
  {
    "name": "Get_model_attribute",
    "id": 2044,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "From the Model model, get the attribute called att_name and return the attribute value in uid. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_model_attribute",
    "id": 2045,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "From the Model model, get the attribute called att_name from model and return the attribute value in att. The attribute must be of type Attributes. If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - this function is more efficient than getting the Attributes from the Model and then getting the data from that Attributes. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_model_attribute",
    "id": 2046,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "From the Model model, get the attribute with number att_no and return the attribute value in uid. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_model_attribute",
    "id": 2047,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "From the Model model, get the attribute with number att_no and return the Attribute value in att. Models Page 317 12d Model Macro Manual The attribute must be of type Attributes. If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Set_model_attribute",
    "id": 2048,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Uid"
      }
    ],
    "description": "For the Model model,\uf020 if the attribute called att_name does not exist then create it as type Uid and give it the value att.\uf020 if the attribute called att_name does exist and it is type Uid, then set its value to att. If the attribute exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_model_attribute",
    "id": 2049,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Model model,\uf020 if the attribute called att_name does not exist then create it as type Attributes and give it the value att.\uf020 if the attribute called att_name does exist and it is type Attributes, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_model_attribute",
    "id": 2050,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Model model, if the attribute number att_no exists and it is of type Uid, then its value is set to uid. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Uid then a non-zero return value is returned. Page 318 Models Chapter 5 12dPL Library Calls A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_model_attribute",
    "id": 2051,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Model model, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Model_attribute_exists",
    "id": 1403,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a model attribute with the name att_name exists in the Model model. A non-zero function return value indicates that the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Model_attribute_exists",
    "id": 1404,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&no",
        "type": "Integer"
      }
    ],
    "description": "Checks to see if a model attribute with the name name exists in the Model model. If the attribute exists, its position is returned in Integer no. This position can be used in other Attribute functions described below. A non-zero function return value indicates the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Model_attribute_delete",
    "id": 1405,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Delete the model attribute with the name att_name for Model model. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Model_attribute_delete",
    "id": 1406,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      }
    ],
    "description": "Delete the model attribute at the position att_no for Model model. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Model_attribute_delete_all",
    "id": 1407,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Delete all the model attributes for Model model. Note: the second argument elt is not used for now. A function return value of zero indicates all the attributes were deleted."
  },
  {
    "name": "Model_attribute_dump",
    "id": 1408,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Write out information about the Model attributes to the Output Window. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Model_attribute_debug",
    "id": 1409,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Write out even more information about the Model attributes to the Output Window. A function return value of zero indicates the function was successful. Page 320 Models Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_model_attribute",
    "id": 1411,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "Get the data for the model attribute with the name att_name for Model model. The model attribute must be of type Text and is returned in Text att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_model_attribute",
    "id": 1412,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "Get the data for the model attribute with the name att_name for Model model. The model attribute must be of type Integer and is returned in att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_model_attribute",
    "id": 1413,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "Get the data for the model attribute with the name att_name for Model model. The model attribute must be of type Real and is returned in att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_model_attribute",
    "id": 1414,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "Get the data for the model attribute at the position att_no for Model model. The model attribute must be of type Text and is returned in att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_model_attribute",
    "id": 1416,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "Get the data for the model attribute at the position att_no for Model model. The model attribute must be of type Real and is returned in Real att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Set_model_attribute",
    "id": 1427,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "For the Model model, set the model attribute at position att_no to the Real att. The model attribute must be of type Real A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_model_attribute",
    "id": 1426,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "For the Model model, set the model attribute at position att_no to the Integer att. The model attribute must be of type Integer A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_model_attribute",
    "id": 1425,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "For the Model model, set the model attribute at position att_no to the Text att. The model attribute must be of type Text Page 322 Models Chapter 5 12dPL Library Calls A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_model_attribute",
    "id": 1424,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "For the Model model, set the model attribute with name att_name to the Real att. The model attribute must be of type Real A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_model_attribute",
    "id": 1423,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "For the Model model, set the model attribute with name att_name to the Integer att. The model attribute must be of type Integer A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_model_attribute",
    "id": 1422,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "For the Model model, set the model attribute with name att_name to the Text att. The model attribute must be of type Text A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Get_model_attribute_name",
    "id": 1417,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the name for the model attribute at the position att_no for Model model. The model attribute name found is returned in Text name. A function return value of zero indicates the attribute name was successfully returned."
  },
  {
    "name": "Get_model_attribute_type",
    "id": 1419,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Integer"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the model attribute at position att_no for the Model model. The model attribute type is returned in att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_model_attribute_length",
    "id": 1420,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "Get the length of the model attribute with the name att_name for Model model. The model attribute length is returned in att_len. A function return value of zero indicates the attribute type was successfully returned. Note - the length is useful for user attributes of type Text and Binary (Blobs)."
  },
  {
    "name": "Get_model_attribute_length",
    "id": 1421,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "Get the length of the model attribute at position att_no for Model model. The model attribute length is returned in att_len. A function return value of zero indicates the attribute type was successfully returned. Note - the length is useful for user attributes of type Text and Binary (Blobs)."
  },
  {
    "name": "View_exists",
    "id": 373,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a view with the name view_name exists. A non-zero function return value indicates a view does exist. A zero function return value indicates value that no view of that name exists. Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "View_exists",
    "id": 374,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      }
    ],
    "description": "Checks if the View view is valid (that is, not null). A non-zero function return value indicates view is not null. A zero function return value indicates that view is null. Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_name",
    "id": 435,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&view_name",
        "type": "Text"
      }
    ],
    "description": "Get the name of the View view. The view name is returned in the Text view_name. If view is null, the function return value is non-zero. A function return value of zero indicates the view name was returned successfully."
  },
  {
    "name": "Null",
    "id": 375,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      }
    ],
    "description": "Page 326 Views Chapter 5 12dPL Library Calls Set the View handle view to null. This does not affect the 12d Model view that the handle pointed to. A function return value of zero indicates view was successfully nulled."
  },
  {
    "name": "Get_project_views",
    "id": 234,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&view_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the names of all the views in the project. The dynamic array of view names is returned in the Dynamic_Text view_names. A function return value of zero indicates the view names were returned successfully."
  },
  {
    "name": "Get_view",
    "id": 347,
    "returnType": "View",
    "parameters": [
      {
        "name": "view_name",
        "type": "Text"
      }
    ],
    "description": "Get the View with the name view_name. If the view exists, its handle is returned as the function return value. If no view of name view_name, a null View is returned as the function return value."
  },
  {
    "name": "Find_views",
    "id": 3948,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name_match",
        "type": "Text"
      },
      {
        "name": "&view_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Find all views with names matching wild card pattern name_match and set the view names to the list of Text view_names. A function return value of zero indicates the call was successful."
  },
  {
    "name": "Get_type",
    "id": 358,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the type of the View view as the Text type. The type is Plan if the view is a plan view Section section view Perspective perspective view or Opengl perspective view Views Page 327 12d Model Macro Manual Hidden_perspective hidden perspective view. A function return value of zero indicates that the view type was returned successfully."
  },
  {
    "name": "Get_type",
    "id": 357,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&view_num",
        "type": "Integer"
      }
    ],
    "description": "For the view view, view_num returns the type of the view. view_num = 2010 if view is a PLAN VIEW view_num = 2011 if view is a SECTION VIEW view_num = 2012 if view is a PERSP VIEW and OPEN GL 2012 view_num = 2030 if view is a HIDDEN PERSPECTIVE A function return value of zero indicates the successfully."
  },
  {
    "name": "Model_get_views",
    "id": 354,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&view_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the names of all the views that the Model model is on. The view names are returned in the Dynamic_Text view_names. A function return value of zero indicates that the view names were returned successfully."
  },
  {
    "name": "View_get_models",
    "id": 350,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&model_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the names of all the Models on the View view. The model names are returned in the Dynamic_Text model_names. A function return value of zero indicates that the model names were returned successfully."
  },
  {
    "name": "View_add_model",
    "id": 348,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Add the Model model to the View view. A function return value of zero indicates that model was successfully added to the view."
  },
  {
    "name": "View_add_model_at_back",
    "id": 7960,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Add the Model model to the back of the View view. A function return value of zero indicates that model was successfully added to the view."
  },
  {
    "name": "View_remove_model",
    "id": 349,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Remove the Model model from the View view. A function return value of zero indicates that model was successfully removed from the view."
  },
  {
    "name": "View_redraw",
    "id": 3510001,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      }
    ],
    "description": "Redraw the 12d Model View view. A function return value of zero indicates that the view was successfully redrawn."
  },
  {
    "name": "View_redraw",
    "id": 3510000,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "data",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Redraw views containing the elements in the Dynamic_Element list. A function return value of zero indicates the views were successfully redrawn."
  },
  {
    "name": "View_fit",
    "id": 353,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      }
    ],
    "description": "Perform a fit on the 12d Model View view. A function return value of zero indicates that the view was successfully fitted."
  },
  {
    "name": "Section_view_profile",
    "id": 2110,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "fit_view",
        "type": "Integer"
      }
    ],
    "description": "Profile the Element string on the View view. If fit_view = 1 then a fit is also done on the view. If view is not a Section view, then a non-zero function return value is returned. Views Page 329 12d Model Macro Manual A function return value of zero indicates the profile was successful."
  },
  {
    "name": "View_get_size",
    "id": 352,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&width",
        "type": "Integer"
      },
      {
        "name": "&height",
        "type": "Integer"
      }
    ],
    "description": "Find the size in screen units (pixels) of the View view. The width and height of the view are width and height pixels respectively. A function return value of zero indicates that the view size was successfully returned."
  },
  {
    "name": "View_get_draw_area_size",
    "id": 3774,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&width",
        "type": "Integer"
      },
      {
        "name": "&height",
        "type": "Integer"
      }
    ],
    "description": "This call should not be used, the correct version is View_get_draw_area_size(View view,Integer &width,Integer &height); The internal rectangle of a view where data can be drawn, selected is call the draw area. In other word, the draw area is part of the view excluding the border, title, menu. Find the size in screen units (pixels) of the draw area of the last active view. The width and height of the draw area of the view are width and height pixels respectively. A function return value of zero indicates that the view size was successfully returned."
  },
  {
    "name": "View_set_draw_area_size",
    "id": 3775,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "width",
        "type": "Integer"
      },
      {
        "name": "height",
        "type": "Integer"
      }
    ],
    "description": "This call should not be used, the correct version is View_set_draw_area_size(View view,Integer width,Integer height); The internal rectangle of a view where data can be drawn, selected is call the draw area. In other word, the draw area is part of the view excluding the border, title, menu. Set the size in screen units (pixels) of the draw area of the last active view to the value of width and height. A function return value of zero indicates that the view size was successfully set."
  },
  {
    "name": "View_get_draw_area_size",
    "id": 3797,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&width",
        "type": "Integer"
      },
      {
        "name": "&height",
        "type": "Integer"
      }
    ],
    "description": "The internal rectangle of a view where data can be drawn, selected is call the draw area. In other word, the draw area is part of the view excluding the border, title, menu. Find the size in screen units (pixels) of the draw area of the View view. The width and height of the draw area of the view are width and height pixels respectively. A function return value of zero indicates that the view size was successfully returned."
  },
  {
    "name": "Calc_extent",
    "id": 477,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      }
    ],
    "description": "Calculate the extents of the View view. This is necessary when Elements have been deleted from a model on a view. A function return value of zero indicates the extent calculation was successful."
  },
  {
    "name": "View_maximize",
    "id": 3034,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      }
    ],
    "description": "Maximize a View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_minimize",
    "id": 3035,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      }
    ],
    "description": "Views Page 331 12d Model Macro Manual Minimize a View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_restore",
    "id": 3036,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      }
    ],
    "description": "Restore a View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_delete",
    "id": 3443,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      }
    ],
    "description": "Delete a View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_clone",
    "id": 3384,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "clone_name",
        "type": "Text"
      }
    ],
    "description": "Create a clone of an existing View v with new name clone_name A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_create",
    "id": 3037,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "left",
        "type": "Integer"
      },
      {
        "name": "top",
        "type": "Integer"
      },
      {
        "name": "width",
        "type": "Integer"
      },
      {
        "name": "height",
        "type": "Integer"
      },
      {
        "name": "engine_type",
        "type": "Integer"
      }
    ],
    "description": "Create a new view with given: Integer type; Text name; Real position in screen pixels left left, top top; size in screen pixels width width, height height; Integer engine_type A return value of zero indicates the function call was successful. List of values for type of view 0 Plan, 1 Section, Page 332 Views Chapter 5 12dPL Library Calls 2 Perspective, 3 Perspective_Hide, List of values for view engine_type 0 GDI_Legacy, 1 GDI, 2 GDI_Threaded, 3 OpenGL_Legacy, 4 OpenGL, 5 OpenGL_Threaded, 6 OpenGL_GPU,"
  },
  {
    "name": "View_move_resize",
    "id": 3038,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "left",
        "type": "Integer"
      },
      {
        "name": "top",
        "type": "Integer"
      },
      {
        "name": "width",
        "type": "Integer"
      },
      {
        "name": "height",
        "type": "Integer"
      }
    ],
    "description": "Move the View v to the new position left, top; set new size to width, height. The numbers are all Integer measuring the screen pixels. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_resize",
    "id": 3924,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "top",
        "type": "Integer"
      },
      {
        "name": "left",
        "type": "Integer"
      },
      {
        "name": "bottom",
        "type": "Integer"
      },
      {
        "name": "right",
        "type": "Integer"
      }
    ],
    "description": "Move View view to the new position specified by left, top, bottom, right. The numbers are all Integer measuring the screen pixels, if the number is less than zero then use the existing value. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_placement",
    "id": 7701,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "&left",
        "type": "Integer"
      },
      {
        "name": "&top",
        "type": "Integer"
      },
      {
        "name": "&right",
        "type": "Integer"
      },
      {
        "name": "&bottom",
        "type": "Integer"
      },
      {
        "name": "&status",
        "type": "Integer"
      }
    ],
    "description": "Get the placement of View view to left, top, bottom, right. The numbers are all Integer measuring the screen pixels status: 0 normal, 1 minimized, 2 maximized. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Plan_view_set_rotation",
    "id": 3040,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "rotation_angle",
        "type": "Real"
      }
    ],
    "description": "Set the rotation angle of the plan View v to rotation_angle. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Plan_view_get_rotation",
    "id": 3039,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "&rotation_angle",
        "type": "Real"
      }
    ],
    "description": "Get the rotation angle rotation_angle of the plan View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "Plan_view_get_viewport",
    "id": 7740,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&x_min",
        "type": "Real"
      },
      {
        "name": "&y_min",
        "type": "Real"
      },
      {
        "name": "&x_max",
        "type": "Real"
      },
      {
        "name": "&y_max",
        "type": "Real"
      }
    ],
    "description": "Get the viewport x_min y_min x_max y_max of the plan View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "Section_view_set_viewport",
    "id": 7737,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "ch_min",
        "type": "Real"
      },
      {
        "name": "height_min",
        "type": "Real"
      },
      {
        "name": "ch_max",
        "type": "Real"
      },
      {
        "name": "height_max",
        "type": "Real"
      }
    ],
    "description": "Page 334 Views Chapter 5 12dPL Library Calls Set the viewport of the section View v to ch_min height_min ch_max height_max. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Section_view_get_viewport",
    "id": 7741,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&ch_min",
        "type": "Real"
      },
      {
        "name": "&height_min",
        "type": "Real"
      },
      {
        "name": "&ch_max",
        "type": "Real"
      },
      {
        "name": "&height_max",
        "type": "Real"
      }
    ],
    "description": "Get the viewport ch_min height_min ch_max height_max of the section View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "Perspective_view_set_eye_point",
    "id": 7734,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Set the eye point of the perspective View v to x y z. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Perspective_view_get_eye_point",
    "id": 7738,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the eye point x y z of the perspective View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "Perspective_view_set_target_point",
    "id": 7735,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Set the target point of the perspective View v to x y z. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_name",
    "id": 3041,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Set the new name to the View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_background_colour",
    "id": 3042,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the background colour of the View v and returns its value to Integer colour. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_background_colour",
    "id": 3043,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Set the background colour of the View v to the one of Integer value colour. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_exaggeration",
    "id": 3926,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&exaggeration",
        "type": "Real"
      }
    ],
    "description": "Get the exaggeration of a section or perspective View view and returns its value to Real exaggeration. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_exaggeration",
    "id": 3925,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "exaggeration",
        "type": "Real"
      }
    ],
    "description": "Set the exaggeration for a section or perspective View view to the one of Real value exaggeration. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Plan_view_set_plot_scale",
    "id": 3045,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "scale",
        "type": "Real"
      }
    ],
    "description": "Set plot scale factor of the plan View v to Real scale. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Plan_view_get_plot_scale",
    "id": 3044,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "&scale",
        "type": "Real"
      }
    ],
    "description": "Get plot scale factor Real scale of the plan View v A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_grid_settings",
    "id": 3046,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "&draw_mode",
        "type": "Integer"
      },
      {
        "name": "&text_x_mode",
        "type": "Integer"
      },
      {
        "name": "&text_y_mode",
        "type": "Integer"
      },
      {
        "name": "&grid_mode",
        "type": "Integer"
      },
      {
        "name": "&space_x",
        "type": "Real"
      },
      {
        "name": "&space_y",
        "type": "Real"
      },
      {
        "name": "&level",
        "type": "Real"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&text_height",
        "type": "Real"
      },
      {
        "name": "&text_plot_height",
        "type": "Real"
      },
      {
        "name": "&text_clour",
        "type": "Integer"
      },
      {
        "name": "&cross_mode",
        "type": "Integer"
      },
      {
        "name": "&cross_size_pixel",
        "type": "Real"
      },
      {
        "name": "&cross_size_mm",
        "type": "Real"
      },
      {
        "name": "&text_style",
        "type": "Text"
      },
      {
        "name": "&text_prefix_x",
        "type": "Text"
      },
      {
        "name": "&text_prefix_y",
        "type": "Text"
      }
    ],
    "description": "Get various settings of the View v. Parameter 2: draw mode 0 no grid 1 last on view 2 first on view Parameter 3: text x mode 0 no text 1 bottom 2 top 3 bottom and top Parameter 4: text y mode 0 no text 1 left 2 right 3 left and right Parameter 5: grid mode 1 line 2 cross -2 mark 3 mark and cross Parameter 6: space between vertical lines Views Page 337 12d Model Macro Manual Parameter 7: space between horizontal lines Parameter 8: level of grid lines (points) Parameter 9: grid colour Parameter 10: grid text height Parameter 11: grid text plot height Parameter 12: grid text colour Parameter 13: another draw mode? 0 not use 1 use Parameter 14: cross size pixels Parameter 15: cross size mm (plot) Parameter 16: text style for grid text Parameter 17: pre-post text for grid text x Parameter 18: pre-post text for grid text y A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_grid_settings",
    "id": 3047,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "draw_mode",
        "type": "Integer"
      },
      {
        "name": "text_x_mode",
        "type": "Integer"
      },
      {
        "name": "text_y_mode",
        "type": "Integer"
      },
      {
        "name": "grid_mode",
        "type": "Integer"
      },
      {
        "name": "space_x",
        "type": "Real"
      },
      {
        "name": "space_y",
        "type": "Real"
      },
      {
        "name": "level",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "text_height",
        "type": "Real"
      },
      {
        "name": "text_plot_height",
        "type": "Real"
      },
      {
        "name": "text_colour",
        "type": "Integer"
      },
      {
        "name": "cross_mode",
        "type": "Integer"
      },
      {
        "name": "cross_size_pixel",
        "type": "Real"
      },
      {
        "name": "cross_size_mm",
        "type": "Real"
      },
      {
        "name": "text_style",
        "type": "Text"
      },
      {
        "name": "text_prefix_x",
        "type": "Text"
      },
      {
        "name": "text_prefix_y",
        "type": "Text"
      }
    ],
    "description": "Set various settings of the View v Parameter 2: draw mode 0 no grid 1 last on view 2 first on view Parameter 3: text x mode 0 no text 1 bottom 2 top 3 bottom and top Parameter 4: text y mode 0 no text 1 left 2 right 3 left and right Parameter 5: grid mode 1 line 2 cross -2 mark 3 mark and cross Parameter 6: space between vertical lines Parameter 7: space between horizontal lines Parameter 8: level of grid lines (points) Parameter 9: grid colour Parameter 10: grid text height Parameter 11: grid text plot height Parameter 12: grid text colour Parameter 13: another draw mode? 0 not use 1 use Parameter 14: cross size pixels Parameter 15: cross size mm (plot) Parameter 16: text style for grid text Page 338 Views Chapter 5 12dPL Library Calls Parameter 17: pre-post text for grid text x Parameter 18: pre-post text for grid text y A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_engine_type",
    "id": 3049,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "engine_type",
        "type": "Integer"
      }
    ],
    "description": "Set view engine type of the View v to Integer engine_type A return value of zero indicates the function call was successful. List of values for view engine_type 0 GDI_Legacy, 1 GDI, 2 GDI_Threaded, 3 OpenGL_Legacy, 4 OpenGL, 5 OpenGL_Threaded, 6 OpenGL_GPU,"
  },
  {
    "name": "View_get_engine_type",
    "id": 3048,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "&engine_type",
        "type": "Integer"
      }
    ],
    "description": "Get view engine type Integer engine_type of the View v A return value of zero indicates the function call was successful. List of values for view engine_type 0 GDI_Legacy, 1 GDI, 2 GDI_Threaded, 3 OpenGL_Legacy, 4 OpenGL, 5 OpenGL_Threaded, 6 OpenGL_GPU,"
  },
  {
    "name": "View_set_attribute",
    "id": 3067,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Real"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Set attribute attribute_name of the View view with value Real value Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_attribute",
    "id": 3068,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Set attribute attribute_name of the View view with value Text value Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_attribute",
    "id": 3069,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Integer"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Set attribute attribute_name of the View view within model with name model_name with value Integer value Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_attribute",
    "id": 3070,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Set attribute attribute_name of the View view within model with name model_name with value Real value Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_set_attribute",
    "id": 3071,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Set attribute attribute_name of the View view within model with name model_name with value Text value Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_attribute",
    "id": 3072,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Get Integer value of attribute attribute_name of the View view Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_attribute",
    "id": 3073,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Real"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Get Real value of attribute attribute_name of the View view Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful. Views Page 341 12d Model Macro Manual"
  },
  {
    "name": "View_get_attribute",
    "id": 3074,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Get Text value of attribute attribute_name of the View view Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_attribute",
    "id": 3075,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Get Integer value of attribute attribute_name of the View view within model with name model_name Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_attribute",
    "id": 3076,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Real"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Get Real value of attribute attribute_name of the View view within model with name model_name Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_get_attribute",
    "id": 3077,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Page 342 Views Chapter 5 12dPL Library Calls Get Text value of attribute attribute_name of the View view within model with name model_name Internal return internal_return is for developer debugging purpose. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_remove_attribute",
    "id": 3078,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      }
    ],
    "description": "Remove the attribute attribute_name from the View view A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_remove_attribute",
    "id": 3079,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "attribute_name",
        "type": "Text"
      }
    ],
    "description": "Remove an attribute attribute_name from the View view within model with name model_name A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_remove_draw_data_textstyle",
    "id": 3080,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Intended for 12D developers use only"
  },
  {
    "name": "View_remove_plot_data_textstyle",
    "id": 3081,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Intended for 12D developers use only"
  },
  {
    "name": "View_remove_plot_data_textstyle",
    "id": 3083,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Intended for 12D developers use only"
  },
  {
    "name": "View_get_draw_data_textstyle",
    "id": 3084,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      },
      {
        "name": "&d",
        "type": "Textstyle_Data"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Intended for 12D developers use only"
  },
  {
    "name": "View_get_plot_data_textstyle",
    "id": 3085,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      },
      {
        "name": "&d",
        "type": "Textstyle_Data"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Intended for 12D developers use only"
  },
  {
    "name": "View_set_draw_data_textstyle",
    "id": 3086,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      },
      {
        "name": "d",
        "type": "Textstyle_Data"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Intended for 12D developers use only"
  },
  {
    "name": "View_set_plot_data_textstyle",
    "id": 3087,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      },
      {
        "name": "d",
        "type": "Textstyle_Data"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      }
    ],
    "description": "Intended for 12D developers use only"
  },
  {
    "name": "View_apply_favourite",
    "id": 3135,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Apply a view favourite file file_name to a View v. Some text message is returned in Text return_message A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_apply_position",
    "id": 3136,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Apply a view position file file_name to a View v. Some text message is returned in Text return_message A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_write_favourite_file",
    "id": 3385,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "favourite_name",
        "type": "Text"
      },
      {
        "name": "add_file_extension",
        "type": "Integer"
      }
    ],
    "description": "Write a view favourite file favourite_name of a given View v. If add_file_extension is 1 then add the approriate file extension to the file name. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_write_position_file",
    "id": 3386,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "position_name",
        "type": "Text"
      },
      {
        "name": "add_file_extension",
        "type": "Integer"
      }
    ],
    "description": "Write a view position file position_name of a given View v. If add_file_extension is 1 then add the approriate file extension to the file name. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_favourite_file_exists",
    "id": 3387,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "favourite_name",
        "type": "Text"
      },
      {
        "name": "&exists",
        "type": "Integer"
      }
    ],
    "description": "Check if the view favourite file of matching type to a given View v of name favourite_name exist. Set Integer exists to 1 if the file exists, 0 otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_position_file_exists",
    "id": 3388,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "position_name",
        "type": "Text"
      },
      {
        "name": "&exists",
        "type": "Integer"
      }
    ],
    "description": "Check if the view position file of matching type to a given View v of name position_name exist. Set Integer exists to 1 if the file exists, 0 otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_last_view",
    "id": 3480,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&view_name",
        "type": "Text"
      }
    ],
    "description": "Set the Text view_name to the name of the last active view. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Section_view_regenerate",
    "id": 3528,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "section_view",
        "type": "View"
      },
      {
        "name": "fit",
        "type": "Integer"
      }
    ],
    "description": "Page 346 Views Chapter 5 12dPL Library Calls Regenerate a given section View section_view. Also perform a fit operation on the view if Integer fit is 1. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_section_profile_string",
    "id": 3529,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "section_view",
        "type": "View"
      },
      {
        "name": "&profile_string",
        "type": "Element"
      }
    ],
    "description": "Get the string that is being profiled on a given section View section_view; and return it as Element profile_string. A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_restore_normal",
    "id": 3927,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      }
    ],
    "description": "Restore normal a given View view (unmininize or unmaximinze). A return value of zero indicates the function call was successful."
  },
  {
    "name": "View_check_empty",
    "id": 3928,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "v",
        "type": "View"
      },
      {
        "name": "ignore_empty_models",
        "type": "Integer"
      },
      {
        "name": "&is_empty",
        "type": "Integer"
      }
    ],
    "description": "For this macro call, a given View v is_empty if it contains no model - for empty_models 0 it contains no element (or all containing models are empty) - for empty_models non zeror A return value of zero indicates the function call was successful."
  },
  {
    "name": "Tile_all_views",
    "id": 3923,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Tile all view by a given mode. 0 horizontal 1 vertical 2 cascade. Views Page 347 12d Model Macro Manual A return value of zero indicates the function call was successful."
  },
  {
    "name": "Element_exists",
    "id": 56,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Checks the validity of an Element elt. That is, it checks that elt has not been set to null. A non-zero function return value indicates elt is not null. A zero function return value indicates that elt is null."
  },
  {
    "name": "Get_points",
    "id": 43,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&num_verts",
        "type": "Integer"
      }
    ],
    "description": "Get the number of vertices in the Element elt. The number of vertices is returned as the Integer num_verts. For Elements of type Alignment, Arc and Circle, Get_points gives the number of vertices when the Element is approximated using the 12d Model chord-to-arc tolerance. A function return value of zero indicates the number of vertices was successfully returned."
  },
  {
    "name": "Get_data",
    "id": 653,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the (x,y,z) data for the ith vertex of the string Element elt. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. A function return value of zero indicates the data was successfully returned. Elements Page 353 12d Model Macro Manual NOTE: The functions to set the data arrays are given in the sections of each string type. For example 5.38.2.1 Super String Create Functions."
  },
  {
    "name": "Set_name",
    "id": 45,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "elt_name",
        "type": "Text"
      }
    ],
    "description": "Set the name of the Element elt to the Text elt_name. A function return value of zero indicates the Element name was successfully set. Note This will not set the name of an Element of type Tin."
  },
  {
    "name": "Get_name",
    "id": 44,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&elt_name",
        "type": "Text"
      }
    ],
    "description": "Get the name of the Element elt. The name is returned by the Text elt_name. A function return value of zero indicates the name was returned successfully. If elt is null, the function return value is non-zero."
  },
  {
    "name": "Set_colour",
    "id": 47,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Set the colour of the Element elt. The colour is given by the Integer colour. A function return value of zero indicates that the colour was successfully set. Notes (a) For an Interface string, the colour is only used when the string is converted to a different string type. (b) There are supplied functions to convert the colour number to a colour name and vice-versa."
  },
  {
    "name": "Get_colour",
    "id": 46,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Page 354 Elements Chapter 5 12dPL Library Calls Get the colour of the Element elt. The colour (as a number) is returned as the Integer colour. A function return value of zero indicates the Element colour was successfully returned. Note There are 12dPL functions to convert the colour number to a colour name and vice-versa."
  },
  {
    "name": "Set_model",
    "id": 55,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Sets the 12d Model model of the Element elt to be Model model. If elt is already in a model, then it is moved to the Model model. If elt is not in a model, then elt is added to the Model model. A function return value of zero indicates the model was successfully set."
  },
  {
    "name": "Set_model",
    "id": 480,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Sets the 12d Model model of the Tin tin to be Model model. Note that a tin can belong to more than one models. A function return value of zero indicates the model was successfully set."
  },
  {
    "name": "Remove_model",
    "id": 6889,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Removes Tin tin out of containing Model model. A function return value of zero indicates the tin was successfully removed."
  },
  {
    "name": "Set_model",
    "id": 141,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "de",
        "type": "Dynamic_Element"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Sets the Model of all the Elements in the Dynamic_Element de to model. Elements Page 355 12d Model Macro Manual For each Element elt in the Dynamic_Element, de if elt is already in a model, then it is moved to the Model model. If elt is not in a model, elt is added to the Model model. A function return value of zero indicates the models were successfully set."
  },
  {
    "name": "Get_model",
    "id": 54,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&model",
        "type": "Model"
      }
    ],
    "description": "Get the model handle of the model containing the Element elt. The model is returned by the Model model. Note: the function cannot get the model when elt is a tin. A function return value of zero indicates the handle was returned successfully."
  },
  {
    "name": "Set_breakline",
    "id": 53,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "break_type",
        "type": "Integer"
      }
    ],
    "description": "Sets the breakline type for triangulation purposes for the Element elt. The breakline type is given as the Integer break_type. The break_type is 0 if elt is to be used as a point string 1 if elt is to be used as a breakline string A function return value of zero indicates the breakline type was successfully set."
  },
  {
    "name": "Get_breakline",
    "id": 52,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&break_type",
        "type": "Integer"
      }
    ],
    "description": "Gets the breakline type of the Element elt. The breakline type is used for triangulation purposes and is returned as the Integer break_type. The break_type is 0 if elt is used as a point string 1 breakline string A function return value of zero indicates the breakline type was returned successfully."
  },
  {
    "name": "Get_type",
    "id": 42,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&elt_type",
        "type": "Integer"
      }
    ],
    "description": "Get the Element type of the Element elt as an Integer value. The Element type is returned as the Integer elt_type. For the Integer types of elements, go to 5.36.1 Types of Elements. A function return value of zero indicates the type was returned successfully."
  },
  {
    "name": "Set_style",
    "id": 49,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "elt_style",
        "type": "Text"
      }
    ],
    "description": "Set the line style of the Element elt. The name of the line style is given by the Text elt_style. A function return value of zero indicates the style was successfully set."
  },
  {
    "name": "Get_style",
    "id": 48,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&elt_style",
        "type": "Text"
      }
    ],
    "description": "Get the line style of the Element elt. The name of the line style is returned by the Text elt_style. The style is not used for Elements of type Tin or Text. A function return value of zero indicates the style was returned successfully."
  },
  {
    "name": "Get_weight",
    "id": 1608,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&weight",
        "type": "Real"
      }
    ],
    "description": "Get the line weight of the Element elt. The value of the weight is returned by the Real weight. A function return value of zero indicates the weight was returned successfully."
  },
  {
    "name": "Set_chainage",
    "id": 51,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "start_chain",
        "type": "Real"
      }
    ],
    "description": "Set the start chainage of the Element elt. The start chainage is given by the Real start_chain. A function return value of zero indicates the start chainage was successfully set."
  },
  {
    "name": "Get_chainage",
    "id": 50,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&start_chain",
        "type": "Real"
      }
    ],
    "description": "Get the start chainage of the Element elt. The start chainage is returned by the Real start_chain. A function return value of zero indicates the chainage was returned successfully."
  },
  {
    "name": "Get_end_chainage",
    "id": 654,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&chainage",
        "type": "Real"
      }
    ],
    "description": "Get the end chainage of the Element elt. The end chainage is returned by the Real chainage. Page 358 Elements Chapter 5 12dPL Library Calls A function return value of zero indicates the chainage was returned successfully."
  },
  {
    "name": "Get_id",
    "id": 1908,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Get the unique Uid of the Element elt and return it in uid. If elt is null or an error occurs, uid is set to zero. A function return value of zero indicates the Element Uid was successfully returned."
  },
  {
    "name": "Get_id",
    "id": 378,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&id",
        "type": "Integer"
      }
    ],
    "description": "Get the unique id of the Element elt and return it in id. If elt is null or an error occurs, id is set to zero. A function return value of zero indicates the Element id was successfully returned. Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Get_id(Element elt,Uid &id) instead."
  },
  {
    "name": "Get_time_created",
    "id": 673,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "Get the time of creation of the Element elt. The time value is returned in Integer time (seconds since January 1 1970). A function return value of zero indicates the data was returned successfully."
  },
  {
    "name": "Get_time_updated",
    "id": 674,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "Get the time of the last update of the Element elt. The time value is returned in Integer time (seconds since January 1 1970). A function return value of zero indicates the data was returned successfully. Elements Page 359 12d Model Macro Manual"
  },
  {
    "name": "Set_time_updated",
    "id": 675,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "time",
        "type": "Integer"
      }
    ],
    "description": "Set the time of the last update of the Element elt. The time value is defined in Integer time. A function return value of zero indicates the time was updated successfully."
  },
  {
    "name": "Null",
    "id": 133,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Set the Element elt to null. A function return value of zero indicates the Element elt was successfully set to null. Note The database item pointed to by the Element elt is not affected in any way."
  },
  {
    "name": "Get_extent_x",
    "id": 159,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xmin",
        "type": "Real"
      },
      {
        "name": "&xmax",
        "type": "Real"
      }
    ],
    "description": "Gets the x-extents of the Element elt. The minimum x extent is returned by the Real xmin. The maximum x extent is returned by the Real xmax. A function return value of zero indicates the x extents were successfully returned."
  },
  {
    "name": "Get_extent_y",
    "id": 160,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&ymin",
        "type": "Real"
      },
      {
        "name": "&ymax",
        "type": "Real"
      }
    ],
    "description": "Gets the y-extents of the Element elt. The minimum y extent is returned by the Real ymin. The maximum y extent is returned by the Real ymax. A function return value of zero indicates the y extents were successfully returned. Page 360 Elements Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_extent_z",
    "id": 161,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&zmin",
        "type": "Real"
      },
      {
        "name": "&zmax",
        "type": "Real"
      }
    ],
    "description": "Gets the z-extents of the Element elt. The minimum z extent is returned by the Real zmin. The maximum z extent is returned by the Real zmax. A function return value of zero indicates the z extents were successfully returned."
  },
  {
    "name": "Calc_extent",
    "id": 162,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Calculate the extents of the Element elt. This is necessary after an Element's body data has been modified. A function return value of zero indicates the extent calculation was successful."
  },
  {
    "name": "Element_duplicate",
    "id": 430,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&dup_elt",
        "type": "Element"
      }
    ],
    "description": "Create a duplicate of the Element elt and return it as the Element dup_elt. A function return value of zero indicates the duplication was successful."
  },
  {
    "name": "Element_replace",
    "id": 7813,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&source",
        "type": "Element"
      },
      {
        "name": "&target",
        "type": "Element"
      }
    ],
    "description": "Update the content of Element target using Element source while preserving the target element ID. Note that the two elements source and target must be of the same type or an error will occur. A function return value of zero indicates the duplication was successful."
  },
  {
    "name": "Element_delete",
    "id": 41,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Delete from the 12d Model database the item that the Element elt points to. The Element elt is then set to null. A function return value of zero indicates the data base item was deleted successfully."
  },
  {
    "name": "Element_delete",
    "id": 7962,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "redraw",
        "type": "Integer"
      }
    ],
    "description": "Delete from the 12d Model database the item that the Element elt points to. The Element elt is then set to null. If redraw is non zero, then the Element elt will be redrawn in all containing views, if redraw is zero, then no redraw will happen. A function return value of zero indicates the data base item was deleted successfully."
  },
  {
    "name": "Delete_element",
    "id": 3917,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "model_id",
        "type": "Uid"
      },
      {
        "name": "element_name",
        "type": "Text"
      },
      {
        "name": "element_id",
        "type": "Uid"
      }
    ],
    "description": "Delete from the 12d Model database Element specified by model_name, model_id, element_name, element_id A function return value of zero indicates the data base item was deleted successfully."
  },
  {
    "name": "Find_element",
    "id": 3922,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "element_name",
        "type": "Text"
      },
      {
        "name": "&first_found",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Find the first 12d Model database Element specified by model_name, element_name and return that in first_found, also set the value for the total count of all elements found A function return value of zero indicates the data base item was found successfully."
  },
  {
    "name": "Get_attributes",
    "id": 1972,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element elt, return the Attributes for the Element as att. If the Element has no attribute then a non-zero return value is returned. A function return value of zero indicates the attribute is successfully returned."
  },
  {
    "name": "Set_attributes",
    "id": 1973,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element elt, set the Attributes for the Element to att. A function return value of zero indicates the attribute is successfully set."
  },
  {
    "name": "Get_attribute",
    "id": 1974,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "From the Element elt, get the attribute called att_name from elt and return the attribute value in uid. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - this function is more efficient than getting the Attributes from the Element and then getting the data from that Attributes. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 1975,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "From the Element elt, get the attribute called att_name from elt and return the attribute value in att. The attribute must be of type Attributes. If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Elements Page 363 12d Model Macro Manual Note - this function is more efficient than getting the Attributes from the Element and then getting the data from that Attributes. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_attribute",
    "id": 1976,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "From the Element elt, get the attribute with number att_no and return the attribute value in uid. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_attribute",
    "id": 1977,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "From the Element elt, get the attribute with number att_no and return the attribute value in att. The attribute must be of type Attributes. If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Set_attribute",
    "id": 1978,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element elt,\uf020 if the attribute called att_name does not exist in the element then create it as type Uid and give it the value uid.\uf020 if the attribute called att_name does exist and it is type Uid, then set its value to att. If the attribute exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 1979,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element elt,\uf020 if the attribute called att_name does not exist in the element then create it as type Attributes and give it the value att.\uf020 if the attribute called att_name does exist and it is type Attributes, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_attribute",
    "id": 1980,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element elt, if the attribute number att_no exists and it is of type Uid, then its value is set to uid. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_attribute",
    "id": 1981,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element elt, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Attribute_exists",
    "id": 556,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_no",
        "type": "Integer"
      }
    ],
    "description": "Checks to see if a user attribute with the name att_name exists in the Element elt. If the attribute exists, its position is returned in Integer att_no. This position can be used in other Attribute functions described below. A non-zero function return value indicates the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Attribute_delete",
    "id": 557,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Delete the user attribute with the name att_name for Element elt. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Attribute_delete",
    "id": 558,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      }
    ],
    "description": "Delete the user attribute at the position att_no for Element elt. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Get_number_of_attributes",
    "id": 560,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&no_atts",
        "type": "Integer"
      }
    ],
    "description": "Get the total number of user attributes for Element elt. The total number of attributes is returned in Integer no_atts. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_attribute",
    "id": 561,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "Get the data for the user attribute with the name att_name for Element elt. The user attribute must be of type Text and is returned in Text att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_attribute",
    "id": 562,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "Get the data for the user attribute with the name att_name for Element elt. The user attribute must be of type Integer and is returned in att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_attribute",
    "id": 563,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "Get the data for the user attribute with the name att_name for Element elt. The user attribute must be of type Real and is returned in att. Elements Page 367 12d Model Macro Manual A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_attribute",
    "id": 564,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "Get the data for the user attribute at the position att_no for Element elt. The user attribute must be of type Text and is returned in att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_attribute",
    "id": 565,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "Get the data for the user attribute at the position att_no for Element elt. The user attribute must be of type Integer and is returned in Integer att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_attribute",
    "id": 566,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "Get the data for the user attribute at the position att_no for Element elt. The user attribute must be of type Real and is returned in Real att. A function return value of zero indicates the attribute was successfully returned."
  },
  {
    "name": "Get_attribute_name",
    "id": 567,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the name for the user attribute at the position att_no for Element elt. The user attribute name found is returned in Text name. A function return value of zero indicates the attribute name was successfully returned."
  },
  {
    "name": "Get_attribute_type",
    "id": 568,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the user attribute with the name att_name from the Element elt. The user attribute type is returned in Integer att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_attribute_type",
    "id": 569,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the user attribute at position att_no for the Element elt. The user attribute type is returned in att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_attribute_length",
    "id": 570,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "Get the length of the user attribute with the name att_name for Element elt. The user attribute length is returned in att_len. A function return value of zero indicates the attribute length was successfully returned. Note - the length is useful for user attributes of type Text and Binary."
  },
  {
    "name": "Get_attribute_length",
    "id": 571,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "Get the length of the user attribute at position att_no for Element elt. The user attribute length is returned in att_len. A function return value of zero indicates the attribute type was successfully returned. Note - the length is useful for user attributes of type Text and Binary."
  },
  {
    "name": "Set_attribute",
    "id": 572,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "For the Element elt, set the user attribute with name att_name to the Text att. The user attribute must be of type Text A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_attribute",
    "id": 573,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt, set the user attribute with name att_name to the Integer att. The user attribute must be of type Integer A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_attribute",
    "id": 574,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "For the Element elt, set the user attribute with name att_name to the Real att. The user attribute must be of type Real A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_attribute",
    "id": 575,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "For the Element elt, set the user attribute at position att_no to the Text att. The user attribute must be of type Text A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_attribute",
    "id": 577,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "For the Element elt, set the user attribute at position att_no to the Real att. The user attribute must be of type Real A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Attribute_dump",
    "id": 578,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Write out information about the Element attributes to the Output Window. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Attribute_debug",
    "id": 589,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Write out even more information about the Element attributes to the Output Window. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Triangulate",
    "id": 142,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "de",
        "type": "Dynamic_Element"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "tin_colour",
        "type": "Integer"
      },
      {
        "name": "preserve",
        "type": "Integer"
      },
      {
        "name": "bubbles",
        "type": "Integer"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "The elements from the Dynamic_Element de are triangulated and a tin named tin_name created with colour tin_colour. A non zero value for preserve allows break lines to be preserved. A non zero value for bubbles removes bubbles from the triangulation. A created tin is returned by Tin tin. A function return value of zero indicates the triangulation was successful."
  },
  {
    "name": "Triangulate",
    "id": 1428,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Dynamic_Text"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "preserve",
        "type": "Integer"
      },
      {
        "name": "bubbles",
        "type": "Integer"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "Triangulate the data from a list of models Dynamic_Text list. The tin name is given as Text tin_name, the tin colour is given as Integer colour, the preserve string option is given by Integer preserve, and the remove bubbles option is given by Integer bubbles, 1 is on, 0 is off. A function return value of zero indicates the Tin tin was successfully returned."
  },
  {
    "name": "Triangulate_points",
    "id": 7995,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&x",
        "type": "Dynamic_Real"
      },
      {
        "name": "&y",
        "type": "Dynamic_Real"
      },
      {
        "name": "full_tin",
        "type": "Integer"
      },
      {
        "name": "&pt1",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pt2",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pt3",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Triangulate the data from points with given x,y coordinate Dynamic_Real x y. The two lists must have the same number of items and at least 3. If full_tin is non-zero, then the triangulation is for full tin. The results of the operation are store on three list of indices pt1 pt2 pt3, they are of the same size which are the number of the triangulation faces. The i-th item of pt1 is the index of the first point of the i-th triangle face. The i-th item of pt2 is the index of the second point of the i-th triangle face. The i-th item of pt3 is the index of the third point of the i-th triangle face. A function return value of zero indicates the triangulation was successfully returned. Tin Element Page 373 12d Model Macro Manual"
  },
  {
    "name": "Triangulate_points",
    "id": 7996,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&x",
        "type": "Dynamic_Real"
      },
      {
        "name": "&y",
        "type": "Dynamic_Real"
      },
      {
        "name": "&z",
        "type": "Dynamic_Real"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "Triangulate the data from points with given x,y,z coordinate Dynamic_Real x y z. The three lists must have the same number of items and at least 3. The tin name is given as Text tin_name. A function return value of zero indicates the Tin tin was successfully returned."
  },
  {
    "name": "Triangulate_points",
    "id": 7997,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "npts",
        "type": "Integer"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "Triangulate the data from npts points with given x,y,z coordinate Real arrays x y z. The three lists must have the same number of items and at least 3. The tin name is given as Text tin_name. A function return value of zero indicates the Tin tin was successfully returned."
  },
  {
    "name": "Tin_exists",
    "id": 355,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a tin with the name tin_name exists. A non-zero function return value indicates a tin does exist. A zero function return value indicates that no tin of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Tin_exists",
    "id": 356,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Checks if the Tin tin is valid (that is, not null). A non-zero function return value indicates that tin is not null. A zero function return value indicates that tin is null. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_project_tins",
    "id": 232,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&tins",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the names of all the tins in the project. The names are returned in the Dynamic_Text, tins. A function return value of zero indicates the tin names were returned successfully."
  },
  {
    "name": "Get_tin",
    "id": 146,
    "returnType": "Tin",
    "parameters": [
      {
        "name": "tin_name",
        "type": "Text"
      }
    ],
    "description": "Get a Tin handle for the tin with name tin_name. If the tin exists, the handle to it is returned as the function return value. If the tin does not exist, a null Tin is returned as the function return value."
  },
  {
    "name": "Find_tins",
    "id": 3947,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name_match",
        "type": "Text"
      },
      {
        "name": "&tin_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Find all tins with names matching wild card pattern name_match and set the tin names to the list of Text tin_names. A function return value of zero indicates the call was successful."
  },
  {
    "name": "Get_tin",
    "id": 370,
    "returnType": "Tin",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "If the Element elt is of type Tin and the tin exists, a Tin handle to the tin is returned as the function return value. If the tin does not exist or the Element is not of type Tin, a null Tin is returned as the function return value."
  },
  {
    "name": "Get_name",
    "id": 431,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&tin_name",
        "type": "Text"
      }
    ],
    "description": "Get the name of the Tin tin. The tin name is returned in the Text tin_name. A function return value of zero indicates success. If tin is null, the function return value is non-zero. Tin_models(Tin tin, Dynamic_Text &models_used) Name Integer Tin_models(Tin tin, Dynamic_Text &models_used) Description Get the names of all the models that were used to create the Tin tin. The model names are returned in the Dynamic_Text models_used. A function return value of zero indicates that the view names were returned successfully."
  },
  {
    "name": "Get_time_updated",
    "id": 2115,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "Get the time that the Tin tin was last updated and return the time in time. The time time is given as seconds since January 1 1970. A function return value of zero indicates the time was successfully returned."
  },
  {
    "name": "Set_time_updated",
    "id": 2116,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "time",
        "type": "Integer"
      }
    ],
    "description": "Set the update time for the Tin tin to time. The time time is given as seconds since January 1 1970. A function return value of zero indicates the time was successfully set."
  },
  {
    "name": "Tin_number_of_points",
    "id": 472,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&notri",
        "type": "Integer"
      }
    ],
    "description": "Get the total number of points used in creating the Tin tin. This value includes duplicate points and also the four construction points. The number of triangles is returned in the Integer notri. A function return value of zero indicates success. If tin is null, the function return value is non-zero."
  },
  {
    "name": "Tin_number_of_triangles",
    "id": 473,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&notri",
        "type": "Integer"
      }
    ],
    "description": "Tin Element Page 377 12d Model Macro Manual Get the number of triangles in the Tin tin. This value includes null triangles and also construction triangles. The number of triangles is returned in the Integer notri. A function return value of zero indicates success. If tin is null, the function return value is non-zero."
  },
  {
    "name": "Tin_number_of_duplicate_points",
    "id": 474,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&notri",
        "type": "Integer"
      }
    ],
    "description": "Get the number of duplicate points found whilst creating the Tin tin. The number of duplicate points is returned in the Integer notri. A function return value of zero indicates success. If tin is null, the function return value is non-zero."
  },
  {
    "name": "Tin_number_of_items",
    "id": 475,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&num_items",
        "type": "Integer"
      }
    ],
    "description": "The number of strings in the tin tin is returned as num_items. Note that if the original string in the data set to be triangulated had invisible segments (discontinuities) then that string is broken into two or more strings in the tin. A function return value of zero indicates that num_items was successfully returned."
  },
  {
    "name": "Tin_colour",
    "id": 218,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour of the tin at the point (x,y) A function return value of zero indicates success."
  },
  {
    "name": "Tin_height",
    "id": 215,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "&height",
        "type": "Real"
      }
    ],
    "description": "Get the height of the tin at the point (x,y). Page 378 Tin Element Chapter 5 12dPL Library Calls If (x,y) is outside the tin, then an error has occurred and a non-zero function return value is set. A function return value of zero indicates the height was successfully returned."
  },
  {
    "name": "Tin_slope",
    "id": 216,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "&slope",
        "type": "Real"
      }
    ],
    "description": "Get the slope of the tin at the point (x,y). The units for slope is an angle in radians measured from the horizontal plane. If (x,y) is outside the tin, then an error has occurred and a non-zero function return value is set. A function return value of zero indicates the slope was successfully returned."
  },
  {
    "name": "Tin_aspect",
    "id": 217,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "&aspect",
        "type": "Real"
      }
    ],
    "description": "Get the aspect of the tin at the point (x,y). The units for aspect is a bearing in radians. That is, aspect is given as a clockwise angle measured from the positive y-axis (North). If (x,y) is outside the tin, then an error has occurred and a non-zero function return value is set. A function return value of zero indicates the aspect was successfully returned."
  },
  {
    "name": "Tin_duplicate",
    "id": 429,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "dup_name",
        "type": "Text"
      }
    ],
    "description": "Create a new Tin with name dup_name which is a duplicate the Tin tin. IT is an error if a Tin called dup_name already exists. A function return value of zero indicates the duplication was successful."
  },
  {
    "name": "Tin_rename",
    "id": 422,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "original_name",
        "type": "Text"
      },
      {
        "name": "new_name",
        "type": "Text"
      }
    ],
    "description": "Change the name of the Tin original_name to the new name new_name. Tin Element Page 379 12d Model Macro Manual A function return value of zero indicates the rename was successful."
  },
  {
    "name": "Tin_boundary",
    "id": 476,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "colour_for_strings",
        "type": "Integer"
      },
      {
        "name": "&de",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Get the boundary polygons for the Tin tin. The polygons are returned in the Dynamic_Element de with colour colour_for_strings. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Tin_delete",
    "id": 219,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Delete the Tin tin from the project and the disk. Note: the function does not work on super tins nor grid tins. A function return value of zero indicates the tin was deleted successfully."
  },
  {
    "name": "Tin_delete",
    "id": 7888,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "ignore_shared_out_flag",
        "type": "Integer"
      }
    ],
    "description": "Delete the Tin tin from the project and the disk. Note: the function does not work on super tins nor grid tins. If the tin is shared out and ignore_shared_out_flag is zero then then the function fails with return value 6. If ignore_shared_out_flag is non-zero, then the tin will be delete even when being shared out. A function return value of zero indicates the tin was successfully deleted."
  },
  {
    "name": "Delete_all_tins",
    "id": 3914,
    "returnType": "Integer",
    "parameters": [],
    "description": "Delete all tins from the project and the disk. Note: the function cannot be undo. A function return value of zero indicates the tin was deleted successfully."
  },
  {
    "name": "Tin_get_point",
    "id": 831,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "np",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the (x,y,z) coordinate of np\u2019th point of the tin. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. A function return value of zero indicates the coordinate of the point was successfully returned."
  },
  {
    "name": "Tin_get_triangle_points",
    "id": 832,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "nt",
        "type": "Integer"
      },
      {
        "name": "&p1",
        "type": "Integer"
      },
      {
        "name": "&p2",
        "type": "Integer"
      },
      {
        "name": "&p3",
        "type": "Integer"
      }
    ],
    "description": "Get the three points of nt\u2019th triangle of the tin. The first point value is returned in Integer p1. The second point value is returned in Integer p2. The third point value is returned in Integer p3. The normal to a triangle in the tin is considered to be pointing \"upwards\". That is, the normal points in the direction of what is considered the upper side of the tin. For example for a ground tin, the normal points upward. Looking onto the triangle from down the direction of the normal, the points p1, p2 and p3 are in a clockwise order around the triangle. This is opposite to the right-hand screw rule. p1 normal pointing \"up\" p3 p2 Tin Element Page 381 12d Model Macro Manual Note: this is the opposite to the order of points in a triangle in a trimesh. See 5.51 Trimesh Element. A function return value of zero indicates the points were successfully returned"
  },
  {
    "name": "Tin_get_triangle_neighbours",
    "id": 833,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "nt",
        "type": "Integer"
      },
      {
        "name": "&n1",
        "type": "Integer"
      },
      {
        "name": "&n2",
        "type": "Integer"
      },
      {
        "name": "&n3",
        "type": "Integer"
      }
    ],
    "description": "Get the three neighbour triangles of the nt\u2019th triangle of the tin. The first triangle neighbour is returned in Integer n1. The second triangle neighbour is returned in Integer n2. The third triangle neighbour is returned in Integer n3. A function return value of zero indicates the triangles were successfully returned."
  },
  {
    "name": "Tin_get_point_from_point",
    "id": 1436,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "&np",
        "type": "Integer"
      }
    ],
    "description": "For the Tin tin and the coordinate (x,y), get the tin point number of the vertex of the triangle closest to (x,y), and returned it in np. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Tin_get_triangles_about_point",
    "id": 1628,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&no_triangles",
        "type": "Integer"
      }
    ],
    "description": "For the Tin tin and the nth point of tin, get the number of triangles surrounding the point and return the number in no_triangles. Those includes construction triangles. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Tin_get_triangles_about_point",
    "id": 1629,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "max_triangles",
        "type": "Integer"
      },
      {
        "name": "&no_triangles",
        "type": "Integer"
      },
      {
        "name": "triangles[]",
        "type": "Integer"
      },
      {
        "name": "points[]",
        "type": "Integer"
      },
      {
        "name": "status[]",
        "type": "Integer"
      }
    ],
    "description": "For the Tin tin and the nth point of tin, Page 382 Tin Element Chapter 5 12dPL Library Calls get the number of triangles surrounding the point and return it as no_triangles return the list of triangle numbers in triangles[] return the list of all the point numbers of vertices of the triangles that surround the point in points[] (the number of these is the same as the number of triangle around the point) return the status of each triangle in triangles[]. status is 2 for normal visible triangles, 1 or 0 for other triangles (including null triangles and construction triangles). Note: max_triangles is the size of the arrays triangles[], points[] and status[]; and if max_triangles is less than or equal to no_triangles the function will fail and return 12. The number of triangles surrounding the nth point of a tin is given by Tin_get_triangles_about_point. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Tin_get_triangle_inside",
    "id": 835,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "triangle",
        "type": "Integer"
      },
      {
        "name": "&Inside",
        "type": "Integer"
      }
    ],
    "description": "Get the condition of the triangle number triangle of the tin tin. If the value of the flag Inside is 0 not valid triangle. 1 null triangle or construction triangle. 2 the triangle is a non-null triangle. So for a valid triangle, inside = 2. A function return value of zero indicates the flag was successfully returned."
  },
  {
    "name": "Tin_get_triangle",
    "id": 836,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "triangle",
        "type": "Integer"
      },
      {
        "name": "&p1",
        "type": "Integer"
      },
      {
        "name": "&p2",
        "type": "Integer"
      },
      {
        "name": "&p3",
        "type": "Integer"
      },
      {
        "name": "&n1",
        "type": "Integer"
      },
      {
        "name": "&n2",
        "type": "Integer"
      },
      {
        "name": "&n3",
        "type": "Integer"
      },
      {
        "name": "&x1",
        "type": "Real"
      },
      {
        "name": "&y1",
        "type": "Real"
      },
      {
        "name": "&z1",
        "type": "Real"
      },
      {
        "name": "&x2",
        "type": "Real"
      },
      {
        "name": "&y2",
        "type": "Real"
      },
      {
        "name": "&z2",
        "type": "Real"
      },
      {
        "name": "&x3",
        "type": "Real"
      },
      {
        "name": "&y3",
        "type": "Real"
      },
      {
        "name": "&z3",
        "type": "Real"
      }
    ],
    "description": "Get the three points and their (x,y,z) data and three neighbour triangles of nth triangle of the tin. The first point is returned in Integer p1, the (x, y, z) value is returned in x1,y1,z1. The second point is returned in Integer p2, the (x, y, z) value is returned in x2,y2,z2. The third point is returned in Integer p3, the x, y, z values are returned in x3,y3,z3. The first triangle neighbour is returned in Integer n1. The second triangle neighbour is returned in Integer n2. The third triangle neighbour is returned in Integer n3. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Tin_get_triangle_from_point",
    "id": 837,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "&triangle",
        "type": "Integer"
      }
    ],
    "description": "Get the triangle of the Tin tin that contains the given coordinate (x,y). The triangle number is returned in Integer triangle. A function return value of zero indicates the triangle was successfully returned."
  },
  {
    "name": "Draw_triangle",
    "id": 1433,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "tri",
        "type": "Integer"
      },
      {
        "name": "c",
        "type": "Integer"
      }
    ],
    "description": "Draw the triangle tri with colour c inside the Tin tin. A function return value of zero indicates the triangle was successfully drawn."
  },
  {
    "name": "Draw_triangles_about_point",
    "id": 1434,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "pt",
        "type": "Integer"
      },
      {
        "name": "c",
        "type": "Integer"
      }
    ],
    "description": "Draw the triangles about a point pt with colour c inside Tin tin. A function return value of zero indicates the triangles were successfully drawn."
  },
  {
    "name": "Triangles_clip",
    "id": 1439,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "x3",
        "type": "Real"
      },
      {
        "name": "y3",
        "type": "Real"
      },
      {
        "name": "x4",
        "type": "Real"
      },
      {
        "name": "y4",
        "type": "Real"
      },
      {
        "name": "z4",
        "type": "Real"
      },
      {
        "name": "x5",
        "type": "Real"
      },
      {
        "name": "y5",
        "type": "Real"
      },
      {
        "name": "z5",
        "type": "Real"
      },
      {
        "name": "x6",
        "type": "Real"
      },
      {
        "name": "y6",
        "type": "Real"
      },
      {
        "name": "z6",
        "type": "Real"
      },
      {
        "name": "&npts_out",
        "type": "Integer"
      },
      {
        "name": "xarray_out[]",
        "type": "Real"
      },
      {
        "name": "yarray_out[]",
        "type": "Real"
      },
      {
        "name": "zarray_out[]",
        "type": "Real"
      }
    ],
    "description": "The vertices of a 2d triangle is defined by the coordinates (x1,y1), (x2,y2) and (x3,y3). The vertices of a 3d triangle is defined by the coordinates (x4,y4,z4), (x5,y5,z5) and (x6,y6,z6). The Real arrays xarray_out[], yarray_out[], zarrary_out[] must exist and have dimensions at least 9. The function uses the 2d triangle to clip the 3d triangle and return the polygon of 3d clips points in the arrays xarray_out[], yarray_out[], zarrar_out[]. The number of clips points is returned in npts_out. A function return value of zero indicates the function was successful. Page 384 Tin Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Retriangulate",
    "id": 1429,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Retriangulate the Tin tin. A function return value of zero indicates the Tin tin was successfully returned."
  },
  {
    "name": "Breakline",
    "id": 1430,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "p1",
        "type": "Integer"
      },
      {
        "name": "p2",
        "type": "Integer"
      }
    ],
    "description": "Add breakline in Tin tin from point 1 p1 to point 2 p2. A function return value of zero indicates the breakline was successfully added."
  },
  {
    "name": "Flip_triangles",
    "id": 1431,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "t1",
        "type": "Integer"
      },
      {
        "name": "t2",
        "type": "Integer"
      }
    ],
    "description": "From the triangles t1 and t2 in Tin tin. A function return value of zero indicates the triangles were successfully flipped."
  },
  {
    "name": "Set_height",
    "id": 1432,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "pt",
        "type": "Integer"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Set the height Real ht for the point pt on the Tin tin. A function return value of zero indicates the height was successfully set."
  },
  {
    "name": "Supertin_number_of_tins",
    "id": 3217,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "supertin",
        "type": "Tin"
      },
      {
        "name": "&ntins",
        "type": "Integer"
      }
    ],
    "description": "Get the number of component tins of a supertin. The number of component tins is returned in the Integer ntins. A function return value of zero indicates the input is an actual supertin and the function call was successful."
  },
  {
    "name": "Supertin_get_tin",
    "id": 3218,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "supertin",
        "type": "Tin"
      },
      {
        "name": "pos",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      },
      {
        "name": "&mode",
        "type": "Integer"
      },
      {
        "name": "&active",
        "type": "Integer"
      }
    ],
    "description": "Get the details of component tin number pos of a supertin. The details includes: name of the component tin. mode of the component being a hole or not (1 true, 0 false). active flag (1 true, 0 false). A function return value of zero indicates the input is an actual supertin and the position is valid and the function call was successful."
  },
  {
    "name": "Null",
    "id": 376,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Set the Tin handle tin to null. This does not affect the 12d Model tin that the handle pointed to. A function return value of zero indicates tin was successfully nulled."
  },
  {
    "name": "Null_triangles",
    "id": 153,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "poly",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set any triangle whose centroid is inside or outside a given polygon to null. tin is the tin to null and poly is the polygon which restricts the nulling. If mode is 0 the inside of the polygon is nulled. 1 the outside is nulled. A function return value of zero indicates there were no errors in the nulling calculations."
  },
  {
    "name": "Reset_null_triangles",
    "id": 154,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "poly",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set any null triangle whose centroid is inside or outside a given polygon to be a valid triangle. tin is the tin to reset and poly is the polygon which determines which triangles are to be reset If mode is 0 the inside of the polygon is reset. 1 the outside is reset. A function return value of zero indicates there were no errors in the reset calculations."
  },
  {
    "name": "Reset_null_triangles",
    "id": 155,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Set all the triangles of the tin tin to be valid triangles. A function return value of zero indicates there were no errors in the reset calculations."
  },
  {
    "name": "Null_by_angle_length",
    "id": 1435,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "l1",
        "type": "Real"
      },
      {
        "name": "a1",
        "type": "Real"
      },
      {
        "name": "l2",
        "type": "Real"
      },
      {
        "name": "a2",
        "type": "Real"
      }
    ],
    "description": "Null triangle of the tin tin based on: length l2; - if a triangle has an external side (that is not a breakline) greater than l2, the triangle is nulled angle a2 in radian; - if a triangle has an external side (that is not a breakline) with an angle on it less Tin Element Page 387 12d Model Macro Manual than a2, then the triangle is nulled. combined length l1 and combined angle a1 in radian; - a triangle is nulled if it has an external side (that is not a breakline) and the sum of the two angles on it is less than a1 and has an external side (that is not a breakline) whose length is greater than l1. Various view draw might not be set correctly after the call, the next call might be a better alternative. See reference manual under Tins => Null => Null by Angle and Length for more details. A function return value of zero indicates the triangle was nulled successfully."
  },
  {
    "name": "Null_by_angle_length",
    "id": 7953,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "length",
        "type": "Real"
      },
      {
        "name": "angle",
        "type": "Real"
      },
      {
        "name": "length_only",
        "type": "Real"
      },
      {
        "name": "angle_only",
        "type": "Real"
      },
      {
        "name": "regenerate_boundary",
        "type": "Integer"
      }
    ],
    "description": "Null triangle of the tin tin based on: length_only; - if a triangle has an external side (that is not a breakline) greater than length_only, the triangle is nulled angle_only in radian; - if a triangle has an external side (that is not a breakline) with an angle on it less than angle_only, then the triangle is nulled. combined length and combined angle in radian; - a triangle is nulled if it has an external side (that is not a breakline) and the sum of the two angles on it is less than angle and has an external side (that is not a breakline) whose length is greater than length. If regenerate_boundary is non zero, then the boundary of the tin is regenerated after the nulling. See reference manual under Tins => Null => Null by Angle and Length for more details. A function return value of zero indicates the triangle was nulled successfully."
  },
  {
    "name": "Null_by_angle_length_seed",
    "id": 7954,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "length",
        "type": "Real"
      },
      {
        "name": "angle",
        "type": "Real"
      },
      {
        "name": "length_only",
        "type": "Real"
      },
      {
        "name": "angle_only",
        "type": "Real"
      },
      {
        "name": "seed_x",
        "type": "Real"
      },
      {
        "name": "seed_y",
        "type": "Real"
      },
      {
        "name": "regenerate_boundary",
        "type": "Integer"
      }
    ],
    "description": "Null triangle of the tin tin from a seed point with XY coordiate seed_x seed_y based on: length_only; - if a triangle has an external side (that is not a breakline) greater than length_only, the triangle is nulled angle_only in radian; - if a triangle has an external side (that is not a breakline) with an angle on it less than angle_only, then the triangle is nulled. combined length and combined angle in radian; - a triangle is nulled if it has an external side (that is not a breakline) and the sum of the two angles on it is less than angle and has an external side (that is not a breakline) whose length is greater than length. If regenerate_boundary is non zero, then the boundary of the tin is regenerated after the nulling. See reference manual under Tins => Null => Null by Angle and Length from Point for more details. Page 388 Tin Element Chapter 5 12dPL Library Calls A function return value of zero indicates the triangle was nulled successfully."
  },
  {
    "name": "Tin_null_by_colour",
    "id": 3219,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "is_colour",
        "type": "Integer"
      },
      {
        "name": "is_null",
        "type": "Integer"
      }
    ],
    "description": "Reset or null triangles of the tin tin based on triangle colours: colour to be compared to the triangle colours. Note: a triangle in the tin may (1) have no colour - hence using the main tin colour; or may (2) have it own colour which happens to be the same as the main colour of the tin. Those triangles in the two cases would look the same in views but the underlying data are different. The colour to be match in case (1) is 0, and in case (2) is the main colour of the tin. is_colour 1 indicates only process the triangles with matching colour; 0 indicates only process the triangles with non-matching colour. is_null 0 indicates that the operation resets null triangles; 1 indicates that the operation set null triangles. A function return value of zero indicates the triangle was nulled successfully."
  },
  {
    "name": "Tin_null_by_colours",
    "id": 3220,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "colours",
        "type": "Dynamic_Integer"
      },
      {
        "name": "in_colours_list",
        "type": "Integer"
      },
      {
        "name": "is_null",
        "type": "Integer"
      }
    ],
    "description": "Reset or null triangles of the tin tin based on triangle colours: List of colours to be compared to the triangle colours Note: a triangle in the tin may (1) have no colour - hence using the main tin colour; or may (2) have it own colour which happens to be the same as the main colour of the tin. Those triangles in the two cases would look the same in views but the underlying data are different. The colour to be match in case (1) is 0, and in case (2) is the main colour of the tin. in_colours_list 1 indicates only process the triangles with colours in the given list; 0 indicates only process the triangles with colours not in the given list. is_null 0 indicates that the operation resets null triangles; 1 indicates that the operation set null triangles. A function return value of zero indicates the triangle was nulled successfully."
  },
  {
    "name": "Tin_get_triangle_colour",
    "id": 834,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "triangle",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour of the nth triangle of the tin. The colour value is returned in Integer colour. Note 1: if the triangle is not a valid triangle, the return colour will be 0. Use the call Tin_get_triangle_inside(tin, triangle, error) and compare error to 2 for checking the valid of the triangle. Note 2: if the triangle does not have its own colour (e.g. on plan view, the drawing will use the common tin colour), the return colour also will be 0. A function return value of zero indicates the colour were successfully returned."
  },
  {
    "name": "Colour_triangles",
    "id": 156,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "col_num",
        "type": "Integer"
      },
      {
        "name": "poly",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Colour all the triangles in the Tin tin whose centroids are inside or outside a given polygon to a specified colour. The triangulation is tin, the polygon poly and the colour number col_num. The value of mode determines whether the triangles whose centroids are inside or outside the polygon are coloured. If mode equals 0, the triangles inside the polygon are coloured. If mode equals 1, the triangles outside the polygon are coloured. A function return value of zero indicates there were no errors in the colour calculations."
  },
  {
    "name": "Colour_triangle",
    "id": 3843,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "triangle_number",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Colour one triangle of given index triangle_number in the Tin tin to a specified colour. A function return value of zero indicates success."
  },
  {
    "name": "Reset_colour_triangles",
    "id": 157,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "poly",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set any triangle in the Tin tin whose centroid is inside or outside a given polygon back to the base tin colour. The value of mode determines whether the triangles whose centroids are inside or outside the polygon are set back to the base colour. If mode equals 0, the triangles inside the polygon are set If mode equals 1, the triangles outside the polygon are set A function return value of zero indicates there were no errors in the colour reset calculations."
  },
  {
    "name": "Reset_colour_triangles",
    "id": 158,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Set all the triangles in the Tin tin back to the base tin colour. A function return value of zero indicates success."
  },
  {
    "name": "Create_super",
    "id": 691,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type Super with room for num_pts vertices and num_pts-1 segments if the string is not closed or num_pts segments if the string is closed. flag1 is used to specify which of the dimensions from 1 to 32 are used/not used. See 5.38.1 Super String Dimensions for the values that flag1 may take. The actual values of the arrays are set by other function calls after the string is created. The return value is an Element handle to the created super string. If the Super string could not be created, then the returned Element will be null. Note - if dimensions greater than 32 are required, then calls with two flags must be used. For example Integer Create_super(Integer flag1, Integer flag2,Integer num_pts)."
  },
  {
    "name": "Create_super",
    "id": 1499,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "flag2",
        "type": "Integer"
      },
      {
        "name": "npts",
        "type": "Integer"
      }
    ],
    "description": "Do not use this one, see below."
  },
  {
    "name": "Create_super2",
    "id": 8017,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "flag2",
        "type": "Integer"
      },
      {
        "name": "npts",
        "type": "Integer"
      }
    ],
    "description": "create super string with arrays set aside following flag1 and flag 2 (extended dimensions). Create an Element of type Super with room for num_pts vertices and num_pts-1 segments if the string is not closed or num_pts segments if the string is closed. flag1 is used to specify which of the dimensions from 1 to 32 are used/not used. flag2 is used to specify which of the dimensions from 33 to 64 are used/not used. See 5.38.1 Super String Dimensions for the values that flag1 and flag2 may take. The actual values of the arrays are set by other function calls after the string is created. The return value is an Element handle to the created super string. If the Super string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_super",
    "id": 693,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "seg",
        "type": "Segment"
      }
    ],
    "description": "Create an Element of type Super with two vertices if seg is a Line, Arc or Spiral, or one vertex if seg is a Point. The co-ordinates for the one or two vertices are taken from seg. flag1 is used to specify which of the dimensions from 1 to 32 are used/not used. See 5.38.1 Super String Dimensions for the values that flag1 may take. LJG? if seg is an Arc or a Spiral, then what dimensions are set and what values are they given? The return value is an Element handle to the created super string. If the Super string could not be created, then the returned Element will be null. Note - if dimensions greater than 32 are required, then calls with two flags must be used. For example Integer Create_super(Integer flag1, Integer flag2,Segment seg)."
  },
  {
    "name": "Create_super",
    "id": 1500,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "flag2",
        "type": "Integer"
      },
      {
        "name": "seg",
        "type": "Segment"
      }
    ],
    "description": "Do not use this one, see below."
  },
  {
    "name": "Create_super2",
    "id": 8018,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "flag2",
        "type": "Integer"
      },
      {
        "name": "seg",
        "type": "Segment"
      }
    ],
    "description": "Create an Element of type Super with two vertices if seg is a Line, Arc or Spiral, or one vertex if seg is a Point. The co-ordinates for the one or two vertices are taken from seg. flag1 is used to specify which of the dimensions from 1 to 32 are used/not used. flag2 is used to specify which of the dimensions from 33 to 64 are used/not used. Super String Element Page 403 12d Model Macro Manual See 5.38.1 Super String Dimensions for the values that flag1 and flag2 may take. LJG? if seg is an Arc or a Spiral, then what dimensions are set and what values are they given? The return value is an Element handle to the created super string. If the Super string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_super",
    "id": 690,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type Super with num_pts vertices. The basic geometry for the super string is supplied by the arrays x (x values), y (y values), z (z values), r (radius of segments), b (bulge of segment b = 1 for major arc > 180 degrees, b = 0 for minor arc < 180 degrees). flag1 is used to specify which of the dimensions from 1 to 32 are used/not used. Note that depending on the flag1 value, the z, r, b arrays may or may not be used, but the arrays must still be supplied. See 5.38.1 Super String Dimensions for the values that flag1 may take. The arrays must be of length num_pts or greater. The function return value is an Element handle to the created super string. If the Super string could not be created, then the returned Element will be null. Note - if dimensions greater than 32 are required, then calls with two flags must be used. For example Integer Create_super(Integer flag1, Integer flag2,Real x[],Real y[],Real z[],Real r[],Integer b[],Integer num_pts)."
  },
  {
    "name": "Create_super",
    "id": 1498,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "flag2",
        "type": "Integer"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Do not use this one, see below."
  },
  {
    "name": "Create_super2",
    "id": 8016,
    "returnType": "Element",
    "parameters": [
      {
        "name": "flag1",
        "type": "Integer"
      },
      {
        "name": "flag2",
        "type": "Integer"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type Super with num_pts vertices. Page 404 Super String Element Chapter 5 12dPL Library Calls The basic geometry for the super string is supplied by the arrays x (x values), y (y values), z (z values), r (radius of segments), b (bulge of segment b = 1 for major arc > 180 degrees, b = 0 for minor arc < 180 degrees). flag1 is used to specify which of the dimensions from 1 to 32 are used/not used. flag2 is used to specify which of the dimensions from 33 to 64 are used/not used. Note that depending on the flag1 value, the z, r, b arrays may or may not be used, but the arrays must still be supplied. See 5.38.1 Super String Dimensions for the values that flag1 and flag2 may take. The arrays must be of length num_pts or greater. The function return value is an Element handle to the created super string. If the Super string could not be created, then the returned Element will be null."
  },
  {
    "name": "Super_insert_vertex",
    "id": 2168,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "where",
        "type": "Integer"
      },
      {
        "name": "count",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, insert count new vertices BEFORE vertex index where. All the existing vertices from index position where onwards are move to after the new count inserted vertices. For example, Super_insert_vertex(super,1,10) will insert 10 new vertices before vertex index 1, and all the existing vertices will be moved to after vertex index 10. Note that if the string is a closed string then the closure applies to the new last vertex. If the Element super is not of type Super, then the function return value is set to a non zero value. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_remove_vertex",
    "id": 2169,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "where",
        "type": "Integer"
      },
      {
        "name": "count",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, delete count existing vertices starting at vertex index where. If there are not enough vertices to delete then the delete stops at the last vertex of the super string. Note that if the string is closed then the closure applies to the new last vertex. If the Element super is not of type Super, then the function return value is set to a non zero value. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_coord",
    "id": 732,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Set the coordinate data (x,y,z) for the i\u2019th vertex (the vertex with index number i) of the super Element super where the x value to set is in Real x. the y value to set is in Real y. the z value to set is in Real z. If the Element super is not of type Super, then the function return value is set to a non zero value. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_super_vertex_coord",
    "id": 733,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the coordinate data (x,y,z) for the i\u2019th vertex (the vertex with index number i) of the super Element super. The x coordinate is returned in Real x. The y coordinate is returned in Real y. The z coordinate is returned in Real z. If the Element super is not of type Super, then the function return value is set to a non zero value. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_data",
    "id": 699,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "r",
        "type": "Real"
      },
      {
        "name": "b",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,r,f) data for the i\u2019th vertex of the super Element super where the x value to set is the Real x. the y value to set is the Real y. the z value to set is the Real z. the radius value to set is the Real r. the major/minor arc bulge value to set is the Integer b (0 for minor arc < 180 degrees, non zero for major arc > 180 degrees). If the Element super is not of type Super, then the function return value is set to a non zero value. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_super_data",
    "id": 697,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,r,b) data for the first num_pts vertices of the string Element super. This function allows the user to modify a large number of vertices of the string in one call. The maximum number of vertices that can be set is given by the number of vertices in the string. The (x,y,z,r,f) values for each string vertex are given in the Real arrays x[], y[],z[],r[] and Integer array b[] where the (x,y,z) are coordinate, r the radius of the arc on the following segment and b is the bulge to say whether the arc is a major or minor arc (bulge of segment b = 1 for major arc > 180 degrees, b = 0 for minor arc < 180 degrees). The number of vertices to be set is given by Integer num_pts If the Element super is not of type Super, then nothing is modified and the function return value is set to a non zero value. Note: this function can not create new super Elements but only modify existing super Elements. A function return value of zero indicates the data was set successfully."
  },
  {
    "name": "Get_super_data",
    "id": 694,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z,r,f) data for the first max_pts vertices of the super string Element super. The (x,y,z,r,f) values at each string vertex are returned in the Real arrays x[], y[],z[],r[] and Integer Page 408 Super String Element Chapter 5 12dPL Library Calls array b[] (the arrays are x values, y values, z values, radius of segments, b is bulge to denote if the segment is major or minor arc (bulge of segment b = 1 for major arc > 180 degrees, b = 0 for minor arc < 180 degrees). The maximum number of vertices that can be returned is given by max_pts (usually the size of the arrays). The vertex data returned starts at the first vertex and goes up to the minimum of max_pts and the number of vertices in the string. The actual number of vertices returned is returned by Integer num_pts num_pts <= max_pts If the Element super is not of type Super, then num_pts is returned as zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_super_data",
    "id": 698,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the (x,y,z,r,b) data for num_pts vertices, starting at vertex number start_pt. This function allows the user to modify a large number of vertices of the string in one call starting at vertex number start_pt rather than vertex one. The maximum number of vertices that can be set is given by the difference between the number of vertices in the string and the value of start_pt. The (x,y,z,r,f) values for the string vertices are given in the Real arrays x[], y[],z[],r[] and b[] where the (x,y,z) are coordinate, r the radius of the arc on the following segment and b is the bulge to say whether the arc is a major or minor arc (bulge of segment b = 1 for major arc > 180 degrees, b = 0 for minor arc < 180 degrees). The number of the first string vertex to be modified is start_pt. The total number of vertices to be set is given by Integer num_pts If the Element super is not of type Super, then nothing is modified and the function return value is set to a non zero value. A function return value of zero indicates the data was set successfully. Notes (a) A start_pt of one gives the same result as the previous function. (b) This function can not create new super strings but only modify existing super strings."
  },
  {
    "name": "Get_super_vertex_forward_direction",
    "id": 1501,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the Element super of type Super, get the angle of the tangent at the beginning of the segment leaving vertex number vert. That is, the segment going from vertex vert to vertex vert+1. Return the angle in ang. ang is in radians and is measured in a counterclockwise direction from the positive x-axis. vertex number vert forward angle vertex number vert forward angle tangent at beginning of segment following vertex number vert vertex number vert+1 vertex number vert+1 If the super string is closed, the angle will still be valid for the last vertex of the super string and it is the angle of the closing segment between the last vertex and the first vertex. If super string is open, the call fails for the last vertex and a non-zero return code is returned. If the Element super is not of type Super, then a non-zero return code is returned A function return value of zero indicates the angle was successfully returned."
  },
  {
    "name": "Get_super_vertex_backward_direction",
    "id": 1502,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the Element super of type Super, get the angle of the tangent at the end of the segment entering vertex number vert. That is, the segment going from vertex vert-1 to vertex vert. Return the angle in ang. ang is in radians and is measured in a counterclockwise direction from the positive x-axis. backward angle vertex number vert backward angle tangent at end of segment going into vertex vertex number vert number vert vertex number vert-1 vertex number vert-1 Super String Element Page 411 12d Model Macro Manual If the super string is closed, the angle will still be valid for the first vertex of the super string and it is the angle of the closing segment between the first vertex and the last vertex. If super string is open, the call fails for the first vertex and a non-zero return code is returned. If the Element super is not of type Super, then a non-zero return code is returned A function return value of zero indicates the angle was successfully returned."
  },
  {
    "name": "Get_type_like2",
    "id": 8012,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "In earlier versions of 12d Model, there were a large number of string types but in later versions of 12d Model, the super string was introduced which with its possible dimensions, could replace many of the other strings. However, for some applications it was important to know if the super string was like one of the original strings. For example, some options required a string to be a contours string, the original 2d string. That is, the string has the one z-value (or height) for the entire string. So a super string that has a constant dimension for height, behaves like a 2d string and in that case will return the Type Like of 2d. The Type Like\u2019s can be referred to by a number (Integer) or by text (Text). See 5.36.1 Types of Elements for the values of the Type Like numbers and Type Like text. The Type Like for the super string is returned in type. If the Element string is not a super string, then a non zero function return value is returned. A function return value of zero indicates the Type Like was returned successfully."
  },
  {
    "name": "Get_type_like",
    "id": 2074,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "Do not use this one, please see the above call"
  },
  {
    "name": "Get_type_like2",
    "id": 8013,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "In earlier versions of 12d Model, there were a large number of string types but in later versions of 12d Model, the super string was introduced which with its possible dimensions, could replace many of the other strings. However, for some applications it was important to know if the super string was like one of the original strings. For example, some options required a string to be a contours string, the original 2d string. That is, the string has the one z-value (or height) for the entire string. So a super string that has a constant dimension for height, behaves like a 2d string and in that case will return the Type Like of 2d. The Type Like\u2019s can be referred to by a number (Integer) or by text (Text). See 5.36.1 Types of Elements for the values of the Type Like numbers and Type Like text. The Text Type Like for the super string is returned in type. Super String Element Page 413 12d Model Macro Manual If the Element string is not a super string, then a non zero function return value is returned. A function return value of zero indicates the Type Like was returned successfully."
  },
  {
    "name": "Get_type_like",
    "id": 2075,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Do not use this one, please see the above call."
  },
  {
    "name": "Set_super_use_2d_level",
    "id": 700,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the height dimension Att_ZCoord_Value is used or removed. See Height Dimensions for information on Height dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. If use is 0, the dimension Att_ZCoord_Value is removed. Note that if the height dimension Att_ZCoord_Array exists, this call is ignored. If the Element super is not a super string, then a non zero function return value is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_2d_level",
    "id": 701,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension height dimension Att_ZCoord_Value exists for the super string super. See Height Dimensions for information on Height dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists, or 0 if the dimension doesn\u2019t exist. If the Element super is not a super string, then a non zero function return value is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_3d_level",
    "id": 730,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the height dimension Att_ZCoord_Array is used or removed. See Height Dimensions for information on Height dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. If use is 0, the dimension Att_ZCoord_Array is removed. If the Element super is not a super string, then a non zero function return value is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_vertex_level_value_to_array",
    "id": 2174,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "If for the super string super the dimension Att_ZCoord_Value exists and the dimension Att_ZCoord_Array does not exist then there will be one z value zval (height or level) for the entire string. In this case (when the dimension Att_ZCoord_Value exists and the dimension Att_ZCoord_Array does not exist) this function sets the Att_ZCoord_Array dimension and creates a new z-value for each vertex of super and it is given the value zval. See Height Dimensions for information on the Height (ZCoord) dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_2d_level",
    "id": 703,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&level",
        "type": "Real"
      }
    ],
    "description": "For the Element elt, if the height dimension Att_ZCoord_Value is set and Att_ZCoord_Array is not set, then the z-value for the entire string is returned in level. See Height Dimensions for information on Height dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element elt is not of type Super, or the dimension Att_ZCoord_Value is not set, this call fails and a non zero return value is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_2d_level",
    "id": 702,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "level",
        "type": "Real"
      }
    ],
    "description": "For the Element elt of type Super, if the dimension Att_ZCoord_Value is set and Att_ZCoord_Array is not set, then the z-value for the entire string is set to level. See Height Dimensions for information on Height dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element elt is not of type Super, or the dimension Att_ZCoord_Value is not set, this call fails and a non zero return value is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_use_tinability",
    "id": 722,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use the two dimensions Att_Vertex_Tinable_Array and Att_Segment_Tinable_Array. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A value for use of 1 sets the dimensions and 0 removes them. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_tinability",
    "id": 723,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether at least one the two dimensions Att_Vertex_Tinable_Array or Att_Segment_Tinable_Array exists for the super string. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if at least one of the two dimensions exists. use is returned as 0 if neither of the two dimensions exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_tinability_value",
    "id": 1584,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Vertex_Tinable_Value is used or removed. If Att_Vertex_Tinable_Value is set and Att_Vertex_Tinability_Array is not set then the tinability is the same for all vertices of super. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and the tinability is the same for all vertices. If use is 0, the dimension is removed. Note that if the dimension Att_Vertex_Tinable_Array exists, this call is ignored. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_tinability_value",
    "id": 1585,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Tinable_Value exists for the super string super. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_tinability_array",
    "id": 1586,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Vertex_Tinable_Array is used. If Att_Vertex_Tinable_Array is set then there can be a different tinability defined for each vertex of super. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and the tinability is different for each vertex. If use is 0, the dimension is removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_tinability_array",
    "id": 1587,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Tinable_Array exists for the super string super. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_tinability",
    "id": 736,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "tinability",
        "type": "Integer"
      }
    ],
    "description": "For the Element super (which must be of type Super), set the tinability value for vertex number vert to the value tinability. If tinability is 1, the vertex is tinable. If tinability is 0, the vertex is not tinable. If the Element super is not of type Super, or Att_Vertex_Tinable_Array is not set for super, then a non-zero return code is returned. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_tinability",
    "id": 737,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&tinability",
        "type": "Integer"
      }
    ],
    "description": "For the Element super (which must be of type Super), get the tinability value for vertex number vert and return it in the Integer tinability. If tinability is 1, the vertex is tinable. If tinability is 0, the vertex is not tinable. If the Element super is not of type Super, or Att_Vertex_Tinable_Array is not set for super, then a non-zero return code is returned. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_tinability_value",
    "id": 1592,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Segment_Tinable_Value is used or removed. If Att_Segment_Tinable_Value is set and Att_Segment_Tinability_Array is not set then the tinability is the same for all segments of super. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and the tinability is the same for all segments. If use is 0, the dimension is removed. Note that if the dimension Att_Segment_Tinable_Array exists, this call is ignored. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_tinability_value",
    "id": 1593,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Tinable_Value exists for the super string super. If Att_Segment_Tinable_Value is set and Att_Segment_Tinability_Array is not set then the tinability is the same for all segments of super. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_tinability_array",
    "id": 1594,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Segment_Tinable_Array is set or removed. If Att_Segment_Tinable_Array is set then there can be a different tinability defined for each segment in super. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and the tinability is different for each segment. If use is 0, the dimension is removed. Super String Element Page 423 12d Model Macro Manual A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_tinability_array",
    "id": 1595,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Tinable_Array exists for the super string super. If Att_Segment_Tinable_Array is set then there can be a different tinability defined for each segment in super. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_tinability",
    "id": 724,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "tinability",
        "type": "Integer"
      }
    ],
    "description": "For the Element super (which must be of type Super), set the tinability value for segment number seg to the value tinability. If tinability is 1, the segment is tinable. If tinability is 0, the segment is not tinable. If the Element super is not of type Super, or Att_Segment_Tinable_Array is not set for super, then a non-zero return code is returned. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_tinability",
    "id": 725,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&tinability",
        "type": "Integer"
      }
    ],
    "description": "For the Element super (which must be of type Super), get the tinability value for segment number seg and return it in the Integer tinability. If tinability is 1, the segment is tinable. If tinability is 0, the segment is not tinable. If the Element super is not of type Super, or Att_Segment_Tinable_Array is not set for super, then a non-zero return code is returned. See Tinability Dimensions for information on the Tinability dimensions or 5.38.1 Super String Page 424 Super String Element Chapter 5 12dPL Library Calls Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_radius",
    "id": 708,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the segment radius dimension Att_Radius_Array is to be used or removed. See Segment Radius Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the segments between vertices of the super can be straights or arcs. If use is 0, the dimension is removed. That is, the segments between vertices of the super can only be straights. Note that if the dimension Att_Radius_Array is set then the Att_Major_Array is also automatically set. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_radius",
    "id": 709,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the segment radius dimension Att_Radius_Array exists for the super string. use is returned as 1 if the dimension Att_Radius_Array exists, or 0 if the dimension doesn\u2019t exist. See Segment Radius Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_radius",
    "id": 710,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the radius of segment number seg to the value rad. See Segment Radius Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Radius_Array set. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_radius",
    "id": 711,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&rad",
        "type": "Real"
      }
    ],
    "description": "For the super string super, get the radius of segment number seg and return the radius in rad. See Segment Radius Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Radius_Array set. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_major",
    "id": 712,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "bulge",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the major/minor arc value of segment number seg to the value bulge. (bulge of segment b = 1 for major arc > 180 degrees, b = 0 for minor arc < 180 degrees) See Segment Radius Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Major_Array set. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_major",
    "id": 713,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&bulge",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, get the major/minor arc bulge of segment number seg and return the value in bulge (bulge of segment bulge = 1 for major arc > 180 degrees, bulge = 0 for minor arc < 180 degrees). See Segment Radius Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Major_Array set. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_linestyle",
    "id": 3131,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the segment linestyle dimension Att_Segment_Linestyle_Array is to be used or removed. See Segment Linestyle Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the segments of the super have of different linestyles. If use is 0, the dimension is removed. That is, all the segments of the super use the string linestyle. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_linestyle",
    "id": 3132,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the segment radius dimension Att_Segment_Linestyle_Array exists for the super string. use is returned as 1 if the dimension Att_Segment_Linestyle_Array exists, or 0 if the dimension doesn\u2019t exist. See Segment Linestyle Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_linestyle",
    "id": 3133,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "linestyle_name",
        "type": "Text"
      }
    ],
    "description": "For the super string super, set the segment linestyle for segment number seg to the one with name linestyle_name. See Segment Linestyle Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Segment_Linestyle_Array set. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_linestyle",
    "id": 3134,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&linestyle_name",
        "type": "Text"
      }
    ],
    "description": "For the super string super, get the segment linestyle for segment number seg and return its name in linestyle_name. See Segment Linestyle Dimension for information on the Segment Radius dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Segment_Linestyle_Array set. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_point_number",
    "id": 738,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use, remove, the dimension Att_Point_Array. If Att_Point_Array exists, the string can have a Point Id for each vertex. If use is 1, the dimension is set and each vertex can have a Point Id. If use is 0, the dimension is removed. See Point Id Dimension for information on the Point Id dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_point_number",
    "id": 739,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Point_Array exists for the super string. If Att_Point_Array exists, the string can have a Point Id for each vertex. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. See Point Id Dimension for information on the Point Id dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_point_number",
    "id": 740,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "point_number",
        "type": "Integer"
      }
    ],
    "description": "For the Element super which must be of type Super, set the Point Id for vertex number vert to the have the text value of the integer point_number. If the Element super is not of type Super, or the dimension Att_Point_Array is not set, then a non- zero return code is returned. See Point Id Dimension for information on the Point Id dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. Note - in earlier versions of 12d Model (pre v6), point id\u2019s were only integers. This was extended to being a text when surveying equipment allowed non-integer point ids. A function return value of zero indicates the point id was successfully set. Page 430 Super String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_super_vertex_point_number",
    "id": 741,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&point_number",
        "type": "Integer"
      }
    ],
    "description": "This function should no longer be used because now Point Id\u2019s do not have to be integers. From the Element super which must be of type Super, get the Point Id for vertex number vert and return it in the Integer point_number. If the Element super is not of type Super, or the dimension Att_Point_Array is not set for super, then a non-zero return code is returned. See Point Id Dimension for information on the Point Id dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. Note - in earlier versions of 12d Model (pre v6), Point Id\u2019s were only integers. This was extended to being a text when surveying equipment allowed non-integer Point Ids. A function return value of zero indicates the point id was successfully returned."
  },
  {
    "name": "Get_super_vertex_point_number",
    "id": 1626,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&point_id",
        "type": "Text"
      }
    ],
    "description": "From the Element super which must be of type Super, get the Point Id for vertex number vert and return it in the Text point_id. If the Element super is not of type Super, or the dimension Att_Point_Array is not set for super, then a non-zero return code is returned. See Point Id Dimension for information on the Point Id dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the point id was successfully returned. Super String Element Page 431 12d Model Macro Manual"
  },
  {
    "name": "Set_super_use_symbol",
    "id": 797,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the vertex symbol dimension Att_Symbol_Value is used or removed. See Vertex Symbol Dimensions for information on the Vertex Symbol dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the super string has one symbol for all vertices. If use is 0, the dimension is removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_symbol",
    "id": 798,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the vertex symbol dimension Att_Symbol_Value exists for the Element super of type Super. See Vertex Symbol Dimensions for information on the Vertex Symbol dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists. That is, the super string has one symbol for all vertices. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_symbol",
    "id": 799,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the vertex symbol dimension Att_Symbol_Array is used or removed. See Vertex Symbol Dimensions for information on the Vertex Symbol dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the super string has a different symbol on each vertex. If use is 0, the dimension is removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_vertex_symbol_value_to_array",
    "id": 2175,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "If for the super string super the dimension Att_Symbol_Value exists and the dimension Att_Symbol_Array does not exist then there will be one z value zval (height or level) for the entire string. In this case (when the dimension Att_Symbol_Value exists and the dimension Att_Symbol_Array does not exist) this function sets the Att_Symbol_Array dimension and creates a new array for symbol at each vertex of super. See Vertex Symbol Dimensions for information on the Height (ZCoord) dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_symbol_style",
    "id": 801,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "sym",
        "type": "Text"
      }
    ],
    "description": "For the super Element super, set the symbol on vertex number vert to be the symbol style named sym. If there is only the one Symbol for the entire string then the symbol name for that symbol is set to sym regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_symbol_style",
    "id": 802,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&sym",
        "type": "Text"
      }
    ],
    "description": "For the super Element super, return the name of the symbol on vertex number vert in Text sym. If there is only the one Symbol for the entire string then the symbol name for that symbol is returned in sym regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_symbol_colour",
    "id": 807,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the colour number of the symbol from the vertex number vert to be col. If there is only the one Symbol for the entire string then the colour number of that symbol is set to col regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_symbol_colour",
    "id": 808,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&col",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, return as col the colour number of the symbol on vertex number vert. If there is only the one Symbol for the entire string then the colour number of that symbol is returned in col regardless of the value of vert. A return value of 0 indicates the function call was successful. Super String Element Page 437 12d Model Macro Manual"
  },
  {
    "name": "Set_super_vertex_symbol_offset_width",
    "id": 809,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "x_offset",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the x offset of the symbol from vertex number vert to be x_offset. If there is only the one Symbol for the entire string then the x offset of that symbol is set to x_offset regardless of the value of vert. See 5.38.8.1 Definitions of Super String Vertex Symbol Dimensions and Parametersfor the definition of x offset. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_symbol_offset_width",
    "id": 810,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&x_offset",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return as x_offset the x offset of the symbol from vertex number vert. If there is only the one Symbol for the entire string then the x offset of that Symbol is returned in x_offset regardless of the value of vert. See 5.38.8.1 Definitions of Super String Vertex Symbol Dimensions and Parametersfor the definition of x offset. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_symbol_offset_height",
    "id": 811,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "y_offset",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the y offset of the symbol from the vertex number vert to be y_offset. If there is only the one Symbol for the entire string then the y offset of that symbol is set to y_offset regardless of the value of vert. See 5.38.8.1 Definitions of Super String Vertex Symbol Dimensions and Parametersfor the definition of y offset. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_symbol_rotation",
    "id": 803,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the angle of rotation of the symbol on vertex number vert to ang. ang is in radians and is measured counterclockwise from the x-axis. angle is in radians and is measured counterclockwise from the x-axis. If there is only the one Symbol for the entire string then the angle of rotation of that symbol is set to ang regardless of the value of vert. See 5.38.8.1 Definitions of Super String Vertex Symbol Dimensions and Parametersfor the definition of angle of rotation of the symbol. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_symbol_rotation",
    "id": 804,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the angle of rotation in angle of the symbol on vertex number vert. angle is in radians and is measured counterclockwise from the x-axis. If there is only the one angle of rotation for the entire string then the angle of rotation of that Symbol is returned in ang regardless of the value of vert. See 5.38.8.1 Definitions of Super String Vertex Symbol Dimensions and Parametersfor the definition of angle of rotation of the symbol. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_symbol_size",
    "id": 806,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&sz",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return as s the size of the symbol on vertex number vert. If there is only the one Symbol for the entire string then the size of that Symbol is returned in sz regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_culvert",
    "id": 1247,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use or remove the pipe/culvert dimension Att_Culvert_Value. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A value for use of 1 sets the dimension and 0 removes it. Super String Element Page 445 12d Model Macro Manual Note if any other pipe/culvert dimensions exist (besides Att_Pipe_Justify), there is no change to the super string and this calls return a non-zero value. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_culvert",
    "id": 1246,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the pipe/culvert dimension Att_Culvert_Value exists for the super string. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension Att_Culvert_Value exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_culvert",
    "id": 1251,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use or remove the pipe/culvert dimension Att_Culvert_Array. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A value for use of 1 sets the dimension and 0 removes it. Note if any other pipe/culvert dimensions exist (besides Att_Pipe_Justify), there is no change to the super string and this calls return a non-zero value. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_culvert",
    "id": 1250,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the pipe/culvert dimension Att_Culvert_Array exists for the super string. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension Att_Culvert_Array exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_pipe_justify",
    "id": 1255,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the pipe/culvert dimension Att_Pipe_Justify is used or removed. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the pipe or culvert super string has a justification defined. If use is 0, the dimension is removed. Note: the same justification flag is used whether the super string is a round pipe or a culvert and the justification applies for the entire string. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_pipe_justify",
    "id": 1254,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the pipe/culvert dimension Att_Pipe_Justify exists for the Element super of type Super. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists use is returned as 0 if the dimension doesn\u2019t exist. Note: the same justification flag is used whether the super string is a round pipe or a culvert and the justification applies for the entire string. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_pipe_justify",
    "id": 1256,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "justify",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super which is a pipe or culvert string (i.e. Att_Diameter_Value, Att_Diameter_Array, Att_Culvert_Value or Att_Culvert_Array has been set), set the pipe/culvert justification to justify. The values for justify are given in Pipe/Culvert Justification See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or a correct dimension is not allocated, this call fails and a non-zero function value is returned. Note: the same justification flag is used whether the super string is a pipe or a culvert and the justification applies for the entire string. A return value of 0 indicates the function call was successful"
  },
  {
    "name": "Get_super_pipe_justify",
    "id": 1257,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&justify",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super which is a pipe or culvert string (i.e. Att_Diameter_Value, Att_Diameter_Array, Att_Culvert_Value or Att_Culvert_Array has been set), get the pipe/culvert justification and return it in justify. The values for justify are given in Pipe/Culvert Justification See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or a correct dimension is not allocated, this call fails and a non-zero function value is returned. Note: the same justification flag is used whether the super string is a pipe or a culvert and the justification applies for the entire string. A return value of 0 indicates the function call was successful"
  },
  {
    "name": "Set_super_pipe",
    "id": 2645,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "diameter",
        "type": "Real"
      },
      {
        "name": "thickness",
        "type": "Real"
      },
      {
        "name": "internal_diameter",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super which is a constant diameter pipe string (i.e. the dimension flag Att_Diameter_Value has been set and Att_Diameter_Array has not been set), set the thickness to thickness and the internal diameter to diameter if internal_diameter = 1 or the external diameter to diameter if internal_diameter is non zero. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension is not allocated, this call fails and a non- zero function value is returned. Note - Get_super_use_pipe can be called to make sure it is a constant diameter pipe string. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_pipe",
    "id": 2646,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&diameter",
        "type": "Real"
      },
      {
        "name": "thickness",
        "type": "Real"
      },
      {
        "name": "internal_diameter",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super which is a constant diameter round pipe string (i.e. Att_Diameter_Value has been set and Att_Diameter_Array has not been set), get the pipe thickness and return it in thickness and the internal diameter and return it in internal_diameter. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension is not allocated, this call fails and a non- zero function value is returned. Note - Get_super_use_pipe can be called to make sure it is a constant diameter round pipe string. A return value of 0 indicates the function call was successful"
  },
  {
    "name": "Set_super_segment_pipe",
    "id": 2649,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "diameter",
        "type": "Real"
      },
      {
        "name": "thickness",
        "type": "Real"
      },
      {
        "name": "internal_diameter",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super and segment number seg, set the thickness to thickness and the internal diameter to diameter if internal_diameter = 1 or the external diameter to diameter if internal_diameter is non zero. If super is not a variable pipe string then a non zero return value is returned. Super String Element Page 449 12d Model Macro Manual See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A return value of 0 indicates the function call was successful"
  },
  {
    "name": "Get_super_segment_pipe",
    "id": 2650,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&diameter",
        "type": "Real"
      },
      {
        "name": "&thickness",
        "type": "Real"
      },
      {
        "name": "&internal_diameter",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super and for segment number seg, get the pipe thickness and return it in thickness, and if the returned value of internal_diameter is 1 then return the internal diameter in diameter otherwise return the external diameter in diameter. If super is not a variable pipe string then a non zero return value is returned. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions."
  },
  {
    "name": "Set_super_culvert",
    "id": 2647,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "width",
        "type": "Real"
      },
      {
        "name": "height",
        "type": "Real"
      },
      {
        "name": "left_thickness",
        "type": "Real"
      },
      {
        "name": "right_thickness",
        "type": "Real"
      },
      {
        "name": "top_thickness",
        "type": "Real"
      },
      {
        "name": "bottom_thickness",
        "type": "Real"
      },
      {
        "name": "internal_width_height",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super which is a constant width and height string (i.e.the pipe/ culvert dimension flag Att_Culvert_Value has been set and Att_Culvert_Array not set), then if internal_width_height =1 then set the culvert internal width to w and the internal height to h. if internal_width_height is not 1 then set the culvert external width to w and the external height to h. Set the left thickness to left_thickness, right thickness to right_thickness, top thickness to top_thickness and bottom thickness to bottom_thickness. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension Att_Culvert_Value is not allocated, this call fails and a non-zero function value is returned. A return value of 0 indicates the function call was successful. Note - Get_super_use_culvert can be called to make sure it is a constant culvert string."
  },
  {
    "name": "Get_super_culvert",
    "id": 2648,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&width",
        "type": "Real"
      },
      {
        "name": "&height",
        "type": "Real"
      },
      {
        "name": "&left_thickness",
        "type": "Real"
      },
      {
        "name": "&right_thickness",
        "type": "Real"
      },
      {
        "name": "&top_thickness",
        "type": "Real"
      },
      {
        "name": "&bottom_thickness",
        "type": "Real"
      },
      {
        "name": "&internal_width_height",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super which is a constant width and height string (i.e.the pipe/ culvert dimension flag Att_Culvert_Value has been set and Att_Culvert_Array not set), then if internal_width_height is returned as 1 then the culvert internal width is returned in w and the internal height returned in h. if internal_width_height is not returned as 1 then the culvert external width is returned in w and the external height returned in h. The left thickness is returned in left_thickness, right thickness in right_thickness, top thickness in top_thickness and bottom thickness in bottom_thickness. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension is not allocated, this call fails and a non- zero function value is returned. A return value of 0 indicates the function call was successful Note - Get_super_use_culvert can be called to make sure it is a constant culvert string."
  },
  {
    "name": "Set_super_segment_culvert",
    "id": 2651,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "width",
        "type": "Real"
      },
      {
        "name": "height",
        "type": "Real"
      },
      {
        "name": "left_thickness",
        "type": "Real"
      },
      {
        "name": "right_thickness",
        "type": "Real"
      },
      {
        "name": "top_thickness",
        "type": "Real"
      },
      {
        "name": "bottom_thickness",
        "type": "Real"
      },
      {
        "name": "internal_width_height",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super which has culvert widths and heights for each segment (i.e.the pipe/culvert dimension flag Att_Culvert_Array has been set), then for segment number seg: if internal_width_height =1 then set the culvert internal width to w and the internal height to h. if internal_width_height is not 1 then set the culvert external width to w and the external height to h. Set the left thickness to left_thickness, right thickness to right_thickness, top thickness to top_thickness and bottom thickness to bottom_thickness. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension Att_Culvert_Array is not allocated, this call fails and a non-zero function value is returned. A return value of 0 indicates the function call was successful. Note - Get_super_use_segment_culvert can be called to make sure it is a variable segment culvert string."
  },
  {
    "name": "Set_super_culvert",
    "id": 1249,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "w",
        "type": "Real"
      },
      {
        "name": "h",
        "type": "Real"
      }
    ],
    "description": "For the Element super of type Super which is a constant width and height culvert string (i.e.the pipe/culvert dimension flag Att_Culvert_Value has been set), set the culvert width to w and the height to h. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension is not allocated Att_Culvert_Value, this call fails and a non-zero function value is returned. A return value of 0 indicates the function call was successful. Note - Get_super_use_culvert can be called to make sure it is a constant culvert string."
  },
  {
    "name": "Get_super_culvert",
    "id": 1248,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&w",
        "type": "Real"
      },
      {
        "name": "&h",
        "type": "Real"
      }
    ],
    "description": "For the Element super of type Super which is a constant width and height culvert string (i.e.the pipe/culvert dimension flag Att_Culvert_Value has been set), get the culvert width and height and return them in w and h respectively. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension is not allocated, this call fails and a non- zero function value is returned. A return value of 0 indicates the function call was successful Note - Get_super_use_culvert can be called to make sure it is a constant culvert string."
  },
  {
    "name": "Set_super_segment_culvert",
    "id": 1253,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "w",
        "type": "Real"
      },
      {
        "name": "h",
        "type": "Real"
      }
    ],
    "description": "For the Element super of type Super which has culvert widths and heights for each segment(i.e.the pipe/culvert dimension flag Att_Culvert_Array has been set), set the culvert width and height for segment number seg to be w and h respectively. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension Att_Culvert_Array is not allocated, this call fails and a non-zero function value is returned. Page 456 Super String Element Chapter 5 12dPL Library Calls A return value of 0 indicates the function call was successful. Note - Get_super_use_segment_culvert can be called to make sure it is variable segment culvert string."
  },
  {
    "name": "Get_super_segment_culvert",
    "id": 1252,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&w",
        "type": "Real"
      },
      {
        "name": "&h",
        "type": "Real"
      }
    ],
    "description": "For the Element super of type Super which has culvert widths and heights for each segment(i.e.the pipe/culvert dimension flag Att_Culvert_Array has been set), get the culvert width and height for segment number seg and return them in w and h respectively. See Pipe/Culvert Dimensions for information on the Pipe/Culvert dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. If the Element super is not of type Super, or the dimension Att_Culvert_Array is not allocated, this call fails and a non-zero function value is returned. A return value of 0 indicates the function call was successful. Note - Get_super_use_segment_culvert can be called to make sure it is variable segment culvert string."
  },
  {
    "name": "Set_super_use_vertex_text_value",
    "id": 1237,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string super whether to use (set), or not use (remove), the dimension Att_Vertex_Text_Value. A value for use of 1 sets the dimension and 0 removes it. If Att_Vertex_Text_Value is used, then the same text is attached to all the vertices of the super string. Note if the dimension Att_Vertex_Text_Array exists, this call is ignored. See Vertex Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_text_value",
    "id": 1238,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Text_Value exists for the super string super. use is returned as 1 if the dimension Att_Vertex_Text_Value exists. use is returned as 0 if the dimension doesn\u2019t exist. If the dimension Att_Vertex_Text_Value exists then the string has the same text for every vertex of the string. See Vertex Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_text_array",
    "id": 742,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use (set), or not use (remove), the dimension Att_Segment_Text_Array. A value for use of 1 sets the dimension and 0 removes it. If Att_Vertex_Text_Array is used, then there is different text at each vertex of the super string super. See Vertex Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful. Super String Element Page 461 12d Model Macro Manual"
  },
  {
    "name": "Get_super_use_vertex_text_array",
    "id": 743,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Text_Array exists (is used) for the super string super. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. If Att_Vertex_Text_Array is used, then there is different text on each vertex of the of the string. See Vertex Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_vertex_text_value_to_array",
    "id": 2177,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "If for the super string super the dimension Att_Vertex_Text_Value exists and the dimension Att_Vertex_Text_Array does not exist then there will be one Vertex Text txt for the entire string. In this case (when the dimension Att_Vertex_Text_Value exists and the dimension Att_Vertex_Text_Array does not exist) this function sets the Att_Vertex_Text_Array dimension and new vertex text created for each vertex of super and the new vertex text is given the value txt. See Vertex Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_annotation_value",
    "id": 750,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string super whether to use, or not use, the dimension Att_Vertex_Annotate_Value. If the dimension Att_Vertex_Annotate_Value exists and the dimension Att_Vertex_Annotate_Array doesn\u2019t exist then the string has the one annotation which is used for vertex text on any vertex of the string. See Vertex Text Annotation Dimensions for information on the Text Annotation dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A value for use of 1 sets the dimension and 0 removes it. Note if the dimension Att_Vertex_Annotate_Array exists, this call is ignored. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_annotation_value",
    "id": 751,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Annotate_Value exists for the super string super. If the dimension Att_Vertex_Annotate_Value exists and the dimension Att_Vertex_Annotate_Array doesn\u2019t exist then the string has the one annotation which is used for vertex text on any vertex of the string. See Vertex Text Annotation Dimensions for information on the Text Annotation dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_annotation_array",
    "id": 752,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string super whether to use, or not use, the dimension Att_Vertex_Annotate_Array. If the dimension Att_Vertex_Annotate_Array exists then the string has a different annotation for the vertex text on each vertex of the string. See Vertex Text Annotation Dimensions for information on the Text Annotation dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A value for use of 1 sets the dimension and 0 removes it. Super String Element Page 463 12d Model Macro Manual A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_annotation_array",
    "id": 753,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Annotate_Array exists for the super string super. If the dimension Att_Vertex_Annotate_Array exists then the string has a different annotation for the vertex text on each vertex of the string. See Vertex Text Annotation Dimensions for information on the Text Annotation dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_vertex_annotate_value_to_array",
    "id": 2178,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "If for the super string super the dimension Att_Vertex_Annotate_Value exists and the dimension Att_Vertex_Annotate_Array does not exist then there will be one Annotation annot for the entire string. In this case (when the dimension Att_Vertex_Annotate_Value exists and the dimension Att_Vertex_Annotate_Array does not exist), this function sets the Att_Vertex_Annotate_Array dimension and new Annotations created for each vertex of super and the new Annotation is given the value annot. See Vertex Text Annotation Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text",
    "id": 744,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "txt",
        "type": "Text"
      }
    ],
    "description": "For the super Element super, set the vertex text at vertex number vert to be txt. If there is only one Vertex Text for all the vertices then the text for that one Vertex Text is set to txt regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text",
    "id": 745,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&txt",
        "type": "Text"
      }
    ],
    "description": "For the super string super, return in txt the vertex text on vertex number vert. If there is only one Vertex Text for all the vertices then the text for that one Vertex Text will be returned in txt regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_world_text",
    "id": 747,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "Set the units for vertex text for the super string super to World. See Vertex Text Annotation Units. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_device_text",
    "id": 746,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "Set the units for vertex text for the super string super to Screen (also known as Device or Pixel). See Vertex Text Annotation Units. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_type",
    "id": 748,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the vertex text units to be the value of type. See Vertex Text Annotation Units for the definition of vertex text units. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_type",
    "id": 749,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, return in type the value for the vertex text units for the vertex text of the string. See Vertex Text Annotation Units for the definition of vertex text units. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_justify",
    "id": 754,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "just",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the justification of the text on vertex number vert to just. See Vertex Text Annotation Definitions for the definition of justification. If there is only one Vertex Text Annotation for all the Vertex Text then the justification for that one Vertex Text Annotation is set to just regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_justify",
    "id": 755,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&just",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the justification of the vertex text on vertex number vert in just. See Vertex Text Annotation Definitions for the definition of justification. If there is only one Vertex Text Annotation for all the Vertex Text then the justification for that one Vertex Text Annotation will be returned in just regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_offset_width",
    "id": 756,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "offset",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the offset (offset width) of the vertex text from vertex number vert to offset See Vertex Text Annotation Definitions for the definition of offset (offset width). If there is only one Vertex Text Annotation for all the Vertex Text then the offset width for that one Vertex Text Annotation is set to offset regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_offset_width",
    "id": 757,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&offset",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return as offset the offset (offset width) of the vertex text from vertex number vert. See Vertex Text Annotation Definitions for the definition of offset (offset width). If there is only one Vertex Text Annotation for all the Vertex Text then the offset width for that one Vertex Text Annotation will be returned in offset regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_offset_height",
    "id": 758,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "raise",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the raise (offset height) of the vertex text for vertex number vert to raise. Super String Element Page 467 12d Model Macro Manual See Vertex Text Annotation Definitions for the definition of raise (offset height) If there is only one Vertex Text Annotation for all the Vertex Text then the raise for that one Vertex Text Annotation is set to raise regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_offset_height",
    "id": 759,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&raise",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return as raise the raise of the vertex text from vertex number vert. See Vertex Text Annotation Definitions for the definition of raise (offset height) If there is only one Vertex Text Annotation for all the Vertex Text then the raise for that one Vertex Text Annotation will be returned in raise regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_colour",
    "id": 1091,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the colour number of the vertex text on the vertex number vert to be col. If there is only one Vertex Text Annotation for all the Vertex Text then the colour number for that one Vertex Text Annotation is set to col regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_colour",
    "id": 1092,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&col",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return as col the colour number of the vertex text on vertex number vert. If there is only one Vertex Text Annotation for all the Vertex Text then the colour for that one Vertex Text Annotation will be returned in col regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_angle",
    "id": 761,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the angle of rotation of the vertex text on vertex number vert in ang. ang is measured in radians and is measured counterclockwise from the x-axis. See Vertex Text Annotation Definitions for the definition of angle. If there is only one Vertex Text Annotation for all the Vertex Text then the angle for that one Vertex Text Annotation will be returned in ang regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_angle2",
    "id": 3582,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the 3D beta angle of the vertex text on vertex number vert to ang. ang is in radians If there is only one Vertex Text Annotation for all the Vertex Text then the angle for that one Vertex Text Annotation is set to ang regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_angle2",
    "id": 3583,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the 3D beta angle of the vertex text on vertex number vert in ang. ang is measured in radians. If there is only one Vertex Text Annotation for all the Vertex Text then the angle for that one Vertex Text Annotation will be returned in ang regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_angle3",
    "id": 3584,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the 3D gamma angle of the vertex text on vertex number vert to ang. ang is in radians If there is only one Vertex Text Annotation for all the Vertex Text then the angle for that one Vertex Text Annotation is set to ang regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_angle3",
    "id": 3585,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the 3D gamma angle of the vertex text on vertex number vert in ang. ang is measured in radians. If there is only one Vertex Text Annotation for all the Vertex Text then the angle for that one Vertex Text Annotation will be returned in ang regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_size",
    "id": 762,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "sz",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the size of the vertex text on vertex number vert to sz. If there is only one Vertex Text Annotation for all the Vertex Text then the size for that one Vertex Text Annotation is set to sz regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_size",
    "id": 763,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&sz",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the size of the vertex text on vertex number vert as sz. If there is only one Vertex Text Annotation for all the Vertex Text then the size for that one Vertex Text Annotation will be returned in sz regardless of the value of vert. A return value of 0 indicates the function call was successful. Page 470 Super String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Set_super_vertex_text_x_factor",
    "id": 764,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "xf",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the x factor of the vertex text on vertex number vert to xf. If there is only one Vertex Text Annotation for all the Vertex Text then the x factor for that one Vertex Text Annotation is set to xf regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_x_factor",
    "id": 765,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&xf",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return in xf the x factor of the vertex text on vertex number vert. If there is only one Vertex Text Annotation for all the Vertex Text then the x factor for that one Vertex Text Annotation will be returned in xf regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_slant",
    "id": 766,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "sl",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the slant of the vertex text on vertex number vert to sl. If there is only one Vertex Text Annotation for all the Vertex Text then the slant factor for that one Vertex Text Annotation is set to sl regardless of the value of vert. Note that the value of sl is measured as tangent here, where in 12da the value is writen in decimal angle. The valid value for sl much be at least -1 and at most 1 (as the angle much be between -45 to 45 degree). A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_slant",
    "id": 767,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&sl",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return as sl the slant of the vertex text on vertex number vert. Super String Element Page 471 12d Model Macro Manual If there is only one Vertex Text Annotation for all the Vertex Text then the slant for that one Vertex Text Annotation will be returned in sl regardless of the value of vert. Note that the value of sl is measured as tangent here, where in 12da the value is writen in decimal angle. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_style",
    "id": 768,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "ts",
        "type": "Text"
      }
    ],
    "description": "For the super string super, set the textstyle of the vertex text on vertex number vert to ts. If there is only one Vertex Text Annotation for all the Vertex Text then the textstyle for that one Vertex Text Annotation is set to ts regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_text_style",
    "id": 769,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&ts",
        "type": "Text"
      }
    ],
    "description": "For the super string super, return as ts the textstyle of the vertex text on vertex number vert. If there is only one Vertex Text Annotation for all the Vertex Text then the textstyle for that one Vertex Text Annotation will be returned in ts regardless of the value of vert. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_text_ttf_underline",
    "id": 2600,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "underline",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, set the underline state for the vertex text on vertex number vert to be underline. If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. If there is only one Vertex Text Annotation for all the Vertex Text then the underline state for that one Vertex Text Annotation is set to underline regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates underline was successfully set."
  },
  {
    "name": "Get_super_vertex_text_ttf_underline",
    "id": 2601,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, get the underline state for the vertex text on vertex number vert and return it as underline. If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. If there is only one Vertex Text Annotation for all the Vertex Text then the underline state for that one Vertex Text Annotation will be returned in underline regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates underline was successfully returned."
  },
  {
    "name": "Set_super_vertex_text_ttf_strikeout",
    "id": 2602,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "strikeout",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, set the strikeout state for the vertex text on vertex number vert to be strikeout. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. If there is only one Vertex Text Annotation for all the Vertex Text then the strikeout state for that one Vertex Text Annotation is set to strikeout regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates strikeout was successfully set."
  },
  {
    "name": "Get_super_vertex_text_ttf_strikeout",
    "id": 2603,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, get the strikeout state for the vertex text on vertex number vert and return it as strikeout. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. If there is only one Vertex Text Annotation for all the Vertex Text then the strikeout state for that one Vertex Text Annotation will be returned in strikeout regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. Super String Element Page 473 12d Model Macro Manual A function return value of zero indicates strikeout was successfully returned."
  },
  {
    "name": "Set_super_vertex_text_ttf_italic",
    "id": 2604,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "italic",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, set the italic state for the vertex text on vertex number vert to be italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. If there is only one Vertex Text Annotation for all the Vertex Text then the italic state for that one Vertex Text Annotation is set to italic regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates italic was successfully set."
  },
  {
    "name": "Get_super_vertex_text_ttf_italic",
    "id": 2605,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&italic",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, get the italic state for the vertex text on vertex number vert and return it as italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. If there is only one Vertex Text Annotation for all the Vertex Text then the italic state for that one Vertex Text Annotation will be returned in italic regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates italic was successfully returned."
  },
  {
    "name": "Set_super_vertex_text_ttf_outline",
    "id": 2775,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "outline",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, set the outline state for the vertex text on vertex number vert to be outline. If outline = 1, then for a true type font the text will be only shown in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. If there is only one Vertex Text Annotation for all the Vertex Text then the outline state for that one Page 474 Super String Element Chapter 5 12dPL Library Calls Vertex Text Annotation is set to outline regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates outline was successfully set."
  },
  {
    "name": "Get_super_vertex_text_ttf_outline",
    "id": 2776,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&outline",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, get the outline state for the vertex text on vertex number vert and return it as outline. If outline = 1, then for a true type font the text will be shown only in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. If there is only one Vertex Text Annotation for all the Vertex Text then the outline state for that one Vertex Text Annotation will be returned in outline regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates outline was successfully returned."
  },
  {
    "name": "Set_super_vertex_text_ttf_weight",
    "id": 2606,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "weight",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, set the weight for the vertex text on vertex number vert to be weight. For the list of allowable weights, go to Allowable Weights If there is only one Vertex Text Annotation for all the Vertex Text then the weight for that one Vertex Text Annotation is set to weight regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates weight was successfully set."
  },
  {
    "name": "Get_super_vertex_text_ttf_weight",
    "id": 2607,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&weight",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, get the weight for the vertex text on vertex number vert and return it as weight. Super String Element Page 475 12d Model Macro Manual For the list of allowable weights, go to Allowable Weights If there is only one Vertex Text Annotation for all the Vertex Text then the weight for that one Vertex Text Annotation will be returned in weight regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Array or Att_Vertex_Value set. A function return value of zero indicates weight was successfully returned."
  },
  {
    "name": "Set_super_vertex_text_whiteout",
    "id": 2755,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "c",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Super String Element superstring, set the colour number of the colour used for the whiteout box around the vertex text, to be colour. If no text whiteout is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). If there is only one Vertex Text Annotation for all the Vertex Text then the colour number of the colour used for the whiteout box around the vertex text for that one Vertex Text Annotation is set to c regardless of the value of vert. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_super_vertex_text_whiteout",
    "id": 2756,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&c",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Super String Element superstring, get the colour number that is used for the whiteout box around the vertex text. The whiteout colour is returned as Integer colour. NO_COLOUR is the returned as the colour number if whiteout is not being used. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). If there is only one Vertex Text Annotation for all the Vertex Text then the colour number that is used for the whiteout box around the vertex text for that one Vertex Text Annotation will be returned in c regardless of the value of vert. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_super_vertex_text_border",
    "id": 2765,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "c",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Super String Element superstring, set the colour number of the colour used for the border of the whiteout box around the vertex text, to be c. Page 476 Super String Element Chapter 5 12dPL Library Calls If no whiteout border is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). If there is only one Vertex Text Annotation for all the Vertex Text then the colour number of the colour used for the border of the whiteout box around the vertex text for that one Vertex Text Annotation is set to c regardless of the value of vert. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_super_vertex_text_border",
    "id": 2766,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&c",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Super String Element superstring, get the colour number that is used for the border of the whiteout box around the vertex text. The whiteout border colour is returned as Integer c. NO_COLOUR is the returned as the colour number if there is no whiteout border. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). If there is only one Vertex Text Annotation for all the Vertex Text then the colour number that is used for the border of the whiteout box around the vertex text for that one Vertex Text Annotation will be returned in c regardless of the value of vert. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_super_vertex_text_border_style",
    "id": 3586,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "s",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Super String Element superstring, set the style for the border of the whiteout box around the vertex text, according to Integer s. 1 for rectangle 2 for circle 3 for capsule 4 for bevel 5 for triangle 1 (pointed at top) 6 for triangle 2 (flat line on top) 7 for pentagon 1 (pointed at top) 8 for pentagon 2 (flat line on top) 9 for hexagon 1 (pointed at top) 10 for hexagon 2 (flat line on top) 11 for octagon 1 (pointed at top) 12 for octagon 2 (flat line on top) If there is only one Vertex Text Annotation for all the Vertex Text then the style for the border of the whiteout box around the vertex text for that one Vertex Text Annotation is set to s regardless of the value of vert. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_super_vertex_text_border_style",
    "id": 3587,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&s",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Super String Element superstring, get the style for the border of the whiteout box around the vertex text. The value is returned as Integer s. 1 for rectangle 2 for circle 3 for capsule 4 for bevel 5 for triangle 1 (pointed at top) 6 for triangle 2 (flat line on top) 7 for pentagon 1 (pointed at top) 8 for pentagon 2 (flat line on top) 9 for hexagon 1 (pointed at top) 10 for hexagon 2 (flat line on top) 11 for octagon 1 (pointed at top) 12 for octagon 2 (flat line on top) If there is only one Vertex Text Annotation for all the Vertex Text then the style that is used for the border of the whiteout box around the vertex text for that one Vertex Text Annotation will be returned in s regardless of the value of vert. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_super_vertex_textstyle_data",
    "id": 1663,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "d",
        "type": "Textstyle_Data"
      }
    ],
    "description": "For the Element super of type Super, set the Textstyle_Data for the vertex text on vertex number vert to be d. Setting a Textstyle_Data means that all the individual values that are contained in the Textstyle_Data are set rather than having to set each one individually. If the value is blank in the Textstyle_Data d then the existing value is already set for the vertex text will be left alone. If there is only one Vertex Text Annotation for all the Vertex Text then the Textstyle_Data for that one Vertex Text Annotation is set to d regardless of the value of vert. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Vertex_Text_Value set. A function return value of zero indicates the Textstyle_Data was successfully set."
  },
  {
    "name": "Set_super_use_segment_text_value",
    "id": 1239,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string super whether to use (set), or not use (remove) the dimension Att_Segment_Text_Value. A value for use of 1 sets the dimension and 0 removes it. If Att_Segment_Text_Value is used, then the same text is on all the segments of the super string. Note if the dimension Att_Segment_Text_Array exists, this call is ignored. See Vertex Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_text_value",
    "id": 1240,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Text_Value exists for the super string. use is returned as 1 if the dimension Att_Segment_Text_Value exists. use is returned as 0 if the dimension doesn\u2019t exist. If the dimension Att_Segment_Text_Value exists then the string has the same text for every segment of the string. See Segment Text Dimensions for information on the Segment Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_text_array",
    "id": 1189,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string super whether to use (set), or not use (remove), the dimension Att_Segment_Text_Array. A value for use of 1 sets the dimension and 0 removes it. If Att_Segment_Text_Array is used, then there is different text on each segment of the of the string. See Segment Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful. Super String Element Page 483 12d Model Macro Manual"
  },
  {
    "name": "Get_super_use_segment_text_array",
    "id": 1190,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Text_Array exists for the super string super. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. If Att_Segment_Text_Array is used, then there is different text on each segment of the of the string. See Segment Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_segment_text_value_to_array",
    "id": 2179,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "If for the super string super the dimension Att_Segment_Text_Value exists and the dimension Att_Segment_Text_Array does not exist then there will be one Segment Text txt for the entire string. In this case (when the dimension Att_Segment_Text_Value exists and the dimension Att_Segment_Text_Array does not exist) this function sets the Att_Segment_Text_Array dimension and new segment text created for each segment of super and the new segment text is given the value txt. See Segment Text Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_annotation_value",
    "id": 1193,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use or remove, the dimension Att_Segment_Annotate_Value. If the dimension Att_Segment_Annotate_Value exists and the dimension Att_Segment_Annotate_Array doesn\u2019t exist then the string has the one annotation which is used for segment text on any segment of the string. See Vertex Text Annotation Dimensions for information on the Text Annotation dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A value for use of 1 sets the dimension and 0 removes it. Note if the dimension Att_Segment_Annotate_Array exists, this call is ignored. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_annotation_value",
    "id": 1194,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Annotate_Value exists for the super string. If the dimension Att_Segment_Annotate_Value exists and the dimension Att_Segment_Annotate_Array doesn\u2019t exist then the string has the one annotation which is used for segment text on any segment of the string. See Vertex Text Annotation Dimensions for information on the Text Annotation dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_annotation_array",
    "id": 1195,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use or remove the dimension Att_Segment_Annotate_Array. If the dimension Att_Segment_Annotate_Array exists then the string has a different annotation for the segment text on each segment of the string. See Vertex Text Annotation Dimensions for information on the Text Annotation dimensions or 5.38.1 Super String Element Page 485 12d Model Macro Manual Super String Dimensions for information on all the dimensions. A value for use of 1 sets the dimension and 0 removes it. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_annotation_array",
    "id": 1196,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Annotate_Array exists for the super string. If the dimension Att_Segment_Annotate_Array exists then the string has a different annotation for the segment text on each segment of the string. See Vertex Text Annotation Dimensions for information on the Text Annotation dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_segment_annotate_value_to_array",
    "id": 2180,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "If for the super string super the dimension Att_Segment_Annotate_Value exists and the dimension Att_Segment_Annotate_Array does not exist then there will be one Segment Text Annotate annot for the entire string. In this case (when the dimension Att_Segment_Annotate_Value exists and the dimension Att_Segment_Annotate_Array does not exist) this function sets the Att_Segment_Annotate_Array dimension and new segment Annotates created for each segment of super and the new segment text Annotate is given the value annot See Segment Text Annotation Dimensions for information on the Text dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text",
    "id": 1191,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "For the super Element super, set the segment text at segment number seg to be txt. If there is only one Segment Text for all the segments then the text for that one Segment Text is set to txt regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text",
    "id": 1192,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "For the super Element super, return in txt the segment text on segment number seg. If there is only one Segment Text for all the segments then the text for that one Segment Text will be returned in txt regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_world_text",
    "id": 1233,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For an Element super of type Super, set the text unit for segment text to be world text. See Segment Text Annotation Units for the definition of segment text units. If there is Textstyle_Data for the segment text then this will override the Set_super_segment_world_text call. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_device_text",
    "id": 1232,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For an Element super of type Super, set the text unit for segment text to be pixels (also known as device text or screen text). Super String Element Page 487 12d Model Macro Manual See Segment Text Annotation Units for the definition of segment text units. If there is Textstyle_Data for the segment text then this will override the Set_super_segment_device_text call. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_paper_text",
    "id": 1634,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For an Element super of type Super, set the text units for segment text to be paper (that is millimetres). See Segment Text Annotation Units for the definition of segment text units. If there is Textstyle_Data for the segment text then this will override the Set_super_segment_device_text call. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_type",
    "id": 1234,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the segment text units to the value type. See Segment Text Annotation Units for the definition of segment text units. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_type",
    "id": 1235,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, return in type the value of the segment text units. See Segment Text Annotation Units for the definition of vertex text units. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_justify",
    "id": 1198,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&just",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the justification of the segment text on segment number seg in just. See Segment Text Annotation Definitions for the definition of justification. If there is only one Segment Text Annotation for all the Segment Text then the justification for that one Segment Text Annotation will be returned in just regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_offset_width",
    "id": 1200,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&off",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the offset (offset width) of the segment text on segment number Super String Element Page 489 12d Model Macro Manual seg in off. See Segment Text Annotation Definitions for the definition of offset. If there is only one Segment Text Annotation for all the Segment Text then the offset for that one Segment Text Annotation will be returned in off regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_offset_height",
    "id": 1201,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "raise",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the raise (offset height) of the segment text on segment number seg to raise. See Segment Text Annotation Definitions for the definition of raise. If there is only one Segment Text Annotation for all the Segment Text then the raise for that one Segment Text Annotation is set to raise regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_offset_height",
    "id": 1202,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&raise",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the raise (offset height) of the segment text on segment number seg in raise. See Segment Text Annotation Definitions for the definition of raise. If there is only one Segment Text Annotation for all the Segment Text then the raise for that one Segment Text Annotation will be returned in raise regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_colour",
    "id": 1213,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the colour number of the segment text on segment number seg to col. If there is only one Segment Text Annotation for all the Segment Text then the colour number for that one Segment Text Annotation is set to col regardless of the value of seg. Page 490 Super String Element Chapter 5 12dPL Library Calls A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_colour",
    "id": 1214,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&col",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the colour number of the segment text on segment number seg in col. If there is only one Segment Text Annotation for all the Segment Text then the colour number for that one Segment Text Annotation will be returned in col regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_angle",
    "id": 1203,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the angle of rotation of the segment text on segment number seg to ang. See Segment Text Annotation Definitions for the definition of angle. ang is measured in radians and is measured counterclockwise from the direction of the segment. If there is only one Segment Text Annotation for all the Segment Text then the angle for that one Segment Text Annotation is set to angle regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_angle",
    "id": 1204,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the angle of rotation of the segment text on segment number seg in ang. See Segment Text Annotation Definitions for the definition of angle. ang is measured in radians and is measured counterclockwise from the direction of the segment. If there is only one Segment Text Annotation for all the Segment Text then angle for that one Segment Text Annotation will be returned in ang regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful. Super String Element Page 491 12d Model Macro Manual"
  },
  {
    "name": "Set_super_segment_text_angle2",
    "id": 3588,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the 3D beta angle of the segment text on segment number seg to ang. ang is in radians If there is only one Segment Text Annotation for all the Segment Text then the angle for that one Segment Text Annotation is set to ang regardless of the value of seg. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_angle2",
    "id": 3589,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the 3D beta angle of the segment text on segment number seg in ang. ang is measured in radians. If there is only one Segment Text Annotation for all the Segment Text then the angle for that one Segment Text Annotation will be returned in ang regardless of the value of seg. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_angle3",
    "id": 3590,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the 3D gamma angle of the segment text on segment number seg to ang. ang is in radians If there is only one Segment Text Annotation for all the Segment Text then the angle for that one Segment Text Annotation is set to ang regardless of the value of seg. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_angle3",
    "id": 3591,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the 3D gamma angle of the segment text on segment number seg in ang. ang is measured in radians. Page 492 Super String Element Chapter 5 12dPL Library Calls If there is only one Segment Text Annotation for all the Segment Text then the angle for that one Segment Text Annotation will be returned in ang regardless of the value of seg. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_size",
    "id": 1205,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "sz",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the size of the segment text on segment number seg to sz. If there is only one Segment Text Annotation for all the Segment Text then the size for that one Segment Text Annotation is set to sz regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_size",
    "id": 1206,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&sz",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the size of the segment text on segment number seg in sz. If there is only one Segment Text Annotation for all the Segment Text then size for that one Segment Text Annotation will be returned in sz regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_x_factor",
    "id": 1207,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "xf",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the x factor of the segment text on segment number seg to xf. If there is only one Segment Text Annotation for all the Segment Text then the x factor for that one Segment Text Annotation is set to xf regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_slant",
    "id": 1209,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "sl",
        "type": "Real"
      }
    ],
    "description": "For the super string super, set the slant of the segment text on segment number seg to sl. If there is only one Segment Text Annotation for all the Segment Text then the slant for that one Segment Text Annotation is set to sl regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. Note that the value of sl is measured as tangent here, where in 12da the value is writen in decimal angle. The valid value for sl much be at least -1 and at most 1 (as the angle much be between -45 to 45 degree). A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_slant",
    "id": 1210,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&sl",
        "type": "Real"
      }
    ],
    "description": "For the super string super, return the slant of the segment text on segment number seg in sl. If there is only one Segment Text Annotation for all the Segment Text then the slant for that one Segment Text Annotation will be returned in sl regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. Note that the value of sl is measured as tangent here, where in 12da the value is writen in decimal angle. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_style",
    "id": 1211,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "ts",
        "type": "Text"
      }
    ],
    "description": "For the super string super, set the textstyle of the segment text on segment number seg to ts. Page 494 Super String Element Chapter 5 12dPL Library Calls If there is only one Segment Text Annotation for all the Segment Text then the textstyle for that one Segment Text Annotation is set to ts regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_text_style",
    "id": 1212,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&ts",
        "type": "Text"
      }
    ],
    "description": "For the super string super, return the textstyle of the segment text on segment number seg in ts. If there is only one Segment Text Annotation for all the Segment Text then the textstyle for that one Segment Text Annotation will be returned in ts regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_text_ttf_underline",
    "id": 2608,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the underline state of the segment text on segment number seg to underline. If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the underline state for that one Segment Text Annotation is set to underline regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates underline was successfully set."
  },
  {
    "name": "Get_super_segment_text_ttf_underline",
    "id": 2609,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the underline state of the segment text on segment number seg in underline. If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. Super String Element Page 495 12d Model Macro Manual For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the underline state for that one Segment Text Annotation will be returned in underline regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates underline was successfully returned."
  },
  {
    "name": "Set_super_segment_text_ttf_strikeout",
    "id": 2610,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "strikeout",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the strikeout state of the segment text on segment number seg to strikeout. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the strikeout state for that one Segment Text Annotation is set to strikeout regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates strikeout was successfully set."
  },
  {
    "name": "Get_super_segment_text_ttf_strikeout",
    "id": 2611,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the strikeout state of the segment text on segment number seg in strikeout. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the strikeout state for that one Segment Text Annotation will be returned in strikeout regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates strikeout was successfully returned."
  },
  {
    "name": "Set_super_segment_text_ttf_italic",
    "id": 2612,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "italic",
        "type": "Integer"
      }
    ],
    "description": "Page 496 Super String Element Chapter 5 12dPL Library Calls For the super string super, set the italic state of the segment text on segment number seg to italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the italic state for that one Segment Text Annotation is set to italic regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates italic was successfully set."
  },
  {
    "name": "Get_super_segment_text_ttf_italic",
    "id": 2613,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&italic",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the italic state of the segment text on segment number seg in italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the italic state for that one Segment Text Annotation will be returned in italic regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates italic was successfully returned."
  },
  {
    "name": "Set_super_segment_text_ttf_outline",
    "id": 2777,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "outline",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the outline state of the segment text on segment number seg to outline. If outline = 1, then for a true type font the text will be only shown in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the outline state for that one Segment Text Annotation is set to outline regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates outline was successfully set."
  },
  {
    "name": "Set_super_segment_text_ttf_weight",
    "id": 2614,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "weight",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the weight of the segment text on segment number seg to weight. If there is only one Segment Text Annotation for all the Segment Text then the weight for that one Segment Text Annotation is set to weight regardless of the value of seg. For the list of allowable weights, go to Allowable Weights A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates weight was successfully set."
  },
  {
    "name": "Get_super_segment_text_ttf_weight",
    "id": 2615,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&weight",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the weight of the segment text on segment number seg in weight. For the list of allowable weights, go to Allowable Weights If there is only one Segment Text Annotation for all the Segment Text then the weight for that one Segment Text Annotation will be returned in weight regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates weight was successfully returned."
  },
  {
    "name": "Set_super_segment_text_whiteout",
    "id": 2757,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "c",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the colour number of the colour used for the whiteout box around the segment text on segment number seg to c. Page 498 Super String Element Chapter 5 12dPL Library Calls If no text whiteout is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the colour number of the colour used for the whiteout box around the segment text for that one Segment Text Annotation is set to c regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_super_segment_text_whiteout",
    "id": 2758,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&c",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the colour number that is used for the whiteout box around the segment text on segment number seg in c. NO_COLOUR is the returned as the colour number if whiteout is not being used. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the colour number that is used for the whiteout box around the segment text for that one Segment Text Annotation will be returned in c regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_super_segment_text_border",
    "id": 2767,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "c",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, set the colour number of the colour used for the border of the whiteout box around the segment text on segment number seg to c. If no text whiteout border is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the colour number of the colour used for border of the whiteout box around the segment text for that one Segment Text Annotation is set to c regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_super_segment_text_border",
    "id": 2768,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&c",
        "type": "Integer"
      }
    ],
    "description": "For the super string super, return the colour number that is used as the border of the whiteout box around the segment text on segment number seg in c. NO_COLOUR is the returned as the colour number if whiteout is not being used. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. If there is only one Segment Text Annotation for all the Segment Text then the colour number that is used for the border around the whiteout box around the segment text for that one Segment Text Annotation will be returned in c regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_super_segment_text_border_style",
    "id": 3592,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "s",
        "type": "Integer"
      }
    ],
    "description": "For segment number seg of the Super String Element superstring, set the style for the border of the whiteout box around the segment text, according to Integer s. 1 for rectangle 2 for circle 3 for capsule 4 for bevel 5 for triangle 1 (pointed at top) 6 for triangle 2 (flat line on top) 7 for pentagon 1 (pointed at top) 8 for pentagon 2 (flat line on top) 9 for hexagon 1 (pointed at top) 10 for hexagon 2 (flat line on top) 11 for octagon 1 (pointed at top) 12 for octagon 2 (flat line on top) If there is only one Segment Text Annotation for all the Segment Text then the style for the border of the whiteout box around the segment text for that one Segment Text Annotation is set to s regardless of the value of seg. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_super_segment_text_border_style",
    "id": 3593,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "superstring",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&s",
        "type": "Integer"
      }
    ],
    "description": "For segment number seg of the Super String Element superstring, get the style for the border of Page 500 Super String Element Chapter 5 12dPL Library Calls the whiteout box around the segment text. The value is returned as Integer s. 1 for rectangle 2 for circle 3 for capsule 4 for bevel 5 for triangle 1 (pointed at top) 6 for triangle 2 (flat line on top) 7 for pentagon 1 (pointed at top) 8 for pentagon 2 (flat line on top) 9 for hexagon 1 (pointed at top) 10 for hexagon 2 (flat line on top) 11 for octagon 1 (pointed at top) 12 for octagon 2 (flat line on top) If there is only one Segment Text Annotation for all the Segment Text then the style that is used for the border of the whiteout box around the segment text for that one Segment Text Annotation will be returned in s regardless of the value of seg. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_super_segment_textstyle_data",
    "id": 1665,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "d",
        "type": "Textstyle_Data"
      }
    ],
    "description": "For the super string super, set the Textstyle_Data of the segment text on segment number seg to d. Setting a Textstyle_Data means that all the individual values that are contained in the Textstyle_Data are set rather than having to set each one individually. If the value is blank in the Textstyle_Data d then the value for the segment text would be left alone. If there is only one Segment Text Annotation for all the Segment Text then the Textstyle_Data for that one Segment Text Annotation is set to d regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. A function return value of zero indicates the Textstyle_Data was successfully set."
  },
  {
    "name": "Get_super_segment_textstyle_data",
    "id": 1666,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&d",
        "type": "Textstyle_Data"
      }
    ],
    "description": "For the super string super, return the Textstyle_Data for the segment text on segment number seg in d. Using a Textstyle_Data means that all the individual values for the Segment Text Annotation are returned in the Textstyle_Data rather than getting each one individually. Note that the function does not concern that the segment text exists or not. If there is only one Segment Text Annotation for all the Segment Text then the Textstyle_Data for that one Segment Text Annotation will be returned in d regardless of the value of seg. A non-zero function return value is returned if super is not of type Super. Super String Element Page 501 12d Model Macro Manual A function return value of zero indicates the Textstyle_Data was successfully returned."
  },
  {
    "name": "Set_super_use_hatch",
    "id": 1464,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Hatch_Value is used or removed. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the super string can have 2 angle hatching. If use is 0, the dimension is removed. If the string had hatching then the hatching will be removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_hatch",
    "id": 1465,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Hatch_Value exists for the super string super. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists and hatching is enabled for the string. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_colour",
    "id": 1466,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "col_1",
        "type": "Integer"
      },
      {
        "name": "col_2",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the colour of the first hatch lines to the Integer colour col_1and the colour of the second hatch lines to the Integer colour col_2. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_hatch_colour",
    "id": 1467,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&col_1",
        "type": "Integer"
      },
      {
        "name": "&col_2",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, return the colour of the first hatch lines as col_1 and the colour of the second hatch lines as col_2. Page 504 Super String Element Chapter 5 12dPL Library Calls If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_angle",
    "id": 1468,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "ang_1",
        "type": "Real"
      },
      {
        "name": "ang_2",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the angle of the first hatch lines to the angle ang_1 and the angle of the second hatch lines to the angle ang_2. The angles are in radians and measured counterclockwise from the x-axis. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_hatch_angle",
    "id": 1469,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&ang_1",
        "type": "Real"
      },
      {
        "name": "&ang_2",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the angle of the first hatch lines as ang_1 and the angle of the second hatch lines as ang_2. The angles are in radians and measured counterclockwise from the x- axis. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_spacing",
    "id": 1470,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "dist_1",
        "type": "Real"
      },
      {
        "name": "dist_2",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the distance between the first hatch lines to the dist_1 and the distance between the second hatch lines of dist_2. The units for dist_1 and dist_2 are given by other calls. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_hatch_spacing",
    "id": 1471,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&dist_1",
        "type": "Real"
      },
      {
        "name": "&dist_2",
        "type": "Real"
      }
    ],
    "description": "Super String Element Page 505 12d Model Macro Manual For the super Element super, return the distance of the first hatch lines as dist_1 and the distance of the second hatch lines as dist_2. The units for dist_1 and dist_2 are given by other calls. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_plot_spacing",
    "id": 1544,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "dist_1",
        "type": "Real"
      },
      {
        "name": "dist_2",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the plotting distance between the first hatch lines to the dist_1 and the plotting distance between the second hatch lines of dist_2. The units for dist_1 and dist_2 are given by other calls. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_hatch_plot_spacing",
    "id": 1545,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&dist_1",
        "type": "Real"
      },
      {
        "name": "&dist_2",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the plotting distance of the first hatch lines as dist_1 and the plotting distance of the second hatch lines as dist_2. The units for dist_1 and dist_2 are given by other calls. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_origin",
    "id": 1472,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, both sets of hatch lines go through the point (x,y). The units for x and y are given by other calls. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_device",
    "id": 1474,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For the super Element super, set the units for the hatch spacing and the hatch origin to be device units. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_world",
    "id": 1475,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For the super Element super, set the units for the hatch spacing and the hatch origin to be world units. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_type",
    "id": 1476,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the units for the hatch spacing and the hatch origin to be: if type = 0 then device units if type = 1 then world units if type = 2 then paper units If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_hatch_view_angle",
    "id": 3444,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "is_relative",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the field controls whether the Angle is relative to the x axis or to the plotting x axis. if is_relative is 1 and we are plotting, Angle is measured relative to the x axis of the plot rotation. If is_relative is 0, Angle is always absolute to the world x axis. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_hatch_view_angle",
    "id": 3445,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&is_relative",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the field controls whether the Angle is relative to the x axis or to the plotting x axis. The field is returned as is_relative with the meaning: if is_relative is 1 and we are plotting, Angle is measured relative to the x axis of the plot rotation. If is_relative is 0, Angle is always absolute to the world x axis. If hatching is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_solid",
    "id": 1478,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Solid_Value is used or removed. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the super string can have solid fill. If use is 0, the dimension is removed. If the string had solid fill then the solid fill will be removed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_use_solid",
    "id": 1479,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Solid_Value exists for the super string super. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists and solid fill is enabled for the string. use is returned as 0 if the dimension doesn\u2019t exist. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_solid_colour",
    "id": 1480,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the colour of the solid fill to the colour number colour. If solid fill is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_solid_colour",
    "id": 1481,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the colour number of the solid fill and return it in colour. Super String Element Page 509 12d Model Macro Manual If solid fill is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_solid_blend",
    "id": 2165,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "blend",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the blend of the solid fill to the blend. If solid fill is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_solid_blend",
    "id": 2166,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&blend",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, get the blend value of the solid fill and return it in blend. blend will have a value between 0.0 for showing no colour fill, and 1.0 for showing full colour fill. If solid fill is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_use_bitmap",
    "id": 1482,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Bitmap_Value is used or removed. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the super string can have bitmap fill. If use is 0, the dimension is removed. If the string had a bitmap fill then the bitmap fill will be removed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_use_bitmap",
    "id": 1483,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Bitmap_Value exists for the super string super. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists and bitmap fill is enabled for the string. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap",
    "id": 1484,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "filename",
        "type": "Text"
      }
    ],
    "description": "For the super Element super, set the bitmap to be the image in the file of name filename. The image can be bmps or ?. If bitmap fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap",
    "id": 1485,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&filename",
        "type": "Text"
      }
    ],
    "description": "Super String Element Page 511 12d Model Macro Manual For the super Element super, get the file name of the bitmap fill and return it in filename. If bitmap fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_origin",
    "id": 1486,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, the left hand corner of the bitmap is placed at the point (x,y). The units for x and y are given in other functions. If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap_origin",
    "id": 1487,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the (x,y) point of the left hand corner of the bitmap. The units for x and y are given in other functions. If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_transparent",
    "id": 1488,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the colour with colour number colour to be transparent in the bitmap. If bitmap fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap_transparent",
    "id": 1489,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the transparency colour and return it in colour. Page 512 Super String Element Chapter 5 12dPL Library Calls If bitmap fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_device",
    "id": 1490,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For the super Element super, set the units for the bitmap width and height to be device units. If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_world",
    "id": 1491,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For the super Element super, set the units for the width and height of the bitmap to be world units. If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_type",
    "id": 1492,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the units for the width and height of the bitmap to be: if type = 0 then device units if type = 1 then world units if type = 2 then paper units If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap_type",
    "id": 1493,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the units for width and height of the bitmap. The units are returned as type and the values are: Super String Element Page 513 12d Model Macro Manual if type = 0 then device units if type = 1 then world units if type = 2 then paper units If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_angle",
    "id": 1494,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the angle to rotate the bitmap to be ang. The angle is in radians and measured counterclockwise from the x-axis If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap_angle",
    "id": 1495,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, get the angle of rotation of bitmap and return it in ang. The angle is in radians and measured counterclockwise from the x-axis If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_size",
    "id": 1496,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "w",
        "type": "Real"
      },
      {
        "name": "h",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, scale the bitmap to have the width w and height h in the units set in other bitmap calls. If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap_size",
    "id": 1497,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&w",
        "type": "Real"
      },
      {
        "name": "&h",
        "type": "Real"
      }
    ],
    "description": "Page 514 Super String Element Chapter 5 12dPL Library Calls For the super Element super, get the width and height that the bitmap was scaled to. The width is returned in w and the height in h. The units have been set in other bitmap calls. If bitmap is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_space",
    "id": 1744,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the spacing between adjacent bitmap patterns to be x in the x- direction and y in the y-direction. The units for x and y are given in other bitmap calls. If bitmap pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap_space",
    "id": 1745,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the spacing between adjacent bitmap patterns as x in the x- direction and y in the y-direction. The units for x and y are given in other bitmap calls. If bitmap pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_stagger",
    "id": 1746,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "stagger",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the stagger between alternate bitmap pattern rows to be stagger. The unit for stagger is given in other bitmap calls. If bitmap pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap_stagger",
    "id": 1747,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&stagger",
        "type": "Real"
      }
    ],
    "description": "Super String Element Page 515 12d Model Macro Manual For the super Element super, return the stagger between alternate bitmap pattern rows as stagger. The unit for stagger is given in other bitmap calls. If bitmap pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_paper",
    "id": 1748,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For the super Element super, set the units for the width, height, spacing and stagger of the bitmap pattern to be paper unit. If bitmap pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_bitmap_view_angle",
    "id": 3458,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "is_relative",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the field controls whether the Angle is relative to the x axis or to the plotting x axis. if is_relative is 1 and we are plotting, Angle is measured relative to the x axis of the plot rotation. If is_relative is 0, Angle is always absolute to the world x axis. If bitmap fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_bitmap_view_angle",
    "id": 3459,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&is_relative",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the field controls whether the Angle is relative to the x axis or to the plotting x axis. The field is returned as is_relative with the meaning: if is_relative is 1 and we are plotting, Angle is measured relative to the x axis of the plot rotation. If is_relative is 0, Angle is always absolute to the world x axis. If bitmap fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_pattern",
    "id": 1686,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Pattern_Value is used or removed. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the super string can have a pattern. If use is 0, the dimension is removed. If the string had a pattern then the pattern will be removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_pattern",
    "id": 1693,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Pattern_Value exists for the super string super. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern",
    "id": 1687,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "For the super Element super, set the fill pattern name to be the Text name. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_colour",
    "id": 1688,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the colour of the fill pattern to the colour number colour. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_colour",
    "id": 1695,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the colour number of the fill pattern and return it in colour. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_angle",
    "id": 1689,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the angle of the fill pattern to the angle. The angle is in radian and measured counterclockwise from the x-axis. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_angle",
    "id": 1696,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the angle of the fill pattern as angle. The angle is in radian and measured counterclockwise from the x-axis. Page 518 Super String Element Chapter 5 12dPL Library Calls If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_size",
    "id": 1690,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "size",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the size of the fill pattern to the Real size. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_size",
    "id": 1697,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&size",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the size of the fill pattern as size. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_plot_size",
    "id": 1691,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "size",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the plotting size of the fill pattern to the Real size. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_plot_size",
    "id": 1698,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&s",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the plotting size of the fill pattern as size. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_origin",
    "id": 1692,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the x-y coordinate of the origin the fill pattern to x, y. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_origin",
    "id": 1699,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the x-y coordinate of the origin the fill pattern as x, y. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_type",
    "id": 3446,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the units for the pattern fill size, spacing and stagger to be: if type = 0 then device units if type = 1 then world units if type = 2 then paper units If pattern fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_type",
    "id": 3447,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the units for the pattern fill size, spacing and stagger. The units are returned as type and the values are: if type = 0 then device units if type = 1 then world units if type = 2 then paper units If pattern fill is not enabled for super, then a non-zero return code is returned. Page 520 Super String Element Chapter 5 12dPL Library Calls A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_view_angle",
    "id": 3448,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "is_relative",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the field controls whether the Angle is relative to the x axis or to the plotting x axis. if is_relative is 1 and we are plotting, Angle is measured relative to the x axis of the plot rotation. If is_relative is 0, Angle is always absolute to the world x axis. If pattern fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_view_angle",
    "id": 3449,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&is_relative",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the field controls whether the Angle is relative to the x axis or to the plotting x axis. The field is returned as is_relative with the meaning: if is_relative is 1 and we are plotting, Angle is measured relative to the x axis of the plot rotation. If is_relative is 0, Angle is always absolute to the world x axis. If pattern fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_stagger",
    "id": 3450,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "stagger",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the stagger between alternate pattern fill rows to be stagger. The unit for stagger is given in other pattern fill calls. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_space",
    "id": 3452,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "xspace",
        "type": "Real"
      },
      {
        "name": "yspace",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the x-y spaces of the fill pattern to xspace, yspace. The unit for the spaces is given in other pattern fill calls. If pattern fill is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_space",
    "id": 3453,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&xspace",
        "type": "Real"
      },
      {
        "name": "&yspace",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the x-y spaces of the fill pattern as xspace, yspace. The unit for the spaces is given in other pattern fill calls. If pattern fill is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_solid_colour",
    "id": 3454,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the solid colour of the fill pattern to the colour number colour. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_solid_colour",
    "id": 3455,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Page 522 Super String Element Chapter 5 12dPL Library Calls For the super Element super, get the solid colour number of the fill pattern and return it in colour. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_pattern_blend",
    "id": 3456,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "blend",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the solid fill blend factor of the fill pattern to the blend. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_pattern_blend",
    "id": 3457,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&blend",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the solid fill blend of the fill pattern as blend. If fill pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_use_acad_pattern",
    "id": 2141,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Autocad_Pattern_Value is used or removed. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the super string can have an Autocad pattern. If use is 0, the dimension is removed. If the string had an Autocad pattern then the Autocad pattern will be removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_acad_pattern",
    "id": 2142,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Autocad_Pattern_Value exists for the super string super. See Solid/Bitmap/Hatch/ Fill/Pattern/ACAD Pattern Dimensions for information on this dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern",
    "id": 2143,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "For the super Element super, set the Autocad pattern name to be the Text name. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern_colour",
    "id": 2145,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the colour of the Autocad pattern to the colour number colour. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_acad_pattern_colour",
    "id": 2146,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the colour number of the Autocad pattern and return it in colour. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern_angle",
    "id": 2147,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the angle of the Autocad pattern to the Real angle. The angle is in radian and measured counterclockwise from the x-axis. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_acad_pattern_angle",
    "id": 2148,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the angle of the Autocad pattern as angle. The angle is in radian and measured counterclockwise from the x-axis. Super String Element Page 525 12d Model Macro Manual If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern_size",
    "id": 2149,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "size",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, set the size of the Autocad pattern to the Real size. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_acad_pattern_size",
    "id": 2150,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&size",
        "type": "Real"
      }
    ],
    "description": "For the super Element super, return the size of the Autocad pattern as size. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern_device",
    "id": 2151,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For the super Element super, set the unit for the Autocad pattern to be device unit. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern_world",
    "id": 2152,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For the super Element super, set the unit for the Autocad pattern to be world unit. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern_paper",
    "id": 2153,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "For the super Element super, set the unit for the Autocad pattern to be paper unit. If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern_type",
    "id": 2154,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, set the unit for the Autocad pattern to be: if type = 0 then device unit if type = 1 then world unit if type = 2 then paper unit If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_acad_pattern_type",
    "id": 2155,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the unit for the Autocad pattern. The unit is returned as super and the value is: if type = 0 then device unit if type = 1 then world unit if type = 2 then paper unit If Autocad pattern is not enabled for super, then a non-zero return code is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_acad_pattern_view_angle",
    "id": 3460,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "is_relative",
        "type": "Integer"
      }
    ],
    "description": "Super String Element Page 527 12d Model Macro Manual For the super Element super, set the field controls whether the Angle is relative to the x axis or to the plotting x axis. if is_relative is 1 and we are plotting, Angle is measured relative to the x axis of the plot rotation. If is_relative is 0, Angle is always absolute to the world x axis. If acad pattern fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_acad_pattern_view_angle",
    "id": 3461,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&is_relative",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the field controls whether the Angle is relative to the x axis or to the plotting x axis. The field is returned as is_relative with the meaning: if is_relative is 1 and we are plotting, Angle is measured relative to the x axis of the plot rotation. If is_relative is 0, Angle is always absolute to the world x axis. If acad pattern fill is not enabled for super, then a non-zero return code is returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_hole",
    "id": 1456,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Hole_Value is used or removed. See Hole Dimension for information on the hole dimension or 5.38.1 Super String Dimensionsfor information on all dimensions. If use is 1, the dimension is set. That is, the super string can have holes. If use is 0, the dimension is removed. If the string had holes then the holes will be removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_hole",
    "id": 1457,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Hole_Value exists for the super string super. See Hole Dimension for information on hole dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_get_hole",
    "id": 1459,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "hole_no",
        "type": "Integer"
      },
      {
        "name": "&hole",
        "type": "Element"
      }
    ],
    "description": "For the Element super of type Super, the holes number hole_no is returned as the super Element hole. If hole needs to be used in 12d Model and added to a model, then the Element hole must be copied and added to the model. If hole_no is less than zero or greater than the number of holes in super, then a non-zero return code is returned. The Element hole is then undefined. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_delete_hole",
    "id": 1461,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "hole",
        "type": "Element"
      }
    ],
    "description": "If Super_get_hole is used to get the hole hole from the Element super then this option can be used to delete hole from super. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Super_delete_hole",
    "id": 1462,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "hole_no",
        "type": "Integer"
      }
    ],
    "description": "Delete the hole number hole_no from the Element super. If there is no hole hole_no, the operation will fail and a non-zero return value is returned. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_colour",
    "id": 726,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use or remove the colour dimension Att_Colour_Array. A value for use of 1 sets the dimension and 0 removes it. See Colour Dimension for information on Colour dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_colour",
    "id": 727,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the colour dimension Att_Colour_Array exists for the super string. use is returned as 1 if the dimension Att_Colour_Array exists, or 0 if the dimension doesn\u2019t exist. See Colour Dimension for information on Colour dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_colour",
    "id": 728,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, set the colour number for the segment number seg to be colour. A non-zero function return value is returned if super is not of type Super, or if super does not have the colour dimension Att_Colour_Array set. See Colour Dimension for information on Colour dimensions or 5.38.1 Super String Dimensionsfor information on all dimensions. A function return value of zero indicates colour was successfully set."
  },
  {
    "name": "Set_super_use_segment_geometry",
    "id": 1838,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Geom_Array is used or removed. If Att_Geom_Array exists, the string can have Segments (which can be straights, arcs or transitions) between the vertices of the super string. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set. That is, the segments of the super string are not just straights but of type Segments (which can be straights, arcs or transitions). If use is 0, the dimension is removed. If the string had Segments for segments then they will be removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_geometry",
    "id": 1839,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Geom_Array exists for the super string super. If Att_Geom_Array exists, the string can have Segments (which can be straights, arcs or transitions) between the vertices of the super string. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. That is, the segments of the super string are not just straights but of type Segments (which can be straights, arcs or transitions). use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_spiral",
    "id": 1840,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "trans",
        "type": "Spiral"
      }
    ],
    "description": "For the Element super of type Super, set the segment number seg to be the transition trans. A non-zero function return value is returned if super is not of type Super, or if super does not have Page 534 Super String Element Chapter 5 12dPL Library Calls the dimension Att_Geom_Array set. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the transition was successfully set."
  },
  {
    "name": "Get_super_segment_spiral",
    "id": 1841,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&trans",
        "type": "Spiral"
      }
    ],
    "description": "For the Element super of type Super, get the Spiral for the segment number seg and return it as trans. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Geom_Array set, or if the segment is not a Spiral. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the Spiral was successfully returned."
  },
  {
    "name": "Set_super_segment_spiral",
    "id": 1842,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "l1",
        "type": "Real"
      },
      {
        "name": "r1",
        "type": "Real"
      },
      {
        "name": "a1",
        "type": "Real"
      },
      {
        "name": "l2",
        "type": "Real"
      },
      {
        "name": "r2",
        "type": "Real"
      },
      {
        "name": "a2",
        "type": "Real"
      },
      {
        "name": "leading",
        "type": "Integer"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, set the segment number seg to be the transition of given input components. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Geom_Array set. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the transition was successfully set."
  },
  {
    "name": "Get_super_segment_spiral",
    "id": 1843,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&l1",
        "type": "Real"
      },
      {
        "name": "&r1",
        "type": "Real"
      },
      {
        "name": "&a1",
        "type": "Real"
      },
      {
        "name": "&l2",
        "type": "Real"
      },
      {
        "name": "&r2",
        "type": "Real"
      },
      {
        "name": "&a2",
        "type": "Real"
      },
      {
        "name": "&leading",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, get the Spiral for the segment number seg and return its components. A non-zero function return value is returned if super is not of type Super, or if super does not have Super String Element Page 535 12d Model Macro Manual the dimension Att_Geom_Array set, or if the segment is not a Spiral. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the Spiral was successfully returned."
  },
  {
    "name": "Set_super_segment_geometry",
    "id": 1844,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "geom",
        "type": "Segment"
      }
    ],
    "description": "For the Element super of type Super, set the segment number seg to be the Segment geom. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Geom_Array set. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the segment was successfully set."
  },
  {
    "name": "Get_super_segment_geometry",
    "id": 1845,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&geom",
        "type": "Segment"
      }
    ],
    "description": "For the Element super of type Super, get the Segment for the segment number seg and return it as geom. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Geom_Array set. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the Spiral was successfully returned."
  },
  {
    "name": "Set_super_segment_geometry",
    "id": 1846,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      }
    ],
    "description": "Clears segment number seg back to line. A function return value of zero indicates the segment was successfully set."
  },
  {
    "name": "Get_super_segment_curve",
    "id": 3819,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&curve",
        "type": "Curve"
      }
    ],
    "description": "For the super string super, get the Curve curve of segment number seg. A non-zero function return value is returned if super is not of type Super, or if super does not have the dimension Att_Geom_Array set. See Segment Geometry Dimension for information on the Segment Geometry dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_use_extrude",
    "id": 1679,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Extrude_Value is used or removed. If Att_Extrude_Value is set then an extrusion is allowed on the super string. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and an extrusion is allowed. If use is 0, the dimension is removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_extrude",
    "id": 1680,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Extrude_Value exists for the super string super. If Att_Extrude_Value is set then an extrusion is allowed on the super string. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_append_string_extrude",
    "id": 2643,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "shape",
        "type": "Element"
      }
    ],
    "description": "Page 538 Super String Element Chapter 5 12dPL Library Calls For the Element super of type Super which has the dimension Att_Extrude_Value set, add the Element shape to the list of Elements that are extruded along super. Note: shape must also be of type Super. A non-zero function return value is returned if super or shape is not of type Super, or if the Dimension Att_Extrude_Value is not set. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the shape was successfully added to the list."
  },
  {
    "name": "Super_append_extrude",
    "id": 1923,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "extrude_name",
        "type": "Text"
      }
    ],
    "description": "For the Element super of type Super, get the shape called extrude_name from the file extrudes.4d and append it to the list of extrudes for super. Note: the extrudes in the extrudes.4d file can be more complex than just a simple profile swept along the string. It also included interval extrudes. A non-zero function return value is returned if super is not of type Super, or if the Dimension Att_Extrude_Value is not set, or if there is no extrude_name in extrudes.4d. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_append_string_extrude",
    "id": 2644,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "shape",
        "type": "Element"
      },
      {
        "name": "use_string_colour",
        "type": "Integer"
      },
      {
        "name": "shape_mirror",
        "type": "Integer"
      },
      {
        "name": "start_chainage",
        "type": "Real"
      },
      {
        "name": "final_chainage",
        "type": "Real"
      }
    ],
    "description": "what is shape_mirror 0/1 use_string_colour 1 use the shape string colour, 0 use string colour colour <no description>"
  },
  {
    "name": "Get_super_extrudes",
    "id": 1921,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&num_extrudes",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super and has the dimension Att_Extrude_Value set, get the number of Element that are in the list of extrudes for super and return it in num_extrudes. A non-zero function return value is returned if super is not of type Super, or if the Dimension Super String Element Page 539 12d Model Macro Manual Att_Extrude_Value is not set. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_insert_extrude",
    "id": 1922,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "extrude_name",
        "type": "Text"
      },
      {
        "name": "where",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, get the shape called extrude_name from the file extrudes.4d and insert into the list of extrudes at position number where. The existing extrudes from position number where upwards are all moved up one position in the list. A non-zero function return value is returned if super is not of type Super, or if the Dimension Att_Extrude_Value is not set, or if there is no extrude_name in extrudes.4d. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_delete_extrude",
    "id": 1924,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "extrude_num",
        "type": "Integer"
      }
    ],
    "description": "For the Element super of type Super, delete the extrude in position number extrude_num from the list of extrusions for super. A non-zero function return value is returned if super is not of type Super, or if the Dimension Att_Extrude_Value is not set. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_delete_all_extrudes",
    "id": 1925,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "Delete all extrudes. For the Element super of type Super, delete all the extrudes from the list of extrusions for super. A non-zero function return value is returned if super is not of type Super, or if the Dimension Att_Extrude_Value is not set. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. Page 540 Super String Element Chapter 5 12dPL Library Calls A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_extrude",
    "id": 1681,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "shape",
        "type": "Element"
      }
    ],
    "description": "LEGACY FUNCTION - DO NOT USE Many moons ago there was only one profile that could be extruded along the string. Later that was modified and there is now a list of profiles that are extruded. This call is from before there was a list and will behave as if there is no list and will delete the list. Hence this option should not be used. For the Element super of type Super which has the dimension Att_Extrude_Value set, set shape to be the Element that is extruded along super. Note: shape must also be of type Super. WARNING: If this function is called and there is a list of extrudes, the entire list will be deleted. A non-zero function return value is returned if super or shape is not of type Super, or if the Dimension Att_Extrude_Value is not set. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the shape was successfully set."
  },
  {
    "name": "Get_super_extrude",
    "id": 1682,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&shape",
        "type": "Element"
      }
    ],
    "description": "LEGACY FUNCTION - DO NOT USE Many moons ago there was only one profile that could be extruded along the string. Later that was modified and there is now a list of profiles that are extruded. This call will only return one profile. Hence this option should not be used. For the Element super of type Super and has the dimension Att_Extrude_Value set, get the Element shape that defines the 2d profile that is extruded along super. Note: shape will be of type Super. A non-zero function return value is returned if super is not of type Super, or if the Dimension Att_Extrude_Value is not set. See Extrude Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the shape was successfully returned."
  },
  {
    "name": "Set_super_use_interval",
    "id": 1702,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Interval_Value is used or removed. If Att_Interval_Value is set then there is a Real interval_distance and a Real chord_arc_distance stored for the super string. See Interval Dimensions for information on the Interval dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and the two intervals are stored. If use is 0, the dimension is removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_interval",
    "id": 1705,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Interval_Value exists for the super string super. If Att_Interval_Value is set then there is a Real interval_distance and a Real chord_arc_distance stored for the super string. See Interval Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_interval_distance",
    "id": 1704,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "For the Element super of type Super which has the dimension Att_Interval_Value set, set the interval_distance to value. A non-zero function return value is returned if super is not of type Super, or if the Dimension Att_Interval_Value is not set. See Interval Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the interval_distance was successfully set."
  },
  {
    "name": "Get_super_interval_distance",
    "id": 1707,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "For the Element super of type Super and has the dimension Att_Interval_Value set, get the interval_distance for super and return it in value. A non-zero function return value is returned if super is not of type Super, or if the Dimension Att_Interval_Value is not set. See Interval Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the interval_distance was successfully returned."
  },
  {
    "name": "Set_super_interval_chord_arc",
    "id": 1703,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Description For the Element super of type Super which has the dimension Att_Interval_Value set, set the chord_arc_distance to value. A non-zero function return value is returned if super is not of type Super, or if the Dimension Att_Interval_Value is not set. See Interval Dimensions for information on the Extrude dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the chord_arc_distance was successfully set."
  },
  {
    "name": "Set_super_use_vertex_attribute",
    "id": 770,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use. or remove, the dimension Att_Vertex_Attribute_Array. If Att_Vertex_Attribute_Array exists then there can be a type Attributes for each vertex. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and an Attributes is allowed on each vertex. If use is 0, the dimension is removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_attribute",
    "id": 771,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Attribute_Array exists for the super string. If Att_Vertex_Attribute_Array exists then there can be a type Attributes for each vertex. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_attributes",
    "id": 2003,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super, set the Attributes for the vertex number vert to att. If the Element is not of type Super, or the dimension Att_Vertex_Attribute_Array is not set, then a non-zero return value is returned. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the attribute is successfully set."
  },
  {
    "name": "Get_super_vertex_attributes",
    "id": 2002,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super, return the Attributes for the vertex number vert as att. If the Element is not of type Super, or the dimension Att_Vertex_Attribute_Array is not set, or the vertex number vert has no Attributes, then a non-zero return value is returned. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the attribute is successfully returned."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 2004,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element super, get the attribute called att_name for the vertex number vert and return the attribute value in uid. The attribute must be of type Uid. If the Element is not of type Super, or the dimension Att_Vertex_Attribute_Array is not set, or the attribute is not of type Uid then a non-zero return value is returned. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 2005,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super, get the attribute called att_name for the vertex number vert and return the attribute value in att. The attribute must be of type Attributes. If the Element is not of type Super, or the dimension Att_Vertex_Attribute_Array is not set, or the attribute is not of type Attributes then a non-zero return value is returned. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 2007,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super, get the attribute with number att_no for the vertex number vert and return the attribute value in att. The attribute must be of type Attributes. If the Element is not of type Super, or the dimension Att_Vertex_Attribute_Array is not set, or the attribute is not of type Attributes then a non-zero return value is returned. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 2008,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element super and on the vertex number vert,\uf020 if the attribute called att_name does not exist then create it as type Uid and give it the value uid.\uf020 if the attribute called att_name does exist and it is type Uid, then set its value to uid. If the attribute exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 2010,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element super and on the vertex number vert, if the attribute number att_no exists and it is of type Uid, then its value is set to uid. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 2011,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super and on the vertex number vert, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Super_vertex_attribute_exists",
    "id": 773,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&num",
        "type": "Integer"
      }
    ],
    "description": "Page 548 Super String Element Chapter 5 12dPL Library Calls Checks to see if for vertex number vert, an attribute of name att_name exists, and if it does, return the number of the attribute as num. A non-zero function return value indicates the attribute exists and its number was successfully returned. A zero function return value indicates the attribute does not exist, or the number was not successfully returned. Warning - this is the opposite to most 12dPL function return values"
  },
  {
    "name": "Super_vertex_attribute_exists",
    "id": 772,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if for vertex number vert, an attribute of name att_name exists. A non-zero function return value indicates the attribute exists. A zero function return value indicates the attribute does not exist. Warning - this is the opposite to most 12dPL function return values"
  },
  {
    "name": "Super_vertex_attribute_delete",
    "id": 775,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      }
    ],
    "description": "For the Element super, delete the attribute with attribute number att_no for vertex number vert. If the Element super is not of type Super or super has no vertex number vert, then a non-zero return code is returned. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Super_vertex_attribute_delete",
    "id": 774,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "For the Element super, delete the attribute with the name att_name for vertex number vert. If the Element super is not of type Super or super has vertex number vert, then a non-zero return code is returned. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Super_vertex_attribute_dump",
    "id": 777,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      }
    ],
    "description": "Write out information to the Output Window about the vertex attributes for vertex number vert of the super string super. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Super_vertex_attribute_debug",
    "id": 778,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      }
    ],
    "description": "Write out even more information to the Output Window about the vertex attributes for vertex number vert of the super string super. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_super_vertex_number_of_attributes",
    "id": 779,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&no_atts",
        "type": "Integer"
      }
    ],
    "description": "Get the total number of attributes for vertex number vert of the Element super. The total number of attributes is returned in Integer no_atts. A function return value of zero indicates the number of attributes was successfully returned."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 780,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&txt",
        "type": "Text"
      }
    ],
    "description": "For the Element super, get the attribute called att_name for the vertex number vert and return the attribute value in txt. The attribute must be of type Text. Page 550 Super String Element Chapter 5 12dPL Library Calls If the Element is not of type Super or the attribute is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 781,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&int",
        "type": "Integer"
      }
    ],
    "description": "For the Element super, get the attribute called att_name for the vertex number vert and return the attribute value in int. The attribute must be of type Integer. If the Element is not of type Super or the attribute is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 782,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&real",
        "type": "Real"
      }
    ],
    "description": "For the Element super, get the attribute called att_name for the vertex number vert and return the attribute value in real. The attribute must be of type Real. If the Element is not of type Super or the attribute is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 783,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&txt",
        "type": "Text"
      }
    ],
    "description": "For the Element super, get the attribute number att_no for the vertex number vert and return the attribute value in txt. The attribute must be of type Text. If the Element is not of type Super or the attribute is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 784,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&int",
        "type": "Integer"
      }
    ],
    "description": "For the Element super, get the attribute number att_no for the vertex number vert and return the attribute value in int. The attribute must be of type Integer. If the Element is not of type Super or the attribute is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Get_super_vertex_attribute",
    "id": 785,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&real",
        "type": "Real"
      }
    ],
    "description": "For the Element super, get the attribute number att_no for the vertex number vert and return the attribute value in real. The attribute must be of type Real. If the Element is not of type Super or the attribute is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Get_super_vertex_attribute_name",
    "id": 786,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&txt",
        "type": "Text"
      }
    ],
    "description": "For vertex number vert of the Element super, get the name of the attribute number att_no. The attribute name is returned in txt. A function return value of zero indicates the attribute name was successfully returned."
  },
  {
    "name": "Get_super_vertex_attribute_length",
    "id": 789,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Element super, get the length (in bytes) of the attribute with the name att_name. The attribute length is returned in att_len. A function return value of zero indicates the attribute length was successfully returned. Page 552 Super String Element Chapter 5 12dPL Library Calls Note - the length is useful for user attributes of type Text and Binary."
  },
  {
    "name": "Get_super_vertex_attribute_length",
    "id": 790,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Element super, get the length (in bytes) of the attribute number att_no. The attribute length is returned in att_len. A function return value of zero indicates the attribute length was successfully returned. Note - the length is useful for attributes of type Text and Binary."
  },
  {
    "name": "Get_super_vertex_attribute_type",
    "id": 787,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Element super, get the type of the attribute with name att_name. The attribute type is returned in att_type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_super_vertex_attribute_type",
    "id": 788,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "For vertex number vert of the Element super, get the type of the attribute with attribute number att_no. The attribute type is returned in att_type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 791,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "txt",
        "type": "Text"
      }
    ],
    "description": "For the Element super and on the vertex number vert,\uf020 if the attribute called att_name does not exist then create it as type Text and give it the value txt.\uf020 if the attribute called att_name does exist and it is type Text, then set its value to txt. Super String Element Page 553 12d Model Macro Manual If the attribute exists and is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 792,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "int",
        "type": "Integer"
      }
    ],
    "description": "For the Element super and on the vertex number vert,\uf020 if the attribute called att_name does not exist then create it as type Integer and give it the value int.\uf020 if the attribute called att_name does exist and it is type Integer, then set its value to int. If the attribute exists and is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 793,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "real",
        "type": "Real"
      }
    ],
    "description": "For the Element super and on the vertex number vert,\uf020 if the attribute called att_name does not exist then create it as type Real and give it the value real.\uf020 if the attribute called att_name does exist and it is type Real, then set its value to real. If the attribute exists and is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 794,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "txt",
        "type": "Text"
      }
    ],
    "description": "For the Element super and on the vertex number vert,\uf020 if the attribute with number att_no does not exist then create it as type Text and give it the value txt.\uf020 if the attribute with number att_no does exist and it is type Text, then set its value to txt. If the attribute exists and is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 795,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "int",
        "type": "Integer"
      }
    ],
    "description": "For the Element super and on the vertex number vert,\uf020 if the attribute with number att_no does not exist then create it as type Integer and give it the value int.\uf020 if the attribute with number att_no does exist and it is type Integer, then set its value to int. If the attribute exists and is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Set_super_vertex_attribute",
    "id": 796,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "real",
        "type": "Real"
      }
    ],
    "description": "For the Element super and on the vertex number vert,\uf020 if the attribute with number att_no does not exist then create it as type Real and give it the value real.\uf020 if the attribute with number att_no does exist and it is type Real, then set its value to real. If the attribute exists and is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Set_super_use_segment_attribute",
    "id": 1060,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use or remove the dimension Att_Segment_Attribute_Array. If the dimension Att_Segment_Attribute_Array exists then there can be an Attributes on each segment. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A value for use of 1 sets the dimension and 0 removes it. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_attribute",
    "id": 1061,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Attribute_Array exists for the super string. If the dimension Att_Segment_Attribute_Array exists then there can be an Attributes on each segment. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_attributes",
    "id": 2012,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super, return the Attributes for the segment number seg as att. If the Element is not of type Super, or Att_Segment_Attribute_Array dimension is not set, or the segment number seg has no attribute then a non-zero return value is returned. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the attribute is successfully returned."
  },
  {
    "name": "Set_super_segment_attributes",
    "id": 2013,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super, set the Attributes for the segment number seg to att. If the Element is not of type Super, or Att_Segment_Attribute_Array dimension is not set, then a non-zero return value is returned. See User Defined Vertex Attributes Dimensions for information on the Attributes dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A function return value of zero indicates the attribute is successfully set."
  },
  {
    "name": "Get_super_segment_attribute",
    "id": 2014,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element super, get the attribute called att_name for the segment number seg and return the attribute value in uid. The attribute must be of type Uid. If the Element is not of type Super or the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_super_segment_attribute",
    "id": 2015,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super, get the attribute called att_name for the segment number seg and return the attribute value in att. The attribute must be of type Attributes. If the Element is not of type Super or the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_super_segment_attribute",
    "id": 2016,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Super String Element Page 557 12d Model Macro Manual For the Element super, get the attribute with number att_no for the segment number seg and return the attribute value in uid. The attribute must be of type Uid. If the Element is not of type Super or the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_super_segment_attribute",
    "id": 2017,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      }
    ],
    "description": "For the Element super, get the attribute with number att_no for the segment number seg and return the attribute value in att. The attribute must be of type Attributes. If the Element is not of type Super or the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Set_super_segment_attribute",
    "id": 2018,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element super and on the segment number seg,\uf020 if the attribute called att_name does not exist then create it as type Uid and give it the value uid.\uf020 if the attribute called att_name does exist and it is type Uid, then set its value to uid. If the attribute exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_super_segment_attribute",
    "id": 2019,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "For the Element super and on the segment number seg,\uf020 if the attribute called att_name does not exist then create it as type Attributes and give it the value att.\uf020 Page 558 Super String Element Chapter 5 12dPL Library Calls if the attribute called att_name does exist and it is type Attributes, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_super_segment_attribute",
    "id": 2020,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element super and on the segment number seg, if the attribute number att_no exists and it is of type Uid, then its value is set to uid. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_super_segment_attribute",
    "id": 2021,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element super and on the segment number seg, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Super_segment_attribute_exists",
    "id": 1062,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if for segment number seg, an attribute of name att_name exists. A non-zero function return value indicates the attribute exists. A zero function return value indicates the attribute does not exist. Super String Element Page 559 12d Model Macro Manual Warning - this is the opposite to most 12dPL function return values"
  },
  {
    "name": "Super_segment_attribute_exists",
    "id": 1063,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&num",
        "type": "Integer"
      }
    ],
    "description": "Checks to see if for segment number seg, an attribute of name att_name exists, and if it does, return the number of the attribute as num. A non-zero function return value indicates the attribute exists and its number was successfully returned. A zero function return value indicates the attribute does not exist, or the number was not successfully returned. Warning - this is the opposite to most 12dPL function return values"
  },
  {
    "name": "Get_super_segment_number_of_attributes",
    "id": 1069,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&no_atts",
        "type": "Integer"
      }
    ],
    "description": "Get the total number of attributes for segment number seg of the Element super. The total number of attributes is returned in Integer no_atts. A function return value of zero indicates the number of attributes was successfully returned. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_attribute_length",
    "id": 1079,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "For segment number seg of the Element super, get the length (in bytes) of the attribute with the name att_name. The attribute length is returned in att_len. A function return value of zero indicates the attribute length was successfully returned. Note - the length is useful for user attributes of type Text and Binary."
  },
  {
    "name": "Get_super_segment_attribute_length",
    "id": 1080,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "For segment number seg of the Element super, get the length (in bytes) of the attribute number att_no. The attribute length is returned in att_len. A function return value of zero indicates the attribute length was successfully returned. Note - the length is useful for attributes of type Text and Binary."
  },
  {
    "name": "Set_super_segment_attribute",
    "id": 1086,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "real",
        "type": "Real"
      }
    ],
    "description": "For the Element super and on the segment number seg,\uf020 if the attribute with number att_no does not exist then create it as type Real and give it the value real.\uf020 if the attribute with number att_no does exist and it is type Real, then set its value to real. If the attribute exists and is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Set_super_use_vertex_uid",
    "id": 1572,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "WARNING - Reserved for 12d Solutions Staff Only. Tell the super string super whether to use (set), or not use (remove), the dimension Att_Vertex_UID_Array. A value for use of 1 sets the dimension and 0 removes it. If Att_Vertex_UID_Array is used, then there is an Integer (referred to as a uid) stored at each vertex of the super string. This is used by 12d Solutions to store special backtracking numbers on each vertex (for example for survey data reduction or with the underlying super string in a super alignment). See UID Dimensions for information on the Vertex UID dimension or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_uid",
    "id": 1573,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_UID_Array exists (is used) for the super string super. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. If Att_Vertex_UID_Array is used, then there is an Integer (referred to as a uid) stored at each vertex of the super string. This is used by 12d Solutions to store special backtracking numbers on each vertex (for example for survey data reduction or with the underlying super string in a super alignment). See UID Dimensions for information on the Vertex UID dimension or 5.38.1 Super String Dimensions for information on all the dimensions."
  },
  {
    "name": "Set_super_vertex_uid",
    "id": 1574,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "num",
        "type": "Integer"
      }
    ],
    "description": "WARNING - Reserved for 12d Solutions Staff Only. For the super Element super, set the vertex uid at vertex number vert to be num. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_uid",
    "id": 1575,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&num",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the vertex uid at vertex number vert and return it in num. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_uid",
    "id": 1576,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "WARNING - Reserved for 12d Solutions Staff Only. Tell the super string super whether to use (set), or not use (remove), the dimension Att_Segment_UID_Array. A value for use of 1 sets the dimension and 0 removes it. If Att_Segment_UID_Array is used, then there is an Integer stored at each segment of the super string. This is used by 12d Solutions to store special backtracking numbers on each segment (for example for survey data reduction or with the underlying super string in a super alignment). See UID Dimensions for information on the Segment UID dimension or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_uid",
    "id": 1577,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_UID_Array exists (is used) for the super string super. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. If Att_Segment_UID_Array is used, then there is an Integer stored at each segment of the super string. This is used by 12d Solutions to store special backtracking numbers on each segment (for example for survey data reduction or with the underlying super string in a super alignment). See UID Dimensions for information on the Segment UID dimension or 5.38.1 Super String Dimensions for information on all the dimensions."
  },
  {
    "name": "Set_super_segment_uid",
    "id": 1578,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "num",
        "type": "Integer"
      }
    ],
    "description": "WARNING - Reserved for 12d Solutions Staff Only. For the super Element super, set the number called uid at segment number seg to be num. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_uid",
    "id": 1579,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&num",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, get the number called the uid on segment number seg and return it in num. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_image_value",
    "id": 1767,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Vertex_Image_Value is used. If the dimension Att_Vertex_Image_Value is set then there can be one image attached to each vertex. See Vertex Image Dimensions for information on the Vertex Image dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set. That is, the super string can have an image attached to each vertex (it can be a different image at each vertex). If use is 0, the dimension is removed. If the string had images then the images will be removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_image_value",
    "id": 1768,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Image_Value exists for the super string super. If the dimension Att_Vertex_Image_Value is set then there can be one image attached to each vertex. See Vertex Image Dimensions for information on the Vertex Image dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_image_array",
    "id": 1769,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For the super string Element super, define whether the dimension Att_Vertex_Image_Array is used, or removed, for the super string super. If the dimension Att_Vertex_Image_Array is set then there can be more than one image attached to each vertex. See Vertex Image Dimensions for information on the Vertex Image dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set. That is, each super string vertex can have a number of images attached to it. If use is 0, the dimension is removed. If the super string vertex had images then the images will be Super String Element Page 573 12d Model Macro Manual removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_image_array",
    "id": 1770,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Image_Array exists for the super string super. If the dimension Att_Vertex_Image_Array is set then there can be more than one image attached to each vertex. See Vertex Image Dimensions for information on the Vertex Image dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. That is, each super string vertex can have a number of images attached to it. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_vertex_image_value_to_array",
    "id": 2176,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      }
    ],
    "description": "If for the super string super the dimension Att_Vertex_Image_Value exists and the dimension Att_Vertex_Image_Array does not exist then there will be one image img for the entire string. In this case (when the dimension Att_Vertex_Image_Value exists and the dimension Att_ZCoord_Array does not exist) this function sets the Att_Vertex_Image_Array dimension and creates a new image for each vertex of super and it is given the value img. See Height Dimensions for information on the Height (ZCoord) dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_vertex_image_delete",
    "id": 1862,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vertex_num",
        "type": "Integer"
      },
      {
        "name": "image_num",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, delete image number image_num from vertex number vertex_num. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Super_vertex_image_delete_all",
    "id": 1863,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vertex_num",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, delete all the images on vertex number vertex_num. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_number_of_images",
    "id": 1864,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vertex_num",
        "type": "Integer"
      },
      {
        "name": "&num_images",
        "type": "Integer"
      }
    ],
    "description": "For the super Element super, return in num_images the number of images on vertex number vertex_num. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_image_type",
    "id": 1865,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vertex",
        "type": "Integer"
      },
      {
        "name": "image_no",
        "type": "Integer"
      },
      {
        "name": "&image_type",
        "type": "Text"
      }
    ],
    "description": "what is image_type? (it is URL etc) <no description>"
  },
  {
    "name": "Get_super_vertex_URL",
    "id": 1866,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vertex",
        "type": "Integer"
      },
      {
        "name": "image_no",
        "type": "Integer"
      },
      {
        "name": "&url",
        "type": "Text"
      }
    ],
    "description": "get url. If not url type then error. <no description>"
  },
  {
    "name": "Get_Super_vertex_plan_image",
    "id": 1867,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vertex",
        "type": "Integer"
      },
      {
        "name": "image_no",
        "type": "Integer"
      },
      {
        "name": "&url",
        "type": "Text"
      },
      {
        "name": "&width",
        "type": "Real"
      },
      {
        "name": "&height",
        "type": "Real"
      },
      {
        "name": "&angle",
        "type": "Real"
      },
      {
        "name": "&offset_x",
        "type": "Real"
      },
      {
        "name": "&offset_y",
        "type": "Real"
      }
    ],
    "description": "an image type <no description>"
  },
  {
    "name": "Set_super_use_visibility",
    "id": 718,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "Tell the super string whether to use, or remove, the dimension Att_Visible_Array. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A value for use of 1 sets the dimension and 0 removes it. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_visibility",
    "id": 719,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Visible_Array exists for the super string. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_visibility_value",
    "id": 1580,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Vertex_Visible_Value is used or removed. If Att_Vertex_Visible_Value is set and Att_Vertex_Visible_Array is not set, then there is only one visibility value for all vertices in super. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If Att_Vertex_Visible_Value is set then the visibility is the same for all vertices in super. If use is 1, the dimension is set and the visibility is the same for all vertices. If use is 0, the dimension is removed. Note that if the dimension Att_Vertex_Visible_Array exists, this call is ignored. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_visibility_value",
    "id": 1581,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Visible_Value exists for the super string super. If Att_Vertex_Visible_Value is set then there is one visibility value for all vertices in super. If Att_Vertex_Visible_Value is set and Att_Vertex_Visible_Array is not set, then there is only one visibility value for all vertices in super. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_vertex_visibility_array",
    "id": 1582,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Vertex_Visible_Array is used or removed. If Att_Vertex_Visible_Array is set then there can be a different visibility defined for each vertex in super. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Super String Element Page 579 12d Model Macro Manual Dimensions for information on all the dimensions. If use is 1, the dimension is set and the visibility is different for each vertex. If use is 0, the dimension is removed. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_vertex_visibility_array",
    "id": 1583,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Vertex_Visible_Array exists for the super string super. If Att_Vertex_Visible_Array is set then there can be a different visibility defined for each vertex in super. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_vertex_visibility",
    "id": 734,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "visibility",
        "type": "Integer"
      }
    ],
    "description": "For the Element super (which must be of type Super), set the visibility value for vertex number vert and to visibility. If visibility is 1, the vertex is visible. If visibility is 0, the vertex is invisible. If the Element super is not of type Super, or Att_Vertex_Visible_Array is not set for super, then a non-zero return code is returned. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_vertex_visibility",
    "id": 735,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "vert",
        "type": "Integer"
      },
      {
        "name": "&visibility",
        "type": "Integer"
      }
    ],
    "description": "For the Element super (which must be of type Super), get the visibility value for vertex number vert and return it in the Integer visibility. If visibility is 1, the vertex is visible. Page 580 Super String Element Chapter 5 12dPL Library Calls If visibility is 0, the vertex is invisible. If the Element super is not of type Super, or Att_Vertex_Visible_Array is not set for super, then a non-zero return code is returned. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_visibility_value",
    "id": 1588,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Segment_Visible_Value is used or removed. If Att_Segment_Visible_Value is set and Att_Segment_Visible_Array is not set, then the visibility is the same for all segments in super. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and the visibility is the same for all segments. If use is 0, the dimension is removed. Note that if the dimension Att_Segment_Visible_Array exists, this call is ignored. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_visibility_value",
    "id": 1589,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Visible_Value exists for the super string super. If Att_Segment_Visible_Value is set and Att_Segment_Visible_Array is not set, then the visibility is the same for all segments in super. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_use_segment_visibility_array",
    "id": 1590,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For Element super of type Super, define whether the dimension Att_Segment_Visible_Array is used or removed. If Att_Segment_Visible_Array is set then there can be a different visibility defined for each segment in super. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. If use is 1, the dimension is set and the visibility is different for each segment. If use is 0, the dimension is removed. Page 582 Super String Element Chapter 5 12dPL Library Calls A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_use_segment_visibility_array",
    "id": 1591,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "Query whether the dimension Att_Segment_Visible_Array exists for the super string super. If Att_Segment_Visible_Array is set then there can be a different visibility defined for each segment in super. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. use is returned as 1 if the dimension exists. use is returned as 0 if the dimension doesn\u2019t exist. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Set_super_segment_visibility",
    "id": 720,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "visibility",
        "type": "Integer"
      }
    ],
    "description": "For the Element super (which must be of type Super), set the visibility value for segment number seg to visibility. If visibility is 1, the segment is visible. If visibility is 0, the segment is invisible. If the Element super is not of type Super, or Att_Segment_Visible_Array is not set for super, then a non-zero return code is returned. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Get_super_segment_visibility",
    "id": 721,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "seg",
        "type": "Integer"
      },
      {
        "name": "&visibility",
        "type": "Integer"
      }
    ],
    "description": "For the Element super (which must be of type Super), get the visibility value for segment number seg and return it in the Integer visibility. If visibility is 1, the segment is visible. If visibility is 0, the segment is invisible. If the Element super is not of type Super, or Att_Segment_Visible_Array is not set for super, then a non-zero return code is returned. See Visibility Dimensions for information on the Visibility dimensions or 5.38.1 Super String Super String Element Page 583 12d Model Macro Manual Dimensions for information on all the dimensions. A return value of 0 indicates the function call was successful."
  },
  {
    "name": "Create_super_align",
    "id": 2120,
    "returnType": "Element",
    "parameters": [],
    "description": "Create an Element of type Super_Alignment. The function return value gives the actual Element created. If the Super Alignment string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_super_align",
    "id": 2121,
    "returnType": "Element",
    "parameters": [
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type Super_Alignment, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. If the Super Alignment string could not be created, then the returned Element will be null."
  },
  {
    "name": "Is_super_alignment_solved",
    "id": 2680,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Page 600 Super Alignment String Element Chapter 5 12dPL Library Calls Check if the geometry of the Element super_alignment solves. The Element super_alignment must be of type Super_Alignment. A no-zero function return value indicates that the geometry will solve. A zero function return value indicates the geometry for the will not solve, or that super_alignment is not of type Super_Alignment. Warning this is the opposite of most 12dPL function return values."
  },
  {
    "name": "Get_super_alignment_style",
    "id": 2805,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "&style",
        "type": "Text"
      }
    ],
    "description": "This call retrieves the current alignment style of the super alignment super_alignment and stores its name in the Text style. This call returns 0 if it succeeds and non zero if it fails."
  },
  {
    "name": "Set_super_alignment_style",
    "id": 2806,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "style",
        "type": "Text"
      }
    ],
    "description": "This call sets the current alignment style of the super alignment super_alignment to be the style named style. This call returns 0 if it succeeds and non zero if it fails."
  },
  {
    "name": "Get_super_alignment_vertical_interval_chord_arc",
    "id": 7974,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&interval_chord_arc",
        "type": "Real"
      }
    ],
    "description": "This call retrieves the interval chord arc of the vertical of the super alignment super_alignment and stores its value in the Real interval_chord_arc. This call returns 0 if it succeeds and non zero if it fails."
  },
  {
    "name": "Set_super_alignment_vertical_interval_chord_arc",
    "id": 7975,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "interval_chord_arc",
        "type": "Real"
      }
    ],
    "description": "Super Alignment String Element Page 601 12d Model Macro Manual This call sets the interval chord arc of the vertical of the super alignment super_alignment to be the value of interval_chord_arc. This call returns 0 if it succeeds and non zero if it fails."
  },
  {
    "name": "Get_super_alignment_horizontal_string",
    "id": 1898,
    "returnType": "Element",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Return a super string which has the segments of the solved horizontal geometry of a super alignment super_alignment. Each segment can be straight, arc, transition, or offset transition."
  },
  {
    "name": "Get_super_alignment_vertical_string",
    "id": 1899,
    "returnType": "Element",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Return a super string which has the segments of the solved vertical geometry of a super alignment super_alignment. Each segment can be straight, arc, or parabola."
  },
  {
    "name": "Get_super_alignment_vertical_position",
    "id": 2167,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "chainage",
        "type": "Real"
      },
      {
        "name": "&level",
        "type": "Real"
      },
      {
        "name": "&grade",
        "type": "Real"
      },
      {
        "name": "&mvalue",
        "type": "Real"
      }
    ],
    "description": "Get the details (level, grade, mvalue) of the vertical information of a super alignment super_alignment at a given chainage A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_widening_left_side",
    "id": 2198,
    "returnType": "Element",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Return a super string that is the same as the left side widening of a super alignment super_alignment"
  },
  {
    "name": "Get_super_alignment_widening_right_side",
    "id": 2199,
    "returnType": "Element",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Return a super string that is the same as the right side widening of a super alignment super_alignment"
  },
  {
    "name": "Get_super_alignment_super_elevation_left_side",
    "id": 2200,
    "returnType": "Element",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Return a super string that is the same as the left side elevation of a super alignment super_alignment Super Alignment String Element Page 603 12d Model Macro Manual"
  },
  {
    "name": "Get_super_alignment_super_elevation_right_side",
    "id": 2201,
    "returnType": "Element",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Return a super string that is the same as the right side elevation of a super alignment super_alignment"
  },
  {
    "name": "Get_super_alignment_sight_distance_forward",
    "id": 2274,
    "returnType": "Element",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Return a super string that is the same as the forward sight distance of a super alignment super_alignment"
  },
  {
    "name": "Get_super_alignment_sight_distance_reverse",
    "id": 2275,
    "returnType": "Element",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Return a super string that is the same as the reverse sight distance of a super alignment super_alignment"
  },
  {
    "name": "Get_super_alignment_number_of_profiles",
    "id": 2624,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of profiles count of a super alignment alignment A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_profile",
    "id": 2625,
    "returnType": "Element",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&index",
        "type": "Integer"
      }
    ],
    "description": "Return a super string that is the same as the profile of given index of a super alignment alignment"
  },
  {
    "name": "Get_super_alignment_profile",
    "id": 2276,
    "returnType": "Element",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Return a super string that is the same as the profile of given name of a super alignment alignment"
  },
  {
    "name": "Get_super_alignment_named_parts",
    "id": 3535,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "vert_hori",
        "type": "Integer"
      },
      {
        "name": "&names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the list of named part (vertical if vert_hori is 0; horizontal otherwise) names of a super alignment alignment and assign their name to the list names A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_named_positions",
    "id": 3536,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the list of named positions of a super alignment alignment and assign their names to the list names A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_named_part_chainage",
    "id": 3537,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "vert_hori",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&ch",
        "type": "Real"
      }
    ],
    "description": "Get the chainage ch of named part (vertical if vert_hori is 0; horizontal otherwise) with given name for a super alignment alignment. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_named_part_segments",
    "id": 3539,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "vert_hori",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&segment_indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Get the list of segment indices segment_indices of the named part (vertical if vert_hori is 0; horizontal otherwise) with given name for a super alignment alignment. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_named_part_segment",
    "id": 3540,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "vert_hori",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&segment",
        "type": "Segment"
      }
    ],
    "description": "Get the Segment segment of the named part (vertical if vert_hori is 0; horizontal otherwise) with given name for a super alignment alignment. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_named_chainage",
    "id": 3541,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "vert_hori",
        "type": "Integer"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "&name",
        "type": "Text"
      },
      {
        "name": "&extension",
        "type": "Real"
      }
    ],
    "description": "For a super alignment alignment, find the named part (vertical if vert_hori is 0; horizontal otherwise) containing a given chainage ch, set Text name to the part name, and extension to the extension to the chainage point. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_named_segment",
    "id": 3542,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "vert_hori",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "For a super alignment alignment, find the named part (vertical if vert_hori is 0; horizontal otherwise) containing a given chainage ch, set Text name to the part name. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_alignment_use_equalities",
    "id": 2181,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "use",
        "type": "Integer"
      }
    ],
    "description": "For a super alignment alignment, create (if use is 1) or delete (if use is 0) the chainage equalities object within the super alignment. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_use_equalities",
    "id": 2182,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&use",
        "type": "Integer"
      }
    ],
    "description": "For a super alignment alignment, check if the chainage equalities object exists within the super alignment and set use to 1 if exists; 0 otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_super_alignment_equalities_active",
    "id": 2183,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "active",
        "type": "Integer"
      }
    ],
    "description": "For a super alignment alignment, create (if active is 1) or delete (if active is 0) the chainage equalities object within the super alignment. If active is 1 then also turn on the equalities object A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_equalities_active",
    "id": 2184,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&active",
        "type": "Integer"
      }
    ],
    "description": "Super Alignment String Element Page 607 12d Model Macro Manual For a super alignment alignment, check if the chainage equalities object exists within the super alignment and set active to 1 if exists and turned on; 0 otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Super_alignment_equality_part_append",
    "id": 2185,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "part",
        "type": "Text"
      }
    ],
    "description": "For a super alignment alignment, append a new equality part with the given name part. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Super_alignment_equality_part_insert",
    "id": 2186,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "part",
        "type": "Text"
      }
    ],
    "description": "For a super alignment alignment, insert a new equality part at the given position with the given name part. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Super_alignment_equality_part_delete",
    "id": 2187,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "position",
        "type": "Integer"
      }
    ],
    "description": "For a super alignment alignment, delete the equality part at the given position A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_equality_parts",
    "id": 2188,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&num_parts",
        "type": "Integer"
      }
    ],
    "description": "For a super alignment alignment, get the number of the equality parts as num_parts. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_equality_part_type",
    "id": 2190,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "For a super alignment alignment, get the type of the equality part at given position. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_equality_part",
    "id": 2191,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "For a super alignment alignment, get the name of the equality part at given position. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Calc_super_alignment_equalities",
    "id": 2192,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      }
    ],
    "description": "For a super alignment alignment, rebuild the chainage equality. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_equality_chainage",
    "id": 2193,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "raw_chainage",
        "type": "Real"
      },
      {
        "name": "&equality_name",
        "type": "Text"
      },
      {
        "name": "&equality_zone",
        "type": "Integer"
      },
      {
        "name": "&equality_offset",
        "type": "Real"
      }
    ],
    "description": "For a super alignment alignment, get the equality_name; equality_zone; equality_offset of the Super Alignment String Element Page 609 12d Model Macro Manual chainage equality part at given raw_chainage. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_raw_chainage",
    "id": 2194,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "equality_name",
        "type": "Text"
      },
      {
        "name": "equality_zone",
        "type": "Integer"
      },
      {
        "name": "equality_offset",
        "type": "Real"
      },
      {
        "name": "&raw_chainage",
        "type": "Real"
      }
    ],
    "description": "For a super alignment alignment, get the raw_chainage of the chainage equality part with given equality_name; equality_zone; equality_offset . A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_number_of_equalities",
    "id": 2195,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "For a super alignment alignment, get the count of number of solved chainage equalities (K-post and internal equalities). A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_equality_data",
    "id": 2196,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "align",
        "type": "Element"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "&raw_chainage",
        "type": "Real"
      },
      {
        "name": "&mode",
        "type": "Integer"
      },
      {
        "name": "&equality_name",
        "type": "Text"
      },
      {
        "name": "&equality_zone",
        "type": "Integer"
      },
      {
        "name": "&equality_offset",
        "type": "Real"
      },
      {
        "name": "&pre_equality_name",
        "type": "Text"
      },
      {
        "name": "&pre_equality_zone",
        "type": "Integer"
      },
      {
        "name": "&equality_before",
        "type": "Real"
      }
    ],
    "description": "For a super alignment alignment, get the chainage equality information: raw_chainage, mode, equality_name, equality_zone, equality_offset, pre_equality_name, pre_equality_zone, equality_before at a given index. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_info_valid",
    "id": 2224,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&info",
        "type": "Equality_Info"
      },
      {
        "name": "&valid",
        "type": "Integer"
      }
    ],
    "description": "Get the valid flag of a super alignment chainage Equality_Info info. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_info_name",
    "id": 2225,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&info",
        "type": "Equality_Info"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the name of a super alignment chainage Equality_Info info. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_info_zone",
    "id": 2226,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&info",
        "type": "Equality_Info"
      },
      {
        "name": "&zone",
        "type": "Integer"
      }
    ],
    "description": "Get the zone of a super alignment chainage Equality_Info info. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_info_offset",
    "id": 2227,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&info",
        "type": "Equality_Info"
      },
      {
        "name": "&offset",
        "type": "Real"
      }
    ],
    "description": "Get the offset of a super alignment chainage Equality_Info info. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_info_prevalid",
    "id": 2228,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&info",
        "type": "Equality_Info"
      },
      {
        "name": "&prevalid",
        "type": "Integer"
      }
    ],
    "description": "Get the prevalid flag of a super alignment chainage Equality_Info info. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_info_prename",
    "id": 2229,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&info",
        "type": "Equality_Info"
      },
      {
        "name": "&prename",
        "type": "Text"
      }
    ],
    "description": "Get the prename of a super alignment chainage Equality_Info info. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_info_prezone",
    "id": 2230,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&info",
        "type": "Equality_Info"
      },
      {
        "name": "&prezone",
        "type": "Integer"
      }
    ],
    "description": "Get the prezone of a super alignment chainage Equality_Info info. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_info_preoffset",
    "id": 2231,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&info",
        "type": "Equality_Info"
      },
      {
        "name": "&preoffset",
        "type": "Real"
      }
    ],
    "description": "Get the zone of a super alignment chainage Equality_Info info. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_equality_label_data",
    "id": 2232,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&label",
        "type": "Equality_Label"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "Set the name and the Integer value of a super alignment chainage Equality_Label label. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_equality_label_data",
    "id": 2233,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&label",
        "type": "Equality_Label"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "Set the name and the Text value of a super alignment chainage Equality_Label label. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_equality_label_data",
    "id": 2235,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&label",
        "type": "Equality_Label"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Get the name and the Text value of a super alignment chainage Equality_Label label. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_equality_label",
    "id": 2236,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "raw_chainage",
        "type": "Real"
      },
      {
        "name": "&equality_info",
        "type": "Equality_Info"
      },
      {
        "name": "&equality_label",
        "type": "Equality_Label"
      },
      {
        "name": "&text_label",
        "type": "Text"
      }
    ],
    "description": "For plotting??? Create the text_label from equality_info and equality_label at given raw_chainage. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_super_alignment_equality_info",
    "id": 2238,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "chainage",
        "type": "Real"
      },
      {
        "name": "&equality_info",
        "type": "Equality_Info"
      }
    ],
    "description": "For a super alignment alignment, get the chainage equality information: equality_info at a given chainage. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Resolve_super_alignment",
    "id": 3918,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "model_id",
        "type": "Uid"
      },
      {
        "name": "string_name",
        "type": "Text"
      },
      {
        "name": "string_id",
        "type": "Uid"
      }
    ],
    "description": "Resolve the super alignment with given model_name, model_id, string_name, string_id . A return value of zero indicates the function call was successful."
  },
  {
    "name": "Super_alignment_validate",
    "id": 3935,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "alignment",
        "type": "Element"
      },
      {
        "name": "&has_error",
        "type": "Integer"
      }
    ],
    "description": "Validate the super alignment and set Integer has_error to one if any error occurs on the validation; zero otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_arc",
    "id": 294,
    "returnType": "Element",
    "parameters": [
      {
        "name": "arc",
        "type": "Arc"
      }
    ],
    "description": "Create an Element of type Arc from the Arc arc. The arc string has the same centre, radius, start and end points as the Arc arc. The function return value gives the actual Element created. If the arc string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_arc",
    "id": 312,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "z1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "z2",
        "type": "Real"
      },
      {
        "name": "x3",
        "type": "Real"
      },
      {
        "name": "y3",
        "type": "Real"
      },
      {
        "name": "z3",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Arc through three given points. The arc string has start point (x1,y1,z1), an intermediate point (x2,y2,z2) on the arc and the end point (x3,y3,z3). The centre and radius of the arc will be automatically calculated. The function return value gives the actual Element created. If the arc string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_arc",
    "id": 296,
    "returnType": "Element",
    "parameters": [
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "zs",
        "type": "Real"
      },
      {
        "name": "xe",
        "type": "Real"
      },
      {
        "name": "ye",
        "type": "Real"
      },
      {
        "name": "ze",
        "type": "Real"
      }
    ],
    "description": "Arc String Element Page 615 12d Model Macro Manual Create an Element of type Arc with centre (xc,yc,zc), radius rad, start point (xs,ys,zs) and end point (xe,ye,ze). The function return value gives the actual Element created. If the arc string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_arc",
    "id": 296,
    "returnType": "Element",
    "parameters": [
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "zs",
        "type": "Real"
      },
      {
        "name": "xe",
        "type": "Real"
      },
      {
        "name": "ye",
        "type": "Real"
      },
      {
        "name": "ze",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Arc with centre (xc,yc,zc), and radius rad. The points (xs,ys,zs) and (xe,ye,ze) define the start and end points respectively for the arc. If either of the points do not lie on the plan circle with centre (xc,yc) and radius rad, then the point is dropped perpendicularly onto the plan circle to define the (x,y) co-ordinates for the relevant start or end point. The function return value gives the actual Element created. If the arc string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_arc",
    "id": 313,
    "returnType": "Element",
    "parameters": [
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "zs",
        "type": "Real"
      },
      {
        "name": "sweep",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Arc with centre point (xc,yc,zc), start point (xs,ys,zs) and sweep angle sweep. The absolute radius is calculated as the distance between the centre and start point of the arc. The sign of the radius comes from the sweep angle. The sweep angle is measured in a clockwise direction from the line joining the centre to the arc start point. The units for sweep angles are radians. Hence the sweep angle is measured in radians and a positive value indicates a clockwise direction and a positive radius. The end point of the arc will be automatically created. The function return value gives the actual Element created. If the arc string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_arc",
    "id": 314,
    "returnType": "Element",
    "parameters": [
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "zs",
        "type": "Real"
      },
      {
        "name": "xe",
        "type": "Real"
      },
      {
        "name": "ye",
        "type": "Real"
      },
      {
        "name": "ze",
        "type": "Real"
      },
      {
        "name": "dir",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type Arc with centre (xc,yc,zc), start point (xs,ys,zs) and end point (xe,ye,ze). Page 616 Arc String Element Chapter 5 12dPL Library Calls The absolute radius is calculated as the distance between the centre and start point of the arc. If dir is positive, the radius is taken to be positive. If dir is negative, the radius is taken to be negative. The function return value gives the actual Element created. If the arc string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_arc_2",
    "id": 316,
    "returnType": "Element",
    "parameters": [
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "zs",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "arc_length",
        "type": "Real"
      },
      {
        "name": "start_angle",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Arc with radius rad. The arc starts at the point (xs,ys,zs) with tangent angle start_angle and total arc length arc_length. The centre and end points will be automatically created. The function return value gives the actual Element created. If the arc string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_arc_3",
    "id": 317,
    "returnType": "Element",
    "parameters": [
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "zs",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "arc_length",
        "type": "Real"
      },
      {
        "name": "chord_angle",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Arc with radius rad. The arc starts at the point (xs,ys,zs) with a chord angle chord_angle and total arc length arc_length. The centre and end points will be automatically created. The function return value gives the actual Element created. If the arc string could not be created, then the returned Element will be null."
  },
  {
    "name": "Set_arc_centre",
    "id": 319,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      }
    ],
    "description": "Set the centre point of the Arc string given by Element elt to (xc,yc,zc). The start and end points are also translated by the plan distance between the old and new centre. A function return value of zero indicates the centre was successfully modified."
  },
  {
    "name": "Set_arc_radius",
    "id": 321,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "Set the radius of the Arc string given by Element elt to rad. The new radius must be non-zero. The start and end points are projected radially so that they still lie on the arc. A function return value of zero indicates the radius was successfully modified."
  },
  {
    "name": "Get_arc_radius",
    "id": 320,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&rad",
        "type": "Real"
      }
    ],
    "description": "Get the radius for Arc string given by Element elt. The radius is given by rad. A function return value of zero indicates the radius was successfully returned."
  },
  {
    "name": "Set_arc_start",
    "id": 323,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "zs",
        "type": "Real"
      }
    ],
    "description": "Set the start point of the Arc string given by Element elt to (xs,ys,zs). If the start point does not lie on the arc, then the point (xs,ys,zs) is projected radially onto the arc and the projected point taken as the start point. A function return value of zero indicates the start point was successfully modified."
  },
  {
    "name": "Get_arc_start",
    "id": 322,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xs",
        "type": "Real"
      },
      {
        "name": "&ys",
        "type": "Real"
      },
      {
        "name": "&zs",
        "type": "Real"
      }
    ],
    "description": "Get the start point for Arc string given by Element elt. Page 618 Arc String Element Chapter 5 12dPL Library Calls The start of the arc is (xs,ys,zs). A function return value of zero indicates that the start point was successfully returned."
  },
  {
    "name": "Set_arc_end",
    "id": 325,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xe",
        "type": "Real"
      },
      {
        "name": "ye",
        "type": "Real"
      },
      {
        "name": "ze",
        "type": "Real"
      }
    ],
    "description": "Set the end point of the Arc string given by Element elt to (xe,ye,ze). If the end point does not lie on the arc, then the point (xe,ye,ze) is projected radially onto the arc and the projected point taken as the end point. A function return value of zero indicates the end point was successfully modified."
  },
  {
    "name": "Get_arc_end",
    "id": 324,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xe",
        "type": "Real"
      },
      {
        "name": "&ye",
        "type": "Real"
      },
      {
        "name": "&ze",
        "type": "Real"
      }
    ],
    "description": "Get the end point for Arc string given by Element elt. The end of the arc is (xe,ye,ze). A function return value of zero indicates that the end point was successfully returned."
  },
  {
    "name": "Set_arc_data",
    "id": 327,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "zs",
        "type": "Real"
      },
      {
        "name": "xe",
        "type": "Real"
      },
      {
        "name": "ye",
        "type": "Real"
      },
      {
        "name": "ze",
        "type": "Real"
      }
    ],
    "description": "Set the data for the Arc string given by Element elt. The arc is given the centre (xc,yc,zc), radius rad and start and end points (xs,ys,zs) and (xe,ye,ze) respectively. A function return value of zero indicates the arc data was successfully set."
  },
  {
    "name": "Get_arc_data",
    "id": 326,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xc",
        "type": "Real"
      },
      {
        "name": "&yc",
        "type": "Real"
      },
      {
        "name": "&zc",
        "type": "Real"
      },
      {
        "name": "&rad",
        "type": "Real"
      },
      {
        "name": "&xs",
        "type": "Real"
      },
      {
        "name": "&ys",
        "type": "Real"
      },
      {
        "name": "&zs",
        "type": "Real"
      },
      {
        "name": "&xe",
        "type": "Real"
      },
      {
        "name": "&ye",
        "type": "Real"
      },
      {
        "name": "&ze",
        "type": "Real"
      }
    ],
    "description": "Get the data for the Arc string given by Element elt. Arc String Element Page 619 12d Model Macro Manual The arc has centre (xc,yc,zc), radius rad and start and end points (xs,ys,zs) and (xe,ye,ze) respectively. A function return value of zero indicates that the arc date was successfully returned."
  },
  {
    "name": "Set_arc_interval",
    "id": 2257,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "interval",
        "type": "Real"
      }
    ],
    "description": "Set the chainage interval of the Arc string given by Element elt to interval. A function return value of zero indicates the chainage interval was successfully modified."
  },
  {
    "name": "Get_arc_interval",
    "id": 2258,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&interval",
        "type": "Real"
      }
    ],
    "description": "Get the chainage interval for Arc string given by Element elt and assign to interval. A function return value of zero indicates the chainage interval was successfully returned."
  },
  {
    "name": "Set_arc_chord_arc",
    "id": 2259,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "chord_arc",
        "type": "Real"
      }
    ],
    "description": "Set the chord to arc tolerance for Arc string given by Element elt to chord_arc. A function return value of zero indicates the tolerance was successfully modified."
  },
  {
    "name": "Get_arc_chord_arc",
    "id": 2260,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&chord_arc",
        "type": "Real"
      }
    ],
    "description": "Get the chord to arc tolerance for Arc string given by Element elt and assign to chord_arc. A function return value of zero indicates the tolerance was successfully returned."
  },
  {
    "name": "Create_circle",
    "id": 307,
    "returnType": "Element",
    "parameters": [
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Circle with centre (xc,yc), radius rad and z value (height) zc. The function return value gives the actual Element created. If the circle string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_circle",
    "id": 308,
    "returnType": "Element",
    "parameters": [
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      },
      {
        "name": "xp",
        "type": "Real"
      },
      {
        "name": "yp",
        "type": "Real"
      },
      {
        "name": "zp",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Circle with centre (xc,yc) and point (xp,yp) on the circle. The height of the circle is zc. The radius of the circle will be automatically calculated. The function return value gives the actual Element created. If the circle string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_circle",
    "id": 309,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "z1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "z2",
        "type": "Real"
      },
      {
        "name": "x3",
        "type": "Real"
      },
      {
        "name": "y3",
        "type": "Real"
      },
      {
        "name": "z3",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Circle going through the three points (x1,y1), (x2,y2) and ( x3,y3). The height of the circle is z1. The centre and radius of the circle will be automatically created. The function return value gives the actual Element created. If the circle string could not be created, then the returned Element will be null."
  },
  {
    "name": "Get_circle_data",
    "id": 310,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xc",
        "type": "Real"
      },
      {
        "name": "&yc",
        "type": "Real"
      },
      {
        "name": "&zc",
        "type": "Real"
      },
      {
        "name": "&rad",
        "type": "Real"
      }
    ],
    "description": "Get the data for the Circle string given by Element elt. The centre of the circle is (xc,yc,zc), height zc and radius rad. A function return value of zero indicates success."
  },
  {
    "name": "Create_text",
    "id": 174,
    "returnType": "Element",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Creates an Element of type Text. The Element is at position (x,y), has Text text of size size and colour colour. The other data is defaulted. The function return value gives the actual Element created. If the text string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_text",
    "id": 175,
    "returnType": "Element",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "Creates an Element of type Text. The Element is at position (x,y), has Text text of size size, colour colour and angle ang. The other data is defaulted. Text String Element Page 623 12d Model Macro Manual The function return value gives the actual Element created. If the text string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_text",
    "id": 176,
    "returnType": "Element",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      },
      {
        "name": "justif",
        "type": "Integer"
      }
    ],
    "description": "Creates an Element of type Text. The Element is at position (x,y), has Text text of size size, colour colour, angle ang and justification justif. The other data is defaulted. The function return value gives the actual Element created. If the text string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_text",
    "id": 177,
    "returnType": "Element",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      },
      {
        "name": "justif",
        "type": "Integer"
      },
      {
        "name": "size_mode",
        "type": "Integer"
      }
    ],
    "description": "Creates an Element of type Text. The Element is at position (x,y), has Text text of size size, colour colour, angle ang, justification justif and size mode size_mode. The other data is defaulted. The function return value gives the actual Element created. If the text string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_text",
    "id": 178,
    "returnType": "Element",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "ang",
        "type": "Real"
      },
      {
        "name": "justif",
        "type": "Integer"
      },
      {
        "name": "size_mode",
        "type": "Integer"
      },
      {
        "name": "offset_distance",
        "type": "Real"
      },
      {
        "name": "rise_distance",
        "type": "Real"
      }
    ],
    "description": "Creates an Element of type Text. The Element is at position (x,y), has Text text of size size, colour colour, angle ang, justification justif, size mode size_mode, offset offset_distance and rise rise_distance. The function return value gives the actual Element created. If the text string could not be created, then the returned Element will be null."
  },
  {
    "name": "Set_text_data",
    "id": 180,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "justif",
        "type": "Integer"
      },
      {
        "name": "size_mode",
        "type": "Integer"
      },
      {
        "name": "offset_distance",
        "type": "Real"
      },
      {
        "name": "rise_distance",
        "type": "Real"
      }
    ],
    "description": "Set values for each of the text parameters. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates that the text data was successfully set."
  },
  {
    "name": "Get_text_data",
    "id": 179,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&text",
        "type": "Text"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&size",
        "type": "Real"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      },
      {
        "name": "&justification",
        "type": "Integer"
      },
      {
        "name": "&size_mode",
        "type": "Integer"
      },
      {
        "name": "&offset_dist",
        "type": "Real"
      },
      {
        "name": "&rise_dist",
        "type": "Real"
      }
    ],
    "description": "Get the values for each of the text parameters. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates that the text data was successfully returned."
  },
  {
    "name": "Set_text_value",
    "id": 461,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Set the actual text of the text Element elt. The text is given as Text text. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_value",
    "id": 453,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "Get the actual text of the text Element elt. The text is returned as Text text. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_textstyle_data",
    "id": 1669,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "d",
        "type": "Textstyle_Data"
      }
    ],
    "description": "For the Element elt of type Text, set the Textstyle_Data to be d. Setting a Textstyle_Data means that all the individual values that are contained in the Textstyle_Data are set rather than having to set each one individually. If the value is blank in the Textstyle_Data d then the value in elt would be left alone. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates the Textstyle_Data was successfully set."
  },
  {
    "name": "Get_text_textstyle_data",
    "id": 1670,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&d",
        "type": "Textstyle_Data"
      }
    ],
    "description": "For the Element elt of type Text, get the Textstyle_Data for the string and return it as d. A non-zero function return value is returned if elt is not of type Text (and also d would be left unchanged) . A function return value of zero indicates the Textstyle_Data was successfully returned."
  },
  {
    "name": "Get_text_length",
    "id": 580,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the length of the characters of the text Element elt. The text length is returned as Real length. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_xy",
    "id": 462,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Set the base position of for the text Element elt. The position is given as Real (x,y). A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_xy",
    "id": 454,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      }
    ],
    "description": "Get the base position of for the text Element elt. The position is returned as Real (x,y). A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_xyz",
    "id": 462,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Set the base position of for the text Element elt. The position is given as Real (x,y,z). A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_xyz",
    "id": 454,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the base position of for the text Element elt. The position is returned as Real (x,y,z). A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_units",
    "id": 466,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "units_mode",
        "type": "Integer"
      }
    ],
    "description": "Set the units used for the text parameters of the text Element elt. The mode is given as Integer units_mode. For the values of units_mode, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_text_size",
    "id": 463,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "size",
        "type": "Real"
      }
    ],
    "description": "Set the size of the characters of the text Element elt. The text size is returned as Real size. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_size",
    "id": 455,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&size",
        "type": "Real"
      }
    ],
    "description": "Get the size of the characters of the text Element elt. The text size is returned as Real size. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_justify",
    "id": 465,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "justify",
        "type": "Integer"
      }
    ],
    "description": "Set the justification used for the text Element elt. The justification is given as Integer justify. For the values of justify and their meaning, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_justify",
    "id": 457,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&justify",
        "type": "Integer"
      }
    ],
    "description": "Page 628 Text String Element Chapter 5 12dPL Library Calls Get the justification used for the text Element elt. The justification is returned as Integer justify. For the values of justify and their meaning, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_angle",
    "id": 464,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "Set the angle of rotation (in radians) about the text (x,y) point of the text Element elt. The angle is given as Real ang. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_angle",
    "id": 456,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "Get the angle of rotation (in radians) about the text (x,y) point of the text Element elt and return the angle as ang. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_angle2",
    "id": 3579,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ang2",
        "type": "Real"
      }
    ],
    "description": "Set the 3D beta angle (in radians) about the text (x,y) point of the text Element elt. The angle is given as Real ang2. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_angle2",
    "id": 3576,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&ang2",
        "type": "Real"
      }
    ],
    "description": "Text String Element Page 629 12d Model Macro Manual Get the 3D beta angle (in radians) about the text (x,y) point of the text Element elt and return the angle as ang2. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_angle3",
    "id": 3580,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ang3",
        "type": "Real"
      }
    ],
    "description": "Set the 3D gamma angle (in radians) about the text (x,y) point of the text Element elt. The angle is given as Real ang3. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_angle3",
    "id": 3577,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&ang3",
        "type": "Real"
      }
    ],
    "description": "Get the 3D gamma angle (in radians) about the text (x,y) point of the text Element elt and return the angle as ang3. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_offset",
    "id": 467,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "offset",
        "type": "Real"
      }
    ],
    "description": "Set the offset distance of the text Element elt. The offset is given as Real offset. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_offset",
    "id": 459,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&offset",
        "type": "Real"
      }
    ],
    "description": "Get the offset distance of the text Element elt. The offset is returned as Real offset. For a diagram, see 5.9 Textstyle Data. Page 630 Text String Element Chapter 5 12dPL Library Calls A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_rise",
    "id": 468,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "rise",
        "type": "Real"
      }
    ],
    "description": "Set the rise distance of the text Element elt. The rise is returned as Real rise. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_rise",
    "id": 460,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&rise",
        "type": "Real"
      }
    ],
    "description": "Get the rise distance of the text Element elt. The rise is returned as Real rise. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_height",
    "id": 584,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "Set the height of the characters of the text Element elt. The text height is given as Real height. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_height",
    "id": 579,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&height",
        "type": "Real"
      }
    ],
    "description": "Get the height of the characters of the text Element elt. The text height is returned as Real height. A function return value of zero indicates the data was successfully returned. Text String Element Page 631 12d Model Macro Manual"
  },
  {
    "name": "Set_text_slant",
    "id": 585,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "slant",
        "type": "Real"
      }
    ],
    "description": "Set the slant of the characters of the text Element elt. The text slant is given as Real slant. Note that the value of slant is measured as tangent here, where in 12da the value is writen in decimal angle. The valid value for slant much be at least -1 and at most 1 (as the angle much be between -45 to 45 degree). A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_slant",
    "id": 581,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&slant",
        "type": "Real"
      }
    ],
    "description": "Get the slant of the characters of the text Element elt. The text slant is returned as Real slant. Note that the value of slant is measured as tangent here, where in 12da the value is writen in decimal angle. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_style",
    "id": 587,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "style",
        "type": "Text"
      }
    ],
    "description": "Set the style of the characters of the text Element elt. The text style is given as Text style. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_style",
    "id": 583,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&style",
        "type": "Text"
      }
    ],
    "description": "Get the style of the characters of the text Element elt. Page 632 Text String Element Chapter 5 12dPL Library Calls The text style is returned as Text style. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_x_factor",
    "id": 586,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xfact",
        "type": "Real"
      }
    ],
    "description": "Set the x factor of the characters of the text Element elt. The text x factor is given as Real xfact. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_text_x_factor",
    "id": 582,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xfact",
        "type": "Real"
      }
    ],
    "description": "Get the x factor of the characters of the text Element elt. The text x factor is returned as Real xfact. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_text_ttf_underline",
    "id": 2596,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "underline",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, set the underline state to underline. If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates underlined was successfully set."
  },
  {
    "name": "Get_text_ttf_underline",
    "id": 2592,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&underline",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, get the underline state and return it in underline. Text String Element Page 633 12d Model Macro Manual If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates underlined was successfully returned."
  },
  {
    "name": "Set_text_ttf_strikeout",
    "id": 2597,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "strikeout",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, set the strikeout state to strikeout. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates strikeout was successfully set."
  },
  {
    "name": "Get_text_ttf_strikeout",
    "id": 2593,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&strikeout",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, get the strikeout state and return it in strikeout. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates strikeout was successfully returned."
  },
  {
    "name": "Set_text_ttf_italic",
    "id": 2598,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "italic",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, set the italic state to italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates italic was successfully set. Page 634 Text String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_text_ttf_italic",
    "id": 2594,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&italic",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, get the italic state and return it in italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates italic was successfully returned."
  },
  {
    "name": "Set_text_ttf_outline",
    "id": 2772,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "outline",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, set the outline state to outline. If outline = 1, then for a true type font the text will be only shown in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates outline was successfully set."
  },
  {
    "name": "Get_text_ttf_outline",
    "id": 2771,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&outline",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, get the outline state and return it in outline. If outline = 1, then for a true type font the text will be shown only in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates outline was successfully returned."
  },
  {
    "name": "Get_text_ttf_weight",
    "id": 2595,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&weight",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type Text, get the font weight and return it in weight. For the list of allowable weights, go to Allowable Weights A non-zero function return value is returned if elt is not of type Text. A function return value of zero indicates weight was successfully returned."
  },
  {
    "name": "Set_text_whiteout",
    "id": 2752,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the Text Element text, set the colour number of the colour used for the whiteout box around the text, to be colour. If no text whiteout is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_text_whiteout",
    "id": 2751,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the Text Element text, get the colour number that is used for the whiteout box around the text. The whiteout colour is returned as Integer colour. NO_COLOUR is the returned as the colour number if whiteout is not being used. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully returned. Page 636 Text String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Set_text_border",
    "id": 2762,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the Text Element text, set the colour number of the colour used for the border of the whiteout box around the text, to be colour. If no whiteout border is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_text_border",
    "id": 2761,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the Text Element text, get the colour number that is used for the border of the whiteout box around the text. The whiteout border colour is returned as Integer colour. NO_COLOUR is the returned as the colour number if there is no whiteout border. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff) For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_text_border_style",
    "id": 3581,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Element"
      },
      {
        "name": "style",
        "type": "Integer"
      }
    ],
    "description": "For the Text Element text, set the the border style that is used for the border of the whiteout box around the text accordingly to Integer style. 1 for rectangle 2 for circle 3 for capsule 4 for bevel 5 for triangle 1 (pointed at top) 6 for triangle 2 (flat line on top) 7 for pentagon 1 (pointed at top) 8 for pentagon 2 (flat line on top) 9 for hexagon 1 (pointed at top) 10 for hexagon 2 (flat line on top) 11 for octagon 1 (pointed at top) 12 for octagon 2 (flat line on top) Text String Element Page 637 12d Model Macro Manual For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the border style was successfully set."
  },
  {
    "name": "Get_text_border_style",
    "id": 3578,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Element"
      },
      {
        "name": "&style",
        "type": "Integer"
      }
    ],
    "description": "For the Text Element text, get the border style that is used for the border of the whiteout box around the text. The border style is returned as Integer style. 1 for rectangle 2 for circle 3 for capsule 4 for bevel 5 for triangle 1 (pointed at top) 6 for triangle 2 (flat line on top) 7 for pentagon 1 (pointed at top) 8 for pentagon 2 (flat line on top) 9 for hexagon 1 (pointed at top) 10 for hexagon 2 (flat line on top) 11 for octagon 1 (pointed at top) 12 for octagon 2 (flat line on top) For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Create_pipeline",
    "id": 1264,
    "returnType": "Integer",
    "parameters": [],
    "description": "Create a pipeline. A function return value of zero indicates the pipeline was created successfully."
  },
  {
    "name": "Create_pipeline",
    "id": 1265,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type Pipeline, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. A function return value of zero indicates the pipeline was created successfully."
  },
  {
    "name": "Set_pipeline_diameter",
    "id": 1266,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "diameter",
        "type": "Real"
      }
    ],
    "description": "Set the diameter for pipeline. Type of the diameter must be Real. A function return value of zero indicates the diameter was successfully set."
  },
  {
    "name": "Get_pipeline_diameter",
    "id": 1268,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "&diameter",
        "type": "Real"
      }
    ],
    "description": "Get the diameter from the Element pipeline. The type of diameter must be Real. A function return value of zero indicates the diameter was returned successfully."
  },
  {
    "name": "Get_pipeline_length",
    "id": 1269,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the length from the Element pipeline. The type of length must be Real. A function return value of zero indicates the length was returned successfully."
  },
  {
    "name": "Set_pipeline_shape",
    "id": 3024,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "shape",
        "type": "Integer"
      }
    ],
    "description": "Set shape shape of a pipeline Element pipeline A return value of zero indicates the function call was successful. List of values for shape 0 no pipe nor culvert 1 pipe 2 culvert"
  },
  {
    "name": "Get_pipeline_shape",
    "id": 3025,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "&shape",
        "type": "Integer"
      }
    ],
    "description": "Get shape shape of a pipeline Element pipeline A return value of zero indicates the function call was successful. List of values for shape 0 no pipe nor culvert 1 pipe 2 culvert Page 640 Pipeline String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Set_pipeline_justification",
    "id": 3026,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "justification",
        "type": "Integer"
      }
    ],
    "description": "Set pipe culvert justification justification of a pipeline Element pipeline A return value of zero indicates the function call was successful. List of values for justification 0 invert 1 centre 2 obvert"
  },
  {
    "name": "Get_pipeline_justification",
    "id": 3027,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "&justification",
        "type": "Integer"
      }
    ],
    "description": "Get pipe culvert justification justification of a pipeline Element pipeline A return value of zero indicates the function call was successful. List of values for justification 0 invert 1 centre 2 obvert"
  },
  {
    "name": "Set_pipeline_culvert",
    "id": 3028,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "w",
        "type": "Real"
      },
      {
        "name": "h",
        "type": "Real"
      }
    ],
    "description": "Set pipe culvert width w and height h of a pipeline Element pipeline A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_pipeline_culvert",
    "id": 3029,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pipeline",
        "type": "Element"
      },
      {
        "name": "&w",
        "type": "Real"
      },
      {
        "name": "&h",
        "type": "Real"
      }
    ],
    "description": "Get pipe culvert width w and height h of a pipeline Element pipeline Pipeline String Element Page 641 12d Model Macro Manual A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_drainage",
    "id": 490,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_verts",
        "type": "Integer"
      },
      {
        "name": "num_pits",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type Drainage with room for num_verts vertices in the underlying string, and room for num_pits pits. The actual data of the drainage string is set after the string is created. If the drainage string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_drainage",
    "id": 489,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "num_verts",
        "type": "Integer"
      },
      {
        "name": "num_pits",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type drainage. The Element has num_verts vertices with (x,y,z) values for the vertices given in the Real arrays x[], y[] and z[], and the radii of the arcs for the segments between the vertices given by the Real radius array r[] and the Integer bulge array b[] (Bulge arrayb=1 for major arc >180 degrees, b = 1 for minor Drainage String Element Page 647 12d Model Macro Manual arc < 180 degrees). The drainage string also contains Integer num_pits pits. The function return value gives the actual Element created. If the drainage string could not be created, then the returned Element will be null."
  },
  {
    "name": "Set_drainage_data",
    "id": 2100,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "num_verts",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,r,b) data for the first num_verts vertices of the drainage Element drain. This function allows the user to modify a large number of vertices of the string in one call. The maximum number of vertices that can be set is given by the number of vertices in the string. The (x,y,z,r,b) values for each string vertex are given in the Real arrays x[], y[], z[], r[] and b[]. The number of vertices to be set is given by Integer num_verts If the Element drain is not of type Drainage, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Note This function can not create new Drainage Elements but only modify existing Drainage Elements."
  },
  {
    "name": "Get_drainage_data",
    "id": 2097,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "max_verts",
        "type": "Integer"
      },
      {
        "name": "&num_verts",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z,r,b) data for the first max_verts points of the drainage Element drain. The (x,y,z,r,b) values at each string vertex are returned in the Real arrays x[], y[], z[], r[] and b[]. The maximum number of vertices that can be returned is given by max_verts (usually the size of the arrays). The vertex data returned starts at the first vertex and goes up to the minimum of max_verts and the number of vertices in the string. The actual number of vertices returned is returned by Integer num_verts num_verts <= max_verts If the Element drain is not of type Drainage, then num_pts is returned as zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_data",
    "id": 2101,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "num_verts",
        "type": "Integer"
      },
      {
        "name": "start_vert",
        "type": "Integer"
      }
    ],
    "description": "For the drainage Element drain, set the (x,y,z,r,b) data for num_verts vertices, starting at vertex number start_vert. This function allows the user to modify a large number of vertices of the string in one call starting at vertex number start_vert rather than vertex one. The maximum number of vertices that can be set is given by the difference between the number of vertices in the string and the value of start_vert. The (x,y,z,r,f) values for the string vertices are given in the Real arrays x[], y[], z[], r[] and b[]. The number of the first string vertex to be modified is start_vert. The total number of vertices to be set is given by Integer num_verts If the Element drain is not of type Drainage, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Notes (a) A start_vert of one gives the same result as the function Set_drainage_data(Element drain,Real x[],Real y[],Real z[],Real r[],Integer b[],Integer num_verts). (b) This function can not create new Drainage Elements but only modify existing Drainage Elements."
  },
  {
    "name": "Get_drainage_data",
    "id": 2098,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "max_verts",
        "type": "Integer"
      },
      {
        "name": "&num_verts",
        "type": "Integer"
      },
      {
        "name": "start_vert",
        "type": "Integer"
      }
    ],
    "description": "For a drainage Element drain, get the (x,y,z,r,b) data for max_verts points starting at vertex number start_vert. This routine allows the user to return the data from a drainage string in user specified chunks. This is necessary if the number of vertices in the string is greater than the size of the arrays available to contain the information. The maximum number of vertices that can be returned is given by max_verts (usually the size of the arrays). For this function, the vertex data returned starts at vertex number start_vert rather than vertex one. The (x,y,z,r,b) values at each string vertex are returned in the Real arrays x[], y[], z[], r[] and b[]. The actual number of vertices returned is given by Integer num_verts num_verts <= max_verts If the Element drain is not of type Drainage, then num_verts is set to zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned. Note Drainage String Element Page 649 12d Model Macro Manual A start_vert of one gives the same result as for the function Get_drainage_data(Element drain,Real x[],Real y[],Real z[],Real r[],Integer b[],Integer max_verts,Integer &num_verts)."
  },
  {
    "name": "Set_drainage_data",
    "id": 2102,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "r",
        "type": "Real"
      },
      {
        "name": "b",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,r,f) data for the ith vertex of the string. The x value is given in Real x. The y value is given in Real y. The z value is given in Real z. The radius value is given in Real r. The minor/major value is given in Integer b. if b = 0, arc < 180 degrees; if b = 1, arc >180 degrees. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_data",
    "id": 2099,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&r",
        "type": "Real"
      },
      {
        "name": "&b",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z,r,f) data for the ith vertex of the Element drain. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. The radius value is returned in Real r. The minor/major value is returned in Integer b. If minor/major is 0, arc < 180. If minor/major is 1, arc > 180 A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_outfall_height",
    "id": 491,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Set the outfall height of the drainage Element drain to the value ht. A function return value of zero indicates the outfall height was successfully set."
  },
  {
    "name": "Get_drainage_outfall_height",
    "id": 492,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&ht",
        "type": "Real"
      }
    ],
    "description": "Get the outfall height of the drainage Element drain and return it as ht. A function return value of zero indicates the outfall height was successfully returned."
  },
  {
    "name": "Set_drainage_ns_tin",
    "id": 1275,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "For the drainage string drain, set the natural surface Tin to be tin. A function return value of zero indicates the tin was successfully set."
  },
  {
    "name": "Get_drainage_ns_tin",
    "id": 1274,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "For the drainage string drain, get the natural surface Tin and return it in tin. A function return value of zero indicates the tin was successfully returned."
  },
  {
    "name": "Set_drainage_fs_tin",
    "id": 1273,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Drainage String Element Page 651 12d Model Macro Manual For the drainage string drain, set the finished surface Tin to be tin. A function return value of zero indicates the tin was successfully set."
  },
  {
    "name": "Get_drainage_fs_tin",
    "id": 1272,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "For the drainage string drain, get the finished surface Tin and return it in tin. A function return value of zero indicates the tin was successfully returned."
  },
  {
    "name": "Set_drainage_flow",
    "id": 539,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "dir",
        "type": "Integer"
      }
    ],
    "description": "Set the flow direction of the drainage Element drain The flow direction is given as Integer dir. dir = 1 means the flow direction is the same as the string direction. That is, the flow direction is the same as the chainage direction of the drainage string. dir = 0 means the flow direction is opposite to the string direction. That is, the flow direction is the opposite direction to the chainage direction of the drainage string. See Drainage Definitions. A function return value of zero indicates the flow direction was successfully set."
  },
  {
    "name": "Get_drainage_flow",
    "id": 540,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&dir",
        "type": "Integer"
      }
    ],
    "description": "Get the flow direction of the drainage Element drain and return the flow direction dir. dir = 1 means the flow direction is the same as the string direction. That is, the flow direction is the same as the chainage direction of the drainage string. dir = 0 means the flow direction is opposite to the string direction. That is, the flow direction is the opposite direction to the chainage direction of the drainage string. See Drainage Definitions. A function return value of zero indicates the flow direction was successfully returned."
  },
  {
    "name": "Get_drainage_float",
    "id": 1270,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&string_pit_float",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the value of the flag for the string floating pit in string_pit_float. Note: If a pit does not have a pit_float value set for the pit, then the pit uses the string_pit_float value. A pit can be given its own pit_float value using the call Set_drainage_pit_float(Element drain,Integer pit,Integer pit_float). If string_pit_float = 1, the top of a pit automatically takes its level (height) from the finished surface tin for the drainage string drain. If string_pit_float = 0, the top of the pit level is fixed. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the string_pit_float value was successfully returned."
  },
  {
    "name": "Get_drainage_trunk",
    "id": 1444,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&trunk",
        "type": "Element"
      }
    ],
    "description": "For the drainage string drain, determine if drain flows into a trunk string. If there is a trunk string then it is returned as trunk and the function return value is 0. If a trunk exists, then drain is a branch string. If there is no trunk string and the downstream end of drain is an outlet then the function return value is 44. For all other cases, the function return value is non zero but not 44. See Drainage Definitions. Drainage String Element Page 653 12d Model Macro Manual"
  },
  {
    "name": "Drainage_default_grading_to_end",
    "id": 1700,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe_num",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, grade from pipe number pipe_num to the end of the string using the minimum grade, cover etc for the drain. The drainage flow direction is essential to the grading algorithm. A function return value of zero indicates the string was successfully graded."
  },
  {
    "name": "Drainage_grade_to_end",
    "id": 1701,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe_num",
        "type": "Integer"
      },
      {
        "name": "slope",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, grade from pipe number pipe_num to the end of the string using the slope slope where the units for slope are 1:in. That is, 1 vertical :in slope horizontal The drainage flow direction is essential to the grading algorithm. A function return value of zero indicates the string was successfully graded."
  },
  {
    "name": "Set_drainage_sewer",
    "id": 2954,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "Set the drainage sewer type of the drainage string Element drainage with the Integer type. A return value of zero indicates the function call was successful. The list of values for drainage sewer type 0 Drainage 1 Sewer 2 Water Supply 3 All"
  },
  {
    "name": "Get_drainage_sewer",
    "id": 2955,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "Page 654 Drainage String Element Chapter 5 12dPL Library Calls Get the drainage sewer type of the drainage string Element drainage to the Integer type. A return value of zero indicates the function call was successful. The list of values for drainage sewer type 0 Drainage 1 Sewer 2 Water Supply 3 All"
  },
  {
    "name": "Get_drainage_network_pipes_downstream",
    "id": 7795,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "dn",
        "type": "Drainage_Network"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "&elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "&indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "This function returns all of the pipes that exist in the Drainage_Network object dn, downstream of the pit or pipe with the unique id (NOTE: this is NOT a pit or pipe index, it is the unique id obtained using the calls Get_drainage_network_pits or Get_drainage_network_pipes). The pipe strings are returned in elements, while the pipe indices are returned in indices. The mode declares whether you are using a pit id or pipe id: If mode = 0, using a pit id If mode = 1, using a pipe id Typical return values are: 0 = success -1 = no pipes downstream of the pit/pipe -10 = Drainage_Network does not exist"
  },
  {
    "name": "Get_drainage_network_pipes_upstream",
    "id": 7796,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "dn",
        "type": "Drainage_Network"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "&elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "&indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "This function returns all of the pipes that exist in the Drainage_Network object dn, upstream of the pit or pipe with the unique id (NOTE: this is NOT a pit or pipe index, it is the unique id obtained using the calls Get_drainage_network_pits or Get_drainage_network_pipes). The pipe strings are returned in elements, while the pipe indices are returned in indices. The mode declares whether you are using a pit id or pipe id: If mode = 0, using a pit id Drainage String Element Page 655 12d Model Macro Manual If mode = 1, using a pipe id Typical return values are: 0 = success -1 = no pipes downstream of the pit/pipe -10 = Drainage_Network does not exist"
  },
  {
    "name": "Remove_drainage_pit",
    "id": 7810,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "ip",
        "type": "Integer"
      }
    ],
    "description": "Remove the node (pit) of given index ip from the drainage string Element element."
  },
  {
    "name": "Insert_drainage_pit",
    "id": 7811,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "ip",
        "type": "Integer"
      }
    ],
    "description": "Insert a new node (pit) of given index ip to the drainage string Element element."
  },
  {
    "name": "Get_drainage_pits",
    "id": 530,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&npits",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, get the number of pits for the string and return it in npits. The number of pipes in npits - 1. The i\u2019th pipe goes from the i\u2019th pit to the (i+1)\u2019th pit. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit",
    "id": 532,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Set the x,y & z for the pth pit of the string Element drain. The x coordinate of the pit is given as Real x. The y coordinate of the pit is given as Real y. The z coordinate of the pit is given as Real z. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_area",
    "id": 3796,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "elev",
        "type": "Integer"
      },
      {
        "name": "&sump_area",
        "type": "Real"
      },
      {
        "name": "&depth-elev",
        "type": "Dynamic_Real"
      },
      {
        "name": "&area",
        "type": "Dynamic_Real"
      },
      {
        "name": "&ret_num",
        "type": "Integer"
      }
    ],
    "description": "Get the plan area for the pth pit of the string Element drain at the sump [1] for all pits and \\, top of chamber[2] and bottom of riser[3] for extended pits. Integer Get_drainage_pit_area(Element element,Integer pit,Integer elev,Real &sump_area,Dynamic_Real &de,Dynamic_Real &area,Integer &ret_num) elev set to a value other than zero will return elev data Dynamic_Real &depth-elev sump_area returns the same value as area[1]. This is for easy access when ret_num = 1. depth-elev return a Dynamic_Real with either depth or elevation values as specified in Integer elev above. area returns area values at the level specified in depth-elev ret_num return the number of values in the Dynamic_Reals above. For extended nodes the area changes with elevation and the ret_num will be greater than 1 If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_name",
    "id": 513,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the name for the pth pit to name. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pit_colour",
    "id": 2781,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the colour of the pth pit to colour number colour. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_colour",
    "id": 2780,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the colour number of the pth pit in colour. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pit_diameter",
    "id": 511,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "diameter",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the diameter for the pth pit to diameter. See Drainage Pit Definitions. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_diameter",
    "id": 505,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&diameter",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the diameter of the pth pit in diameter. See Drainage Pit Definitions. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_symbol_angle",
    "id": 2872,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the angle for the pth pit to angle. angle is used for both the physical pit, and a symbol used for the pit in a Drainage Plan Plot. angle is in radians and measured in the counter clockwise direction from the x-axis. See Drainage Pit Definitions. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_symbol_angle",
    "id": 2871,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the angle of the pth pit in angle. angle is used for both the physical pit, and a symbol used for the pit in a Drainage Plan Plot. angle is in radians and measured in the counter clockwise direction from the x-axis. See Drainage Pit Definitions. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_width",
    "id": 2876,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "width",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the width for the pth pit to width. See Drainage Pit Definitions. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_width",
    "id": 2877,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&width",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the width of the pth pit in width. See Drainage Pit Definitions. Page 662 Drainage String Element Chapter 5 12dPL Library Calls If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_length",
    "id": 2878,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "length",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the length for the pth pit to length. See Drainage Pit Definitions. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_length",
    "id": 2879,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the length of the pth pit in length. See Drainage Pit Definitions. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_float_sump",
    "id": 2786,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "sump_float",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pit number pit, set the flag for the floating sump invert level to sump_float. If sump_float = 1, the invert level of the sump automatically moves to be the invert level of the lowest pipe coming into the pit, plus the sump offset (which is defined by an attribute). If sump_float = 0, the invert level of the sump is fixed and is explicitly set by the call Set_drainage_pit_sump_level(Element drain,Integer pit,Real level). If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the floating sump level flag was successfully set."
  },
  {
    "name": "Set_drainage_pit_sump_level",
    "id": 2788,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "level",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pit number pit, set the pit sump invert level to level. This value is only used when the pit floating sump level flag is set to 1. See Set_drainage_pit_float_sump(Element drain,Integer pit,Integer sump_float). See Drainage Pit Cross Section. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the sump invert level was successfully set."
  },
  {
    "name": "Get_drainage_pit_sump_level",
    "id": 2789,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&level",
        "type": "Real"
      }
    ],
    "description": "invert of the sump For the Element drain, which must be of type Drainage, and pit number pit, return the invert level of the sump as level. See Drainage Pit Cross Section. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the sump invert level was successfully returned."
  },
  {
    "name": "Get_drainage_pit_thickness",
    "id": 2869,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&bottom",
        "type": "Real"
      },
      {
        "name": "&front",
        "type": "Real"
      },
      {
        "name": "&back",
        "type": "Real"
      },
      {
        "name": "&left",
        "type": "Real"
      },
      {
        "name": "&right",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, get the thicknesses for the pth pit and return them in bottom, front back, left and right where bottom is the thickness of the bottom of the pit front is the thickness for a round pit, and the front thickness for a rectangular pit back is the back thickness for a rectangular pit and not used for a round pit left is the left thickness for a rectangular pit and not used for a round pit right is the right thickness for a rectangular pit and not used for a round pit See Drainage Pit Definitions. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the thicknesses was successfully returned."
  },
  {
    "name": "Set_drainage_use_connection_points",
    "id": 2790,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "use_connection_points",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set whether pit connection points are used or not. If use_connection_points = 0, pit connection points are not used. If use_connection_points = 1, pit connection points are used. If connection points are to be used and there are no custom connection points defined for the pit in the drainage.4d file, then every pipe goes to the centre of the closest rectangular side, or onto the circle for circular pits. Drainage String Element Page 665 12d Model Macro Manual If connection points are to be used and there are custom connection points defined for the pit in the drainage.4d file, then the pipes go to the closest connection point. See Drainage Definitionsfor connection points. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the use_connection_points flag was successfully set."
  },
  {
    "name": "Get_drainage_use_connection_points",
    "id": 2791,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&use_connection_points",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, return the pit connection point mode for the string in use_connection_points. If use_connection_points = 0, pit connection points are not used for drain. If use_connection_points = 1, pit connection points are used for drain. See Drainage Definitionsfor connection points. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the use_connection_points flag was successfully returned."
  },
  {
    "name": "Set_drainage_pit_connection_points_mode",
    "id": 2881,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set connection points mode of the drainage string Element drainage at pit index pit to Integer mode. A return value of zero indicates the function call was successful. The list of values for connection points mode: 0 Centre 1 Points 2 Perimeter 3 Unrestricted"
  },
  {
    "name": "Set_drainage_pit_symbol_angle_mode",
    "id": 2884,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the pit symbol angle mode of the drainage string Element drainage at pit index pit to Integer mode. A return value of zero indicates the function call was successful. The list of values for pit symbol angle mode 0 Floating 1 Setout String 2 Manual"
  },
  {
    "name": "Get_drainage_pit_symbol_angle_mode",
    "id": 2883,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Get the pit symbol angle mode of the drainage string Element drainage at pit index pit. A return value of zero indicates the function call was successful. The list of values for pit symbol angle mode 0 Floating 1 Setout String 2 Manual"
  },
  {
    "name": "Get_drainage_pit_2d_connection_mode",
    "id": 2886,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Get the pit 2d connection mode of the drainage string Element drainage at pit index pit. A return value of zero indicates the function call was successful. The list of values for pit 2d connection mode 0 Not set 1 Grate 2 Sump 3 Channel 4 None"
  },
  {
    "name": "Get_drainage_pit_connection",
    "id": 2889,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "mh_index",
        "type": "Integer"
      },
      {
        "name": "&mh_con_type",
        "type": "Integer"
      },
      {
        "name": "&con_string",
        "type": "Element"
      },
      {
        "name": "&con_mh_index",
        "type": "Integer"
      },
      {
        "name": "&con_type",
        "type": "Integer"
      }
    ],
    "description": "Get the pit connection information for the drainage string Element drainage at manhole index mh_index. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Drainage_Adjust_Pit_Connection_Points",
    "id": 2792,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, recalculate the pit connection points for pit number pit. Note that this needs to be done if the pit was moved or changed. For example, changing the diameter of the pit. See Drainage Definitionsfor connection points. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the connection points were successfully adjusted."
  },
  {
    "name": "Drainage_Adjust_Pit_Connection_Points_All",
    "id": 2793,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, recalculate the pit connection points for all the pits in drain. Note that this needs to be done if pits were moved or changed. For example, changing the diameter of the pits. See Drainage Definitionsfor connection points. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the connection points were successfully adjusted."
  },
  {
    "name": "Get_drainage_pit_connection_points",
    "id": 2847,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&lx",
        "type": "Real"
      },
      {
        "name": "&ly",
        "type": "Real"
      },
      {
        "name": "&rx",
        "type": "Real"
      },
      {
        "name": "&ry",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the pit connection points for pit number pit. The coordinates of the pit connection point for the pipe that comes into the pit from the left are returned as (lx,ly). The coordinates of the pit connection point for the pipe that goes out of the pit to the right are returned as (rx,ry). See Drainage Definitionsfor connection points. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the connection points were successfully returned. Drainage String Element Page 669 12d Model Macro Manual"
  },
  {
    "name": "Set_drainage_pit_inverts",
    "id": 514,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "lhs",
        "type": "Real"
      },
      {
        "name": "rhs",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the invert levels of the pipes of drain entering/leaving the pth pit. The invert level of the pipe entering/leaving the left side of the pit is set to Real lhs. The invert level of the pipe entering/leaving the right side of the pit is set to Real rhs. See Drainage Pipe Definitions for invert levels. Note: this is setting the invert levels of the pipes entering/leaving the pth pit. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_inverts",
    "id": 508,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&lhs",
        "type": "Real"
      },
      {
        "name": "&rhs",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, get the invert levels of the pipes of drain entering/leaving the pth pit. The invert level of the pipe entering/leaving the left side of the pit is returned in lhs. The invert level of the pipe entering/leaving the right side of the pit is returned in rhs. See Drainage Pipe Definitions for invert levels. Note: this is getting the invert levels of the pipes entering/leaving the pth pit. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_angle",
    "id": 517,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, get the angle between pipes of drain entering and leaving the pth pit, and return the angle as ang. Note: this is not the angle of the drainage pit itself which is returned by the call Get_drainage_pit_symbol_angle(Element drain,Integer pit,Real &angle). If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_angle",
    "id": 1294,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&ang",
        "type": "Real"
      },
      {
        "name": "trunk",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, for the pth pit, get the angle between incoming pipe and the outgoing pipe, and return it as ang. ang is in radians. If the drainage string is using connection points, the direction of the pipes at the connection points are used. If the drainage string is NOT using connection points, the direction of the pipes at the pit centre are used. trunk controls the action to be taken when the pit is at the downstream end of the drainage string. If trunk in non-zero, then a trunk line will be searched for to obtain the outgoing pipe. If no trunk line is found, ang = 0. If trunk is zero, ang = 0. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_chainage",
    "id": 520,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&chainage",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the chainage for the pth pit in chainage. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_chainages",
    "id": 2848,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&ch_lcp",
        "type": "Real"
      },
      {
        "name": "&ch_centre",
        "type": "Real"
      },
      {
        "name": "&ch_rcp",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and for pit number pit, return the chainages of the pit connection points and the chainage of the centre of the pit. The chainage of the pit connection point for the pipe that comes into the pit from the left is returned as ch_lcp. The chainage of the pit connection point for the pipe that goes out of the pit to the right is returned as ch_rcp. The chainage of the centre of the pit is returned as ch_centre. Drainage String Element Page 671 12d Model Macro Manual If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the chainages were successfully returned."
  },
  {
    "name": "Get_drainage_pit_shape",
    "id": 2849,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&super_inside",
        "type": "Element"
      },
      {
        "name": "&super_outside",
        "type": "Element"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the plan shape of the inside of pit number pit as the super string super_inside and the plan shape of the outside of the pit as super_outside. So for a circular pit with a wall thickness, a super string representing a circle of the diameter of the pit is the super_inside and a circle of (diameter + 2*thickness) is the super_outside. If mode = 0, the shapes are given the z-value of the bottom of the pit (sump bottom). If mode = 1, the shapes are given the z-value of the invert of the sump. If mode = 2, the shapes are given the z-value of the grate. If mode = 3, the shapes are given the z-value of the cover. pit cover mode = 3 cover level grate mode = 2 grate level pit of h pt e d mode = 1 sump invert mode = 0 bottom of pit If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the shapes were successfully returned."
  },
  {
    "name": "Set_drainage_pit_float",
    "id": 1277,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "pit_float",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pit number pit, set the flag for the floating pit level to pit_float. Page 672 Drainage String Element Chapter 5 12dPL Library Calls If pit_float = 1, the top of the pit automatically takes its level (height) from the finished surface tin for the drainage string drain. If pit_float = 0, the top of the pit level is fixed. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the pit_float value was successfully set."
  },
  {
    "name": "Get_drainage_pit_float",
    "id": 1276,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&pit_float",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pit number pit, return the flag for the floating pit level as pit_float. If pit_float = 1, the top of the pit automatically takes its level (height) from the finished surface tin for the drainage string drain. If pit_float = 0, the top of the pit level is fixed. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the pit_float value was successfully returned."
  },
  {
    "name": "Set_drainage_pit_hgl",
    "id": 1241,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "hgl",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the hgl level for the centre of the pth pit of the string to hgl. If hgl is null then the hgl for the surface is not drawn. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_hgl",
    "id": 1242,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&hgl",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, get the hgl level for centre of the pth pit and return it in hgl. If hgl is null then the hgl for the surface is not drawn. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_surface_hgl",
    "id": 2785,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "surface_hgl",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the surface hgl level for the centre of the pth pit of the string, to surface_hgl. If surface_hgl is null then the hgl for the surface is not drawn. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pit_hgls",
    "id": 538,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "lhs",
        "type": "Real"
      },
      {
        "name": "rhs",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the hgl levels of the pipes of drain entering/leaving the pth pit. The hgl level of the pipe entering/leaving the left side of the pit is given as Real lhs. The hgl level of the entering/leaving right side of the pit is given as Real rhs. Note: this is setting the hgl levels for the pipes entering/leaving the pth pit, not the hgl of the pit. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_hgls",
    "id": 535,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&lhs",
        "type": "Real"
      },
      {
        "name": "&rhs",
        "type": "Real"
      }
    ],
    "description": "Page 674 Drainage String Element Chapter 5 12dPL Library Calls For the Element drain, which must be of type Drainage, get the hgl levels of the pipes of drain entering/leaving the pth pit. The hgl level of the pipe entering/leaving the left side of the pit is returned in Real lhs. The hgl level of the pipe entering/leaving the right side of the pit is returned in Real rhs. Note: this is getting the hgl levels of the pipes entering/leaving the pth pit, not the hgl of the pit. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_road_chainage",
    "id": 515,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "chainage",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the road chainage for the pth pit to chainage. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_road_chainage",
    "id": 509,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&chainage",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the road chainage for the pth pit in chainage. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_road_name",
    "id": 516,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the road name for the pth pit to name. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pit_type",
    "id": 512,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the type for the pth pit to type. If the pit type type is in the drainge.4d file, then the call also sets the values for the pit to be those given in the drainage.4d file for the pit type. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_type",
    "id": 506,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the type for the pth pit in type. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_branches",
    "id": 1443,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&branches",
        "type": "Dynamic_Element"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, this function returns a list of the branches (each branch is a Drainage string) that flow into the pth pit of drain. The list of branches is returned in the Dynamic_Element branches. Note: a branch is defined as a drainage string that flows into a non-outlet pit of another drainage string. Thus the flow direction of the drainage string is important. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_depth",
    "id": 519,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&depth",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the depth of the pth pit in depth. If drain is not an Element of type Drainage then a non zero function return code is returned. See for the def inion of pit depth. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_drop",
    "id": 518,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&drop",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the drop through the pth pit in drop. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_ns",
    "id": 521,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&ns_ht",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the height from the natural surface tin at the location of the centre of the nth pit in ns_ht. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_fs",
    "id": 522,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&fs_ht",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the height from the finished surface tin at the location of the centre of the nth pit in fs_ht. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_extended",
    "id": 3965,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "extended",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the extennded type for the pth pit to extended. The list of valid type is 0 - not extended 1 - extended in the width direction 2 - extended in the length direction If adjust_pit_con_points is not zero, recalculate the pit connection points for the pit after the extended type being set. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_extended",
    "id": 3966,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&extended",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the extennded type for the pth pit in extended. The list of valid type is 0 - not extended 1 - extended in the width direction 2 - extended in the length direction If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_base_angle",
    "id": 3967,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "angle",
        "type": "Real"
      },
      {
        "name": "adjust_pit_con_points",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the base angle for the pth pit to angle. If adjust_pit_con_points is not zero, recalculate the pit connection points for the pit after the angle being set. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pit_base_angle_mode",
    "id": 3969,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "base_angle_mode",
        "type": "Integer"
      },
      {
        "name": "adjust_pit_con_points",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the base angle mode for the pth pit to base_angle_mode. If adjust_pit_con_points is not zero, recalculate the pit connection points for the pit after the angle being set. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_base_angle_mode",
    "id": 3970,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&base_angle_mode",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the base angle mode for the pth pit in base_angle_mode. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_base_height",
    "id": 3971,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "pit_base_height",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the base height for the pth pit to pit_base_height. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_base_height",
    "id": 3972,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&pit_base_height",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the base height for the pth pit in pit_base_height. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_base_thickness_top",
    "id": 3973,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "pit_base_thickness_top",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the base thickness top for the pth pit to pit_base_thickness_top. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_base_thickness_top",
    "id": 3974,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&pit_base_thickness_top",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the base thickness top for the pth pit in pit_base_thickness_top. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_riser_thickness",
    "id": 3975,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "pit_riser_thickness",
        "type": "Real"
      },
      {
        "name": "pit_riser_thickness_back",
        "type": "Real"
      },
      {
        "name": "pit_riser_thickness_left",
        "type": "Real"
      },
      {
        "name": "pit_riser_thickness_right",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the riser thicknesses for the pth pit to pit_riser_thickness, pit_riser_thickness_back, pit_riser_thickness_left, pit_riser_thickness_right. Page 680 Drainage String Element Chapter 5 12dPL Library Calls If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_riser_thickness",
    "id": 3976,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&pit_riser_thickness",
        "type": "Real"
      },
      {
        "name": "&pit_riser_thickness_back",
        "type": "Real"
      },
      {
        "name": "&pit_riser_thickness_left",
        "type": "Real"
      },
      {
        "name": "&pit_riser_thickness_right",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the riser thicknesses for the pth pit in pit_riser_thickness, pit_riser_thickness_back, pit_riser_thickness_left, pit_riser_thickness_right. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_riser",
    "id": 3977,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "riser",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the active flag for the riser for the pth pit to riser.(1 active, 0 not active) If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_riser",
    "id": 3978,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&riser",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the active flag for the riser for the pth pit in riser.(1 active, 0 not active) If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pit_riser_extended",
    "id": 3980,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&riser_extended",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the extennded type for the riser for the pth pit in extended. The list of valid type is 0 - not extended 1 - extended in the width direction 2 - extended in the length direction If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_riser_colour",
    "id": 3981,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the colour for the riser for the pth pit to colour. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_riser_colour",
    "id": 3982,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the colour for the riser for the pth pit in colour. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned. Page 682 Drainage String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Set_drainage_pit_riser_diameter",
    "id": 3983,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "pit_riser_diameter",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the diameter for the riser for the pth pit to pit_riser_diameter. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_riser_diameter",
    "id": 3984,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&pit_riser_diameter",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the diameter for the riser for the pth pit in pit_riser_diameter. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pit_riser_width",
    "id": 3985,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "pit_riser_width",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the width for the riser for the pth pit to pit_riser_width If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_riser_width",
    "id": 3986,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&pit_riser_width",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the width for the riser for the pth pit in pit_riser_width. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned. Drainage String Element Page 683 12d Model Macro Manual"
  },
  {
    "name": "Set_drainage_pit_riser_offset_xy",
    "id": 3987,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "pit_riser_offset_x",
        "type": "Real"
      },
      {
        "name": "pit_riser_offset_y",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, set the x-y offsets for the riser for the pth pit to pit_riser_offset_x, pit_riser_offset_y If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pit_riser_offset_xy",
    "id": 3988,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&pit_riser_offset_x",
        "type": "Real"
      },
      {
        "name": "&pit_riser_offset_y",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must of type Drainage, return the x-y offsets for the riser for the pth pit in pit_riser_offset_x, pit_riser_offset_y. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_number_of_manhole_types",
    "id": 2077,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&num_types",
        "type": "Integer"
      }
    ],
    "description": "Get the number of pit (manhole, maintenance hole) types from the drainage.4d file and return the number in num_types. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_type",
    "id": 2078,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the name of the i\u2019th manhole type from the drainage.4d file and return the name in type. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_length",
    "id": 2079,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "For the manhole of type type from the drainage.4d file, return the length as given by the keyword \"mhsize\" in length (the length and width are given by the keyword \"mhsize\"). If there is no such manhole type, -1 is returned as the function return value. If the length does not exist for the manhole type type, -2 is returned as the function return value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_width",
    "id": 2080,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&width",
        "type": "Real"
      }
    ],
    "description": "For the manhole of type type from the drainage.4d file, return the width as given by the keyword \"mhsize\" in width (the length and width are given by the keyword \"mhsize\"). If there is no such manhole type, -1 is returned as the function return value. If the width does not exist for manhole type type, -2 is returned as the function return value. A function return value of zero indicates the data was successfully returned. Drainage String Element Page 685 12d Model Macro Manual"
  },
  {
    "name": "Get_drainage_manhole_description",
    "id": 2081,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&description",
        "type": "Text"
      }
    ],
    "description": "Get the description of the manhole of type type from the drainage.4d file and return the description in description. If there is no such manhole type, -1 is returned as the function return value. If the description does not exist for manhole type type, -2 is returned as the function return value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_notes",
    "id": 2082,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&notes",
        "type": "Text"
      }
    ],
    "description": "Get the notes of the manhole of type type from the drainage.4d file and return the notes in notes. If there is no such manhole type, -1 is returned as the function return value. If notes do not exist for manhole type type, -2 is returned as the function return value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_group",
    "id": 2083,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&group",
        "type": "Text"
      }
    ],
    "description": "Get the group of the manhole of type type from the drainage.4d file and return the group in group. If there is no such manhole type, -1 is returned as the function return value. If group does not exist for manhole type type, -2 is returned as the function return value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_capacities",
    "id": 2084,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&multi",
        "type": "Real"
      },
      {
        "name": "&fixed",
        "type": "Real"
      },
      {
        "name": "&percent",
        "type": "Real"
      },
      {
        "name": "&coeff",
        "type": "Real"
      },
      {
        "name": "&power",
        "type": "Real"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type return the values for the generic Inlet Page 686 Drainage String Element Chapter 5 12dPL Library Calls capacities from the file for: cap_multi // if undefined the default is 1 cap_fixed // if undefined the default is 0 cap_percent // if undefined the default is 0 cap_coeff // if undefined the default is 0 cap_power // if undefined the default is 1 A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_number_of_sag_curves",
    "id": 2085,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&n",
        "type": "Integer"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, get the number of sag capacity curves (cap_curve_sag) and return the number in n. A function return value of zero indicates the number was successfully returned."
  },
  {
    "name": "Get_drainage_sag_curve_name",
    "id": 2086,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, return the name of the sag capacity curve (cap_curve_sag) in name. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_capacities_sag",
    "id": 2087,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&multi",
        "type": "Real"
      },
      {
        "name": "&fixed",
        "type": "Real"
      },
      {
        "name": "&percent",
        "type": "Real"
      },
      {
        "name": "&coeff",
        "type": "Real"
      },
      {
        "name": "&power",
        "type": "Real"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, return the sag capacity curve (cap_curve_sag) values from the file for: cap_multi // if undefined the default is 1 cap_fixed // if undefined the default is 0 cap_percent // if undefined the default is 0 cap_coeff // if undefined the default is 0 cap_power // if undefined the default is 1 A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_number_of_sag_curve_coords",
    "id": 2088,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&n",
        "type": "Integer"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, return the number of coordinates in the sag capacity curve (cap_curve_sag) in n. Note - n may be 0. A function return value of zero indicates the number was successfully returned."
  },
  {
    "name": "Get_drainage_sag_curve_coords",
    "id": 2089,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "Depth[]",
        "type": "Real"
      },
      {
        "name": "Qin[]",
        "type": "Real"
      },
      {
        "name": "nmax",
        "type": "Integer"
      },
      {
        "name": "&num",
        "type": "Integer"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, return the coordinates for the sag capacity curve (cap_curve_sag) in Depth[] and Qin[]. nmax is the size of the arrays Depth[] and Qin[], and num returns the actual number of coordinates. A function return value of zero indicates the coordinates were successfully returned."
  },
  {
    "name": "Get_drainage_number_of_grade_curves",
    "id": 2090,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&n",
        "type": "Integer"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, get the number of grade curves (cap_curve_grade) and return the number in n. A function return value of zero indicates the number was successfully returned."
  },
  {
    "name": "Get_drainage_grade_curve_name",
    "id": 2091,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, return the name of the i\u2019th grade curve (cap_curve_grade) in name. A function return value of zero indicates the name was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_capacities_grade",
    "id": 2093,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&multi",
        "type": "Real"
      },
      {
        "name": "&fixed",
        "type": "Real"
      },
      {
        "name": "&percent",
        "type": "Real"
      },
      {
        "name": "&coeff",
        "type": "Real"
      },
      {
        "name": "&power",
        "type": "Real"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, and the capacity on grade curve called name, return the sag capacity curve (cap_curve_grade) values from the file for: cap_multi // if undefined the default is 1 cap_fixed // if undefined the default is 0 cap_percent // if undefined the default is 0 cap_coeff // if undefined the default is 0 cap_power // if undefined the default is 1 A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_number_of_grade_curve_coords",
    "id": 2094,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&n",
        "type": "Integer"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, and the capacity on grade curve called name, return the number of coordinates in the on grade capacity curve (cap_curve_grade) in n. Note - n may be 0. A function return value of zero indicates the number was successfully returned."
  },
  {
    "name": "Get_drainage_grade_curve_coords",
    "id": 2095,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "Qa[]",
        "type": "Real"
      },
      {
        "name": "Qin[]",
        "type": "Real"
      },
      {
        "name": "nmax",
        "type": "Integer"
      },
      {
        "name": "&n",
        "type": "Integer"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, and the capacity on grade curve called name, return the coordinates for the on grade capacity curve (cap_curve_grade) in Qa[] and Qin[]. nmax is the size of the arrays Qa[] and Qin[], and num returns the actual number of coordinates. A function return value of zero indicates the coordinates were successfully returned."
  },
  {
    "name": "Get_drainage_manhole_config",
    "id": 2103,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&cap_config",
        "type": "Text"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, return the value of the keyword \"cap_config\" in cap_config. The value of cap_config must be: \"g\" - for an on grade pit \"s\" - for an sag pit or \"m\" - for a manhole sealed pit. If the value of cap_config is not \"g\", \"s\" or \"m\" then a non zero function return value is returned. A function return value of zero indicates the value was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_diam",
    "id": 2104,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&diameter",
        "type": "Real"
      }
    ],
    "description": "From the drainage.4d file, for the manhole of type type, return the value of the keyword \"mhdiam\" in diameter. A function return value of zero indicates the value was successfully returned."
  },
  {
    "name": "Get_drainage_manhole_types",
    "id": 3860,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "water_type",
        "type": "Text"
      },
      {
        "name": "&types",
        "type": "Dynamic_Text"
      }
    ],
    "description": "From the drainage.4d file, for given purpose water_type, return the list of manhole types in types. A function return value of zero indicates the types was successfully returned."
  },
  {
    "name": "Get_drainage_pit_attribute_length",
    "id": 1005,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "For pit number pit of the Element drain, get the length (in bytes) of the attribute number att_no. The attribute length is returned in att_len. A function return value of zero indicates the attribute length was successfully returned. Note - the length is useful for attributes of type Text and Binary."
  },
  {
    "name": "Get_drainage_pit_attribute_length",
    "id": 1004,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "For pit number pit of the Element drain, get the length (in bytes) of the attribute with the name att_name. The attribute length is returned in att_len. A function return value of zero indicates the attribute length was successfully returned. Note - the length is useful for user attributes of type Text and Binary."
  },
  {
    "name": "Get_drainage_pit_attribute_type",
    "id": 1003,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "For pit number pit of the Element drain, get the type of the attribute with attribute number att_no. The attribute type is returned in att_type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_drainage_pit_attribute_type",
    "id": 1002,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "For pit number pit of the Element drain, get the type of the attribute with name att_name. The attribute type is returned in att_type. Page 692 Drainage String Element Chapter 5 12dPL Library Calls A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_drainage_pit_attribute_name",
    "id": 1001,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "For pit number pit of the Element drain, get the name of the attribute number att_no. The attribute name is returned in name. A function return value of zero indicates the attribute name was successfully returned."
  },
  {
    "name": "Get_drainage_pit_attribute",
    "id": 1000,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&real",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, get the attribute with number att_no for the pit number pit and return the attribute value in real. The attribute must be of type Real. If the Element is not of type Drainage or the attribute is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_drainage_pit_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_drainage_pit_attribute",
    "id": 997,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&real",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, get the attribute called att_name for the pit number pit and return the attribute value in real. The attribute must be of type Real. If the Element is not of type Drainage or the attribute is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_drainage_pit_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_drainage_pit_number_of_attributes",
    "id": 994,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&no_atts",
        "type": "Integer"
      }
    ],
    "description": "Get the total number of attributes for pit number pit of the Element drain. The total number of attributes is returned in Integer no_atts. A function return value of zero indicates the number of attributes was successfully returned."
  },
  {
    "name": "Get_drainage_pit_attribute",
    "id": 995,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&txt",
        "type": "Text"
      }
    ],
    "description": "For the Element drain, get the attribute called att_name for the pit number pit and return the attribute value in txt. The attribute must be of type Text. If the Element is not of type Drainage or the attribute is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Page 694 Drainage String Element Chapter 5 12dPL Library Calls Note - the Get_drainage_pit_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_drainage_pit_attributes",
    "id": 2022,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain, return the Attributes for the pit number pit as att. If the Element is not of type Drainage or the pit number pit has no attribute then a non-zero return value is returned. A function return value of zero indicates the attribute is successfully returned."
  },
  {
    "name": "Set_drainage_pit_attributes",
    "id": 2023,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain, set the Attributes for the pit number pit to att. If the Element is not of type Drainage then a non-zero return value is returned. A function return value of zero indicates the attribute is successfully set."
  },
  {
    "name": "Get_drainage_pit_attribute",
    "id": 2024,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element drain, get the attribute called att_name for the pit number pit and return the Drainage String Element Page 695 12d Model Macro Manual attribute value in uid. The attribute must be of type Uid. If the Element is not of type Drainage or the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_drainage_pit_attribute",
    "id": 2025,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain, get the attribute called att_name for the pit number pit and return the attribute value in att. The attribute must be of type Attributes. If the Element is not of type Drainage or the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_drainage_pit_attribute",
    "id": 2026,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element drain, get the attribute with number att_no for the pit number pit and return the attribute value in uid. The attribute must be of type Uid. If the Element is not of type Drainage or the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_drainage_pit_attribute",
    "id": 2027,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain, get the attribute with number att_no for the pit number pit and return the attribute value in att. The attribute must be of type Attributes. If the Element is not of type Drainage or the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number Page 696 Drainage String Element Chapter 5 12dPL Library Calls att_no."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 2028,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element drain and on the pit number pit, if the attribute called att_name does not exist then create it as type Uid and give it the value uid. if the attribute called att_name does exist and it is type Uid, then set its value to uid. If the attribute exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 2029,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain and on the pit number pit, if the attribute called att_name does not exist then create it as type Attributes and give it the value att. if the attribute called att_name does exist and it is type Attributes, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 2030,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element drain and on the pit number pit, if the attribute number att_no exists and it is of type Uid, then its value is set to uid. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 2031,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain and on the pit number pit, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 1011,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "real",
        "type": "Real"
      }
    ],
    "description": "For the Element drain and on the pit number pit, if the attribute with number att_no does not exist then create it as type Real and give it the value real. if the attribute with number att_no does exist and it is type Real, then set its value to real. If the attribute exists and is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_drainage_pit_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 1010,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "int",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain and on the pit number pit, if the attribute with number att_no does not exist then create it as type Integer and give it the value int. if the attribute with number att_no does exist and it is type Integer, then set its value to int. If the attribute exists and is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_drainage_pit_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 1009,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "txt",
        "type": "Text"
      }
    ],
    "description": "For the Element drain and on the pit number pit, if the attribute with number att_no does not exist then create it as type Text and give it the value txt. if the attribute with number att_no does exist and it is type Text then set its value to txt. If the attribute exists and is not of type Text then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_drainage_pit_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 1008,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "real",
        "type": "Real"
      }
    ],
    "description": "For the Element drain and on the pit number pit, if the attribute called att_name does not exist then create it as type Real and give it the value real. if the attribute called att_name does exist and it is type Real, then set its value to real. If the attribute exists and is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_drainage_pit_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_drainage_pit_attribute",
    "id": 1007,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "int",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain and on the pit number pit if the attribute called att_name does not exist then create it as type Integer and give it the value int. if the attribute called att_name does exist and it is type Integer, then set its value to int. If the attribute exists and is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_drainage_pit_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_drainage_pipe_inverts",
    "id": 536,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "lhs",
        "type": "Real"
      },
      {
        "name": "rhs",
        "type": "Real"
      }
    ],
    "description": "Set the pipe invert levels for the pth pipe of the string Element drain. The invert level of the left hand end of the pipe is given as Real lhs. The invert level of the right hand end of the pipe is given as Real rhs. See Drainage Pipe Definitions. Note: pipe invert levels can also be set using the call Set_drainage_pit_inverts(Element drain,Integer p,Real lhs,Real rhs). If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pipe_inverts",
    "id": 533,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&lhs",
        "type": "Real"
      },
      {
        "name": "&rhs",
        "type": "Real"
      }
    ],
    "description": "Get the pipe invert levels for the pth pipe of the string Element drain. The invert level of the pipe of the left hand end of the pipe is returned in Real lhs. The invert level of the right hand end of the pipe is returned in Real rhs. See Drainage Pipe Definitions. Note: pipe invert levels can also be returned using the call Get_drainage_pit_inverts(Element drain,Integer p,Real &lhs,Real &rhs). If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pipe_number_of_pipes",
    "id": 2852,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "n",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and for the pipe number pipe, set the number of pipes to be n. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the number was successfully set."
  },
  {
    "name": "Set_drainage_pipe_colour",
    "id": 2783,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Set the colour of the pth pipe of the Element drain to colour number colour. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pipe_colour",
    "id": 2782,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour number of the pth pipe of the Element drain and return the colour number in colour. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pipe_name",
    "id": 502,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Set the pipe name for the pth pipe of the string Element drain. The pipe name is given as Text name. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pipe_name",
    "id": 497,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Page 706 Drainage String Element Chapter 5 12dPL Library Calls Get the pipe name for the pth pipe of the string Element drain. The pipe name is returned in Text name. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pipe_type",
    "id": 501,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "Set the pipe type for the pth pipe of the string Element drain. The pipe type is given as Text type. If the pipe type type is in the drainge.4d file, then the call also sets the values for the pipe to be those given in the drainage.4d file for the pipe type. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pipe_type",
    "id": 496,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the pipe type for the pth pipe of the string Element drain. The pipe type is returned in Text type. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pipe_cover",
    "id": 1442,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "cover",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, set the minimum cover for pipe number pipe, to cover. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pipe_diameter",
    "id": 500,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "diameter",
        "type": "Real"
      }
    ],
    "description": "Set the pipe diameter for the pth pipe of the string Element drain. The pipe diameter is given as Real diameter. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pipe_width",
    "id": 2857,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "&width",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pipe number pipe, set the width of the pipe to the value width. If a width is not to be used then set a null value for width. See Drainage Pipe Cross Sections. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the width was successfully set."
  },
  {
    "name": "Set_drainage_pipe_top_width",
    "id": 2858,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "&top_width",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pipe number pipe, set the top width of the pipe to the value top_width. If a top width is not to be used then set a null value for top_width. See Drainage Pipe Cross Sections. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the top width was successfully set. Page 708 Drainage String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_drainage_pipe_diameter",
    "id": 495,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&diameter",
        "type": "Real"
      }
    ],
    "description": "Get the pipe diameter for the pth pipe of the string Element drain. The pipe diameter is returned in Real diameter. See Drainage Pipe Cross Sections. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_width",
    "id": 2855,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "&width",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pipe number pipe, get the width of the pipe and return it in width. If a width is not to be used then a null value is returned for width. If drain is not an Element of type Drainage then a non zero function return code is returned. See Drainage Pipe Cross Sections. A function return value of zero indicates the width was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_top_width",
    "id": 2856,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "&top_width",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pipe number pipe, get the top width of the pipe and return it in top_width. If a top width is not to be used then a null value is returned for top_width. See Drainage Pipe Cross Sections. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the top width was successfully returned."
  },
  {
    "name": "Set_drainage_pipe_thickness",
    "id": 2868,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pit",
        "type": "Integer"
      },
      {
        "name": "top",
        "type": "Real"
      },
      {
        "name": "bottom",
        "type": "Real"
      },
      {
        "name": "left",
        "type": "Real"
      },
      {
        "name": "right",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and pipe number pipe, return the pipe thicknesses in top, bottom, left and right where top is the thickness for a round pipe, and the top thickness for a non round pipe. bottom is the thickness of the bottom of the pipe for a non round pipe. left is the thickness of the left of the pipe for a non round pipe. right is the thickness of the right of the pipe for a non round pipe. See Drainage Pipe Cross Sections. CAUTION: The Set_drainage_pipe_type() and Set_drainage_pipe_diameter() call will set the pipe thicknesses to the drainage.4d values. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the thicknesses were successfully returned."
  },
  {
    "name": "Get_drainage_pipe_intersects_pit",
    "id": 2851,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "offset",
        "type": "Real"
      },
      {
        "name": "&lx",
        "type": "Real"
      },
      {
        "name": "&ly",
        "type": "Real"
      },
      {
        "name": "&lch",
        "type": "Real"
      },
      {
        "name": "&rx",
        "type": "Real"
      },
      {
        "name": "&ry",
        "type": "Real"
      },
      {
        "name": "&rch",
        "type": "Real"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, and for pipe number pipe, get the (x,y) coordinates and chainage of the intersection of the pipe offset (in the (x,y) pane) by the distance offset, with the pits at either end of the offset pipe. If offset is positive then the pipe is offset to the right of the original pipe, and to the left when the offset is negative. Left and right are defined with respect to the direction of the pipe. The coordinates of the intersection of the pipe with the left hand pit are returned as (lx,ly) and the Page 710 Drainage String Element Chapter 5 12dPL Library Calls chainage of the intersection point as lch. The coordinates of the intersection of the pipe with the right hand pit are returned as (rx,ry) and the chainage of the intersection point as rch. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the values were successfully returned."
  },
  {
    "name": "Get_drainage_pipe_shape",
    "id": 2854,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&super_inside",
        "type": "Dynamic_Element"
      },
      {
        "name": "&super_outside",
        "type": "Dynamic_Element"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return as super strings, the shape of the insides of the pipes in the Dynamic_Element super_inside and the shape of the outsides of the pipes in the Dynamic_Element super_outside. The number of pipes, separation and thickness settings are used in generating all the shapes. So this function returns a list of the super strings that \u201cdraw\u201d the plan view of the inside and outside of the pipes. For a circular pipe with wall thickness, the super_inside string is a super string with a plan box shape with a width of the diameter of the pipe and a length equal to the length of the pipe. And super_outside has a width equal to (diameter + 2*thickness). For a rectangular pipe with a wall thicknesses, the super_inside is a super string with a plan box shape with a width of the diameter of the pipe and a length equal to the length of the pipe. And super_outside has a width equal to (diameter + left_thickness + right_thickness) mode controls the z values assigned to the super strings. If mode = 0, the shapes are given the z-value of the invert levels of the pipes. If mode = 1, the shapes are given the z-value of the centre levels of the pipes. If mode = 2, the shapes are given the z-value of the obvert levels of the pipes. A function return value of 2 indicates the super strings could not be created. A function return value of zero indicates the shapes were successfully returned."
  },
  {
    "name": "Get_drainage_pipe_shape",
    "id": 2850,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "offset",
        "type": "Real"
      },
      {
        "name": "&super_inside",
        "type": "Element"
      },
      {
        "name": "&super_outside",
        "type": "Element"
      }
    ],
    "description": "For the Element drain, which must be of type Drainage, return the shape of the inside of pipe number pipe as the super string super_inside and the shape of the outside of the pipe as super_outside, and the shapes are offset in the (x,y) plane from the pipe by the distance offset. If offset is positive then the shapes are offset to the right of the pipe and to the left when the offset is negative. Left and right is defined with respect to the direction of the pipe. So this function returns a list of the super strings that \u201cdraw\u201d the plan view of the inside and outside Drainage String Element Page 711 12d Model Macro Manual of the pipe offset by the given value offset. For for a circular pipe with a wall thickness, the super_inside is a super string with a plan box shape with a width of the diameter of the pipe and a length equal to the length of the pipe. And super_outside has a width equal to (diameter + 2*thickness). For a rectangular pipe with a wall thicknesses, the super_inside is a super string with a plan box shape with a width of the diameter of the pipe and a length equal to the length of the pipe. And super_outside has a width equal to (diameter + left_thickness + right_thickness) If mode = 0, the shapes are given the z-value of the invert levels of the pipe. If mode = 1, the shapes are given the z-value of the centre levels of the pipe. If mode = 2, the shapes are given the z-value of the obvert levels of the pipe. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the shapes were successfully returned. Note: the number of pipes and separation are not used for generating the shapes and offset is use instead. For generating shapes using number of pipes and separation, see Get_drainage_pipe_shape(Element element,Integer pipe,Integer mode,Dynamic_Element &super_inside,Dynamic_Element &super_outside)"
  },
  {
    "name": "Set_drainage_pipe_hgls",
    "id": 537,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "lhs",
        "type": "Real"
      },
      {
        "name": "rhs",
        "type": "Real"
      }
    ],
    "description": "Set the pipe hgl levels for the pth pipe of the string Element drain. The hgl level of the left hand side of the pipe is set to lhs. The hgl level of the right hand side of the pipe is set to rhs. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_pipe_hgls",
    "id": 534,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&lhs",
        "type": "Real"
      },
      {
        "name": "&rhs",
        "type": "Real"
      }
    ],
    "description": "Get the pipe HGL levels for the pth pipe of the string Element drain. The hgl level of the left hand side of the pipe is returned in lhs. The hgl level of the right hand side of the pipe is returned in rhs. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_velocity",
    "id": 494,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&velocity",
        "type": "Real"
      }
    ],
    "description": "Get the flow velocity for the pth pipe of the string Element drain. The velocity is returned in Real velocity. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pipe_flow",
    "id": 498,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "flow",
        "type": "Real"
      }
    ],
    "description": "Get the pipe flow volume for the pth pipe of the string Element drain. The velocity of the pipe is returned in Real flow. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pipe_nominal_diameter",
    "id": 2890,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "nominal_diameter",
        "type": "Real"
      }
    ],
    "description": "Set the pipe nominal diameter of the drainage string Element drainage at pipe index pipe to Real nominal_diameter. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_drainage_pipe_flow",
    "id": 493,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&flow",
        "type": "Real"
      }
    ],
    "description": "Get the flow volume for the pth pipe of the string Element drain. The volume is returned in Real velocity. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_length",
    "id": 503,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the pipe length for the pth pipe of the string Element drain. The length of the pipe is returned in Real length. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_grade",
    "id": 504,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "&grade",
        "type": "Real"
      }
    ],
    "description": "Get the pipe grade for the pth pipe of the string Element drain. The grade of the pipe is returned in Real grade. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_fs",
    "id": 524,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "p",
        "type": "Integer"
      },
      {
        "name": "ch[]",
        "type": "Real"
      },
      {
        "name": "ht[]",
        "type": "Real"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&npts",
        "type": "Integer"
      }
    ],
    "description": "For the drainage string drain, get the heights along the pth pipe from the finished surface tin. Because the pipe is long then there will be more than one height and the heights are returned in chainage order along the pipe. The heights are returned in the arrays ch (for chainage) and ht. The maximum number of finished surface points that can be returned is given by max_pts (usually the size of the arrays). The actual number of points of finished surface is returned in npts. If drain is not an Element of type Drainage then a non zero function return code is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_nominal_diameter",
    "id": 2891,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "&nominal_diameter",
        "type": "Real"
      }
    ],
    "description": "Get the pipe nominal diameter nominal_diameter of the drainage string Element drainage at pipe index pipe. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_drainage_pipe_separation",
    "id": 2893,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drainage",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "&separation",
        "type": "Real"
      }
    ],
    "description": "Drainage String Element Page 715 12d Model Macro Manual Get the pipe separation separation of the drainage string Element drainage at pipe index pipe. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_drainage_number_of_pipe_types",
    "id": 2271,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&n",
        "type": "Integer"
      }
    ],
    "description": "Get the number of pipe types (classes) from the drainage.4d file and return the number in n. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_type",
    "id": 2272,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the name of the i\u2019th pipe type (class) from the drainage.4d file and return the name in type. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_roughness",
    "id": 2273,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&roughness",
        "type": "Real"
      },
      {
        "name": "&roughness_type",
        "type": "Integer"
      }
    ],
    "description": "For the pipe type type, return from the drainage.4d file, the roughness in roughness and roughness type in roughness_type. Roughness type is MANNING (0) or COLEBROOK (1). If pipe type type does not exist, then a non-zero return value is returned. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_types",
    "id": 3861,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "water_type",
        "type": "Text"
      },
      {
        "name": "&types",
        "type": "Dynamic_Text"
      }
    ],
    "description": "From the drainage.4d file, for given purpose water_type, return the list of pipe types in types. A function return value of zero indicates the types was successfully returned."
  },
  {
    "name": "Set_drainage_pipe_attributes",
    "id": 2033,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain, set the Attributes for the pipe number pipe to att. If the Element is not of type Drainage then a non-zero return value is returned. A function return value of zero indicates the attribute is successfully set."
  },
  {
    "name": "Get_drainage_pipe_attributes",
    "id": 2032,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain, return the Attributes for the pipe number pipe as att. If the Element is not of type Drainage or the pipe number pipe has no attribute then a non-zero return value is returned. A function return value of zero indicates the attribute is successfully returned."
  },
  {
    "name": "Get_drainage_pipe_attribute",
    "id": 2034,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element drain, get the attribute called att_name for the pipe number pipe and return the attribute value in uid. The attribute must be of type Uid. If the Element is not of type Drainage or the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_drainage_pipe_attribute",
    "id": 2035,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes\uf020"
      }
    ],
    "description": "For the Element drain, get the attribute called att_name for the pipe number pipe and return the attribute value in att. The attribute must be of type Attributes. If the Element is not of type Drainage or the attribute is not of type Attributes then a non-zero Page 718 Drainage String Element Chapter 5 12dPL Library Calls return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_drainage_pipe_attribute",
    "id": 2036,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element drain get the attribute with number att_no for the pipe number pipe and return the attribute value in uid. The attribute must be of type Uid. If the Element is not of type Drainage or the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_drainage_pipe_attribute",
    "id": 2037,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain, get the attribute with number att_no for the pipe number pipe and return the attribute value in att. The attribute must be of type Attributes. If the Element is not of type Drainage or the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Set_drainage_pipe_attribute",
    "id": 2038,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element drain and on the pipe number pipe,\uf020 if the attribute called att_name does not exist then create it as type Uid and give it the value uid.\uf020 if the attribute called att_name does exist and it is type Uid, then set its value to uid. If the attribute exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name. Drainage String Element Page 719 12d Model Macro Manual"
  },
  {
    "name": "Set_drainage_pipe_attribute",
    "id": 2039,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain and on the pipe number pipe,\uf020 if the attribute called att_name does not exist then create it as type Attributes and give it the value att.\uf020 if the attribute called att_name does exist and it is type Attributes, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_drainage_pipe_attribute",
    "id": 2040,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the Element drain and on the pipe number pipe, if the attribute number att_no exists and it is of type Uid, then its value is set to uid. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_drainage_pipe_attribute",
    "id": 2041,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the Element drain and on the pipe number pipe, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no. Page 720 Drainage String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_drainage_pipe_number_of_attributes",
    "id": 1019,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "&no_atts",
        "type": "Integer"
      }
    ],
    "description": "Get the total number of attributes for pipe number pipe of the Element drain. The total number of attributes is returned in Integer no_atts. A function return value of zero indicates the number of attributes was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_attribute_name",
    "id": 1026,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "For pipe number pipe of the Element drain, get the name of the attribute number att_no. The attribute name is returned in name. A function return value of zero indicates the attribute name was successfully returned."
  },
  {
    "name": "Get_drainage_pipe_attribute_type",
    "id": 1027,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "For pipe number pipe of the Element drain, get the type of the attribute with name att_name. The attribute type is returned in att_type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Set_drainage_pipe_attribute",
    "id": 1033,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "real",
        "type": "Real"
      }
    ],
    "description": "For the Element drain and on the pipe number pipe,\uf020 if the attribute called att_name does not exist then create it as type Real and give it the value real.\uf020 if the attribute called att_name does exist and it is type Real, then set its value to real. Page 726 Drainage String Element Chapter 5 12dPL Library Calls If the attribute exists and is not of type Real then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_drainage_pipe_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_drainage_pipe_attribute",
    "id": 1035,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "int",
        "type": "Integer"
      }
    ],
    "description": "For the Element drain and on the pipe number pipe,\uf020 if the attribute with number att_no does not exist then create it as type Integer and give it the value int.\uf020 if the attribute with number att_no does exist and it is type Integer, then set its value to int. If the attribute exists and is not of type Integer then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_drainage_pipe_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Set_drainage_pipe_attribute",
    "id": 1036,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "pipe",
        "type": "Integer"
      },
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "real",
        "type": "Real"
      }
    ],
    "description": "For the Element drain and on the pipe number pipe,\uf020 if the attribute with number att_no does not exist then create it as type Real and give it the value real.\uf020 if the attribute with number att_no does exist and it is type Real, then set its value to real. If the attribute exists and is not of type Real then a non-zero return value is returned. Drainage String Element Page 727 12d Model Macro Manual A function return value of zero indicates the attribute value is successfully set. Note - the Get_drainage_pipe_attribute_type call can be used to get the type of the attribute number att_no."
  },
  {
    "name": "Get_drainage_hcs",
    "id": 590,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "&no_hcs",
        "type": "Integer"
      }
    ],
    "description": "Get the number of house connections for the string Element drain. The number of house connection is returned in Integer no_hcs. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_hc",
    "id": 591,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the x,y & z for the hth house connection of the string Element drain. The x coordinate of the house connection is returned in Real x. The y coordinate of the house connection is returned in Real y. The z coordinate of the house connection is returned in Real z. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_adopted_level",
    "id": 1302,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "level",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the adopted level for the h\u2019th house connection to level. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_adopted_level",
    "id": 598,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&level",
        "type": "Real"
      }
    ],
    "description": "Get the adopted level for the h\u2019th house connection of the string Element drain. The adopted level of the house connection is returned in Real level. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_bush",
    "id": 1310,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "bush",
        "type": "Text"
      }
    ],
    "description": "For the drainage string drain, set the bush type for the h\u2019th house connection to bush. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_bush",
    "id": 606,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&bush",
        "type": "Text"
      }
    ],
    "description": "Get the bush type for the h\u2019th house connection of the string Element drain. The bush type of the house connection is returned in Text bush. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_colour",
    "id": 1307,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the drainage string drain, set the colour number for the h\u2019th house connection to colour. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_colour",
    "id": 603,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour for the h\u2019th house connection of the string Element drain. The colour of the house connection is returned in Integer colour. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_depth",
    "id": 1305,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "depth",
        "type": "Real"
      }
    ],
    "description": "Page 730 Drainage String Element Chapter 5 12dPL Library Calls For the drainage string drain, set the depth for the h\u2019th house connection to depth. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_depth",
    "id": 601,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&depth",
        "type": "Real"
      }
    ],
    "description": "Get the depth for the h\u2019th house connection of the string Element drain. The depth of the house connection is returned in Real depth. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_diameter",
    "id": 1306,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "diameter",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the diameter for the h\u2019th house connection to diameter. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_diameter",
    "id": 602,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&diameter",
        "type": "Real"
      }
    ],
    "description": "Get the diameter for the h\u2019th house connection of the string Element drain. The diameter of the house connection is returned in Real diameter. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_grade",
    "id": 1304,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "grade",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the grade for the h\u2019th house connection to grade. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_hc_hcb",
    "id": 1300,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "hcb",
        "type": "Integer"
      }
    ],
    "description": "For the drainage string drain, set the hcb for the h\u2019th house connection to hcb. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_hcb",
    "id": 596,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&hcb",
        "type": "Integer"
      }
    ],
    "description": "Get the hcb for the h\u2019th house connection of the string Element drain. The hcb of the house connection is returned in Integer hcb. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_length",
    "id": 1303,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "length",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the length for the h\u2019th house connection to length. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_length",
    "id": 599,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the length for the h\u2019th house connection of the string Element drain. The length of the house connection is returned in Real length. Page 732 Drainage String Element Chapter 5 12dPL Library Calls A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_level",
    "id": 1301,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "level",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the level for the h\u2019th house connection to level. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_level",
    "id": 597,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&level",
        "type": "Real"
      }
    ],
    "description": "Get the level for the h\u2019th house connection of the string Element drain. The level of the house connection is returned in Real level. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_material",
    "id": 1309,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "material",
        "type": "Text"
      }
    ],
    "description": "For the drainage string drain, set the material for the h\u2019th house connection to material. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_material",
    "id": 605,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&material",
        "type": "Text"
      }
    ],
    "description": "Get the material for the h\u2019th house connection of the string Element drain. The material of the house connection is returned in Text material. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_hc_name",
    "id": 595,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the name for the h\u2019th house connection of the string Element drain. The name of the house connection is returned in Text name. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_side",
    "id": 1298,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "side",
        "type": "Integer"
      }
    ],
    "description": "For the drainage string drain, set the side for the h\u2019th house connection by the value of side. when side = -1, the house connection is on the left side of the string. when side = 1, the house connection is on the right side of the string. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_side",
    "id": 594,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&side",
        "type": "Integer"
      }
    ],
    "description": "Get the side for the h\u2019th house connection of the string Element drain. The side of the house connection is returned in Integer side. If side = -1, the house connection is on the left side of the string. If side = 1, the house connection is on the right side of the string. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_hc_type",
    "id": 1308,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "hc",
        "type": "Integer"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "Page 734 Drainage String Element Chapter 5 12dPL Library Calls For the drainage string drain, set the hc type for the h\u2019th house connection to type. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_drainage_hc_type",
    "id": 604,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the type for the h\u2019th house connection of the string Element drain. The type of the house connection is returned in Text type. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_hc_chainage",
    "id": 592,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&chainage",
        "type": "Real"
      }
    ],
    "description": "Get the chainage for the h\u2019th house connection of the string Element drain. The chainage of the house connection is returned in Real chainage. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_hc_ip",
    "id": 593,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drain",
        "type": "Element"
      },
      {
        "name": "h",
        "type": "Integer"
      },
      {
        "name": "&ip",
        "type": "Integer"
      }
    ],
    "description": "Get the intersect point for the h\u2019th house connection of the string Element drain. The intersection point of the house connection is returned in Integer ip. ip is zero based (i.e. the first ip = 0) A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_xyz",
    "id": 7677,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the x,y & z for the pc-th property control of the string Element drain. The x coordinate of the property control is returned in Real x. The y coordinate of the property control is returned in Real y. The z coordinate of the property control is returned in Real z. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_chainage",
    "id": 7678,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&chainage",
        "type": "Real"
      }
    ],
    "description": "Get the chainage for the pc-th property control of the string Element drain. The chainage of the property control is returned in Real chainage. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_ip",
    "id": 7679,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&ip",
        "type": "Integer"
      }
    ],
    "description": "Get the intersect point for the pc-th property control of the string Element drain. The intersection point of the property control is returned in Integer ip. ip is zero based (i.e. the first ip = 0) A function return value of zero indicates the data was successfully returned. Page 736 Drainage String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Get_drainage_pc_ratio",
    "id": 7680,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&ratio",
        "type": "Real"
      }
    ],
    "description": "Get the ratio for the pc-th property control of the string Element drain. The ratio of the property control is returned in Real ratio. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_name",
    "id": 7681,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the name for the pc-th property control of the string Element drain. The name of the property control is returned in Text name. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_colour",
    "id": 7682,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour for the pc-th property control of the string Element drain. The colour of the property control is returned in Integer colour. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_grade",
    "id": 7683,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&grade",
        "type": "Real"
      }
    ],
    "description": "Get the grade for the pc-th property control of the string Element drain. The grade of the property control is returned in Real grade. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_start_level",
    "id": 7685,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&start_level",
        "type": "Real"
      }
    ],
    "description": "Get the start_level for the pc-th property control of the string Element drain. The start_level of the property control is returned in Real start_level. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_diameter",
    "id": 7686,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&diameter",
        "type": "Real"
      }
    ],
    "description": "Get the diameter for the pc-th property control of the string Element drain. The diameter of the property control is returned in Real diameter. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_drainage_pc_boundary",
    "id": 7687,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "&boundary",
        "type": "Real"
      }
    ],
    "description": "Get the boundary for the pc-th property control of the string Element drain. The boundary of the property control is returned in Real boundary. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_drainage_pc_name",
    "id": 7688,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "For the drainage string drain, set the name for the pc\u2019th property control to Text name. Page 738 Drainage String Element Chapter 5 12dPL Library Calls A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pc_colour",
    "id": 7689,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the drainage string drain, set the colour for the pc\u2019th property control to Integer colour. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pc_grade",
    "id": 7690,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "grade",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the grade for the pc\u2019th property control to Real grade. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pc_cover",
    "id": 7691,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "cover",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the cover for the pc\u2019th property control to Real cover. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pc_start_level",
    "id": 7692,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "start_level",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the start level for the pc\u2019th property control to Real start_level. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pc_diameter",
    "id": 7693,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "diameter",
        "type": "Real"
      }
    ],
    "description": "Drainage String Element Page 739 12d Model Macro Manual For the drainage string drain, set the diameter for the pc\u2019th property control to Real diameter. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_drainage_pc_boundary",
    "id": 7694,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "pc",
        "type": "Integer"
      },
      {
        "name": "boundary",
        "type": "Real"
      }
    ],
    "description": "For the drainage string drain, set the boundary for the pc\u2019th property control to Real boundary. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_feature",
    "id": 872,
    "returnType": "Element",
    "parameters": [],
    "description": "Create an Element of type Feature The function return value gives the actual Element created. If the feature string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_feature",
    "id": 873,
    "returnType": "Element",
    "parameters": [
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type Feature and set the colour, name, style etc. of the new string to be the same as those from the Element Seed. The function return value gives the actual Element created. If the Feature string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_feature",
    "id": 874,
    "returnType": "Element",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "Create an Element of type Feature with name name, colour colour, centre (xc,yc), radius rad and z value (height) zc. The function return value gives the actual Element created. If the Feature string could not be created, then the returned Element will be null."
  },
  {
    "name": "Get_feature_centre",
    "id": 876,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xc",
        "type": "Real"
      },
      {
        "name": "&yc",
        "type": "Real"
      },
      {
        "name": "&zc",
        "type": "Real"
      }
    ],
    "description": "Get the centre point for Feature string given by Element elt. Feature String Element Page 741 12d Model Macro Manual The centre of the Feature is (xc,yc,zc). A function return value of zero indicates the centre was successfully returned."
  },
  {
    "name": "Set_feature_centre",
    "id": 875,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xc",
        "type": "Real"
      },
      {
        "name": "yc",
        "type": "Real"
      },
      {
        "name": "zc",
        "type": "Real"
      }
    ],
    "description": "Set the centre point of the Feature string given by Element elt to (xc,yc,zc). A function return value of zero indicates the centre was successfully modified."
  },
  {
    "name": "Get_feature_radius",
    "id": 878,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&rad",
        "type": "Real"
      }
    ],
    "description": "Get the radius for Feature string given by Element elt and return it in rad. A function return value of zero indicates the radius was successfully returned."
  },
  {
    "name": "Set_feature_radius",
    "id": 877,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "Set the radius of the Feature string given by Element elt to rad. The new radius must be non-zero. A function return value of zero indicates the radius was successfully modified."
  },
  {
    "name": "Create_interface",
    "id": 181,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "f[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type Interface. The Element has num_pts points with (x,y,z,flag) values given in the Real arrays x[], y[], z[] and Integer array f[]. The function return value gives the actual Element created. If the Interface string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_interface",
    "id": 451,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type Interface with room for num_pts (x,y,z,flag) points. The actual x, y, z and flag values of the Interface string are set after the string is created. If the Interface string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_interface",
    "id": 668,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type Interface with room for num_pts (x,y,z,flag) points, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. The actual x, y, z and flag values of the Interface string are set after the string is created. If the Interface string could not be created, then the returned Element will be null. Interface String Element Page 743 12d Model Macro Manual"
  },
  {
    "name": "Get_interface_data",
    "id": 182,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "f[]",
        "type": "Integer"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z,flag) data for the first max_pts points of the Interface Element elt. The (x,y,z,flag) values at each string point are returned in the Real arrays x[], y[], z[] and Integer array f[]. The maximum number of points that can be returned is given by max_pts (usually the size of the arrays). The point data returned starts at the first point and goes up to the minimum of max_pts and the number of points in the string. The actual number of points returned is given by Integer num_pts num_pts <= max_pts If the Element elt is not of type Interface, then num_pts is returned as zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_interface_data",
    "id": 183,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "f[]",
        "type": "Integer"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For a Interface Element elt, get the (x,y,z,flag) data for max_pts points starting at the point number start_pt. This routine allows the user to return the data from a Interface string in user specified chunks. This is necessary if the number of points in the string is greater than the size of the arrays available to contain the information. As in the previous function, the maximum number of points that can be returned is given by max_pts (usually the size of the arrays). However, for this function, the point data returned starts at point number start_pt rather than point one. The (x,y,z,text) values at each string point are returned in the Real arrays x[], y[], z[] and Integer array f[]. The actual number of points returned is given by Integer num_pts num_pts <= max_pts If the Element elt is not of type Interface, then num_pts is returned as zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned. Note Page 744 Interface String Element Chapter 5 12dPL Library Calls A start_pt of one gives the same result as for the previous function."
  },
  {
    "name": "Get_interface_data",
    "id": 184,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&f",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z,flag) data for the ith point of the string. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. The flag value is returned in Integer f. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_interface_data",
    "id": 185,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "f[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,flag) data for the first num_pts points of the Interface Element elt. This function allows the user to modify a large number of points of the string in one call. The maximum number of points that can be set is given by the number of points in the string. The (x,y,z,flag) values at each string point are given in the Real arrays x[], y[], z[] and Integer array f[]. The number of points to be set is given by Integer num_pts If the Element elt is not of type Interface, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Note This function can not create new Interface Elements but only modify existing Interface Elements."
  },
  {
    "name": "Set_interface_data",
    "id": 186,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "f[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For the Interface Element elt, set the (x,y,z,flag) data for num_pts points starting at point number start_pt. This function allows the user to modify a large number of points of the string in one call starting at point number start_pt Interface String Element Page 745 12d Model Macro Manual rather than point one. The maximum number of points that can be set is given by the difference between the number of points in the string and the value of start_pt. The (x,y,z,flag) values for the string points are given in the Real arrays x[], y[], z[] and Integer array f[]. The number of the first string point to be modified is start_pt. The total number of points to be set is given by Integer num_pts If the Element elt is not of type Interface, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Notes (a) A start_pt of one gives the same result as the previous function. (b) This function can not create new Interface Elements but only modify existing Interface Elements."
  },
  {
    "name": "Set_interface_data",
    "id": 187,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "flag",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,flag) data for the ith point of the string. The x value is given in Real x. The y value is given in Real y. The z value is given in Real z. The flag value is given in Integer flag. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_grid_string",
    "id": 2908,
    "returnType": "Element",
    "parameters": [],
    "description": "Return an Element of type grid string. Use calls Set_grid_geometry and Set_grid_range to setup the data of the grid string."
  },
  {
    "name": "Create_grid_tin",
    "id": 2909,
    "returnType": "Tin",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Create a grid Tin with the given name. The function return value gives the actual Tin created. Use calls Set_grid_geometry and Set_grid_range to setup the data of the grid string."
  },
  {
    "name": "Can_edit_grid_data",
    "id": 2910,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&result",
        "type": "Integer"
      }
    ],
    "description": "Set the Integer value result to 1 if the grid data of Element elt can be edited, 0 otherwise. A return value of 1 indicates the Element elt does not have valid grid data. A return value of 0 indicates the Element elt has valid grid data."
  },
  {
    "name": "Set_grid_geometry",
    "id": 2911,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "origin_x",
        "type": "Real"
      },
      {
        "name": "origin_y",
        "type": "Real"
      },
      {
        "name": "spacing_x",
        "type": "Real"
      },
      {
        "name": "spacing_y",
        "type": "Real"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "Set the geometry the grid data of the Element elt with the origin point (origin_x,origin_y), spacing space_x, space_y in the x, y direction and with angle angle. A return value of 10 indicates the Element elt does not have valid unlocked grid data. A return value of 0 indicates the grid data was set successfully."
  },
  {
    "name": "Get_grid_geometry",
    "id": 2912,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&origin_x",
        "type": "Real"
      },
      {
        "name": "&origin_y",
        "type": "Real"
      },
      {
        "name": "&spacing_x",
        "type": "Real"
      },
      {
        "name": "&spacing_y",
        "type": "Real"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "Get the geometry the grid data of the Element elt to the origin point (origin_x,origin_y), spacing space_x, space_y in the x, y direction and with angle angle. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 0 indicates the grid data was set successfully."
  },
  {
    "name": "Set_grid_range",
    "id": 2913,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xmin",
        "type": "Integer"
      },
      {
        "name": "ymin",
        "type": "Integer"
      },
      {
        "name": "xmax",
        "type": "Integer"
      },
      {
        "name": "ymax",
        "type": "Integer"
      }
    ],
    "description": "Set the range the grid data of the Element elt with x-range from xmin to xmax y-range from ymin to ymax. A return value of 10 indicates the Element elt does not have valid unlocked grid data. A return value of 11 indicates the input range is not valid. A return value of 100 indicates the input range exceeded the points limit. A return value of 0 indicates the grid data was set successfully."
  },
  {
    "name": "Get_grid_range",
    "id": 2914,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xmin",
        "type": "Integer"
      },
      {
        "name": "&ymin",
        "type": "Integer"
      },
      {
        "name": "&xmax",
        "type": "Integer"
      },
      {
        "name": "&ymax",
        "type": "Integer"
      }
    ],
    "description": "Get the geometry the grid data of the Element elt with the origin point (origin_x,origin_y), spacing Page 748 Grid String and Grid Tin Element Chapter 5 12dPL Library Calls space_x, space_y in the x, y direction and with angle angle. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 0 indicates the grid data was set successfully."
  },
  {
    "name": "Grid_get_x_points",
    "id": 2915,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of point in x-range of the grid data of the Element elt as Integer count. A return value of 10 indicates the Element elt does not have valid grid data. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_get_x_count",
    "id": 2915,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of point in x-range of the grid data of the Element elt as Integer count. A return value of 10 indicates the Element elt does not have valid grid data. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_get_y_points",
    "id": 2916,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of point in y-range of the grid data of the Element elt as Integer count. A return value of 10 indicates the Element elt does not have valid grid data. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_get_y_count",
    "id": 2916,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of point in y-range of the grid data of the Element elt as Integer count. A return value of 10 indicates the Element elt does not have valid grid data. A return value of zero indicates the function call was successful. Grid String and Grid Tin Element Page 749 12d Model Macro Manual"
  },
  {
    "name": "Grid_get_x_cells",
    "id": 2917,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of cells in x-range of the grid data of the Element elt as Integer count. If the result is valid, it should be 1 less than the result of get points call. A return value of 10 indicates the Element elt does not have valid grid data. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_get_x_range",
    "id": 2917,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of cells in x-range of the grid data of the Element elt as Integer count. If the result is valid, it should be 1 less than the result of get points call. A return value of 10 indicates the Element elt does not have valid grid data. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_get_y_cells",
    "id": 2918,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of cells in y-range of the grid data of the Element elt as Integer count. If the result is valid, it should be 1 less than the result of get points call. A return value of 10 indicates the Element elt does not have valid grid data. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_get_y_range",
    "id": 2918,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of cells in y-range of the grid data of the Element elt as Integer count. If the result is valid, it should be 1 less than the result of get points call. A return value of 10 indicates the Element elt does not have valid grid data. Page 750 Grid String and Grid Tin Element Chapter 5 12dPL Library Calls A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_world_to_grid",
    "id": 2919,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "world_x",
        "type": "Real"
      },
      {
        "name": "world_y",
        "type": "Real"
      },
      {
        "name": "&grid_x",
        "type": "Real"
      },
      {
        "name": "&grid_y",
        "type": "Real"
      }
    ],
    "description": "Transform world coordinate (world_x, world_y) to grid coordinate (grid_x, grid_y) of the grid data of the Element elt. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_world_to_cell",
    "id": 2920,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "world_x",
        "type": "Real"
      },
      {
        "name": "world_y",
        "type": "Real"
      },
      {
        "name": "&cell_x",
        "type": "Real"
      },
      {
        "name": "&cell_y",
        "type": "Real"
      }
    ],
    "description": "Transform world coordinate (world_x, world_y) to cell coordinate (cell_x, cell_y) of the grid data of Grid String and Grid Tin Element Page 751 12d Model Macro Manual the Element elt. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_world_to_cell",
    "id": 2921,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "world_x",
        "type": "Real"
      },
      {
        "name": "world_y",
        "type": "Real"
      },
      {
        "name": "&cell_x",
        "type": "Integer"
      },
      {
        "name": "&cell_y",
        "type": "Integer"
      }
    ],
    "description": "Transform world coordinate (world_x, world_y) to cell indices (Integer cell_x, Integer cell_y) of the grid data of the Element elt. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_grid_to_world",
    "id": 2922,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "grid_x",
        "type": "Real"
      },
      {
        "name": "grid_y",
        "type": "Real"
      },
      {
        "name": "&world_x",
        "type": "Real"
      },
      {
        "name": "&world_y",
        "type": "Real"
      }
    ],
    "description": "Transform grid coordinate (grid_x, grid_y) of the grid data of the Element elt to world coordinate (world_x, world_y). A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_grid_to_cell",
    "id": 2923,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "grid_x",
        "type": "Real"
      },
      {
        "name": "grid_y",
        "type": "Real"
      },
      {
        "name": "&cell_x",
        "type": "Real"
      },
      {
        "name": "&cell_y",
        "type": "Real"
      }
    ],
    "description": "Transform grid coordinate (grid_x, grid_y) of the grid data of the Element elt to cell coordinate (cell_x, cell_y). A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_grid_to_cell",
    "id": 2924,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "grid_x",
        "type": "Real"
      },
      {
        "name": "grid_y",
        "type": "Real"
      },
      {
        "name": "&cell_x",
        "type": "Integer"
      },
      {
        "name": "&cell_y",
        "type": "Integer"
      }
    ],
    "description": "Transform grid coordinate (grid_x, grid_y) to cell indices (Integer cell_x, Integer cell_y) of the grid data of the Element elt. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_cell_to_world",
    "id": 2925,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "cell_x",
        "type": "Real"
      },
      {
        "name": "cell_y",
        "type": "Real"
      },
      {
        "name": "&world_x",
        "type": "Real"
      },
      {
        "name": "&world_y",
        "type": "Real"
      }
    ],
    "description": "Transform cell coordinate (cell_x, cell_y) of the grid data of the Element elt to world coordinate (world_x, world_y). A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_cell_to_world",
    "id": 2926,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "cell_x",
        "type": "Integer"
      },
      {
        "name": "cell_y",
        "type": "Integer"
      },
      {
        "name": "&world_x",
        "type": "Real"
      },
      {
        "name": "&world_y",
        "type": "Real"
      }
    ],
    "description": "Transform cell indices (cell_x, cell_y) of the grid data of the Element elt to world coordinate (world_x, world_y). A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_cell_to_grid",
    "id": 2927,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "cell_x",
        "type": "Real"
      },
      {
        "name": "cell_y",
        "type": "Real"
      },
      {
        "name": "&grid_x",
        "type": "Real"
      },
      {
        "name": "&grid_y",
        "type": "Real"
      }
    ],
    "description": "Transform cell coordinate (cell_x, cell_y) of the grid data of the Element elt to grid coordinate Grid String and Grid Tin Element Page 753 12d Model Macro Manual (grid_x, grid_y). A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Grid_cell_to_grid",
    "id": 2928,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "cell_x",
        "type": "Integer"
      },
      {
        "name": "cell_y",
        "type": "Integer"
      },
      {
        "name": "&grid_x",
        "type": "Real"
      },
      {
        "name": "&grid_y",
        "type": "Real"
      }
    ],
    "description": "Transform cell indices (cell_x, cell_y) of the grid data of the Element elt to grid coordinate (grid_x, grid_y). A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Shift_grid_range",
    "id": 2929,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xshift",
        "type": "Integer"
      },
      {
        "name": "yshift",
        "type": "Integer"
      }
    ],
    "description": "Shift the grid data of the Element elt to world coordinate by (xshift, yshift) cells in the x, y direction. For example: the new index for minimum grid x equal the old one minus xshift. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the shift failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_grid_heights",
    "id": 2930,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Null the heights of the grid data of the Element elt. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the nulling action failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_grid_heights",
    "id": 2932,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Set the heights of the grid data of the Element elt to levels of Tin tin. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_grid_heights",
    "id": 2933,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "list",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Set the heights of the grid data of the Element elt according to Dynamic_Element list. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the transform failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_grid_height",
    "id": 2934,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xc",
        "type": "Integer"
      },
      {
        "name": "yc",
        "type": "Integer"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Set the height at cell indices (xc, yc) of the grid data of the Element elt with Real ht. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the set action failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_grid_height",
    "id": 2935,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xc",
        "type": "Integer"
      },
      {
        "name": "yc",
        "type": "Integer"
      },
      {
        "name": "&ht",
        "type": "Real"
      }
    ],
    "description": "Get the height at cell indices (xc, yc) of the grid data of the Element elt to Real ht. A return value of 10 indicates the Element elt does not have valid grid data. A return value of 11 indicates the get action failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Convert_grid_string_to_grid_tin",
    "id": 2936,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "Create a new grid Tin tin with name tin_name according to the grid data of element elt. A return value of 10 indicates there already a tin named tin_name. A return value of 11 indicates the creation failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Convert_grid_tin_to_grid_string",
    "id": 2937,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Element"
      },
      {
        "name": "&elt",
        "type": "Element"
      }
    ],
    "description": "Create a new grid string elt according to the grid data of tin Element tin. A return value of 11 indicates the creation failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Convert_grid_to_strings",
    "id": 2938,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&list",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Create a list of strings Dynamic_Element list according to the grid data of element elt. A return value of 11 indicates the creation failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Compute_merged_grid",
    "id": 2940,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Dynamic_Element"
      },
      {
        "name": "&origin_x",
        "type": "Real"
      },
      {
        "name": "&origin_y",
        "type": "Real"
      },
      {
        "name": "&spacing_x",
        "type": "Real"
      },
      {
        "name": "&spacing_y",
        "type": "Real"
      },
      {
        "name": "&angle",
        "type": "Real"
      },
      {
        "name": "&xmin",
        "type": "Integer"
      },
      {
        "name": "&ymin",
        "type": "Integer"
      },
      {
        "name": "&xmax",
        "type": "Integer"
      },
      {
        "name": "&ymax",
        "type": "Integer"
      }
    ],
    "description": "Calculate the data of the geometry and the range of the merging of grid data of a list Dynamic_Element list. The values for the geometry data returns at Real x-y coordinate of the origin (origin_x origin_y) x- y spacing spacing_x spacing_y, grid rotation angle. The values for the range data return at Integer xmin ymin xmax ymax. A return value of 11 indicates the list has no element with valid grid data. A return value of 12 indicates the list has only one element with valid grid data. A return value of 14 indicates the merging failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Merge_grids",
    "id": 2941,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Dynamic_Element"
      },
      {
        "name": "&grid",
        "type": "Element"
      }
    ],
    "description": "Merge the grid data of a list Dynamic_Element list to the grid data of Element grid. A return value of 11 indicates the list has no element with valid grid data. A return value of 12 indicates the list has only one element with valid grid data. A return value of 14 indicates the merging failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_face",
    "id": 1215,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "The Element has num_pts points with (x,y,z) values given in the Real arrays x[], y[] and z[]. The function return value gives the actual Element created. If the face string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_face",
    "id": 1216,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_npts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type face with room for num_pts (x,y,z) points. The actual x, y and z values of the face string are set after the string is created. If the face string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_face",
    "id": 1217,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_npts",
        "type": "Integer"
      },
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type face with room for num_pts (x,y) points, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. The actual x, y and z values of the face string are set after the string is created. If the face string could not be created, then the returned Element will be null."
  },
  {
    "name": "Get_face_data",
    "id": 78,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer\uf020"
      }
    ],
    "description": "Get the (x,y,z) data for the first max_pts vertices of the face Element elt. Page 758 Face String Element Chapter 5 12dPL Library Calls The (x,y,z) values at each string vertex are returned in the Real arrays x[], y[] and z[]. The maximum number of vertices that can be returned is given by max_pts (usually the size of the arrays). The vertex data returned starts at the first vertex and goes up to the minimum of max_pts and the number of vertices in the string. The actual number of vertices returned is returned by Integer num_pts num_pts <= max_pts If the Element elt is not of type face, then num_pts is returned as zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_face_data",
    "id": 79,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer\uf020"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For a face Element elt, get the (x,y,z) data for max_pts vertices starting at vertex number start_pt. This routine allows the user to return the data from a face string in user specified chunks. This is necessary if the number of vertices in the string is greater than the size of the arrays available to contain the information. As in the previous function, the maximum number of points that can be returned is given by max_pts (usually the size of the arrays). However, for this function, the vertex data returned starts at vertex number start_pt rather than vertex one. The (x,y,z) values at each string vertex is returned in the Real arrays x[], y[] and z[]. The actual number of vertices returned is given by Integer num_pts num_pts <= max_pts If the Element elt is not of type face, then num_pts is set to zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned. Note A start_pt of one gives the same result as for the previous function."
  },
  {
    "name": "Set_face_data",
    "id": 80,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z) data for the first num_pts vertices of the face Element elt. This function allows the user to modify a large number of vertices of the string in one call. The maximum number of vertices that can be set is given by the number of vertices in the string. The (x,y,z) values for each string vertex is given in the Real arrays x[], y[] and z[]. Face String Element Page 759 12d Model Macro Manual The number of vertices to be set is given by Integer num_pts If the Element elt is not of type face, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Note This function can not create new face Elements but only modify existing face Elements."
  },
  {
    "name": "Set_face_data",
    "id": 81,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "For the face Element elt, set the (x,y,z) data for num_pts vertices, starting at vertex number start_pt. This function allows the user to modify a large number of vertices of the string in one call starting at vertex number start_pt rather than the first vertex (vertex one). The maximum number of vertices that can be set is given by the difference between the number of vertices in the string and the value of start_pt. The (x,y,z) values for the string vertices are given in the Real arrays x[], y[] and z[]. The number of the first string vertex to be modified is start_pt. The total number of vertices to be set is given by Integer num_pts If the Element elt is not of type face, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Notes (a) A start_pt of one gives the same result as the previous function. (b) This function can not create new face Elements but only modify existing face Elements."
  },
  {
    "name": "Get_face_data",
    "id": 82,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the (x,y,z) data for the ith vertex of the string. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_face_hatch_distance",
    "id": 1218,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&dist",
        "type": "Real"
      }
    ],
    "description": "Get the distance between the hatch lines for the face string elt. The distance is returned as dist A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_face_hatch_distance",
    "id": 1219,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "dist",
        "type": "Real"
      }
    ],
    "description": "Set the distance between the hatch lines for the face string elt to be dist The distance is given in world units. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_face_hatch_angle",
    "id": 1220,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&ang",
        "type": "Real"
      }
    ],
    "description": "Get the angle of the hatch lines for the face string elt. The angle is returned as ang. The angle is given in radians and is measured in the counter-clockwise direction from the x-axis. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_face_hatch_angle",
    "id": 1221,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "Face String Element Page 761 12d Model Macro Manual Set the angle of the hatch lines for the face string elt to be ang A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_face_hatch_colour",
    "id": 1222,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour of the solid fill for the face string elt. The colour number is returned as colour. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_face_hatch_colour",
    "id": 1223,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Set the colour of the solid fill for the face string elt to the colour number colour. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_face_edge_colour",
    "id": 1224,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour of the edge of the face string elt. The colour number is returned as colour. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_face_edge_colour",
    "id": 1225,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Set the colour of the edge of the face string elt to the colour number colour. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_face_hatch_mode",
    "id": 1227,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the mode of the hatch pattern of the face string elt to the value mode. If the mode is 1, then the hatch pattern is drawn when the face is on a plan view. If the mode is 0, then the hatch pattern is not drawn when the face is on a plan view. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_face_fill_mode",
    "id": 1228,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Get the mode of the fill of the face string elt. The value of mode is returned as mode. If the mode is 1, then the face is filled with the face colour when the face is on a plan view. If the mode is 0, then the face is not filled when the face is on a plan view. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_face_fill_mode",
    "id": 1229,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the mode of the fill of the face string elt to the value mode. If the mode is 1, then the face is filled with the face colour when the face is on a plan view. If the mode is 0, then the face is not filled when the face is on a plan view. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_face_edge_mode",
    "id": 1231,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the mode for displaying the edge of the face string elt to the value mode. If the mode is 1, then the edge is drawn with the edge colour when the face is on a plan view. If the mode is 0, then the edge is not drawn when the face is on a plan view. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "DRF_dimension_horizontal_points_create",
    "id": 2956,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "sx",
        "type": "Real"
      },
      {
        "name": "sy",
        "type": "Real"
      },
      {
        "name": "ex",
        "type": "Real"
      },
      {
        "name": "ey",
        "type": "Real"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring horizontal distance between two points (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of start point sx sy, end point ex ey, dimension point dx dy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_vertical_points_create",
    "id": 2957,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "sx",
        "type": "Real"
      },
      {
        "name": "sy",
        "type": "Real"
      },
      {
        "name": "ex",
        "type": "Real"
      },
      {
        "name": "ey",
        "type": "Real"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring vertical distance between two points (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of start point sx sy, end point ex ey, dimension point dx dy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_aligned_points_create",
    "id": 2958,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "sx",
        "type": "Real"
      },
      {
        "name": "sy",
        "type": "Real"
      },
      {
        "name": "ex",
        "type": "Real"
      },
      {
        "name": "ey",
        "type": "Real"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring aligned distance between two points (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of start point sx sy, end point ex ey, dimension point dx dy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_aligned_points_fixoffset_create",
    "id": 2959,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "sx",
        "type": "Real"
      },
      {
        "name": "sy",
        "type": "Real"
      },
      {
        "name": "ex",
        "type": "Real"
      },
      {
        "name": "ey",
        "type": "Real"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "fix_offset",
        "type": "Real"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring aligned distance between two points with fixed offset (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of start point sx sy, end point ex ey, dimension point dx dy; and fixed offset value fix_offset A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_rotated_points_create",
    "id": 2960,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "sx",
        "type": "Real"
      },
      {
        "name": "sy",
        "type": "Real"
      },
      {
        "name": "ex",
        "type": "Real"
      },
      {
        "name": "ey",
        "type": "Real"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "rotation_angle",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring rotated distance between two points (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of start point sx sy, end point ex ey, dimension point dx dy; and angle for rotation rotation_angle A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_horizontal_segment_create",
    "id": 2961,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "base_segment",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring horizontal distance between the start and end points of a Segment base_segment (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_vertical_segment_create",
    "id": 2962,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "sx",
        "type": "Real"
      },
      {
        "name": "base_segment",
        "type": "Segment"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring vertical distance between the start and end points of a Segment base_segment (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_aligned_segment_create",
    "id": 2963,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "base_segment",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring aligned distance between the start and end points of a Segment base_segment (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_aligned_segment_fixoffset_create",
    "id": 2964,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "base_segment",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "fix_offset",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension with fixed offset as Element out measuring aligned distance between the start and end points of a Segment base_segment (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy; and fixed offset value fix_offset A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_rotated_segment_create",
    "id": 2965,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "base_segment",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "rotation_angle",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring rotated distance between the start and end Page 768 Drafting Elements Chapter 5 12dPL Library Calls points of a Segment base_segment (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy; and rotation angle rotation_angle A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_drop_perpendicular_create",
    "id": 2966,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "sx",
        "type": "Real"
      },
      {
        "name": "sy",
        "type": "Real"
      },
      {
        "name": "base_segment",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "fix_offset",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring perpendicular dropping distance from the start points (of x-y coordinate sx sy) to a Segment base_segment (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy; and value of fixed offset fix_offset A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_length_create",
    "id": 2967,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "base_seg",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring the length of a Segment base_segment (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_length_fixoffset_create",
    "id": 2968,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "base_seg",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "fix_offset",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension with fixed offset as Element out measuring the length of a Segment base_segment (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy; and fixed offset fix_offset Drafting Elements Page 769 12d Model Macro Manual A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_angular_segment_create",
    "id": 2970,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "line1",
        "type": "Segment"
      },
      {
        "name": "line2",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "i1",
        "type": "Integer"
      },
      {
        "name": "i2",
        "type": "Integer"
      },
      {
        "name": "ir",
        "type": "Integer"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring the angle from two lines Segment line1, line2 (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy direction of the first line i1, 0 is the same as the line, 1 is reverse direction direction of the second line i2, 0 is the same as the line, 1 is reverse direction check if reverse dimension ir, 0 is normal dimension, 1 is reverse A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_radial_create",
    "id": 2971,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "base_arc",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "float_dim",
        "type": "Integer"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a dimension s Element out measuring the radius of an arc Segment base_arc (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point Page 770 Drafting Elements Chapter 5 12dPL Library Calls dx dy Integer float_dim indicating if the dimension if floating, 0 is no, 1 is yes A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_diameter_create",
    "id": 2972,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "base_arc",
        "type": "Segment"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "float_dim",
        "type": "Integer"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a dimension s Element out measuring the diameter of an arc Segment base_arc (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text; Real x-y coordinate of dimension point dx dy Integer float_dim indicating if the dimension if floating, 0 is no, 1 is yes A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_area_create",
    "id": 2973,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new dimension as Element out measuring the area of a Element polygon (and add to Model model if the model is valid). Other input parameters: Text style_name; Text format_text A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_edit_move_dim",
    "id": 2975,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&dimension",
        "type": "Element"
      },
      {
        "name": "move_mode",
        "type": "Integer"
      }
    ],
    "description": "Move the dimension point of a dimension Element dimension. move_mode 1 means: the value of dx dy are added to x-y coordinate of the current dimension point. move_mode 0 means: the value of dx dy are the new to x-y coordinate of the dimension point. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_edit_move_start",
    "id": 2976,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&dimension",
        "type": "Element"
      },
      {
        "name": "move_mode",
        "type": "Integer"
      }
    ],
    "description": "Move the start point of a dimension Element dimension. move_mode 1 means: the value of dx dy are added to x-y coordinate of the current start point. move_mode 0 means: the value of dx dy are the new to x-y coordinate of the start point. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_edit_move_end",
    "id": 2977,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "&dimension",
        "type": "Element"
      },
      {
        "name": "move_mode",
        "type": "Integer"
      }
    ],
    "description": "Move the end point of a dimension Element dimension. move_mode 1 means: the value of dx dy are added to x-y coordinate of the current end point. move_mode 0 means: the value of dx dy are the new to x-y coordinate of the end point. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_edit_set_start",
    "id": 3899,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_string",
        "type": "Element"
      },
      {
        "name": "ref_ip",
        "type": "Integer"
      },
      {
        "name": "ref_ext",
        "type": "Real"
      },
      {
        "name": "&drf_dim",
        "type": "Element"
      }
    ],
    "description": "Set the start point of a dimension Element drf_dim with the associative point defined by the reference string ref_string, vertex index (or IP index) ref_ip and distance to the vertex ref_ext. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_edit_set_end",
    "id": 3900,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_string",
        "type": "Element"
      },
      {
        "name": "ref_ip",
        "type": "Integer"
      },
      {
        "name": "ref_ext",
        "type": "Real"
      },
      {
        "name": "&drf_dim",
        "type": "Element"
      }
    ],
    "description": "Set the end point of a dimension Element drf_dim with the associative point defined by the reference string ref_string, vertex index (or IP index) ref_ip and distance to the vertex ref_ext. Page 772 Drafting Elements Chapter 5 12dPL Library Calls A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_dimension_styles",
    "id": 3378,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&styles",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Set the list of texts styles with the names of all dimension styles in the current project. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_style_property",
    "id": 3473,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Get the Integer value of the property property_name of a dimension style with given name style_name. If there is no dimension style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_style_property",
    "id": 3474,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "Get the Real value of the property property_name of a dimension style with given name style_name. If there is no dimension style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_dimension_style_property",
    "id": 3475,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Get the Text value of the property property_name of a dimension style with given name style_name. Drafting Elements Page 773 12d Model Macro Manual If there is no dimension style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_create",
    "id": 2974,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "leader_text",
        "type": "Text"
      },
      {
        "name": "ax",
        "type": "Real"
      },
      {
        "name": "ay",
        "type": "Real"
      },
      {
        "name": "hx",
        "type": "Real"
      },
      {
        "name": "hy",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "Create a new leader as Element out (and add to Model model if the model is valid). Other input parameters: Text style_name; Text leader_text; Real x-y coordinate for arrow point ax ay, hook point hx hy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_edit_move_hook",
    "id": 2978,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "hx",
        "type": "Real"
      },
      {
        "name": "hy",
        "type": "Real"
      },
      {
        "name": "&leader",
        "type": "Element"
      },
      {
        "name": "move_mode",
        "type": "Integer"
      }
    ],
    "description": "Mode the hook point of a leader Element leader. move_mode 1 means: the value of dx dy are added to x-y coordinate of the current hook point. move_mode 0 means: the value of dx dy are the new to x-y coordinate of the hook point. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_edit_move_arrow",
    "id": 2979,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "hx",
        "type": "Real"
      },
      {
        "name": "hy",
        "type": "Real"
      },
      {
        "name": "&leader",
        "type": "Element"
      },
      {
        "name": "move_mode",
        "type": "Integer"
      }
    ],
    "description": "Mode the arrow point of a leader Element leader. move_mode 1 means: the value of dx dy are added to x-y coordinate of the current arrow point. move_mode 0 means: the value of dx dy are the new to x-y coordinate of the arrow point. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_leader_arrow",
    "id": 3088,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "leader",
        "type": "Element"
      },
      {
        "name": "&arrow_x",
        "type": "Real"
      },
      {
        "name": "&arrow_y",
        "type": "Real"
      }
    ],
    "description": "Get the arrow point xy-coordinate arrow_x arrow_y of a leader Element leader Drafting Elements Page 775 12d Model Macro Manual A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_leader_hook",
    "id": 3089,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "leader",
        "type": "Element"
      },
      {
        "name": "&hook_x",
        "type": "Real"
      },
      {
        "name": "&hook_y",
        "type": "Real"
      }
    ],
    "description": "Get the hook point xy-coordinate hook_x hook_y of a leader Element leader A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_leader_text",
    "id": 3090,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "leader",
        "type": "Element"
      },
      {
        "name": "&leader_text",
        "type": "Text"
      }
    ],
    "description": "Get the leader text leader_text of a leader Element leader A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_set_leader_hook_angle",
    "id": 3483,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "leader",
        "type": "Element"
      },
      {
        "name": "hook_angle",
        "type": "Real"
      }
    ],
    "description": "Set the hook angle of a leader Element leader to the new value hook_angle A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_set_leader_info_tin",
    "id": 3901,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&leader",
        "type": "Element"
      },
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Set the associative Tin of the Element leader to the new value tin A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_edit_set_arrow_point",
    "id": 3902,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_string",
        "type": "Element"
      },
      {
        "name": "ref_ip",
        "type": "Integer"
      },
      {
        "name": "ref_ext",
        "type": "Real"
      },
      {
        "name": "&drf_leader",
        "type": "Element"
      }
    ],
    "description": "Set the associative object of the Element leader to the point defined by Element ref_string vertex index ref_ip and distance to the vertex ref_ext. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_edit_set_arrow_segment",
    "id": 3903,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_string",
        "type": "Element"
      },
      {
        "name": "ref_ip",
        "type": "Integer"
      },
      {
        "name": "ref_ext",
        "type": "Real"
      },
      {
        "name": "&drf_leader",
        "type": "Element"
      }
    ],
    "description": "Set the associative object of the Element leader to the segment defined by Element ref_string vertex index ref_ip ; the position of the arrow is determined by the distance to the vertex ref_ext. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_edit_set_arrow_element",
    "id": 3904,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_string",
        "type": "Element"
      },
      {
        "name": "ref_ip",
        "type": "Integer"
      },
      {
        "name": "ref_ext",
        "type": "Real"
      },
      {
        "name": "&drf_leader",
        "type": "Element"
      }
    ],
    "description": "Set the associative object of the Element leader to the element defined by Element ref_string ; the position of the arrow is determined by vertex index ref_ip and the distance to the vertex ref_ext. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_leader_hook_angle",
    "id": 3484,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "leader",
        "type": "Element"
      },
      {
        "name": "&hook_angle",
        "type": "Real"
      }
    ],
    "description": "Get the Real hook_angle of a leader Element leader A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_leader_styles",
    "id": 3379,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&styles",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Drafting Elements Page 777 12d Model Macro Manual Set the list of texts styles with the names of all leader styles in the current project. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_style_property",
    "id": 3476,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Get the Integer value of the property property_name of a leader style with given name style_name. If there is no leader style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_style_property",
    "id": 3477,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "Get the Real value of the property property_name of a leader style with given name style_name. If there is no leader style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_style_property",
    "id": 3478,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Get the Text value of the property property_name of a leader style with given name style_name. If there is no leader style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_create_associative_segment",
    "id": 3880,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "type",
        "type": "Integer"
      },
      {
        "name": "ref_ele_name",
        "type": "Text"
      },
      {
        "name": "ref_ele_id",
        "type": "Uid"
      },
      {
        "name": "ref_mod_name",
        "type": "Text"
      },
      {
        "name": "ref_mod_id",
        "type": "Uid"
      },
      {
        "name": "ref_part_name",
        "type": "Text"
      },
      {
        "name": "ref_ip",
        "type": "Integer"
      },
      {
        "name": "ref_ext",
        "type": "Real"
      },
      {
        "name": "ref_method",
        "type": "Integer"
      },
      {
        "name": "hx",
        "type": "Real"
      },
      {
        "name": "hy",
        "type": "Real"
      },
      {
        "name": "&out_leader",
        "type": "Element"
      }
    ],
    "description": "Create a new accociative leader as Element out_leader . The association segment belongs to a string with name and id ref_ele_name ref_ele_id within the containing models ref_mod_name ref_mod_id - the looking up method for the element is Drafting Elements Page 779 12d Model Macro Manual determined by Integer ref_method - not yet used. Within the given string, the segment is located using ref_part_name (only when the string is a super alignment with named parts), or segment number ref_ip, the distance of the arrow to the start of the segment ref_ext. The list of valid association (Integer) type is 4 Segment_Length_Type , 5 Segment_Length_3d_Type , 6 Segment_Bearing_Type , 7 Segment_Length_Bearing_Type, 8 Segment_Radius_Type , 11 Segment_Text_Type , segment text or segment attributes of a super string Other input parameters: Text style_name; Text format_text; Real x-y coordinate for hook point hx hy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_create_associative_element",
    "id": 3881,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "type",
        "type": "Integer"
      },
      {
        "name": "ref_ele_name",
        "type": "Text"
      },
      {
        "name": "ref_ele_id",
        "type": "Uid"
      },
      {
        "name": "ref_mod_name",
        "type": "Text"
      },
      {
        "name": "ref_mod_id",
        "type": "Uid"
      },
      {
        "name": "ref_part_name",
        "type": "Text"
      },
      {
        "name": "ref_ip",
        "type": "Integer"
      },
      {
        "name": "ref_ext",
        "type": "Real"
      },
      {
        "name": "ref_method",
        "type": "Integer"
      },
      {
        "name": "hx",
        "type": "Real"
      },
      {
        "name": "hy",
        "type": "Real"
      },
      {
        "name": "&out_leader",
        "type": "Element"
      }
    ],
    "description": "Create a new accociative leader as Element out_leader . The association element is referenced by name and id ref_ele_name ref_ele_id within the containing models ref_mod_name ref_mod_id - the looking up method for the element is determined by Integer ref_method - not yet used. The location of the arrow is defined using ref_part_name (only when the element is a super alignment with named parts), or segment number ref_ip, the distance of the arrow to the start of the segment ref_ext. The list of valid association (Integer) type is 1 Area_Type , 2 String_Length_Type , 3 String_Length_3d_Type , 9 String_Name_Type , name or attributes of the element 21 Centroid_XY_Type , 22 Centre_XY_Type , medial axis centre of a string 24 Volume_Type , only for trimesh Other input parameters: Text style_name; Text format_text; Real x-y coordinate for hook point hx hy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_create_associative_element",
    "id": 3882,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "type",
        "type": "Integer"
      },
      {
        "name": "ref_ele_name",
        "type": "Text"
      },
      {
        "name": "ref_ele_id",
        "type": "Uid"
      },
      {
        "name": "ref_mod_name",
        "type": "Text"
      },
      {
        "name": "ref_mod_id",
        "type": "Uid"
      },
      {
        "name": "ref_method",
        "type": "Integer"
      },
      {
        "name": "hx",
        "type": "Real"
      },
      {
        "name": "hy",
        "type": "Real"
      },
      {
        "name": "&out_leader",
        "type": "Element"
      }
    ],
    "description": "Create a new accociative leader as Element out_leader . The association element is referenced by name and id ref_ele_name ref_ele_id within the containing models ref_mod_name ref_mod_id - the looking up method for the element is determined by Integer ref_method - not yet used. The location of the arrow is automatically set at the centroid or centre of the selected element The list of valid association (Integer) type is 1 Area_Type , 21 Centroid_XY_Type , 22 Centre_XY_Type , medial axis centre of a string Other input parameters: Text style_name; Text format_text; Real x-y coordinate for hook point hx hy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_create_associative",
    "id": 3894,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "format_text",
        "type": "Text"
      },
      {
        "name": "type",
        "type": "Integer"
      },
      {
        "name": "ref_tin",
        "type": "Text"
      },
      {
        "name": "ax",
        "type": "Real"
      },
      {
        "name": "ay",
        "type": "Real"
      },
      {
        "name": "hx",
        "type": "Real"
      },
      {
        "name": "hy",
        "type": "Real"
      },
      {
        "name": "&out_leader",
        "type": "Element"
      }
    ],
    "description": "Create a new accociative leader as Element out_leader . The association is defined by the arrow point coordinate ax ay and reference tin ref_tin (if the type involves tin). The location of the arrow is automatically set at the centroid or centre of the selected element The list of valid association (Integer) type is 17 Tin_Level_Type , 25 Tin_Aspect_Type , 26 Tin_Colour_Type , 27 Tin_Slope_1_In_Type , 28 Tin_Slope_Percent_Type , 29 XYZ_Type , 30 XY_Type , Other input parameters: Text style_name; Text format_text; Real x-y coordinate for hook point hx hy Drafting Elements Page 781 12d Model Macro Manual A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_leader_text_create",
    "id": 3895,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "leader_text",
        "type": "Text"
      },
      {
        "name": "ref_string",
        "type": "Element"
      },
      {
        "name": "ref_ip",
        "type": "Integer"
      },
      {
        "name": "ref_ext",
        "type": "Real"
      },
      {
        "name": "hx",
        "type": "Real"
      },
      {
        "name": "hy",
        "type": "Real"
      },
      {
        "name": "&out_leader",
        "type": "Element"
      }
    ],
    "description": "Create a new text leader as Element out_leader . The association of the arrow is referenced Element ref_string, segment number ref_ip, and the distance to the start of the segment ref_ext. Other input parameters: Text style_name; Text leader_text; Real x-y coordinate for hook point hx hy A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_create",
    "id": 3059,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "auto_size",
        "type": "Integer"
      },
      {
        "name": "nr",
        "type": "Integer"
      },
      {
        "name": "nc",
        "type": "Integer"
      },
      {
        "name": "cw",
        "type": "Real"
      },
      {
        "name": "rh",
        "type": "Real"
      },
      {
        "name": "ti",
        "type": "Integer"
      },
      {
        "name": "hi",
        "type": "Integer"
      },
      {
        "name": "px",
        "type": "Real"
      },
      {
        "name": "py",
        "type": "Real"
      },
      {
        "name": "ar",
        "type": "Real"
      },
      {
        "name": "&model",
        "type": "Model"
      },
      {
        "name": "&table",
        "type": "Element"
      }
    ],
    "description": "Create a drafting Element table (and add to Model model if the model valid) Table name table_name name of output element Name of table style style_name Auto resizing table auto_size 0 for no, 1 for yes Number of rows nr Number of column nc Column width cw Row height rh Including title row ti 0 for no, 1 for yes Including header row hi 0 for no, 1 for yes Top left x coordinate px Top left y coordinate py Rotation angle of the table ar A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_edit_cell",
    "id": 3060,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "column",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Text"
      },
      {
        "name": "&table",
        "type": "Element"
      }
    ],
    "description": "Edit a cell of a drafting Element table at given row number row, column number column with the new value Text value A return value of one indicates the number row or column is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_edit_cell",
    "id": 3061,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "column",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Real"
      },
      {
        "name": "&table",
        "type": "Element"
      }
    ],
    "description": "Edit a cell of a drafting Element table at given row number row, column number column with the new value Real value A return value of one indicates the number row or column is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_edit_cell",
    "id": 3062,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "column",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Integer"
      },
      {
        "name": "&table",
        "type": "Element"
      }
    ],
    "description": "Edit a cell of a drafting Element table at given row number row, column number column with the new value Integer value Note that row 1 is used for the title row and row 2 is used for the header row (even when they are not used in the table). A return value of one indicates the number row or column is out of bound. A return value of zero indicates the function call was successful. Page 784 Drafting Elements Chapter 5 12dPL Library Calls"
  },
  {
    "name": "DRF_table_get_cell",
    "id": 3859,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "column",
        "type": "Integer"
      },
      {
        "name": "&cell_type",
        "type": "Integer"
      },
      {
        "name": "&int_val",
        "type": "Integer"
      },
      {
        "name": "&real_val",
        "type": "Real"
      },
      {
        "name": "&text_val",
        "type": "Text"
      }
    ],
    "description": "Get a cell of a drafting Element table at given row number row, column number column and return. - the type of the cell in cell_type: 2 for Integer; 3 for Real; 4 for Text; 100 for empty cell; 102 for merged cell of the first row; 103 for merged cell of the first column; 105 for merged cell that not in the first row nor first column. - Integer value of the cell int_val. - Real value of the cell real_val. - Text value of the cell text_val. Note that row 1 is used for the title row and row 2 is used for the header row (even when they are not used in the table). A return value of one indicates the number row or column is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_get_number_row_column",
    "id": 3095,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "&nr",
        "type": "Integer"
      },
      {
        "name": "&nc",
        "type": "Integer"
      }
    ],
    "description": "Get the number of rows nr and the number of columns nc of a drafting Element table. Note that the header and title row (if used) are not counted in nr. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_get_row_height",
    "id": 3096,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "row_number",
        "type": "Integer"
      },
      {
        "name": "&row_height",
        "type": "Real"
      }
    ],
    "description": "Get row height row_height at row number row_number of a drafting Element table A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_get_origin",
    "id": 3203,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "&x_origin",
        "type": "Real"
      },
      {
        "name": "&y_origin",
        "type": "Real"
      }
    ],
    "description": "Get X-Y coordinate (x_origin,y_origin) of the origin point (top left corner) of a drafting Element table. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_get_offset",
    "id": 3205,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "&x_offset",
        "type": "Real"
      },
      {
        "name": "&y_offset",
        "type": "Real"
      }
    ],
    "description": "Not yet implemented A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_get_rotation",
    "id": 3207,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "&rotation",
        "type": "Real"
      }
    ],
    "description": "Get the rotation angle of a drafting Element table. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_set_row_height",
    "id": 3098,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "row_number",
        "type": "Integer"
      },
      {
        "name": "row_height",
        "type": "Real"
      }
    ],
    "description": "Set row height to row_height at row number row_number of a drafting Element table A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_set_origin",
    "id": 3202,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "x_origin",
        "type": "Real"
      },
      {
        "name": "y_origin",
        "type": "Real"
      }
    ],
    "description": "Set the X-Y coordinate origin point (top left corner) of a drafting Element table to (x_origin,y_origin). A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_set_offset",
    "id": 3204,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "x_offset",
        "type": "Real"
      },
      {
        "name": "y_offset",
        "type": "Real"
      }
    ],
    "description": "Not yet implemented A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_set_rotation",
    "id": 3206,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "rotation",
        "type": "Real"
      }
    ],
    "description": "Set the rotation angle of a drafting Element table to Real rotation. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_table_styles",
    "id": 3380,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&styles",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Set the list of texts styles with the names of all table styles in the current project. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_style_property",
    "id": 3470,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Get the Integer value of the property property_name of a table style with given name style_name. If there is no table style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_style_property",
    "id": 3471,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "Get the Real value of the property property_name of a table style with given name style_name. If there is no table style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_style_property",
    "id": 3472,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "property_name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Get the Text value of the property property_name of a table style with given name style_name. If there is no table style of given name, the return value is 1. This function is under on going development process. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_table_edit_resize",
    "id": 3816,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "nr",
        "type": "Integer"
      },
      {
        "name": "nc",
        "type": "Integer"
      },
      {
        "name": "&table",
        "type": "Element"
      }
    ],
    "description": "Resize the number of row and column of a drafting Element table to Integers nr and nc respectively. A return value of zero indicates the resize was successful."
  },
  {
    "name": "DRF_table_edit_resize_row",
    "id": 3818,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "nr",
        "type": "Integer"
      },
      {
        "name": "&table",
        "type": "Element"
      }
    ],
    "description": "Resize the number of row of a drafting Element table to Integer nr A return value of zero indicates the resize was successful."
  },
  {
    "name": "DRF_table_remove_merge",
    "id": 8014,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "column",
        "type": "Integer"
      }
    ],
    "description": "Remove the merging cells block of a drafting Element table with the top left corner of given by Integer row and column A return value of zero indicates the resize was successful."
  },
  {
    "name": "DRF_table_add_merge",
    "id": 8015,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "table",
        "type": "Element"
      },
      {
        "name": "row_l",
        "type": "Integer"
      },
      {
        "name": "row_h",
        "type": "Integer"
      },
      {
        "name": "column_l",
        "type": "Integer"
      },
      {
        "name": "column_h",
        "type": "Integer"
      }
    ],
    "description": "Add a new merging cells block of a drafting Element table using given by four Integers: lower row row_l higher row row_h and lower column column_l higher column column_h. A return value of zero indicates the resize was successful."
  },
  {
    "name": "DRF_recalc",
    "id": 3100,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&draft",
        "type": "Element"
      }
    ],
    "description": "Recalculate a drafting element draft A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_style",
    "id": 3091,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "draft",
        "type": "Element"
      },
      {
        "name": "&style",
        "type": "Text"
      }
    ],
    "description": "Get the style name style of a drafting element draft A return value of zero indicates the function call was successful."
  },
  {
    "name": "Explode_drafting",
    "id": 7753,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "draft",
        "type": "Element"
      },
      {
        "name": "paper_plot_scale",
        "type": "Real"
      },
      {
        "name": "&output_lines",
        "type": "Dynamic_Element"
      },
      {
        "name": "&output_texts",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Explode components of a drafting element draft using given paper_plot_scale. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_drafting_edit_set_style",
    "id": 2980,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style_name",
        "type": "Text"
      },
      {
        "name": "&draft",
        "type": "Element"
      }
    ],
    "description": "Change the style of a drafting Element draft to a new style with the name Text style_name. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_drafting_edit_set_format_text",
    "id": 2981,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "new_text",
        "type": "Text"
      },
      {
        "name": "&draft",
        "type": "Element"
      }
    ],
    "description": "Page 790 Drafting Elements Chapter 5 12dPL Library Calls Update the text format of a dimension or leader text of a leader Element draft to a new Text new_text. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_override_names",
    "id": 3463,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drf",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      },
      {
        "name": "&names",
        "type": "Dynamic_Text"
      },
      {
        "name": "&types",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Get all the style overriding information of a drafting element drf, including: the number count of fields being override, the list of all those field names, the list of types for the value of those overrides. The sizes the two lists names and types should equal count. The value in the list types should be 2 - Integer or 3 - Real or 4 - Text. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_override_value",
    "id": 3464,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drf",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Get the Integer value of override of a drafting element drf with the field of given name. If the input is not a drafting element, the return value is 1. If the input drafting elment has no override, the return value is 8. If name is not a valid override field name, the return value is 9 for leader; 10 for table; 11 for dimension. If there is no override of the given name, the return value is 15. If the override of the given name is not of Integer type, the return value is 16. If the value of the override is invalid, the return value is 17 A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_override_value",
    "id": 3465,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drf",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "Get the Real value of override of a drafting element drf with the field of given name. If the input is not a drafting element, the return value is 1. If the input drafting elment has no override, the return value is 8. If name is not a valid override field name, the return value is 9 for leader; 10 for table; 11 for dimension. Drafting Elements Page 791 12d Model Macro Manual If there is no override of the given name, the return value is 15. If the override of the given name is not of Real type, the return value is 16. If the value of the override is invalid, the return value is 17 A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_get_override_value",
    "id": 3466,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drf",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Get the Text value of override of a drafting element drf with the field of given name. If the input is not a drafting element, the return value is 1. If the input drafting elment has no override, the return value is 8. If name is not a valid override field name, the return value is 9 for leader; 10 for table; 11 for dimension. If there is no override of the given name, the return value is 15. If the override of the given name is not of Text type, the return value is 16. If the value of the override is invalid, the return value is 17 A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_set_override_value",
    "id": 3467,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&drf",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "Set the Integer value of the override of given name in a drafting element drf. If the input is not a drafting element, the return value is 1. If name is not a valid override field name, the return value is 9 for leader; 10 for table; 11 for dimension. If the override of the given name is not of Integer type, the return value is 16. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_set_override_value",
    "id": 3468,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&drf",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Set the Real value of the override of given name in a drafting element drf. If the input is not a drafting element, the return value is 1. If name is not a valid override field name, the return value is 9 for leader; 10 for table; 11 for dimension. Page 792 Drafting Elements Chapter 5 12dPL Library Calls If the override of the given name is not of Real type, the return value is 16. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_set_override_value",
    "id": 3469,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&drf",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "Set the Text value of the override of given name in a drafting element drf. If the input is not a drafting element, the return value is 1. If name is not a valid override field name, the return value is 9 for leader; 10 for table; 11 for dimension. If the override of the given name is not of Text type, the return value is 16. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_clear_overrides",
    "id": 3482,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&drf",
        "type": "Element"
      }
    ],
    "description": "Clear all overrides of a drafting elment drf. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_remove_association",
    "id": 3897,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&drf",
        "type": "Element"
      }
    ],
    "description": "Clear all associative object of a drafting elment drf. A return value of zero indicates the function call was successful."
  },
  {
    "name": "DRF_is_associative",
    "id": 3898,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "drf",
        "type": "Element"
      },
      {
        "name": "&is_associative",
        "type": "Integer"
      }
    ],
    "description": "Check to see if the drafting elment drf has any associative object and set Integer is_associative to 1 if the answer is yes, 0 otherwise A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_number_of_points",
    "id": 3005,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&number_points",
        "type": "Integer"
      }
    ],
    "description": "Get the number of points number_points of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_number_of_triangles",
    "id": 3006,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&number_triangles",
        "type": "Integer"
      }
    ],
    "description": "Get the number of triangles number_triangles of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_number_of_edges",
    "id": 3525,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "&number_edges",
        "type": "Integer"
      }
    ],
    "description": "Trimesh Element Page 795 12d Model Macro Manual Get the number of edges number_edges of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_point_coord",
    "id": 3007,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "point_index",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the xyz-coordinate x y z of the point with index point_index of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_triangle_points",
    "id": 3008,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "triangle_index",
        "type": "Integer"
      },
      {
        "name": "&p1_index",
        "type": "Integer"
      },
      {
        "name": "&p2_index",
        "type": "Integer"
      },
      {
        "name": "&p3_index",
        "type": "Integer"
      }
    ],
    "description": "Get three point indices p1_index p2_index p3_index of the triangle with index triangle_index of a trimesh Element trimesh. The points in the triangles p1_index, p2_index and p3_index are in a counter clockwise order around the triangle. See 5.51 Trimesh Element. p1_index p2_index normal pointing out p3_index A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_triangle_points_coords",
    "id": 3009,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "triangle_index",
        "type": "Integer"
      },
      {
        "name": "&p1_index",
        "type": "Integer"
      },
      {
        "name": "&p2_index",
        "type": "Integer"
      },
      {
        "name": "&p3_index",
        "type": "Integer"
      },
      {
        "name": "&x1",
        "type": "Real"
      },
      {
        "name": "&y1",
        "type": "Real"
      },
      {
        "name": "&z1",
        "type": "Real"
      },
      {
        "name": "&x2",
        "type": "Real"
      },
      {
        "name": "&y2",
        "type": "Real"
      },
      {
        "name": "&z2",
        "type": "Real"
      },
      {
        "name": "&x3",
        "type": "Real"
      },
      {
        "name": "&y3",
        "type": "Real"
      },
      {
        "name": "&z3",
        "type": "Real"
      }
    ],
    "description": "Get three point indices p1_index p2_index p3_index of the triangle with index triangle_index of a Page 796 Trimesh Element Chapter 5 12dPL Library Calls trimesh Element trimesh; and also the xyz-coordinate of the three point x1 y1 z1, x2 y2 z2, x3, y3, z3. The points p1_index, p2_index and p3_index are in a counter clockwise order around the triangle. See 5.51 Trimesh Element Plan View p1_index p2_index normal pointing out p3_index A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_triangle_edges",
    "id": 3526,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "triangle_index",
        "type": "Integer"
      },
      {
        "name": "&e1_index",
        "type": "Integer"
      },
      {
        "name": "&e2_index",
        "type": "Integer"
      },
      {
        "name": "&e3_index",
        "type": "Integer"
      }
    ],
    "description": "Get three indices e1_index e2_index e3_index of the three edges of the triangle with index triangle_index of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_edge_triangles_points",
    "id": 3527,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "edge_index",
        "type": "Integer"
      },
      {
        "name": "&triangles_count",
        "type": "Integer"
      },
      {
        "name": "&triangle1_index",
        "type": "Integer"
      },
      {
        "name": "&triangle2_index",
        "type": "Integer"
      },
      {
        "name": "&vertex1_index",
        "type": "Integer"
      },
      {
        "name": "&vertex2_index",
        "type": "Integer"
      }
    ],
    "description": "Get the details of edge with given edge_index of a Element e Number of triangles contain that edge triangles_count. On a \"good\" closed trimesh, this number should be always 2. The indices of the two triangles containing the edge: triangle1_index, triangle2_index. The indices of the two vertices at the two end of the edge: vertex1_index, vertex2_index. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Is_polymesh",
    "id": 7769,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      }
    ],
    "description": "Return 1 if the input Element e is a trimesh with polymesh setup; return 0 for otherwise."
  },
  {
    "name": "Get_trimesh_centroid",
    "id": 3019,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&centroid_x",
        "type": "Real"
      },
      {
        "name": "&centroid_y",
        "type": "Real"
      },
      {
        "name": "&centroid_z",
        "type": "Real"
      }
    ],
    "description": "Get the xyz-coordinate centroid_x centroid_y centroid_z of the centroid of the trimesh A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_surface_area",
    "id": 3020,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&area",
        "type": "Real"
      }
    ],
    "description": "Get surface area of an trimesh Element trimesh A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_volume",
    "id": 3033,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&volume",
        "type": "Real"
      }
    ],
    "description": "Get Real volume of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_signed_area",
    "id": 7749,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&area",
        "type": "Real"
      }
    ],
    "description": "Get Real surface area of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_closed",
    "id": 3021,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&is_closed",
        "type": "Integer"
      }
    ],
    "description": "Set the value is_closed to 1 if trimesh Element trimesh l is closed; 0 otherwise A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_solid",
    "id": 7700,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "solid",
        "type": "Integer"
      }
    ],
    "description": "Set the value solid to 1 if trimesh Element trimesh is solid; 0 otherwise A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_edge_indices",
    "id": 7770,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      },
      {
        "name": "&indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Get the count of edge indices of given polymesh e and the full list in indices A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_number_of_faces",
    "id": 7771,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the count of polymesh faces of given polymesh e A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_face_valid",
    "id": 7772,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "&valid",
        "type": "Integer"
      }
    ],
    "description": "Get the valid flag of polymesh face with index face_ix of given polymesh e A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_face_colour",
    "id": 7773,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour of polymesh face with index face_ix of given polymesh e A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_face_name",
    "id": 7774,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the name of polymesh face with index face_ix of given polymesh e A return value of zero indicates the function call was successful. Page 800 Trimesh Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Polymesh_get_face_normal",
    "id": 7775,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the normal x,y,z of polymesh face with index face_ix of given polymesh e A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_face_face_indices",
    "id": 7776,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "&count",
        "type": "Integer"
      },
      {
        "name": "&indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Get the count of inner face indices of given polymesh face with index face_ix of given polymesh e and the full list in indices A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_face_edge_indices",
    "id": 7777,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "&count",
        "type": "Integer"
      },
      {
        "name": "&indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Get the count of inner edge indices of given polymesh face with index face_ix of given polymesh e and the full list in indices A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_face_boundary",
    "id": 7778,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "&radius",
        "type": "Real"
      },
      {
        "name": "&centroid",
        "type": "Point"
      },
      {
        "name": "&vertex_indices_count",
        "type": "Integer"
      },
      {
        "name": "&vertex_indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Get information (radius, centroid, vertex_indices_count, vertex_indices) of boundary of polymesh face with index face_ix of given polymesh e A return value of zero indicates the function call was successful. Trimesh Element Page 801 12d Model Macro Manual"
  },
  {
    "name": "Polymesh_get_face_number_of_holes",
    "id": 7779,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "&count",
        "type": "Integer"
      },
      {
        "name": "&indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Get the count of holes of polymesh face with index face_ix of given polymesh e The indices is not used at the moment. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_face_hole",
    "id": 7780,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      },
      {
        "name": "hole_ix",
        "type": "Integer"
      },
      {
        "name": "&radius",
        "type": "Real"
      },
      {
        "name": "&centroid",
        "type": "Point"
      },
      {
        "name": "&vertex_indices_count",
        "type": "Integer"
      },
      {
        "name": "&vertex_indices",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Get information (radius, centroid, vertex_indices_count, vertex_indices) of hole number hole_ix of polymesh face with index face_ix of given polymesh e. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_drop_point_3d",
    "id": 7797,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polymesh",
        "type": "Element"
      },
      {
        "name": "face_no",
        "type": "Integer"
      },
      {
        "name": "point_x",
        "type": "Real"
      },
      {
        "name": "point_y",
        "type": "Real"
      },
      {
        "name": "point_z",
        "type": "Real"
      },
      {
        "name": "&face_o",
        "type": "Real"
      },
      {
        "name": "&face_dr_x",
        "type": "Real"
      },
      {
        "name": "&face_dr_y",
        "type": "Real"
      },
      {
        "name": "&face_dr_z",
        "type": "Real"
      }
    ],
    "description": "3D drop from a given point (point_x point_y point_z) to the face of a polymesh of given face_no and set the result with face_o sign offset from the drop face_dr_x face_dr_y face_dr_z the coordinate of the drop point A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_drop_point_3d",
    "id": 7798,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polymesh",
        "type": "Element"
      },
      {
        "name": "face_name",
        "type": "Text"
      },
      {
        "name": "point_x",
        "type": "Real"
      },
      {
        "name": "point_y",
        "type": "Real"
      },
      {
        "name": "point_z",
        "type": "Real"
      },
      {
        "name": "&face_ix",
        "type": "Integer"
      },
      {
        "name": "&face_o",
        "type": "Real"
      },
      {
        "name": "&face_dr_x",
        "type": "Real"
      },
      {
        "name": "&face_dr_y",
        "type": "Real"
      },
      {
        "name": "&face_dr_z",
        "type": "Real"
      }
    ],
    "description": "3D drop from a given point (point_x point_y point_z) to faces of a polymesh of given face_name and set the result with face_ix index of polymesh face with the drop face_o sign offset from the drop face_dr_x face_dr_y face_dr_z the coordinate of the drop point A return value of zero indicates the function call was successful."
  },
  {
    "name": "Polymesh_get_closest_point",
    "id": 7799,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polymesh",
        "type": "Element"
      },
      {
        "name": "xp",
        "type": "Real"
      },
      {
        "name": "yp",
        "type": "Real"
      },
      {
        "name": "zp",
        "type": "Real"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&off",
        "type": "Real"
      },
      {
        "name": "&face",
        "type": "Integer"
      },
      {
        "name": "&edge",
        "type": "Integer"
      },
      {
        "name": "&vertex",
        "type": "Integer"
      }
    ],
    "description": "From a given point (xp yp zp) find the closest on on the surface of a polymesh and set the result with x y z the coordinate of the closest surface point off sign offset from the start point to the closest face index of polymesh face with the cut edge index of edge with the cut vertex index of vertex with the cut A return value of zero indicates the function call was successful."
  },
  {
    "name": "Intersect_polymesh",
    "id": 7800,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polymesh",
        "type": "Element"
      },
      {
        "name": "xp",
        "type": "Real"
      },
      {
        "name": "yp",
        "type": "Real"
      },
      {
        "name": "zp",
        "type": "Real"
      },
      {
        "name": "horizontal_angle",
        "type": "Real"
      },
      {
        "name": "vertical_angle",
        "type": "Real"
      },
      {
        "name": "&face_no",
        "type": "Integer"
      },
      {
        "name": "&dx",
        "type": "Real"
      },
      {
        "name": "&dy",
        "type": "Real"
      },
      {
        "name": "&dz",
        "type": "Real"
      },
      {
        "name": "&signed_offset",
        "type": "Real"
      }
    ],
    "description": "From a 3D ray starting at point (xp yp zp) and direction defined by horizontal_angle and vertical_angle find first cut with polymesh and set the result with face_no polymesh face number of the cut dx dy dz the coordinate of the cut point. signed_offset from the start point to the cut A return value of zero indicates the function call was successful."
  },
  {
    "name": "Form_trimesh_from_tin",
    "id": 3023,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "mesh_name",
        "type": "Text"
      },
      {
        "name": "mesh_offset",
        "type": "Real"
      },
      {
        "name": "mesh_depth",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "&trimesh_out",
        "type": "Element"
      }
    ],
    "description": "Do not use this one as the output only the first one from the list. Use Form_trimeshes_from_tin instead Form a trimesh trimesh_out with name mesh_name, colour, from a tin, offset mesh_offset, depth mesh_depth A return value of zero indicates the function call was successful."
  },
  {
    "name": "Form_trimesh_from_points",
    "id": 3093,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xyzs",
        "type": "Dynamic_Real"
      },
      {
        "name": "face_ix",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&trimesh_out",
        "type": "Element"
      }
    ],
    "description": "Form a trimesh trimesh_out from a list of xyz-coordinates xyzs, and a list of vertex index for faces face_ix A return value of zero indicates the function call was successful. Note that the two list number are grouped by triple, the first one as the xyz of point, the second one as index of three corners of triangle Example of xyzs {0 1 0 1 0 0 0 -1 0 -1 0 0 0 0 1} defines a square with four points on z = 0 plane and a top point in the middle face_ix {3 2 1 4 3 1 1 2 5 2 3 5 3 4 5 4 1 5} define 6 faces of the pyramid: 2 at the base, and 4 on four sides"
  },
  {
    "name": "Form_trimesh_from_points",
    "id": 3094,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xyzs",
        "type": "Dynamic_Real"
      },
      {
        "name": "face_ix",
        "type": "Dynamic_Integer"
      },
      {
        "name": "colour_lists",
        "type": "Dynamic_Integer"
      },
      {
        "name": "colour_ix",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&trimesh_out",
        "type": "Element"
      }
    ],
    "description": "Form a trimesh trimesh_out from a list of xyz-coordinates xyzs, and a list of vertex index for faces face_ix Faces of trimesh are coloured according to the index colour_ix as referring to the list of colours colour_lists A return value of zero indicates the function call was successful. Note that the two list number are grouped by triple, the first one as the xyz of point, the second one as index of three corners of triangle Example of xyzs {0 1 0 1 0 0 0 -1 0 -1 0 0 0 0 1} defines a square with four points on z = 0 plane and a top point in the middle face_ix {3 2 1 4 3 1 1 2 5 2 3 5 3 4 5 4 1 5} define 6 faces of the pyramid: 2 at the base, and 4 on four sides colour_lists {5 9} assume that 5 means blue and 9 means green Trimesh Element Page 805 12d Model Macro Manual The size of colour_ix must equal one third of the size of face_ix colour_ix {1 1 2 2 2 2} defines that the two base triangles of the pyramid are blue and the four sides are green"
  },
  {
    "name": "Trimesh_get_face_colour",
    "id": 3032,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "face_index",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour of a face with index face_index of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Form_trimeshes_from_element",
    "id": 3050,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "flags",
        "type": "Integer"
      },
      {
        "name": "copy_attributes",
        "type": "Integer"
      },
      {
        "name": "name_prepost",
        "type": "Text"
      },
      {
        "name": "&trimeshes_list",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Create a list trimeshes trimeshes_list from the Element e Creation flag Integer flag: 0 for everything, or a sum of a subset of 0x001 Extrude 0x002 OBJ-mesh 0x004 Billboard 0x008 Super String Pipe 0x010 Super String Culvert 0x020 Drainage String 0x040 Super Alignment 0x080 Pipeline String Flag for copying attribute from input element to result trimesh copy_attributes: 0 not copy attributes, 1 copy attributes Pre*post rule for naming result trimeshes name_prepost based on the name of input element A return value of zero indicates the function call was successful."
  },
  {
    "name": "Form_trimesh_from_polygons",
    "id": 3063,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygons",
        "type": "Dynamic_Element"
      },
      {
        "name": "vertex_info",
        "type": "Integer"
      },
      {
        "name": "edge_info",
        "type": "Integer"
      },
      {
        "name": "face_info",
        "type": "Integer"
      },
      {
        "name": "mesh_name",
        "type": "Text"
      },
      {
        "name": "mesh_colour",
        "type": "Integer"
      },
      {
        "name": "&trimesh_out",
        "type": "Element"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Page 806 Trimesh Element Chapter 5 12dPL Library Calls Form a trimesh trimesh_out using a list of input 3D polygons polygon Flag vertex_info (0 no 1 yes) for copy vertex ids of polygons to vertex info of result trimesh Flag edge_info (0 no 1 yes) for copy segment names of polygons to edge info of result trimesh Flag face_info (0 no 1 yes) for copy face colour of polygons to face colours of result trimesh Name of result mesh mesh_name Colour of result mesh mesh_colour Output message return_message A return value of zero indicates the function call was successful."
  },
  {
    "name": "Form_trimesh_from_polygons",
    "id": 7639,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygons",
        "type": "Dynamic_Element"
      },
      {
        "name": "vertex_info",
        "type": "Integer"
      },
      {
        "name": "edge_info",
        "type": "Integer"
      },
      {
        "name": "face_info",
        "type": "Integer"
      },
      {
        "name": "mesh_name",
        "type": "Text"
      },
      {
        "name": "mesh_colour",
        "type": "Integer"
      },
      {
        "name": "polymesh",
        "type": "Integer"
      },
      {
        "name": "&trimesh_out",
        "type": "Element"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Form a trimesh trimesh_out using a list of input 3D polygons polygon Flag vertex_info (0 no 1 yes) for copy vertex ids of polygons to vertex info of result trimesh Flag edge_info (0 no 1 yes) for copy segment names of polygons to edge info of result trimesh Flag face_info (0 no 1 yes) for copy face colour of polygons to face colours of result trimesh Flag polymesh (0 no 1 yes) for using the input polygons as polymesh faces of result trimesh Name of result mesh mesh_name Colour of result mesh mesh_colour Output message return_message A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_section",
    "id": 3208,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "point_x",
        "type": "Real"
      },
      {
        "name": "point_y",
        "type": "Real"
      },
      {
        "name": "point_z",
        "type": "Real"
      },
      {
        "name": "point_direction",
        "type": "Real"
      },
      {
        "name": "point_grade",
        "type": "Real"
      },
      {
        "name": "width",
        "type": "Real"
      },
      {
        "name": "height",
        "type": "Real"
      },
      {
        "name": "&internal_return",
        "type": "Integer"
      },
      {
        "name": "&result_closed",
        "type": "Integer"
      },
      {
        "name": "&size_section_points",
        "type": "Integer"
      },
      {
        "name": "&section_xs",
        "type": "Dynamic_Real"
      },
      {
        "name": "&section_ys",
        "type": "Dynamic_Real"
      },
      {
        "name": "&section_world_xs",
        "type": "Dynamic_Real"
      },
      {
        "name": "&section_world_ys",
        "type": "Dynamic_Real"
      },
      {
        "name": "&section_world_zs",
        "type": "Dynamic_Real"
      },
      {
        "name": "&section_edge_indexes",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&section_edge_names",
        "type": "Dynamic_Text"
      },
      {
        "name": "&section_edge_colours",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&section_vertex_indexes",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&section_vertex_names",
        "type": "Dynamic_Text"
      },
      {
        "name": "&section_vertex_colours",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Section through the trimesh using a given 3D rectangle. The centre of the rectangle is given by the X-Y-Z coordinate (point_x, point_y, point_z). The rotation angle of the rectangle in the X-Y plane (in radian anticlockwise from the X-axis) is given by point_direction. The tilt angle of the rectangle in relative to the Z-axis (in radian) is given by point_grade. The sizes of the rectangle are given by width and height. Integer internal_return might give some indication why the sectioning failed, the list of values are given bellow. If the sectioning is a closed cut, then result_closed is 1; and 0 otherwise. The number of points of the result sectioning is given in size_section_points. The last 11 parameters are details about those sectioning points. All of them should be list with exactly size_section_points items in each. The first items on those list are information about the first point of the sectioning; and the second items on those list are information about the second point of the sectioning; and so forth. section_xs, section_ys: x-y-coordinate of the section points on the section plane (where the origin is of the world coordinate (point_x, point_y, point_z)). section_world_xs, section_world_ys, section_world_zs: world x-y-z-coordinate of the section points section_edge_indexes: if none zero, then it is the edge index of the trimesh edge that the section point is in; and then the names and colours of those edge are given in section_edge_names and section_edge_colours. section_vertex_indexes: if none zero, then it is the vertex index of the trimesh vertex that the section point is in; and then the names and colours of those vertices are given in section_vertex_names and section_vertex_colours. A return value of 0 indicates the function call was successful. A return value of 1 indicates Element trimesh is not a trimesh nor a trimesh reference. A return value of 2 indicates Element trimesh is not valid. A return value of -1, -2, -3, or -4 indicates there are internal error with the Element trimesh. A return value of 12 indicates the sectioning was not successful. The Integer internal_return coming from the list might indicate the reason. 0 Ok, 1 Not A Vertical Section, 2 Null Data, 3 Non Manifold, 4 Not Closed, 5 Not Connected, 6 No Intersection, 7 Partial Intersection, 8 Multiple Intersection, 9 Unknown,"
  },
  {
    "name": "Trimesh_get_blend_factor",
    "id": 3382,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&blend_factor",
        "type": "Real"
      }
    ],
    "description": "Get the blend_factor of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_blend_factor",
    "id": 3383,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "blend_factor",
        "type": "Real"
      }
    ],
    "description": "Set new value for the blend_factor of a trimesh Element trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_face_infos_count",
    "id": 3489,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "&infos_count",
        "type": "Integer"
      }
    ],
    "description": "Get the size infos_count of the face information list of a trimesh e. The function returns 9 if the trimesh has no face information. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_face_info_by_index",
    "id": 3490,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "info_index",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the colour and name of the item with given index info_index in the face information list of a trimesh e. The function returns 9 if the trimesh has no face information. The function returns 3 if the given index info_index is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_face_info_by_index",
    "id": 3491,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "info_index",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Set the colour and name of the item with given index info_index in the face information list of a trimesh e. The function returns 9 if the trimesh has no face information. The function returns 3 if the given index info_index is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_append_face_info",
    "id": 3492,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Append a new information item with given colour and name to the end of the face information list of a trimesh e. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_face_info_index",
    "id": 3493,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_number",
        "type": "Integer"
      },
      {
        "name": "&info_index",
        "type": "Integer"
      }
    ],
    "description": "Get the info_index of a face with given number face_number of a trimesh e. The function returns 9 if the trimesh has no face information. The function returns 3 if the given face_number is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_face_info_index",
    "id": 3494,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "face_number",
        "type": "Integer"
      },
      {
        "name": "info_index",
        "type": "Integer"
      }
    ],
    "description": "Set the info_index of a face with given number face_number of a trimesh e. The function returns 9 if the trimesh has no face information. The function returns 3 if the given face_number is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_face_infos_flags",
    "id": 3495,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "colours",
        "type": "Dynamic_Integer"
      },
      {
        "name": "names",
        "type": "Dynamic_Text"
      },
      {
        "name": "flags",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Replace all the face information in a trimesh e with new details from two lists colours, names. The two list must be of the same sizes or the function returns 5. Also set all the infomation index of all faces to the values in the list flags, if the size of flags is different from the number of faces in the trimesh, the function returns 6. If any index in the list flags is not valid, the function returns 7; a valid index can be 0 (meaning no information used for that face) or any value in the range 1 to the size of colours. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_edge_infos_count",
    "id": 3496,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "&infos_count",
        "type": "Integer"
      }
    ],
    "description": "Get the size infos_count of the edge information list of a trimesh e. The function returns 9 if the trimesh has no edge information. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_edge_info_by_index",
    "id": 3497,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "info_index",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the colour and name of the item with given index info_index in the edge information list of a trimesh e. The function returns 9 if the trimesh has no edge information. The function returns 3 if the given index info_index is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_edge_info_by_index",
    "id": 3498,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "info_index",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Trimesh Element Page 811 12d Model Macro Manual Set the colour and name of the item with given index info_index in the edge information list of a trimesh e. The function returns 9 if the trimesh has no edge information. The function returns 3 if the given index info_index is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_append_edge_info",
    "id": 3499,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Append a new information item with given colour and name to the end of the edge information list of a trimesh e. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_edge_info_index",
    "id": 3500,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "edge_number",
        "type": "Integer"
      },
      {
        "name": "&info_index",
        "type": "Integer"
      }
    ],
    "description": "Get the info_index of an edge with given number edge_number of a trimesh e. The function returns 9 if the trimesh has no edge information. The function returns 3 if the given edge_number is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_edge_info_index",
    "id": 3501,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "edge_number",
        "type": "Integer"
      },
      {
        "name": "info_index",
        "type": "Integer"
      }
    ],
    "description": "Set the info_index of an edge with given number edge_number of a trimesh e. The function returns 9 if the trimesh has no edge information. The function returns 3 if the given edge_number is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_edge_infos_flags",
    "id": 3502,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "colours",
        "type": "Dynamic_Integer"
      },
      {
        "name": "names",
        "type": "Dynamic_Text"
      },
      {
        "name": "flags",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Replace all the edge information in a trimesh e with new details from two lists colours, names. The two list must be of the same sizes or the function returns 5. Also set all the infomation index of all edges to the values in the list flags, if the size of flags is different from the number of edges in the trimesh, the function returns 6. If any index in the list flags is not valid, the function returns 7; a valid index can be 0 (meaning no information used for that edge) or any value in the range 1 to the size of colours. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_vertex_infos_count",
    "id": 3764,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "&infos_count",
        "type": "Integer"
      }
    ],
    "description": "Get the size infos_count of the vertices information list of a trimesh e. The function returns 9 if the trimesh has no vertex information. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_vertex_info_by_index",
    "id": 3765,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "info_index",
        "type": "Integer"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the colour and name of the item with given index info_index in the vertex information list of a trimesh e. The function returns 9 if the trimesh has no vertex information. The function returns 3 if the given index info_index is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_vertex_info_by_index",
    "id": 3766,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "info_index",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Set the colour and name of the item with given index info_index in the vertex information list of a trimesh e. The function returns 9 if the trimesh has no vertex information. The function returns 3 if the given index info_index is out of bound. Trimesh Element Page 813 12d Model Macro Manual A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_append_vertex_info",
    "id": 3767,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Append a new information item with given colour and name to the end of the vertex information list of a trimesh e. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_vertex_info_index",
    "id": 3768,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "vertex_number",
        "type": "Integer"
      },
      {
        "name": "&info_index",
        "type": "Integer"
      }
    ],
    "description": "Get the info_index of a vertex with given number vertex_number of a trimesh e. The function returns 9 if the trimesh has no vertex information. The function returns 3 if the given vertex_number is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_vertex_info_index",
    "id": 3769,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "vertex_number",
        "type": "Integer"
      },
      {
        "name": "info_index",
        "type": "Integer"
      }
    ],
    "description": "Set the info_index of a vertex with given number vertex_number of a trimesh e. The function returns 9 if the trimesh has no vertex information. The function returns 3 if the given vertex_number is out of bound. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_set_vertex_infos_flags",
    "id": 3770,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "colours",
        "type": "Dynamic_Integer"
      },
      {
        "name": "names",
        "type": "Dynamic_Text"
      },
      {
        "name": "flags",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Replace all the vertex information in a trimesh e with new details from two lists colours, names. Page 814 Trimesh Element Chapter 5 12dPL Library Calls The two list must be of the same sizes or the function returns 5. Also set all the infomation index of all vertices to the values in the list flags, if the size of flags is different from the number of vertices in the trimesh, the function returns 6. If any index in the list flags is not valid, the function returns 7; a valid index can be 0 (meaning no information used for that vertex) or any value in the range 1 to the size of colours. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_drop_point_3d",
    "id": 3503,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "point_x",
        "type": "Real"
      },
      {
        "name": "point_y",
        "type": "Real"
      },
      {
        "name": "point_z",
        "type": "Real"
      },
      {
        "name": "&vert_ix",
        "type": "Integer"
      },
      {
        "name": "&vert_o",
        "type": "Real"
      },
      {
        "name": "&vert_dr_x",
        "type": "Real"
      },
      {
        "name": "&vert_dr_y",
        "type": "Real"
      },
      {
        "name": "&vert_dr_z",
        "type": "Real"
      },
      {
        "name": "&edge_ix",
        "type": "Integer"
      },
      {
        "name": "&edge_o",
        "type": "Real"
      },
      {
        "name": "&edge_dr_x",
        "type": "Real"
      },
      {
        "name": "&edge_dr_y",
        "type": "Real"
      },
      {
        "name": "&edge_dr_z",
        "type": "Real"
      },
      {
        "name": "&face_ix",
        "type": "Integer"
      },
      {
        "name": "&face_o",
        "type": "Real"
      },
      {
        "name": "&face_dr_x",
        "type": "Real"
      },
      {
        "name": "&face_dr_y",
        "type": "Real"
      },
      {
        "name": "&face_dr_z",
        "type": "Real"
      }
    ],
    "description": "Drop a point with xyz coordinate (point_x,point_y,point_z) to a trimesh Element to get the results on: Vertex: index vert_ix, offset vert_o, drop to position (vert_dr_z,vert_dr_y,vert_dr_z) Edge: index edge_ix, offset edge_o, drop to position (edge_dr_z,edge_dr_y,edge_dr_z) Face: index face_ix, offset face_o, drop to position (face_dr_z,face_dr_y,face_dr_z) A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_set_vertex",
    "id": 3504,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Set the vertex index i of a trimesh element e to a new xyz coordinate (x,y,z) The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_move_vertex",
    "id": 3505,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Move the xyz coordinate of vertex index i of a trimesh element e by (dx,dy,dz) The Text error would be set to the corresponding error message if the function failed. Trimesh Element Page 815 12d Model Macro Manual A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_move_edge",
    "id": 3506,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Move the xyz coordinates of the two ends of the edge with index i of a trimesh element e by (dx,dy,dz) The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_move_face",
    "id": 3507,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Move the xyz coordinates of the three conners of the face with index i of a trimesh element e by (dx,dy,dz) The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_move_vertices",
    "id": 3508,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "is",
        "type": "Dynamic_Integer"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "dz",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Move the xyz coordinates of all vertices with index given in the list is of a trimesh element e by (dx,dy,dz) The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_move_vertices",
    "id": 3509,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "dz",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Move the xyz coordinates of all vertices of a trimesh element e by (dx,dy,dz) The Text error would be set to the corresponding error message if the function failed. Page 816 Trimesh Element Chapter 5 12dPL Library Calls A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_hide_vertex",
    "id": 3510,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Hide the vertex with index i of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_hide_edge",
    "id": 3511,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Hide the edge with index i of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_hide_face",
    "id": 3512,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Hide the face with index i of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_hide_vertices",
    "id": 3513,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "is",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Hide the vertices with indices given by the list is of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_hide_edges",
    "id": 3514,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "is",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Hide the edges with indices given by the list isof a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_hide_faces",
    "id": 3515,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "is",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Hide the faces with indices given by the list is of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_remove_vertex",
    "id": 3516,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Remove the vertex with index i of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_remove_edge",
    "id": 3517,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Remove the edge with index i of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_remove_vertices",
    "id": 3519,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "is",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Remove the vertices with indices given by the list is of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_remove_edges",
    "id": 3520,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "is",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Remove the edges with indices given by the list isof a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_remove_faces",
    "id": 3521,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "is",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Remove the faces with indices given by the list is of a trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_add_vertex",
    "id": 3522,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Add a new the vertex with xyz coordinate (x,y,z) to the trimesh element e. The Text error would be set to the corresponding error message if the function failed. Trimesh Element Page 819 12d Model Macro Manual A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_add_face",
    "id": 3523,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "j",
        "type": "Integer"
      },
      {
        "name": "k",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Add a new the face with the three corners as vertices with indices i,j,k to the trimesh element e. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_edit_split_edge",
    "id": 3524,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "e",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Split the edge with index i of a trimesh element e at a point with xyz coordinate (x,y,z). The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_boolean_union",
    "id": 3803,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh1",
        "type": "Element"
      },
      {
        "name": "trimesh2",
        "type": "Element"
      },
      {
        "name": "keep_vertex_info",
        "type": "Integer"
      },
      {
        "name": "keep_edge_info",
        "type": "Integer"
      },
      {
        "name": "keep_face_info",
        "type": "Integer"
      },
      {
        "name": "output_trimesh_name",
        "type": "Text"
      },
      {
        "name": "output_trimesh_colour",
        "type": "Integer"
      },
      {
        "name": "&trimesh_out",
        "type": "Element"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Find the boolean union of trimesh1 and trimesh2 and assign the result to (trimesh) Element trimesh_out. The name output_trimesh_name and the colour output_trimesh_colour will be used for the result. The result trimesh will also keep the vertices, edges, faces information of the original trimeshes if the respective values of keep_vertex_info, keep_edge_info, keep_face_info are non zero. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_boolean_difference",
    "id": 3804,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh1",
        "type": "Element"
      },
      {
        "name": "trimesh2",
        "type": "Element"
      },
      {
        "name": "keep_vertex_info",
        "type": "Integer"
      },
      {
        "name": "keep_edge_info",
        "type": "Integer"
      },
      {
        "name": "keep_face_info",
        "type": "Integer"
      },
      {
        "name": "output_trimesh_name",
        "type": "Text"
      },
      {
        "name": "output_trimesh_colour",
        "type": "Integer"
      },
      {
        "name": "&trimesh_out",
        "type": "Element"
      }
    ],
    "description": "Find the boolean difference between trimesh1 and trimesh2 and assign the result to (trimesh) Element trimesh_out. The name output_trimesh_name and the colour output_trimesh_colour will be used for the result. The result trimesh will also keep the vertices, edges, faces information of the original trimeshes if the respective values of keep_vertex_info, keep_edge_info, keep_face_info are non zero. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_boolean_intersection",
    "id": 3805,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh1",
        "type": "Element"
      },
      {
        "name": "trimesh2",
        "type": "Element"
      },
      {
        "name": "keep_vertex_info",
        "type": "Integer"
      },
      {
        "name": "keep_edge_info",
        "type": "Integer"
      },
      {
        "name": "keep_face_info",
        "type": "Integer"
      },
      {
        "name": "output_trimesh_name",
        "type": "Text"
      },
      {
        "name": "output_trimesh_colour",
        "type": "Integer"
      },
      {
        "name": "&trimesh_out",
        "type": "Element"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Find the boolean intersection of trimesh1 and trimesh2 and assign the result to (trimesh) Element trimesh_out. The name output_trimesh_name and the colour output_trimesh_colour will be used for the result. The result trimesh will also keep the vertices, edges, faces information of the original trimeshes if the respective values of keep_vertex_info, keep_edge_info, keep_face_info are non zero. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_areas",
    "id": 3806,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&has_top_area",
        "type": "Integer"
      },
      {
        "name": "has_surrounding_area",
        "type": "Real"
      },
      {
        "name": "&surrounding_area",
        "type": "Real"
      },
      {
        "name": "&has_surface_area",
        "type": "Integer"
      },
      {
        "name": "&surface_area",
        "type": "Real"
      },
      {
        "name": "&has_top_plan_area",
        "type": "Integer"
      },
      {
        "name": "&top_plan_area",
        "type": "Real"
      },
      {
        "name": "&&top_area",
        "type": "Integer"
      },
      {
        "name": "&has_bottom_area",
        "type": "Integer"
      },
      {
        "name": "&bottom_area",
        "type": "Real"
      },
      {
        "name": "&has_bottom_plan_area",
        "type": "Integer"
      },
      {
        "name": "&bottom_plan_area",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get various area information of a simple trimesh Element trimesh and assign the result to variables of corresponding names. Trimesh Element Page 821 12d Model Macro Manual For each type of area there is a corresponding Integer flag indicate that it is valid. For example: the Real top_area only valid when Integer has_top_area is 1. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_top_faces",
    "id": 3807,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "faces_count",
        "type": "Integer"
      },
      {
        "name": "&face_indices",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get all the top faces of a simple trimesh Element trimesh and assign the total number to Integer faces_count and the list of face indices to Dynamic_Integer face_indices. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_bottom_faces",
    "id": 3808,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "faces_count",
        "type": "Integer"
      },
      {
        "name": "&face_indices",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get all the bottom faces of a simple trimesh Element trimesh and assign the total number to Integer faces_count and the list of face indices to Dynamic_Integer face_indices. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_surrounding_faces",
    "id": 3809,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "faces_count",
        "type": "Integer"
      },
      {
        "name": "&face_indices",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get all the surrounding faces of a simple trimesh Element trimesh and assign the total number to Integer faces_count and the list of face indices to Dynamic_Integer face_indices. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_collapsing_faces",
    "id": 3810,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "faces_count",
        "type": "Integer"
      },
      {
        "name": "&face_indices",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "A face of a trimesh is called collapsing if its area is zero, in another word the normal vector of a collapsing face is undefined. Get all the collapsing faces of a simple trimesh Element trimesh and assign the total number to Integer faces_count and the list of face indices to Dynamic_Integer face_indices. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_areas",
    "id": 3826,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "tolerance",
        "type": "Real"
      },
      {
        "name": "&has_top_area",
        "type": "Integer"
      },
      {
        "name": "has_surrounding_area",
        "type": "Real"
      },
      {
        "name": "&surrounding_area",
        "type": "Real"
      },
      {
        "name": "&has_surface_area",
        "type": "Integer"
      },
      {
        "name": "&surface_area",
        "type": "Real"
      },
      {
        "name": "&has_top_plan_area",
        "type": "Integer"
      },
      {
        "name": "&top_plan_area",
        "type": "Real"
      },
      {
        "name": "&&top_area",
        "type": "Integer"
      },
      {
        "name": "&has_bottom_area",
        "type": "Integer"
      },
      {
        "name": "&bottom_area",
        "type": "Real"
      },
      {
        "name": "&has_bottom_plan_area",
        "type": "Integer"
      },
      {
        "name": "&bottom_plan_area",
        "type": "Real"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get various areas information of a simple trimesh Element trimesh based on given tolerance and assign the result to variables of corresponding names. For each type of area there is a corresponding Integer flag indicate that it is valid. For example: the Real top_area only valid when Integer has_top_area is 1. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_top_faces",
    "id": 3830,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "tolerance",
        "type": "Real"
      },
      {
        "name": "&patches_count",
        "type": "Integer"
      },
      {
        "name": "&patch_sizes",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&faces_count",
        "type": "Integer"
      },
      {
        "name": "&face_indices",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get all the top faces of a simple trimesh Element trimesh based on given tolerance and assign the total number to Integer faces_count and the list of face indices to Dynamic_Integer face_indices. These indices are grouped into continuous patches, the number of patches is returned in patches_count, and the sizes for indivisual patches are returned in patch_sizes. For example: faces_count = 8 and face_indices = { 1,3, 5,9,6, 12,13,7 } Trimesh Element Page 823 12d Model Macro Manual patches_count = 3 and patch_sizes = {3, 2, 3}. There are 8 top faces which are grouped into 3 patches, the first patch contains three triangles {1,3,5}, the second patch contains two triangles {9,6}, and the third patch contain three triangles {13,7}. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_bottom_faces",
    "id": 3827,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "tolerance",
        "type": "Real"
      },
      {
        "name": "&patches_count",
        "type": "Integer"
      },
      {
        "name": "&patch_sizes",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&faces_count",
        "type": "Integer"
      },
      {
        "name": "&face_indices",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get all the bottom faces of a simple trimesh Element trimesh based on given tolerance and assign the total number to Integer faces_count and the list of face indices to Dynamic_Integer face_indices. These indices are grouped into continuous patches, the number of patches is returned in patches_count, and the sizes for indivisual patches are returned in patch_sizes. For example: faces_count = 8 and face_indices = { 1,3, 5,9,6, 12,13,7 } patches_count = 3 and patch_sizes = {3, 2, 3}. There are 8 bottom faces which are grouped into 3 patches, the first patch contains three triangles {1,3,5}, the second patch contains two triangles {9,6}, and the third patch contain three triangles {13,7}. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_collapsing_faces",
    "id": 3828,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "tolerance",
        "type": "Real"
      },
      {
        "name": "&patches_count",
        "type": "Integer"
      },
      {
        "name": "&patch_sizes",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&faces_count",
        "type": "Integer"
      },
      {
        "name": "&face_indices",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get all the collapsing faces of a simple trimesh Element trimesh based on given tolerance and assign the total number to Integer faces_count and the list of face indices to Dynamic_Integer face_indices. These indices are grouped into continuous patches, the number of patches is returned in patches_count, and the sizes for indivisual patches are returned in patch_sizes. For example: faces_count = 8 and face_indices = { 1,3, 5,9,6, 12,13,7 } patches_count = 3 and patch_sizes = {3, 2, 3}. There are 8 collapsing faces which are grouped into 3 patches, the first patch contains three triangles {1,3,5}, the second patch contains two triangles {9,6}, and the third patch contain three triangles {13,7}. Page 824 Trimesh Element Chapter 5 12dPL Library Calls The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_trimesh_surrounding_faces",
    "id": 3829,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "tolerance",
        "type": "Real"
      },
      {
        "name": "&patches_count",
        "type": "Integer"
      },
      {
        "name": "&patch_sizes",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&faces_count",
        "type": "Integer"
      },
      {
        "name": "&face_indices",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get all the surrounding faces of a simple trimesh Element trimesh based on given tolerance and assign the total number to Integer faces_count and the list of face indices to Dynamic_Integer face_indices. These indices are grouped into continuous patches, the number of patches is returned in patches_count, and the sizes for indivisual patches are returned in patch_sizes. For example: faces_count = 8 and face_indices = { 1,3, 5,9,6, 12,13,7 } patches_count = 3 and patch_sizes = {3, 2, 3}. There are 8 surrounding faces which are grouped into 3 patches, the first patch contains three triangles {1,3,5}, the second patch contains two triangles {9,6}, and the third patch contain three triangles {13,7}. The Text error would be set to the corresponding error message if the function failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_sub_trimesh",
    "id": 3831,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "&sub_faces_ix",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&sub_mesh",
        "type": "Element"
      }
    ],
    "description": "Form a new Element sub_mesh from a given trimesh Element trimesh based on given patch of face indices Dynamic_Integer sub_face_ix. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_disjoint",
    "id": 5443,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh_input",
        "type": "Element"
      },
      {
        "name": "&disjoint_parts",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Split trimesh trimesh_input into disjoint components disjoint_parts. All vertices in each one of the trimesh results are connected. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_heal",
    "id": 5444,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&trimesh_in",
        "type": "Element"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Try to heal \"bad\" trimesh trimesh_in into a \"good\" one () by removing duplicated edges, faces, change edges, faces direction. If the input cannot be heal, some error message will be returned in return_message. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_face_heights_at_point",
    "id": 7625,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "px",
        "type": "Real"
      },
      {
        "name": "py",
        "type": "Real"
      },
      {
        "name": "&face_heights",
        "type": "Dynamic_Real"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Get the list of cut face_heights (z coordinate) of a vertical line at px py to the faces of Element trimesh. Some error message will be returned in return_message. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_trimesh_edge_info_by_string",
    "id": 7669,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&trimeshes",
        "type": "Dynamic_Element"
      },
      {
        "name": "strings",
        "type": "Dynamic_Element"
      },
      {
        "name": "set_edge_name",
        "type": "Integer"
      },
      {
        "name": "set_edge_colour",
        "type": "Integer"
      },
      {
        "name": "tolerance",
        "type": "Real"
      }
    ],
    "description": "Set the edge information of a list of trimeshes using the name and colour from a list of strings at close by position using Real tolerance. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_closest_point",
    "id": 7708,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "xp",
        "type": "Real"
      },
      {
        "name": "yp",
        "type": "Real"
      },
      {
        "name": "zp",
        "type": "Real"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&off",
        "type": "Real"
      },
      {
        "name": "&face",
        "type": "Integer"
      },
      {
        "name": "&edge",
        "type": "Integer"
      },
      {
        "name": "&vertex",
        "type": "Integer"
      }
    ],
    "description": "Get the cloest drop point from given 3d point (xp,yp,zp) to a given trimesh. The coordinate of the result is returned as Real numbers (x,y,z); the offset distance is returned in Real off; the face number, edge number and vertex number of the drop point are returned in Integer face, edge and Page 826 Trimesh Element Chapter 5 12dPL Library Calls vertex. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_furthest_point",
    "id": 7709,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "xp",
        "type": "Real"
      },
      {
        "name": "yp",
        "type": "Real"
      },
      {
        "name": "zp",
        "type": "Real"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&off",
        "type": "Real"
      },
      {
        "name": "&face",
        "type": "Integer"
      },
      {
        "name": "&edge",
        "type": "Integer"
      },
      {
        "name": "&vertex",
        "type": "Integer"
      }
    ],
    "description": "Get the furthest drop point from given 3d point (xp,yp,zp) to a given trimesh. The coordinate of the result is returned as Real numbers (x,y,z); the offset distance is returned in Real off; the face number, edge number and vertex number of the drop point are returned in Integer face, edge and vertex. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_lowest_point",
    "id": 7710,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "xp",
        "type": "Real"
      },
      {
        "name": "yp",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&face",
        "type": "Integer"
      }
    ],
    "description": "Get the lowest face point from given 2d point (xp,yp) of a given trimesh; the z-coordinate of the result is returned as Real numbers z; the trimesh face number is returned in Integer face. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_get_highest_point",
    "id": 7711,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "xp",
        "type": "Real"
      },
      {
        "name": "yp",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&face",
        "type": "Integer"
      }
    ],
    "description": "Get the highest face point from given 2d point (xp,yp) of a given trimesh; the z-coordinate of the result is returned as Real numbers z; the trimesh face number is returned in Integer face. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_flip_face",
    "id": 7750,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Integer"
      }
    ],
    "description": "Flip one face of given index face_ix of a given trimesh. A return value of zero indicates the function call was successful. Trimesh Element Page 827 12d Model Macro Manual"
  },
  {
    "name": "Trimesh_flip_faces",
    "id": 7751,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "face_ix",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Flip faces of given indices face_ix of a given trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_flip_faces",
    "id": 7759,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&trimesh",
        "type": "Element"
      }
    ],
    "description": "Flip all faces of a given trimesh. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Convert_to_polymesh",
    "id": 7746,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "deflection",
        "type": "Real"
      },
      {
        "name": "relative_deflection",
        "type": "Integer"
      },
      {
        "name": "&trimeshes",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Convert all trimesh in the list trimeshes to polymesh. If relative_deflection is not zero, then the angle deflection will be use as the maximum value in the conversion. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Convert_named_faces_to_polymesh",
    "id": 7747,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&trimeshes",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Convert all trimesh in the list trimeshes to polymesh.based on names of faces. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_tin_from_trimeshes_bottom",
    "id": 7761,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "trimeshes",
        "type": "Dynamic_Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "dis",
        "type": "Real"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "&tin",
        "type": "Tin"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Not yet ready Create a tin from the bottom faces of given trimeshes. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_trimesh_from_polygon",
    "id": 7859,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "trimesh_model",
        "type": "Model"
      },
      {
        "name": "trimesh_name",
        "type": "Text"
      },
      {
        "name": "trimesh_colour",
        "type": "Integer"
      },
      {
        "name": "trimesh_offset",
        "type": "Real"
      },
      {
        "name": "trimesh_depth",
        "type": "Real"
      },
      {
        "name": "do_holes",
        "type": "Integer"
      },
      {
        "name": "holes_model",
        "type": "Model"
      },
      {
        "name": "holes_name",
        "type": "Text"
      },
      {
        "name": "holes_colour",
        "type": "Integer"
      },
      {
        "name": "holes_offset",
        "type": "Real"
      },
      {
        "name": "holes_depth",
        "type": "Real"
      },
      {
        "name": "&error_message",
        "type": "Text"
      }
    ],
    "description": "Create trimeshes from input 3D polygon. The main trimesh is of given trimesh_name and trimesh_colour and will be added to trimesh_model. The top of the trimesh is the tin of the polygon translated vertically up by trimesh_offset. trimesh_offset can be negative and then the top of the trimesh is lower rather than above the tin of the polygon. The bottom of the trimesh is trimesh_depth vertically below the top of the trimesh of the polygon. trimesh_depth can be negative then the \"bottom\" of the trimesh is above the \"top\" of the trimesh. If do_holes is 1 then the holes (if any) of the input polygon are also to be used to create trimesh. The hole trimeshes is of given holes_name and holes_colour and will be added to holes_model. The top of the trimesh is the tin of the hole translated vertically up by holes_offset. holes_offset can be negative and then the top of the trimesh is lower rather than above the tin of the hole. The bottom of the trimesh is holes_depth vertically below the top of the trimesh of the hole. holes_depth can be negative then the \"bottom\" of the trimesh is above the \"top\" of the trimesh. Trimesh Element Page 829 12d Model Macro Manual Some error in the function call will be returned in the text error_message. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Trimesh_cookie_cut_by_polygon",
    "id": 7860,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&trimeshes",
        "type": "Dynamic_Element"
      },
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "output",
        "type": "Model"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Cookie cut all given trimeshes using a given polygon and add the result to given output model. The mode is not used for now. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_plot_frame",
    "id": 607,
    "returnType": "Element",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Create an Element of type Plot_Frame. The function return value gives the actual Element created. If the plot frame could not be created, then the returned Element will be null."
  },
  {
    "name": "Get_plot_frame_name",
    "id": 608,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the name of the plot frame in Element elt. The name value is returned in Text name. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_scale",
    "id": 609,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&scale",
        "type": "Real"
      }
    ],
    "description": "Get the scale of the plot frame in Element elt. The scale value is returned in Real scale. The value for scale is 1:scale. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_rotation",
    "id": 610,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&rotation",
        "type": "Real"
      }
    ],
    "description": "Get the rotation of the plot frame in Element elt. The name value is returned in Real rotation. The units for rotation are radians. A function return value of zero indicates the data was successfully returned. Plot Frame Element Page 831 12d Model Macro Manual"
  },
  {
    "name": "Get_plot_frame_origin",
    "id": 611,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      }
    ],
    "description": "Get the origin of the plot frame in Element elt. The x origin value is returned in Real x. The y origin value is returned in Real y. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_sheet_size",
    "id": 612,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&w",
        "type": "Real"
      },
      {
        "name": "&h",
        "type": "Real"
      }
    ],
    "description": "Get the sheet size of the plot frame in Element elt. The width value is returned in Real w. The height value is returned in Real h. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_sheet_size",
    "id": 613,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&size",
        "type": "Text"
      }
    ],
    "description": "Get the sheet size of the plot frame in Element elt. The sheet size is returned in Text size. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_margins",
    "id": 614,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&l",
        "type": "Real"
      },
      {
        "name": "&b",
        "type": "Real"
      },
      {
        "name": "&r",
        "type": "Real"
      },
      {
        "name": "&t",
        "type": "Real"
      }
    ],
    "description": "Get the sheet margins of the plot frame in Element elt. The left margin value is returned in Real l. The bottom margin value is returned in Real b. The right margin value is returned in Real r. Page 832 Plot Frame Element Chapter 5 12dPL Library Calls The top margin value is returned in Real t. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_text_size",
    "id": 615,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&text_size",
        "type": "Real"
      }
    ],
    "description": "Get the text size of the plot frame in Element elt. The text size is returned in Text text_size. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_draw_border",
    "id": 616,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&draw_border",
        "type": "Integer"
      }
    ],
    "description": "Get the draw border of the plot frame in Element elt. The draw border flag is returned in Integer draw_border. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_draw_viewport",
    "id": 617,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&draw_viewport",
        "type": "Integer"
      }
    ],
    "description": "Get the draw viewport of the plot frame in Element elt. The draw viewport flag is returned in Integer draw_viewport. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_draw_title_file",
    "id": 618,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&draw_title",
        "type": "Integer"
      }
    ],
    "description": "Get the draw title file of the plot frame in Element elt. The draw title file flag is returned in Integer draw_title. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_colour",
    "id": 619,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "Get the colour of the plot frame in Element elt. The colour value is returned Integer colour. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_textstyle",
    "id": 620,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&textstyle",
        "type": "Text"
      }
    ],
    "description": "Get the textstyle of the plot frame in Element elt. The textstyle value is returned in Text textstyle. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_plotter",
    "id": 621,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&plotter",
        "type": "Integer"
      }
    ],
    "description": "Get the plotter of the plot frame in Element elt. The plotter value is returned in Integer plotter. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_plotter_name",
    "id": 686,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&plotter_name",
        "type": "Text"
      }
    ],
    "description": "Get the plotter name of the plot frame in Element elt. The plotter name is returned in the Text plotter_name. A function return value of zero indicates the plotter _name was returned successfully."
  },
  {
    "name": "Get_plot_frame_title_1",
    "id": 623,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&title",
        "type": "Text"
      }
    ],
    "description": "Get the first title line of the plot frame in Element elt. The title line value is returned in Text title. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_title_2",
    "id": 624,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&title",
        "type": "Text"
      }
    ],
    "description": "Get the second title line of the plot frame in Element elt. The title line value is returned in Text title. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_plot_frame_title_file",
    "id": 625,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&title_file",
        "type": "Text"
      }
    ],
    "description": "Get the title file of the plot frame in Element elt. The title file value is returned in Text title_file. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_plot_frame_name",
    "id": 626,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Set the name of the plot frame in Element elt. Plot Frame Element Page 835 12d Model Macro Manual The name value is defined in Text name. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_scale",
    "id": 627,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "scale",
        "type": "Real"
      }
    ],
    "description": "Set the scale of the plot frame in Element elt. The scale value is defined in Real scale. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_rotation",
    "id": 628,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "rotation",
        "type": "Real"
      }
    ],
    "description": "Set the rotation of the plot frame in Element elt. The rotation value is defined in Real rotation. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_origin",
    "id": 629,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Set the origin of the plot frame in Element elt. The x origin value is defined in Real x. The y origin value is defined in Real y. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_sheet_size",
    "id": 630,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "w",
        "type": "Real"
      },
      {
        "name": "h",
        "type": "Real"
      }
    ],
    "description": "Set the sheet size of the plot frame in Element elt. The width value is defined in Real w. The height value is defined in Real h. Page 836 Plot Frame Element Chapter 5 12dPL Library Calls A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_sheet_size",
    "id": 631,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "size",
        "type": "Text"
      }
    ],
    "description": "Set the sheet size of the plot frame in Element elt. The sheet size is defined in Text size. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_margins",
    "id": 632,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "l",
        "type": "Real"
      },
      {
        "name": "b",
        "type": "Real"
      },
      {
        "name": "r",
        "type": "Real"
      },
      {
        "name": "t",
        "type": "Real"
      }
    ],
    "description": "Set the sheet margins of the plot frame in Element elt. The left margin value is defined in Real l. The bottom margin value is defined in Real b. The right margin value is defined in Real r. The top margin value is defined in Real t. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_text_size",
    "id": 633,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "text_size",
        "type": "Real"
      }
    ],
    "description": "Set the text size of the plot frame in Element elt. The text size is defined in Text text_size. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_draw_border",
    "id": 634,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "draw_border",
        "type": "Integer"
      }
    ],
    "description": "Set the draw border of the plot frame in Element elt. The draw border flag is defined in Integer draw_border. Plot Frame Element Page 837 12d Model Macro Manual A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_draw_viewport",
    "id": 635,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "draw_viewport",
        "type": "Integer"
      }
    ],
    "description": "Set the draw viewport of the plot frame in Element elt. The draw viewport flag is defined in Integer draw_viewport. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_draw_title_file",
    "id": 636,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "draw_title",
        "type": "Integer"
      }
    ],
    "description": "Set the draw title file of the plot frame in Element elt. The draw title file flag is defined in Integer draw_title. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_colour",
    "id": 637,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Set the colour of the plot frame in Element elt. The colour value is defined Integer colour. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_textstyle",
    "id": 638,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "textstyle",
        "type": "Text"
      }
    ],
    "description": "Set the textstyle of the plot frame in Element elt. The textstyle value is defined in Text textstyle A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_plotter",
    "id": 639,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "plotter",
        "type": "Integer"
      }
    ],
    "description": "Set the plotter of the plot frame in Element elt. The plotter value is defined in Integer plotter. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_plotter_name",
    "id": 687,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "plotter_name",
        "type": "Text"
      }
    ],
    "description": "Set the plotter name of the plot frame in Element elt. The plotter name is given in the Text plotter_name. A function return value of zero indicates the plotter name was successfully set."
  },
  {
    "name": "Set_plot_frame_plot_file",
    "id": 640,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "plot_file",
        "type": "Text"
      }
    ],
    "description": "Set the plot file of the plot frame in Element elt The plot file value is defined in Text plot_file. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_title_1",
    "id": 641,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "title_1",
        "type": "Text"
      }
    ],
    "description": "Set the first title line of the plot frame in Element elt. The title line value is defined in Text title_1. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_plot_frame_title_file",
    "id": 643,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "title_file",
        "type": "Text"
      }
    ],
    "description": "Set the title file of the plot frame in Element elt The title file value is defined in Text title_file. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_2d",
    "id": 77,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "zvalue",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type 2d. The Element has num_pts points with (x,y) values given in the Real arrays x[] and y[]. The height of the string is given by the Real zvalue. The function return value gives the actual Element created. If the 2d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_2d",
    "id": 448,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type 2d with room for num_pts (x,y) points. The actual x and y values and the height of the 2d string are set after the string is created. If the 2d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_2d",
    "id": 665,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type 2d with room for num_pts (x,y) points, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. The actual x and y values and the height of the 2d string are set after the string is created. If the 2d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Get_2d_data",
    "id": 70,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "&zvalue",
        "type": "Real"
      },
      {
        "name": "max_pt",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For a 2d Element elt, get the string height and the (x,y) data for max_pts points starting at point number start_pt. This routine allows the user to return the data from a 2d string in user specified chunks. This is necessary if the number of points in the string is greater than the size of the arrays available to contain the information. As in the previous function, the maximum number of points that can be returned is given by max_pts (usually the size of the arrays). However, for this function, the point data returned starts at point number start_pt rather than point one. The (x,y) values at each string point are returned in the Real arrays x[] and y[]. The actual number of points returned is given by Integer num_pts num_pts <= max_pts The height of the 2d string is returned in the Real zvalue. If the Element elt is not of type 2d, then num_pts is set to zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned. Note A start_pt of one gives the same result as for the previous function."
  },
  {
    "name": "Get_2d_data",
    "id": 75,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Get the height of the 2d string given by Element elt. The height of the string is returned in Real z. A function return value of zero indicates the height was successfully returned."
  },
  {
    "name": "Set_2d_data",
    "id": 71,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y) data for the first num_pts points of the 2d Element elt. This function allows the user to modify a large number of points of the string in one call. The maximum number of points that can be set is given by the number of points in the string. The (x,y) values at each string point are given in the Real arrays x[] and y[]. The number of points to be set is given by Integer num_pts If the Element elt is not of type 2d, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Note This function can not create new 2d Elements - it only modifies existing 2d Elements."
  },
  {
    "name": "Set_2d_data",
    "id": 72,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For the 2d Element elt, set the (x,y) data for num_pts points starting at point number start_pt. This function allows the user to modify a large number of points of the string in one call starting at point number start_pt rather than point one. The maximum number of points that can be set is given by the difference between the number of points in the string and the value of start_pt. Page 844 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls The (x,y) values for the string points are given in the Real arrays x[] and y[]. The number of the first string point to be modified is start_pt. The total number of points to be set is given by Integer num_pts If the Element elt is not of type 2d, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Notes (a) A start_pt of one gives the same result as the previous function. (b) This function can not create new 2d Elements but only modify existing 2d Elements.\uf020"
  },
  {
    "name": "Set_2d_data",
    "id": 74,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Set the (x,y) data for the ith point of the string. The x value is given in Real x. The y value is given in Real y. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_2d_data",
    "id": 76,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Modify the height of the 2d Element elt. The new height is given in the Real z. A function return value of zero indicates the height was successfully set."
  },
  {
    "name": "Create_3d",
    "id": 295,
    "returnType": "Element",
    "parameters": [
      {
        "name": "line",
        "type": "Line"
      }
    ],
    "description": "Create an Element of type 3d from the Line line. The created Element will have two points with co-ordinates equal to the end points of the Line line. The function return value gives the actual Element created. If the 3d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_3d",
    "id": 84,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type 3d. The Element has num_pts points with (x,y,z) values given in the Real arrays x[], y[] and z[]. The function return value gives the actual Element created. If the 3d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_3d",
    "id": 449,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type 3d with room for num_pts (x,y,z) points. The actual x, y and z values of the 3d string are set after the string is created. If the 3d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_3d",
    "id": 666,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Page 846 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls Create an Element of type 3d with room for num_pts (x,y) points, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. The actual x, y and z values of the 3d string are set after the string is created. If the 3d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Get_3d_data",
    "id": 80,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z) data for the first max_pts points of the 3d Element elt. The (x,y,z) values at each string point are returned in the Real arrays x[], y[] and z[]. The maximum number of points that can be returned is given by max_pts (usually the size of the arrays). The point data returned starts at the first point and goes up to the minimum of max_pts and the number of points in the string. The actual number of points returned is returned by Integer num_pts num_pts <= max_pts If the Element elt is not of type 3d, then num_pts is returned as zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned. Get_3d_data(Element elt,Real x[],Real y[],Real z[],Integer max_pts,Integer &num_pts,Integer start_pt) Name Integer Get_3d_data(Element elt,Real x[],Real y[],Real z[],Integer max_pts,Integer &num_pts,Integer start_pt) Description For a 3d Element elt, get the (x,y,z) data for max_pts points starting at point number start_pt. This routine allows the user to return the data from a 3d string in user specified chunks. This is necessary if the number of points in the string is greater than the size of the arrays available to contain the information. As in the previous function, the maximum number of points that can be returned is given by max_pts (usually the size of the arrays). However, for this function, the point data returned starts at point number start_pt rather than point one. The (x,y,z) values at each string point are returned in the Real arrays x[], y[] and z[]. The actual number of points returned is given by Integer num_pts num_pts <= max_pts If the Element elt is not of type 3d, then num_pts is set to zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned. Note Strings Replaced by Super Strings Page 847 12d Model Macro Manual A start_pt of one gives the same result as for the previous function. Get_3d_data(Element elt,Integer i, Real &x,Real &y,Real &z) Name Integer Get_3d_data(Element elt,Integer i, Real &x,Real &y,Real &z) Description Get the (x,y,z) data for the ith point of the string. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. A function return value of zero indicates the data was successfully returned. Set_3d_data(Element elt,Real x[],Real y[],Real z[],Integer num_pts) Name Integer Set_3d_data(Element elt,Real x[],Real y[],Real z[],Integer num_pts) Description Set the (x,y,z) data for the first num_pts points of the 3d Element elt. This function allows the user to modify a large number of points of the string in one call. The maximum number of points that can be set is given by the number of points in the string. The (x,y,z) values for each string point are given in the Real arrays x[], y[] and z[]. The number of points to be set is given by Integer num_pts If the Element elt is not of type 3d, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Note This function can not create new 3d Elements but only modify existing 3d Elements."
  },
  {
    "name": "Set_3d_data",
    "id": 83,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For the 3d Element elt, set the (x,y,z) data for num_pts points, starting at point number start_pt. This function allows the user to modify a large number of points of the string in one call starting at point number start_pt rather than point one. The maximum number of points that can be set is given by the difference between the number of points in the string and the value of start_pt. The (x,y,z) values for the string points are given in the Real arrays x[], y[] and z[]. The number of the first string point to be modified is start_pt. The total number of points to be set is given by Integer num_pts If the Element elt is not of type 3d, then nothing is modified and the function return value is set to a Page 848 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls non- zero value. A function return value of zero indicates the data was successfully set. Notes (a) A start_pt of one gives the same result as the previous function. (b) This function can not create new 3d Elements but only modify existing 3d Elements. Set_3d_data(Element elt,Integer i,Real x,Real y,Real z) Name Integer Set_3d_data(Element elt,Integer i,Real x,Real y,Real z) Description Set the (x,y,z) data for the ith point of the string. The x value is given in Real x. The y value is given in Real y. The z value is given in Real z. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_4d",
    "id": 91,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "t[]",
        "type": "Text"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type 4d. The Element has num_pts points with (x,y,z,text) values given in the Real arrays x[], y[], z[] and Text array t[]. The function return value gives the actual Element created. If the 4d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_4d",
    "id": 450,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type 4d with room for num_pts (x,y,z,text) points. The actual x, y, z and text values of the 4d string are set after the string is created. Page 850 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls If the 4d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_4d",
    "id": 667,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type 4d with room for num_pts (x,y) points, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. The actual x, y, z and text values of the 4d string are set after the string is created. If the 4d string could not be created, then the returned Element will be null."
  },
  {
    "name": "Set_4d_data",
    "id": 87,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "t[]",
        "type": "Text"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,text) data for the first num_pts points of the 4d Element elt. This function allows the user to modify a large number of points of the string in one call. The maximum number of points that can be set is given by the number of points in the string. The (x,y,z,text) values at each string point are given in the Real arrays x[], y[], z[] and Text array t[]. The number of points to be set is given by Integer num_pts If the Element elt is not of type 4d, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Note This function can not create new 4d Elements but only modify existing 4d Elements."
  },
  {
    "name": "Set_4d_data",
    "id": 88,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "t[]",
        "type": "Text"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For the 4d Element elt, set the (x,y,z,text) data for num_pts points, starting at point number start_pt. This function allows the user to modify a large number of points of the string in one call starting at point number start_pt rather than point one. The maximum number of points that can be set is given by the difference between the number of points in the string and the value of start_pt. The (x,y,z,text) values for the string points are given in the Real arrays x[], y[], z[] and Text array t[]. Strings Replaced by Super Strings Page 851 12d Model Macro Manual The number of the first string point to be modified is start_pt. The total number of points to be set is given by Integer num_pts If the Element elt is not of type 4d, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Notes (a) A start_pt of one gives the same result as the previous function. (b) This function can not create new 4d Elements but only modify existing 4d Elements."
  },
  {
    "name": "Set_4d_data",
    "id": 90,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "t",
        "type": "Text"
      }
    ],
    "description": "Set the (x,y,z,text) data for the ith point of the string. The x value is given in Real x. The y value is given in Real y. The z value is given in Real z. The text value is given in Text t. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_data",
    "id": 85,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "t[]",
        "type": "Text"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z,text) data for the first max_pts points of the 4d Element elt. The (x,y,z,text) values at each string point are returned in the Real arrays x[], y[], z[] and Text array t[]. The maximum number of points that can be returned is given by max_pts (usually the size of the arrays). The point data returned starts at the first point and goes up to the minimum of max_pts and the number of points in the string. The actual number of points returned is returned by Integer num_pts num_pts <= max_pts If the Element elt is not of type 4d, then num_pts is set to zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_4d_data",
    "id": 89,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&t",
        "type": "Text"
      }
    ],
    "description": "Get the (x,y,z,text) data for the ith point of the string. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. The text value is returned in Text t. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_textstyle_data",
    "id": 1667,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "d",
        "type": "Textstyle_Data"
      }
    ],
    "description": "For the Element elt of type 4d, set the Textstyle_Data to be d. Setting a Textstyle_Data means that all the individual values that are contained in the Textstyle_Data are set rather than having to set each one individually. Strings Replaced by Super Strings Page 853 12d Model Macro Manual If the value is blank in the Textstyle_Data d then the value in the 4d string would be left unchanged. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates the Textstyle_Data was successfully set."
  },
  {
    "name": "Get_4d_textstyle_data",
    "id": 1668,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&d",
        "type": "Textstyle_Data"
      }
    ],
    "description": "For the Element elt of type 4d, get the Textstyle_Data for the string and return it as d. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates the Textstyle_Data was successfully returned."
  },
  {
    "name": "Set_4d_units",
    "id": 447,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "units_mode",
        "type": "Integer"
      }
    ],
    "description": "Set the units used for the text parameters of the 4d Element elt. The mode is given as Integer units_mode. For the values of units_mode, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_units",
    "id": 441,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&units_mode",
        "type": "Integer"
      }
    ],
    "description": "Get the units used for the text parameters of the 4d Element elt. The mode is returned as Integer units_mode. For the values of units_mode, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_size",
    "id": 442,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "size",
        "type": "Real"
      }
    ],
    "description": "Set the size of the characters of the 4d text of the Element elt. Page 854 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls The text size is given as Real size. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_size",
    "id": 436,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&size",
        "type": "Real"
      }
    ],
    "description": "Get the size of the characters of the 4d text of the Element elt. The text size is returned as Real size. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_justify",
    "id": 446,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "justify",
        "type": "Integer"
      }
    ],
    "description": "Set the justification used for the text parameters of the 4d Element elt. The justification is given as Integer justify. For the values of justify and their meaning, see 5.9 Textstyle Data. A function return vale of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_justify",
    "id": 440,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&justify",
        "type": "Integer"
      }
    ],
    "description": "Get the justification used for the text parameters of the 4d Element elt. The justification is returned as Integer justify. For the values of justify and their meaning, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_angle",
    "id": 445,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "Set the angle of rotation (in radians) about each 4d point (x,y) of the text of the 4d Element elt. The angle is given as Real angle. Strings Replaced by Super Strings Page 855 12d Model Macro Manual For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_angle",
    "id": 439,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "Get the angle of rotation (in radians) about each 4d point (x,y) of the text of the 4d Element elt. angle is measured in an anti-clockwise direction from the horizontal axis. The angle is returned as Real angle. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_angle2",
    "id": 3573,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "angle2",
        "type": "Real"
      }
    ],
    "description": "Set the 3D beta angle of rotation (in radians) about each 4d point (x,y) of the text of the 4d Element elt. The angle is given as Real angle2. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_angle2",
    "id": 3570,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&angle2",
        "type": "Real"
      }
    ],
    "description": "Get the 3D beta angle of rotation (in radians) about each 4d point (x,y) of the text of the 4d Element elt.. The angle is returned as Real angle2. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_angle3",
    "id": 3574,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "angle3",
        "type": "Real"
      }
    ],
    "description": "Set the 3D gamma angle of rotation (in radians) about each 4d point (x,y) of the text of the 4d Element elt. Page 856 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls The angle is given as Real angle3. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_angle3",
    "id": 3571,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&angle3",
        "type": "Real"
      }
    ],
    "description": "Get the 3D gamma angle of rotation (in radians) about each 4d point (x,y) of the text of the 4d Element elt. The angle is returned as Real angle2. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_offset",
    "id": 443,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "offset",
        "type": "Real"
      }
    ],
    "description": "Set the offset distance of the text to be used for each 4d point (x,y) for the 4d Element elt. The offset is returned as Real offset. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_4d_offset",
    "id": 437,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&offset",
        "type": "Real"
      }
    ],
    "description": "Get the offset distance of the text to be used for each 4d point (x,y) for the 4d Element elt. The offset is returned as Real offset. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_rise",
    "id": 444,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "rise",
        "type": "Real"
      }
    ],
    "description": "Set the rise distance of the text to be used for each 4d point (x,y) for the 4d Element elt. Strings Replaced by Super Strings Page 857 12d Model Macro Manual The rise is given as Real rise. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_rise",
    "id": 438,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&rise",
        "type": "Real"
      }
    ],
    "description": "Get the rise distance of the text to be used for each 4d point (x,y) for the 4d Element elt. The rise is returned as Real rise. For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_height",
    "id": 648,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "Set the height of the characters of the 4d text of the Element elt. The text height is given as Real height. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_height",
    "id": 644,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&height",
        "type": "Real"
      }
    ],
    "description": "Get the height of the characters of the 4d text of the Element elt. The text height is returned as Real height. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_slant",
    "id": 649,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "slant",
        "type": "Real"
      }
    ],
    "description": "Set the slant of the characters of the 4d text of the Element elt. The text slant is given as Real slant. Note that the value of slant is measured as tangent here, where in 12da the value is writen in decimal angle. Page 858 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls The valid value for slant much be at least -1 and at most 1 (as the angle much be between -45 to 45 degree). A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_slant",
    "id": 645,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&slant",
        "type": "Real"
      }
    ],
    "description": "Get the slant of the characters of the 4d text of the Element elt. The text slant is returned as Real slant. Note that the value of slant is measured as tangent here, where in 12da the value is writen in decimal angle. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_x_factor",
    "id": 650,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xfact",
        "type": "Real"
      }
    ],
    "description": "Set the x factor of the characters of the 4d text of the Element elt. The text x factor is given as Real xfact. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_x_factor",
    "id": 646,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&xfact",
        "type": "Real"
      }
    ],
    "description": "Get the x factor of the characters of the 4d text of the Element elt. The text x factor is returned as Real xfact. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_style",
    "id": 651,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "style",
        "type": "Text"
      }
    ],
    "description": "Set the style of the characters of the 4d text of the Element elt. The text style is given as Text style. Strings Replaced by Super Strings Page 859 12d Model Macro Manual A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_4d_style",
    "id": 647,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&style",
        "type": "Text"
      }
    ],
    "description": "Get the style of the characters of the 4d text of the Element elt. The text style is returned as Text style. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_4d_ttf_underline",
    "id": 2588,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "underline",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, set the underline state to underline. If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates underlined was successfully set."
  },
  {
    "name": "Get_4d_ttf_underline",
    "id": 2584,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&underline",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, get the underline state and return it in underline. If underline = 1, then for a true type font the text will be underlined. If underline = 0, then text will not be underlined. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates underlined was successfully returned."
  },
  {
    "name": "Set_4d_ttf_strikeout",
    "id": 2589,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "strikeout",
        "type": "Integer"
      }
    ],
    "description": "Page 860 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls For the Element elt of type 4d, set the strikeout state to strikeout. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates strikeout was successfully set."
  },
  {
    "name": "Get_4d_ttf_strikeout",
    "id": 2585,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&strikeout",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, get the strikeout state and return it in strikeout. For a diagram, see 5.9 Textstyle Data. If strikeout = 1, then for a true type font the text will be strikeout. If strikeout = 0, then text will not be strikeout. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates strikeout was successfully returned."
  },
  {
    "name": "Set_4d_ttf_weight",
    "id": 2591,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "weight",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, set the font weight to weight. For the list of allowable weights, go to Allowable Weights A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates weight was successfully set."
  },
  {
    "name": "Get_4d_ttf_weight",
    "id": 2587,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&weight",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, get the font weight and return it in weight. Allowable Weights The allowable numbers for weight are: 0 = FW_DONTCARE 100 = FW_THIN 200 = FW_EXTRALIGHT 300 = FW_LIGHT Strings Replaced by Super Strings Page 861 12d Model Macro Manual 400 = FW_NORMAL 500 = FW_MEDIUM 600 = FW_SEMIBOLD 700 = FW_BOLD 800 = FW_EXTRABOLD 900 = FW_HEAVY Note that in the distributed file set_ups.h these are defined as: #define FW_DONTCARE 0 #define FW_THIN 100 #define FW_EXTRALIGHT 200 #define FW_LIGHT 300 #define FW_NORMAL 400 #define FW_MEDIUM 500 #define FW_SEMIBOLD 600 #define FW_BOLD 700 #define FW_EXTRABOLD 800 #define FW_HEAVY 900 #define FW_ULTRALIGHT FW_EXTRALIGHT #define FW_REGULAR FW_NORMAL #define FW_DEMIBOLD FW_SEMIBOLD #define FW_ULTRABOLD FW_EXTRABOLD #define FW_BLACK FW_HEAVY A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates weight was successfully returned."
  },
  {
    "name": "Set_4d_ttf_italic",
    "id": 2590,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "italic",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, set the italic state to italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates italic was successfully set."
  },
  {
    "name": "Get_4d_ttf_italic",
    "id": 2586,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&italic",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, get the italic state and return it in italic. If italic = 1, then for a true type font the text will be italic. If italic = 0, then text will not be italic. Page 862 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates italic was successfully returned."
  },
  {
    "name": "Set_4d_ttf_outline",
    "id": 2770,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "outline",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, set the outline state to outline. If outline = 1, then for a true type font the text will be only shown in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates outline was successfully set."
  },
  {
    "name": "Get_4d_ttf_outline",
    "id": 2769,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&outline",
        "type": "Integer"
      }
    ],
    "description": "For the Element elt of type 4d, get the outline state and return it in outline. If outline = 1, then for a true type font the text will be shown only in outline. If outline = 0, then text will not be only shown in outline. For a diagram, see 5.9 Textstyle Data. A non-zero function return value is returned if elt is not of type 4d. A function return value of zero indicates outline was successfully returned."
  },
  {
    "name": "Set_4d_whiteout",
    "id": 2750,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the 4d Element elt, set the colour number of the colour used for the whiteout box around vertex text, to be colour. If no text whiteout is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_4d_whiteout",
    "id": 2749,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the 4d Element elt, get the colour number that is used for the whiteout box around vertex text. The whiteout colour is returned as Integer colour. NO_COLOUR is the returned as the colour number if whiteout is not being used. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Set_4d_border",
    "id": 2760,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the 4d Element elt, set the colour number of the colour used for the border of the whiteout box around vertex text, to be colour. If no whiteout border is required, then set the colour number to NO_COLOUR. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff). For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Get_4d_border",
    "id": 2759,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "&colour",
        "type": "Integer"
      }
    ],
    "description": "For the 4d Element elt, get the colour number that is used for the border of the whiteout box around vertex text. The whiteout border colour is returned as Integer colour. NO_COLOUR is the returned as the colour number if there is no whiteout border. Note: The colour number for \"view colour\" is VIEW_COLOUR (or 2147483647 - that is 0x7fffffff) For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Get_4d_border_style",
    "id": 3572,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "element",
        "type": "Element"
      },
      {
        "name": "&style",
        "type": "Integer"
      }
    ],
    "description": "For the 4d Element elt, get the style that is used for the border of the whiteout box around vertex text. The value is returned as Integer style. 1 for rectangle 2 for circle 3 for capsule 4 for bevel 5 for triangle 1 (pointed at top) 6 for triangle 2 (flat line on top) 7 for pentagon 1 (pointed at top) 8 for pentagon 2 (flat line on top) 9 for hexagon 1 (pointed at top) 10 for hexagon 2 (flat line on top) 11 for octagon 1 (pointed at top) 12 for octagon 2 (flat line on top) For a diagram, see 5.9 Textstyle Data. A function return value of zero indicates the colour number was successfully returned."
  },
  {
    "name": "Create_pipe",
    "id": 676,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type pipe. The Element has num_pts points with (x,y,z) values given in the Real arrays x[], y[] and z[]. The function return value gives the actual Element created. If the pipe string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_pipe",
    "id": 677,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type pipe with room for num_pts (x,y,z) points. The actual x, y and z values of the pipe string are set after the string is created. If the pipe string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_pipe",
    "id": 678,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type pipe with room for num_pts (x,y) points, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. The actual x, y and z values of the pipe string are set after the string is created. If the pipe string could not be created, then the returned Element will be null."
  },
  {
    "name": "Get_pipe_data",
    "id": 80,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      }
    ],
    "description": "Page 866 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls Get the (x,y,z) data for the first max_pts points of the pipe Element elt. The (x,y,z) values at each string point are returned in the Real arrays x[], y[] and z[]. The maximum number of points that can be returned is given by max_pts (usually the size of the arrays). The point data returned starts at the first point and goes up to the minimum of max_pts and the number of points in the string. The actual number of points returned is returned by Integer num_pts num_pts <= max_pts If the Element elt is not of type pipe, then num_pts is returned as zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned. Set_pipe_data(Element elt,Real x[],Real y[],Real z[],Integer num_pts) Name Integer Set_pipe_data(Element elt,Real x[],Real y[],Real z[],Integer num_pts) Description Set the (x,y,z) data for the first num_pts points of the pipe Element elt. This function allows the user to modify a large number of points of the string in one call. The maximum number of points that can be set is given by the number of points in the string. The (x,y,z) values for each string point are given in the Real arrays x[], y[] and z[]. The number of points to be set is given by Integer num_pts If the Element elt is not of type pipe, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Note This function can not create new pipe Elements but only modify existing pipe Elements."
  },
  {
    "name": "Get_pipe_data",
    "id": 83,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For a pipe Element elt, get the (x,y,z) data for max_pts points starting at point number start_pt. This routine allows the user to return the data from a pipe string in user specified chunks. This is necessary if the number of points in the string is greater than the size of the arrays available to contain the information. As in the previous function, the maximum number of points that can be returned is given by max_pts (usually the size of the arrays). However, for this function, the point data returned starts at point number start_pt rather than point one. The (x,y,z) values at each string point are returned in the Real arrays x[], y[] and z[]. The actual number of points returned is given by Integer num_pts Strings Replaced by Super Strings Page 867 12d Model Macro Manual num_pts <= max_pts If the Element elt is not of type pipe, then num_pts is set to zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned. Note A start_pt of one gives the same result as for the previous function. Set_pipe_data(Element elt,Real x[],Real y[],Real z[],Integer num_pts,Integer start_pt) Name Integer Set_pipe_data(Element elt,Real x[],Real y[],Real z[],Integer num_pts,Integer start_pt) Description For the pipe Element elt, set the (x,y,z) data for num_pts points, starting at point number start_pt. This function allows the user to modify a large number of points of the string in one call starting at point number start_pt rather than point one. The maximum number of points that can be set is given by the difference between the number of points in the string and the value of start_pt. The (x,y,z) values for the string points are given in the Real arrays x[], y[] and z[]. The number of the first string point to be modified is start_pt. The total number of points to be set is given by Integer num_pts If the Element elt is not of type pipe, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Notes (a) A start_pt of one gives the same result as the previous function. (b) This function can not create new pipe Elements but only modify existing pipe Elements. Get_pipe_data(Element elt,Integer i, Real &x,Real &y,Real &z) Name Integer Get_pipe_data(Element elt,Integer i, Real &x,Real &y,Real &z) Description Get the (x,y,z) data for the ith point of the string. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. A function return value of zero indicates the data was successfully returned. Set_pipe_data(Element elt,Integer i,Real x,Real y,Real z) Name Integer Set_pipe_data(Element elt,Integer i,Real x,Real y,Real z) Description Set the (x,y,z) data for the ith point of the string. Page 868 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls The x value is given in Real x. The y value is given in Real y. The z value is given in Real z. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_pipe_diameter",
    "id": 681,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&diameter",
        "type": "Real"
      }
    ],
    "description": "Get the pipe diameter of the string Element elt. The pipe diameter is returned in Real diameter. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_pipe_diameter",
    "id": 679,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "diameter",
        "type": "Real"
      }
    ],
    "description": "Set the pipe diameter of the string Element elt. The pipe diameter is given as Real diameter. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_pipe_justify",
    "id": 682,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&justify",
        "type": "Integer"
      }
    ],
    "description": "Get the justification used for the pipe Element elt The justification is returned as Integer justify. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_pipe_justify",
    "id": 680,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "justify",
        "type": "Integer"
      }
    ],
    "description": "Set the justification used for the text parameter of the pipe Element elt. The justification is given as Integer justify. Strings Replaced by Super Strings Page 869 12d Model Macro Manual A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_polyline",
    "id": 481,
    "returnType": "Element",
    "parameters": [
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "bulge[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type polyline. The Element has num_pts points with (x,y,z) values given in the Real arrays x[], y[] and z[], and arcs between consecutive points given in the Real array r[] and the Integer array bulge[]. The radius of the arc between the nth and the n+1 point is given by r[n] and the arc is on the right of the line joining the nth and n+1 point if r[n] is positive, and on the left if r[n] is negative. Hence the absolute value of r[n] gives the radius of the curve between the nth and n+1 point and the sign of r[n] defines what side the curve lies on. The value of bulge[n] defines whether the arc is a minor or major arc. A value of 0 denotes a minor arc and 1 a major arc. The function return value gives the actual Element created. If the polyline string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_polyline",
    "id": 482,
    "returnType": "Element",
    "parameters": [
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Create an Element of type Polyline with room for num_pts (x,y,z,r,bulge) points. The actual x, y, z, r, and bulge values of the polyline string are set after the string is created. If the polyline string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_polyline",
    "id": 554,
    "returnType": "Element",
    "parameters": [
      {
        "name": "seg",
        "type": "Segment"
      }
    ],
    "description": "Create an Element of type Polyline from the Segment seg. The segment may be a Line, or Arc. The created Element will have two points with co-ordinates equal to the end points of the Segment seg. The function return value gives the actual Element created. If the polyline string could not be created, then the returned Element will be null."
  },
  {
    "name": "Get_polyline_data",
    "id": 483,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "b[]",
        "type": "Integer"
      },
      {
        "name": "max_pts",
        "type": "Integer"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z,r,b) data for the first max_pts points of the polyline Element elt. The (x,y,z,r,b) values at each string point are returned in the Real arrays x[], y[], z[], r[] and b[]. The maximum number of points that can be returned is given by max_pts (usually the size of the arrays). The point data returned starts at the first point and goes up to the minimum of max_pts and the number of points in the string. The actual number of points returned is returned by Integer num_pts num_pts <= max_pts If the Element elt is not of type Polyline, then num_pts is returned as zero and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_polyline_data",
    "id": 485,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&r",
        "type": "Real"
      },
      {
        "name": "&f",
        "type": "Integer"
      }
    ],
    "description": "Get the (x,y,z,r,f) data for the ith point of the Polyline Element elt. The x value is returned in Real x. The y value is returned in Real y. The z value is returned in Real z. The radius value is returned in Real r. The minor/major value is returned in Integer f. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_polyline_data",
    "id": 486,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "f[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,r,f) data for the first num_pts points of the polyline Element elt. This function allows the user to modify a large number of points of the string in one call. The maximum number of points that can be set is given by the number of points in the string. The (x,y,z,r,f) values for each string point are given in the Real arrays x[], y[], z[], r[] and f[]. Strings Replaced by Super Strings Page 873 12d Model Macro Manual The number of points to be set is given by Integer num_pts If the Element elt is not of type Polyline, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Note This function can not create new Polyline Elements but only modify existing Polyline Elements."
  },
  {
    "name": "Set_polyline_data",
    "id": 487,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      },
      {
        "name": "z[]",
        "type": "Real"
      },
      {
        "name": "r[]",
        "type": "Real"
      },
      {
        "name": "f[]",
        "type": "Integer"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "start_pt",
        "type": "Integer"
      }
    ],
    "description": "For the polyline Element elt, set the (x,y,z,r,f) data for num_pts points, starting at point number start_pt. This function allows the user to modify a large number of points of the string in one call starting at point number start_pt rather than point one. The maximum number of points that can be set is given by the difference between the number of points in the string and the value of start_pt. The (x,y,z,r,f) values for the string points are given in the Real arrays x[], y[], z[], r[] and f[]. The number of the first string point to be modified is start_pt. The total number of points to be set is given by Integer num_pts If the Element elt is not of type Polyline, then nothing is modified and the function return value is set to a non-zero value. A function return value of zero indicates the data was successfully set. Notes (a) A start_pt of one gives the same result as the previous function. (b) This function can not create new Polyline Elements but only modify existing Polyline Elements."
  },
  {
    "name": "Set_polyline_data",
    "id": 488,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "r",
        "type": "Real"
      },
      {
        "name": "f",
        "type": "Integer"
      }
    ],
    "description": "Set the (x,y,z,r,f) data for the ith point of the string. The x value is given in Real x. The y value is given in Real y. The z value is given in Real z. The radius value is given in Real r. The minor/major value is given in Integer f. A function return value of zero indicates the data was successfully set. Page 874 Strings Replaced by Super Strings Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Create_align",
    "id": 92,
    "returnType": "Element",
    "parameters": [],
    "description": "Create an Element of type Alignment. The function return value gives the actual Element created. If the Alignment string could not be created, then the returned Element will be null."
  },
  {
    "name": "Create_align",
    "id": 670,
    "returnType": "Element",
    "parameters": [
      {
        "name": "seed",
        "type": "Element"
      }
    ],
    "description": "Create an Element of type Alignment, and set the colour, name, style etc. of the new string to be the same as those from the Element seed. If the alignment string could not be created, then the returned Element will be null."
  },
  {
    "name": "Append_hip",
    "id": 93,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Page 876 Alignment String Element Chapter 5 12dPL Library Calls Append a horizontal intersection point (hip) with plan co-ordinates (x,y) to the Element elt . The radius and spiral lengths are set to zero. The order in which the hips are appended is taken as the order of the hips in the Alignment string. The hips must be appended in order of increasing chainage along the Alignment string. Append_hip is used to place the first hip as well as the subsequent hips. A function return value of zero indicates that the hip was successfully appended."
  },
  {
    "name": "Append_hip",
    "id": 94,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "Append a horizontal intersection point (hip) with plan co-ordinates (x,y) and curve radius rad to the Element elt. The spiral lengths are set to zero. A zero curve radius indicates that no curve is present. A function return value of zero indicates that the hip was successfully appended."
  },
  {
    "name": "Append_hip",
    "id": 95,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "left_spiral",
        "type": "Real"
      },
      {
        "name": "right_spiral",
        "type": "Real"
      }
    ],
    "description": "Append to the Element elt a horizontal intersection point (hip) with co-ordinates (x,y), curve radius rad and left and right spirals of length left_spiral and right_spiral respectively. A zero curve radius indicates that no curve is present. A zero spiral length indicates that a spiral is not present. A function return value of zero indicates that the hip was successfully appended."
  },
  {
    "name": "Get_hip_points",
    "id": 100,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      }
    ],
    "description": "Get the number of hips, num_pts, in the Alignment Element elt. A function return value of zero indicates the number of hip points was successfully returned."
  },
  {
    "name": "Get_hip_data",
    "id": 102,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&rad",
        "type": "Real"
      }
    ],
    "description": "Get the plan co-ordinates (x,y) and the curve radius, rad, for the ith hip point of the Alignment string elt. If the radius is: positive, it is a right hand curve negative, it is a left hand curve. zero, there is no curve. A function return value of zero indicates the hip data was successfully returned."
  },
  {
    "name": "Get_hip_data",
    "id": 103,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&rad",
        "type": "Real"
      },
      {
        "name": "&left_spiral",
        "type": "Real"
      },
      {
        "name": "&right_spiral",
        "type": "Real"
      }
    ],
    "description": "Get the plan co-ordinates (x,y), the curve radius rad, and the left and right spiral lengths, left_spiral and right_spiral for the ith hip point of the Alignment Element elt. If the radius is: positive, it is a right hand curve negative, it is a left hand curve. zero, there is no curve. A spiral length of zero indicates that there is no spiral. A function return value of zero indicates the hip data was successfully returned."
  },
  {
    "name": "Set_hip_data",
    "id": 104,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Modify the plan co-ordinates (x,y) of the ith hip point of the Alignment string elt. The existing curve radius and spiral lengths are not altered. The ith hip point must already exist. A function return value of zero indicates the hip was successfully set. Page 878 Alignment String Element Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Set_hip_data",
    "id": 105,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "Modify the plan co-ordinates (x,y) and the curve radius, rad, of the ith hip point of the Alignment string elt. The spiral lengths are not altered. The ith hip point must already exist. A function return value of zero indicates the hip was successfully set."
  },
  {
    "name": "Set_hip_data",
    "id": 106,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "left_spiral",
        "type": "Real"
      },
      {
        "name": "right_spiral",
        "type": "Real"
      }
    ],
    "description": "Modify the plan co-ordinates (x,y), the curve radius rad, and the left and right spiral lengths, left_spiral and right_spiral for the ith hip point of the Alignment string elt. The ith hip point must already exist. A function return value of zero indicates the hip was successfully set."
  },
  {
    "name": "Insert_hip",
    "id": 107,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Insert a new hip with plan co-ordinates (x,y) before the existing ith hip point. The curve radius and spiral lengths are set to zero. The inserted hip becomes the ith hip and the position of all subsequent hip's increases by one. If i is greater than number of hips, then the new hip is appended to the string. If i is less than one, then the new hip is prepended to the string. A function return value of zero indicates the hip was inserted successfully."
  },
  {
    "name": "Insert_hip",
    "id": 108,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      }
    ],
    "description": "Insert a new hip with plan co-ordinates (x,y) and curve radius rad before the existing ith hip point. Alignment String Element Page 879 12d Model Macro Manual The spiral lengths are set to zero. The inserted hip becomes the ith hip and the position of all subsequent hip's increases by one. If i is greater than number of hips, then the new hip is appended to the string. If i is less than one, then the new hip is prepended to the string. A function return value of zero indicates the hip was inserted successfully."
  },
  {
    "name": "Insert_hip",
    "id": 109,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "rad",
        "type": "Real"
      },
      {
        "name": "left_spiral",
        "type": "Real"
      },
      {
        "name": "right_spiral",
        "type": "Real"
      }
    ],
    "description": "Insert a new hip with plan co-ordinates (x,y), curve radius rad and left and right spirals of length left_spiral and right_spiral respectively, before the existing ith hip point. The inserted hip becomes the ith hip and the position of all subsequent hip's increases by one. If i is greater than number of hips, then the new hip is appended to the string. If i is less than one, then the new hip is prepended to the string. A function return value of zero indicates the hip was inserted successfully."
  },
  {
    "name": "Delete_hip",
    "id": 110,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      }
    ],
    "description": "Delete the ith hip from the Alignment string elt. The position of all subsequent hips is decreased by one. A function return value of zero indicates the hip was successfully deleted."
  },
  {
    "name": "Get_hip_type",
    "id": 397,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "hip_no",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the type of the horizontal intersection point number hip_no for the Alignment string elt. The Text type has a returned value of Spiral if there is spiral/s and horizontal curve at the hip. Curve if there is a horizontal curve with no spirals at the hip. IP if there are no spirals or horizontal curves at the hip. A function return value of zero indicates the hip information was successfully returned."
  },
  {
    "name": "Get_hip_geom",
    "id": 395,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "hip_no",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      }
    ],
    "description": "Return the (x,y) co-ordinates of the critical horizontal points around the horizontal intersection point hip_no (i.e. tangent spiral points, spiral curve points etc.) for the Alignment string elt. The type of critical point (x,y) returned is specified by mode and depends on the type of the hip. The following table gives the description of the returned co-ordinate (x,y) and whether or not the mode is applicable for the given HIP type (Y means applicable, N means not applicable). HIP Type Mode Returned co-ordinate HIP Curve Spiral 0 HIP co-ords Y Y Y 1 start tangent N Y TC Y TS 2 end tangent N Y CT Y ST 3 curve centre N Y Y 4 spiral-curve N N Y 5 curve-spiral N N Y A function return value of zero indicates the hip information was successfully returned and that the mode was appropriate for the HIP type of the hip hip_no."
  },
  {
    "name": "Append_vip",
    "id": 96,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Append a vertical intersection point (vip) with chainage-height co-ordinates (ch,ht) to the Element elt. The parabolic curve length is set to zero. The order in which the vips are appended is taken as the order of the vips in the Alignment string. The vips must be appended in order of increasing chainage along the Alignment string. Append_vip is used to place the first vip as well as the subsequent vips. A function return value of zero indicates the vip was appended successfully."
  },
  {
    "name": "Append_vip",
    "id": 97,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      },
      {
        "name": "parabolic",
        "type": "Real"
      }
    ],
    "description": "Append to the Element elt a vertical intersection point (vip) with chainage-height co-ordinates (ch,ht) and a parabolic curve of length parabolic. A parabolic curve length of zero indicates no curve is present. A function return value of zero indicates the vip was appended successfully."
  },
  {
    "name": "Append_vip",
    "id": 98,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      },
      {
        "name": "length",
        "type": "Real"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Append to the Element elt a vertical intersection point (vip) with chainage-height co-ordinates (ch,ht) and a curve of length length. If mode = 0 or 1, the curve is a parabolic vertical curve If mode = 2, the curve is a circular vertical curve A curve length of zero indicates no curve is present. A function return value of zero indicates the vip was appended successfully."
  },
  {
    "name": "Get_vip_points",
    "id": 111,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&num_pts",
        "type": "Integer"
      }
    ],
    "description": "Get the number of vips, num_pts, in the Alignment string elt. A function return value of zero indicates the number of vip points was successfully returned."
  },
  {
    "name": "Get_vip_data",
    "id": 112,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&ht",
        "type": "Real"
      }
    ],
    "description": "Get the chainage-height co-ordinates (ch,ht) of the ith vip point for the Alignment string elt. A function return value of zero indicates the vip data was successfully returned."
  },
  {
    "name": "Get_vip_data",
    "id": 113,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&ht",
        "type": "Real"
      },
      {
        "name": "&parabolic",
        "type": "Real"
      }
    ],
    "description": "Get the chainage-height co-ordinates (ch,ht) and the parabolic curve length parabolic for the ith vip point of the Alignment string elt. A function return value of zero indicates the vip data was successfully returned."
  },
  {
    "name": "Set_vip_data",
    "id": 115,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Modify the chainage-height co-ordinates (ch,ht) of the ith vip point for the Alignment string elt. The existing parabolic curve length is not altered. The ith vip point must already exist. A function return value of zero indicates the vip data was successfully set."
  },
  {
    "name": "Set_vip_data",
    "id": 116,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      },
      {
        "name": "parabolic",
        "type": "Real"
      }
    ],
    "description": "Modify the chainage-height co-ordinates (ch,ht) and the parabolic curve length parabolic, for the ith vip point of the Alignment string elt. The ith vip point must already exist. A function return value of zero indicates the vip data was successfully set."
  },
  {
    "name": "Set_vip_data",
    "id": 117,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      },
      {
        "name": "value",
        "type": "Real"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Modify the chainage-height co-ordinates (ch,ht) and the curve length value, for the i\u2019th vip point of the Alignment string elt. If mode = 0 or 1, the curve is set to be a parabolic vertical curve If mode = 2, the curve is set to be a circular vertical curve A curve length of zero indicates no curve is present. A function return value of zero indicates the vip data was successfully returned."
  },
  {
    "name": "Insert_vip",
    "id": 118,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Insert a new vip with chainage-height co-ordinates (ch,ht) before the existing i\u2019th vip point. The parabolic curve length is set to zero. The inserted vip becomes the ith vip and the position of all subsequent vips increases by one. If i is greater than number of vips, then the new vip is appended to the string. If i is less than one, then the new vip is prepended to the string. A function return value of zero indicates that the vip was successfully inserted."
  },
  {
    "name": "Insert_vip",
    "id": 119,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      },
      {
        "name": "parabolic",
        "type": "Real"
      }
    ],
    "description": "Insert a new vip with chainage-height co-ordinates (ch,ht) and parabolic length parabolic before the existing ith vip point. The inserted vip becomes the ith vip and the position of all subsequent vips increases by one. If i is greater than number of vips, then the new vip is appended to the string. If i is less than one, then the new vip is prepended to the string. A function return value of zero indicates that the vip was successfully inserted."
  },
  {
    "name": "Insert_vip",
    "id": 120,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      },
      {
        "name": "value",
        "type": "Real"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Insert a new vip with chainage-height co-ordinates (ch,ht) and curve length value before the existing i\u2019th vip point. The inserted vip becomes the ith vip and the position of all subsequent vips increases by one. If i is greater than number of vips, then the new vip is appended to the string. If i is less than one, then the new vip is prepended to the string. If mode = 0 or 1, the curve is set to be a parabolic vertical curve If mode = 2, the curve is set to be a circular vertical curve A curve length of zero indicates no curve is present. A function return value of zero indicates that the vip was successfully inserted."
  },
  {
    "name": "Calc_alignment",
    "id": 99,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Use all the horizontal and vertical data to calculate the full geometry for the Alignment string. A Calc_alignment must be done before the Alignment string can be used in 12d Model. A function return value of zero indicates the geometry of the alignment was successfully calculated."
  },
  {
    "name": "Get_vip_type",
    "id": 398,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vip_no",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the type of the vertical intersection point number vip_no for the Alignment string elt. The Text type has a returned value of VC if there is a parabolic curve at the vip. Curve if there is a circular curve at the vip. IP if there is no vertical curves at the vip. A function return value of zero indicates the vip information was successfully returned."
  },
  {
    "name": "Get_vip_geom",
    "id": 396,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "vip_no",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&chainage",
        "type": "Real"
      },
      {
        "name": "&height",
        "type": "Real"
      }
    ],
    "description": "Return the chainage and height co-ordinates of the critical points (tangent points, curve centre) for vertical intersection point number vip_no of the Alignment string elt. The type of critical point (chainage,height) returned is given by mode and depends on the type of the vip. The following table gives the description of the returned co-ordinates (chainage,height) and states whether the mode is applicable or not for the given VIP type (Y means applicable, N means not applicable). VIP Type Alignment String Element Page 885 12d Model Macro Manual Mode Returned co-ordinate VIP VC Curve 0 VIP co-ords Y Y Y 1 start tangent N Y TC Y TC 2 end tangent N Y CT Y CT 3 curve centre N N Y A function return value of zero indicates that the vip information was successfully returned and that the mode was appropriate for the VIP type of the vip number vip_no."
  },
  {
    "name": "Get_hip_id",
    "id": 1451,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "&id",
        "type": "Integer"
      }
    ],
    "description": "<no description>"
  },
  {
    "name": "Get_vip_id",
    "id": 1452,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "position",
        "type": "Integer"
      },
      {
        "name": "&id",
        "type": "Integer"
      }
    ],
    "description": "<no description>"
  },
  {
    "name": "Select_string",
    "id": 29,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&string",
        "type": "Element"
      }
    ],
    "description": "Write the message msg to the 12d Model Output Window and wait until a selection is made. If a pickable Element is selected, then return the Element picked by the user in string and the function return value is 1. If no pickable Element is picked and the function returns, then the function returns codes are: -1 indicates cancel was chosen from the pick-ops menu. 0 pick unsuccessful 1 pick was successful 2 a cursor pick"
  },
  {
    "name": "Select_string",
    "id": 214,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&string",
        "type": "Element"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&ht",
        "type": "Real"
      }
    ],
    "description": "Write the message msg to the 12d Model Output Window and then return the Element picked by the user. The co-ordinates of the picked point are also returned. The picked Element is returned in the Element string. The co-ordinates and chainage of the picked point on the Element string are (x,y,z) and ch respectively. The value ht is reserved for future use and should be ignored. A function return value of -1 indicates cancel was chosen from the pick-ops menu. 0 pick unsuccessful 1 pick was successful 2 a cursor pick"
  },
  {
    "name": "Select_string",
    "id": 547,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&string",
        "type": "Element"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&ht",
        "type": "Real"
      },
      {
        "name": "&dir",
        "type": "Integer"
      }
    ],
    "description": "Write the message msg to the 12d Model Output Window and then return the Element picked by the user. The co-ordinates of the picked point are also returned plus whether the string selecting was picked in the same direction as the string, or the opposite direction to the string. The picked Element is returned in the Element string. The co-ordinates and chainage of the picked point on the Element string are (x,y,z) and ch respectively. The value ht is reserved for future use and should be ignored. The value dir indicates if the picking motion was in the same direction as the selected string, or in the opposite direction. dir = when the picking motion was in the same direction as the selected string. dir = when the picking motion was in the opposite direction as the selected string. A function return value of -1 indicates cancel was chosen from the pick-ops menu. 0 pick unsuccessful 1 pick was successful 2 a cursor pick"
  },
  {
    "name": "Element_draw",
    "id": 372,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "col_num",
        "type": "Integer"
      }
    ],
    "description": "Draw the Element elt in the colour number col_num on all the views that elt is displayed on. A function return value of zero indicates that elt was drawn successfully."
  },
  {
    "name": "Element_draw",
    "id": 371,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Draw the Element elt in its natural colour on all the views that elt is displayed on. A function return value of zero indicates that elt was drawn successfully."
  },
  {
    "name": "Element_draw2",
    "id": 7766,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "col_num",
        "type": "Integer"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Do not use. Mode value: 0 1 1024 1025 bit 1024 on exclusive or, off replace; bit 1 on draw all, off draw normal. Draw the Element elt in the colour number col_num on all the views that elt is displayed on. A function return value of zero indicates that elt was drawn successfully."
  },
  {
    "name": "Element_draw2",
    "id": 7765,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Do not use. Mode value: 0 1 1024 1025 bit 1024 on exclusive or, off replace; bit 1 on draw all, off draw normal. Draw the Element elt in its natural colour on all the views that elt is displayed on. A function return value of zero indicates that elt was drawn successfully."
  },
  {
    "name": "String_closed",
    "id": 368,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&closed",
        "type": "Integer"
      }
    ],
    "description": "Checks to see if the Element elt is closed. That is, check if the first and the last points of the element are the same. The close status is returned as closed. If closed is 1 then elt is closed 0 then elt is not closed (i.e. open) A zero function return value indicates that the closure check was successful."
  },
  {
    "name": "String_close",
    "id": 367,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Close the Element elt. That is, if the first and the last points of elt are not the same, then add a point to the end of elt which is the same as the first point of elt. A function return value of zero indicates that elt was successfully closed."
  },
  {
    "name": "Get_length",
    "id": 122,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the plan length of the Element string (which equals the end chainage minus the start chainage) and return the plan length in length. A function return value of zero indicates the plan length was successfully returned."
  },
  {
    "name": "Get_length_3d",
    "id": 359,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the 3d length of the Element string and return the 3d length in length. A function return value of zero indicates the 3d length was successfully returned."
  },
  {
    "name": "Get_length_3d",
    "id": 2681,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "&length",
        "type": "Real"
      }
    ],
    "description": "Get the 3d length of the Element string from the start of the string up the given chainage ch. Return Page 890 General Element Operations Chapter 5 12dPL Library Calls the 3d length in length. A function return value of zero indicates the 3d length was successfully returned."
  },
  {
    "name": "Plan_area",
    "id": 221,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "&plan_area",
        "type": "Real"
      }
    ],
    "description": "Calculate the plan area of the Element string. If the Element is not closed, then the first and last points are joined before calculating the area. For an arc, the plan area of the sector is returned. The plan area is returned in the Real plan_area. A function return value of zero indicates the plan area was successfully returned."
  },
  {
    "name": "Plan_area_signed",
    "id": 3137,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "&plan_area",
        "type": "Real"
      }
    ],
    "description": "Calculate the signed plan area of the Element string. If the Element is not closed, then the first and last points are joined before calculating the area. For an arc, the plan area of the sector is returned. The signed plan area is returned in the Real plan_area. A function return value of zero indicates the signed plan area was successfully returned."
  },
  {
    "name": "Surface_area_tin_polygon",
    "id": 3736,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "&slope_area",
        "type": "Real"
      },
      {
        "name": "&plan_area",
        "type": "Real"
      }
    ],
    "description": "Calculate the slop area and plan area of the Element polygon within given Tin tin. If the Element is not closed, then the first and last points are joined before calculating the area. The slop area is returned in the Real slop_area. The plan area is returned in the Real plan_area. A function return value of zero indicates the signed plan area was successfully returned."
  },
  {
    "name": "Get_position",
    "id": 471,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&inst_dir",
        "type": "Real"
      },
      {
        "name": "&rad",
        "type": "Real"
      },
      {
        "name": "&inst_grade",
        "type": "Real"
      }
    ],
    "description": "For a Element, elt, of type Alignment only, get the (x,y,z) position, radius rad, instantaneous direction (inst_dir - as an angle, measured in radians) and instantaneous grade (inst_grade) of a point on elt at chainage ch. A function return value of zero indicates success."
  },
  {
    "name": "Get_position",
    "id": 1775,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&dir",
        "type": "Real"
      },
      {
        "name": "&vertex",
        "type": "Integer"
      },
      {
        "name": "&distance",
        "type": "Real"
      }
    ],
    "description": "For the Element string, find the point at the chainage ch. Return the coordinate of the point in (x,y,z); the direction (the angle of the tangent) of the point in dir; the index of the vertex before the point in vertex; and the distance past that vertex distance. A return value of zero indicates the function call was successful. Not implemented for all strings."
  },
  {
    "name": "Drop_point",
    "id": 191,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xd",
        "type": "Real"
      },
      {
        "name": "yd",
        "type": "Real"
      },
      {
        "name": "zd",
        "type": "Real"
      },
      {
        "name": "&xf",
        "type": "Real"
      },
      {
        "name": "&yf",
        "type": "Real"
      },
      {
        "name": "&zf",
        "type": "Real"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&inst_dir",
        "type": "Real"
      },
      {
        "name": "&off",
        "type": "Real"
      }
    ],
    "description": "In plan, drop the point (xd,yd) perpendicularly onto the Element elt. If the point cannot be dropped onto any segment of the Element, then the point is dropped onto the closest end point. A z-value for the dropped point is created by interpolation. The position of the dropped point on the Element is returned in xf, yf and zf. The chainage of the dropped point on the string is ch and inst_dir the instantaneous direction (as an angle, measured in Page 892 General Element Operations Chapter 5 12dPL Library Calls radians) at the dropped point. Off is the plan distance from the original point to the dropped point on the string. A function return value of zero indicates that the drop was successful."
  },
  {
    "name": "Drop_point",
    "id": 302,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "xd",
        "type": "Real"
      },
      {
        "name": "yd",
        "type": "Real"
      },
      {
        "name": "zd",
        "type": "Real"
      },
      {
        "name": "&xf",
        "type": "Real"
      },
      {
        "name": "&yf",
        "type": "Real"
      },
      {
        "name": "&zf",
        "type": "Real"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&inst_dir",
        "type": "Real"
      },
      {
        "name": "&off",
        "type": "Real"
      },
      {
        "name": "&segment",
        "type": "Segment"
      }
    ],
    "description": "In plan, drop the point (xd,yd) perpendicularly onto the Element elt. If the point cannot be dropped onto any segment of the Element, then the point is dropped onto the closest end point. A z-value for the dropped point is created by interpolation. The position of the dropped point on the Element is returned in xf, yf and zf. The chainage of the dropped point on the string is ch and inst_dir the instantaneous direction (as an angle, measured in radians) at the dropped point. Off is the plan distance from the original point to the dropped point on the string. Segment segment is the link of the string that the point drops onto. A function return value of zero indicates that the drop was successful."
  },
  {
    "name": "Parallel",
    "id": 365,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "distance",
        "type": "Real"
      },
      {
        "name": "&parallelled",
        "type": "Element"
      }
    ],
    "description": "Plan parallel the Element elt by the distance distance. The parallelled Element is returned as the Element parallelled. The z-values are not modified, i.e. they are the same as for elt. A function return value of zero indicates the parallel was successful."
  },
  {
    "name": "String_self_intersects",
    "id": 328,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&intersects",
        "type": "Integer"
      }
    ],
    "description": "Find the number of self intersections for the Element elt. The number of self intersections is returned as intersects. A function return value of zero indicates that there were no errors in the function. Note For Elements of type Alignment, Arc, Circle and Text the number of intersects is set to negative."
  },
  {
    "name": "Loop_clean",
    "id": 329,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "ok_pt",
        "type": "Point"
      },
      {
        "name": "&new_elt",
        "type": "Element"
      }
    ],
    "description": "This routine tries to remove any plan loops in the Element elt. If elt is closed, then the function assumes that the Point ok_pt is near a segment of the string that will also be in the cleaned string. If elt is open, then the function starts cleaning from the end of the string closest to the Point ok_pt. The cleaned Element is returned as Element new_elt. A function return value of zero indicates the clean was successful. Note Loop_clean is not defined for the Elements of type Alignment, Arc, Circle and Text"
  },
  {
    "name": "Get_read_locks",
    "id": 1453,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&num_locks",
        "type": "Integer"
      }
    ],
    "description": "For a valid Element elt, return the number of read locks on elt in num_locks. Note: There are no 12dPL functions that a macro programmer can use to set read locks. They are automatically assigned and removed as required by various 12dPL functions. A function return value of zero indicates the number of read locks was successfully returned."
  },
  {
    "name": "Get_write_locks",
    "id": 1454,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&num_locks",
        "type": "Integer"
      }
    ],
    "description": "For a valid Element elt, return the number of write locks on elt in num_locks. Note: There are no 12dPL functions that a macro programmer can use to set write locks. They are automatically assigned and removed as required by various 12dPL functions. A function return value of zero indicates the number of write locks was successfully returned."
  },
  {
    "name": "String_replace",
    "id": 1176,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "from",
        "type": "Element"
      },
      {
        "name": "&to",
        "type": "Element"
      }
    ],
    "description": "Copy the contents of the Element from and use them to replace the contents of the Element to. The id/Uid of to is not replaced. The Elements to and from must be strings and also be the same string types. For example, both of type Super. Note: this will not work for Elements of type Tin. A function return value of zero indicates the replace was successful."
  },
  {
    "name": "Line_cut_string",
    "id": 5445,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "px",
        "type": "Real"
      },
      {
        "name": "py",
        "type": "Real"
      },
      {
        "name": "dir",
        "type": "Real"
      },
      {
        "name": "cut_lim",
        "type": "Real"
      },
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "&cx",
        "type": "Real"
      },
      {
        "name": "&cy",
        "type": "Real"
      }
    ],
    "description": "Find the closest cut of a line going through an original point px, py with direct dir to a string string. The cut cannot be further from the original point than cut_lim, the x-y coordinate of the closest cut are returned in cx, cy A function return value of zero indicates that a valid cut point found."
  },
  {
    "name": "Chainage_height_profile",
    "id": 7857,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input_3d_string",
        "type": "Element"
      },
      {
        "name": "&output_ch_h",
        "type": "Element"
      }
    ],
    "description": "From a given input_3d_string, form a new output_ch_h 2d string such that the (2d chainage, General Element Operations Page 895 12d Model Macro Manual height) from input will match (x, y) from the ouput at every point A function return value of zero indicates the profile is successfully created."
  },
  {
    "name": "Strings_from_sections",
    "id": 7858,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "strings_model",
        "type": "Model"
      },
      {
        "name": "sections_model",
        "type": "Model"
      },
      {
        "name": "&error_message",
        "type": "Text"
      }
    ],
    "description": "From a given model of section strings sections_model, try to construct the strings those might form those sections and put the strings in strings_model. Any error (if any) will be set in the Text error_message. A function return value of zero indicates the strings are successfully created."
  },
  {
    "name": "Valid_string_name",
    "id": 2277,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "old_name",
        "type": "Text"
      },
      {
        "name": "&valid_name",
        "type": "Text"
      }
    ],
    "description": "Convert the Text old_name to a valid string name by substituting spaces for any illegal characters in old_name; leading and trailing spaces in the new name also being removed. The new name is returned in valid_name. A function return the number of characters being substitued if there is no leading nor trailing spaces being removed."
  },
  {
    "name": "Valid_model_name",
    "id": 2278,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "old_name",
        "type": "Text"
      },
      {
        "name": "&valid_name",
        "type": "Text"
      }
    ],
    "description": "Convert the Text old_name to a valid model name by substituting spaces for any illegal characters in old_name; leading and trailing spaces in the new name also being removed. The new name is returned in valid_name. A function return the number of characters being substitued if there is no leading nor trailing spaces being removed."
  },
  {
    "name": "Valid_tin_name",
    "id": 2279,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "old_name",
        "type": "Text"
      },
      {
        "name": "&valid_name",
        "type": "Text"
      }
    ],
    "description": "Convert the Text old_name to a valid tin name by substituting spaces for any illegal characters in old_name; leading and trailing spaces in the new name also being removed. The new name is returned in valid_name. A function return the number of characters being substitued if there is no leading nor trailing spaces being removed."
  },
  {
    "name": "Valid_attribute_name",
    "id": 2280,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "old_name",
        "type": "Text"
      },
      {
        "name": "&valid_name",
        "type": "Text"
      }
    ],
    "description": "Convert the Text old_name to a valid attribute name by substituting spaces for any illegal characters in old_name; leading and trailing spaces in the new name also being removed. The new name is returned in valid_name. Creating Valid Names Page 897 12d Model Macro Manual A function return the number of characters being substitued if there is no leading nor trailing spaces being removed."
  },
  {
    "name": "Valid_attribute_path",
    "id": 3722,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "old_path",
        "type": "Text"
      },
      {
        "name": "&valid_path",
        "type": "Text"
      }
    ],
    "description": "Convert the Text old_path to a valid attribute path by substituting spaces for any illegal characters in old_path. The new path is returned in valid_path. The function returns one if all the characters in the old_path are valid; no substituting needed. The function returns two if the old_path contains mixture of valid and invalid characters . The function returns three if all the characters in the old_path are invalid or spaces."
  },
  {
    "name": "Valid_attribute_xpath",
    "id": 3723,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "old_path",
        "type": "Text"
      },
      {
        "name": "&valid_path",
        "type": "Text"
      }
    ],
    "description": "Convert the Text old_path to a valid attribute path with potentially array syntax by substituting spaces for any illegal characters in old_path. The new path is returned in valid_path. The function returns one if all the characters in the old_path are valid; no substituting needed. The function returns two if the old_path contains mixture of valid and invalid characters . The function returns three if all the characters in the old_path are invalid or spaces. The function returns four if the path containing any invalid array syntax."
  },
  {
    "name": "Valid_linestyle_name",
    "id": 2281,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "old_name",
        "type": "Text"
      },
      {
        "name": "&valid_name",
        "type": "Text"
      }
    ],
    "description": "Convert the Text old_name to a valid linestyle name by substituting spaces for any illegal characters in old_name; leading and trailing spaces in the new name also being removed. The new name is returned in valid_name. A function return the number of characters being substitued if there is no leading nor trailing spaces being removed."
  },
  {
    "name": "Create_XML_document",
    "id": 2436,
    "returnType": "XML_Document",
    "parameters": [],
    "description": "This call creates a new XML document. This is the entry point for all macro code that works with XML. Existing files can then be read into the document, or the code may start to build up nodes into the document."
  },
  {
    "name": "Read_XML_document",
    "id": 2419,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "doc",
        "type": "XML_Document"
      },
      {
        "name": "file",
        "type": "Text"
      }
    ],
    "description": "Reads the supplied file and loads the nodes into the supplied XML Document object. Returns 0 if successful."
  },
  {
    "name": "Write_XML_document",
    "id": 2420,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "doc",
        "type": "XML_Document"
      },
      {
        "name": "file",
        "type": "Text"
      }
    ],
    "description": "Writes the supplied XML Document to the given file name. Returns 0 if successful."
  },
  {
    "name": "Get_XML_declaration",
    "id": 2437,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "doc",
        "type": "XML_Document"
      },
      {
        "name": "&version",
        "type": "Text"
      },
      {
        "name": "&encoding",
        "type": "Text"
      },
      {
        "name": "&standalone",
        "type": "Integer"
      }
    ],
    "description": "Finds and returns the values from the XML declaration in the given document. Not all documents may contain XML declarations. Returns 0 if successful."
  },
  {
    "name": "Set_XML_declaration",
    "id": 2438,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "doc",
        "type": "XML_Document"
      },
      {
        "name": "version",
        "type": "Text"
      },
      {
        "name": "encoding",
        "type": "Text"
      }
    ],
    "description": "This call sets the details for the XML declaration. If the document does not already contain an XML declaration, one will be added to the top of the document. Returns 0 if successful."
  },
  {
    "name": "Create_node",
    "id": 2435,
    "returnType": "XML_Node",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "This call creates a new XML node. This node can have its value set, or have other children nodes appended to it. It must also be either set as the root node (see Set_Root_Node) or appended to another node (see Append_Node) to become part of a document."
  },
  {
    "name": "Get_root_node",
    "id": 2421,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "doc",
        "type": "XML_Document"
      },
      {
        "name": "&node",
        "type": "XML_Node"
      }
    ],
    "description": "This call finds and retrieves the node at the root of the document. This is the top level node. If there is no root node, the call will return non 0. Returns 0 if successful."
  },
  {
    "name": "Set_root_node",
    "id": 2422,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&node",
        "type": "XML_Node"
      }
    ],
    "description": "This call sets the root node (the top level node) for the given document. There must be at most one root node in a document."
  },
  {
    "name": "Get_number_of_nodes",
    "id": 2423,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      }
    ],
    "description": "This call returns the number of children nodes for the given nodes. A node may contain 0 or more children."
  },
  {
    "name": "Get_child_node",
    "id": 2424,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "&child_node",
        "type": "XML_Node"
      }
    ],
    "description": "This call retrieves the n'th child, as specified by index, of a parent node and stores it in the child_node argument. Returns 0 if successful."
  },
  {
    "name": "Get_child_node",
    "id": 2439,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&child_node",
        "type": "XML_Node"
      }
    ],
    "description": "This call retrieves the first instance of a child of a parent node, by its name. If there is more than one element of the same name, this call will only return the first. The retrieved node will be stored in the child_node argument. This call will return 0 if successful."
  },
  {
    "name": "Append_node",
    "id": 2425,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "parent",
        "type": "XML_Node"
      },
      {
        "name": "new_node",
        "type": "XML_Node"
      }
    ],
    "description": "This call appends a child node to a parent node. A parent node may contain 0 or more children nodes. The new_node cannot already being a child of another node; if it is the call will fail with the return value 1. This call will return 0 if successful. Page 902 XML Chapter 5 12dPL Library Calls"
  },
  {
    "name": "Append_node_final",
    "id": 7856,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "parent",
        "type": "XML_Node"
      },
      {
        "name": "new_node",
        "type": "XML_Node"
      }
    ],
    "description": "This call appends a child node to a parent node. A parent node may contain 0 or more children nodes. The new_node cannot already being a child of another node; if it is the call will fail with the return value 1. The final part in the name of this call indicates that after this call, further changes to the node will not affect the parent. This call will return 0 if successful."
  },
  {
    "name": "Remove_node",
    "id": 2426,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "parent",
        "type": "XML_Node"
      },
      {
        "name": "index",
        "type": "Integer"
      }
    ],
    "description": "This call removes the n'th child node, as given by index, from the supplied parent node. This call will return 0 if successful."
  },
  {
    "name": "Get_parent_node",
    "id": 2427,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "child",
        "type": "XML_Node"
      },
      {
        "name": "&parent",
        "type": "XML_Node"
      }
    ],
    "description": "This call will find the parent node of the supplied child and store it in the parent argument. This call will return 0 if successful."
  },
  {
    "name": "Get_next_sibling_node",
    "id": 2428,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "&sibling",
        "type": "XML_Node"
      }
    ],
    "description": "Given a node, this call will retrieve the next sibling, or same level node. In the following example, Child2 is the next sibling of Child1. <Parent> <Child1/> <Child2/> </Parent> This call will return 0 if successful. XML Page 903 12d Model Macro Manual"
  },
  {
    "name": "Get_prev_sibling_node",
    "id": 2429,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "&sibling",
        "type": "XML_Node"
      }
    ],
    "description": "Given a node, this call will retrieve the previous sibling, or same level node. In the following example, Child1 is the previous sibling of Child2. <Parent> <Child1/> <Child2/> </Parent> This call will return 0 if successful."
  },
  {
    "name": "Get_node_name",
    "id": 2433,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "This call will retrieve the name of a supplied node and store it in the name argument. The name of a node is the value within the brackets or tags. In the following example, MyNode is the name of the node. <MyNode>1234</MyNode> This call will return 0 if successful."
  },
  {
    "name": "Get_node_attribute",
    "id": 2440,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "This call will try find an attribute of given name belonging to the supplied node, and will store the value in the value attribute. In the following example, the data stored in value will be: MyAttributeData <MyNode MyAttribute=\"MyAttributeData\" /> This call will return 0 if successful."
  },
  {
    "name": "Set_node_attribute",
    "id": 2441,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "This call will set the value of an attribute attached to a node. If it does not exist, the attribute will be Page 904 XML Chapter 5 12dPL Library Calls created. This call will return 0 if successful."
  },
  {
    "name": "Remove_node_attribute",
    "id": 2442,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "This call will attempt to remove a node of a given name from the supplied node. This call will return 0 if successful."
  },
  {
    "name": "Is_text_node",
    "id": 2430,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&node",
        "type": "XML_Node"
      }
    ],
    "description": "This call will attempt to determine if a node is a text only node or not. A text node is one that contains only text, and no other child nodes. This call will return 1 if the node is a text node."
  },
  {
    "name": "Is_cdata_text_node",
    "id": 7951,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&node",
        "type": "XML_Node"
      }
    ],
    "description": "This call will attempt to determine if a node is a CDATA text only node or not. A text node is one that contains only text, and no other child nodes. This call will return 1 if the node is a text node, and the text must be of CDATA format."
  },
  {
    "name": "Get_node_text",
    "id": 2431,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&node",
        "type": "XML_Node"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "This call will attempt to retrieve the internal text value of a text node and store it in text. A text node is one that contains only text, and no other child nodes. If the node is not a text node, the call will return -1. In the following example, the value of text will be set to MyText <MyNode>MyText</MyNode> XML Page 905 12d Model Macro Manual This call will return 0 if successful."
  },
  {
    "name": "Set_node_text",
    "id": 2432,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&node",
        "type": "XML_Node"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "This call will set the internal text of node to the value. A text node is one that contains only text, and no other child nodes. Note that the call only work if the node is already a text node, if the node is not a text node, the call will return -1. This call will return 0 if successful."
  },
  {
    "name": "Create_text_node",
    "id": 2434,
    "returnType": "XML_Node",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "This call will create a new text node of the given name and set the internal text to the given value. This call will return the created node."
  },
  {
    "name": "Create_cdata_text_node",
    "id": 7901,
    "returnType": "XML_Node",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "This call will create a new CDATA text node of the given name and set the internal CDATA text to the given value. This call will return the created node."
  },
  {
    "name": "Create_metadata_node",
    "id": 7755,
    "returnType": "XML_Node",
    "parameters": [
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "This call will create a new standard 12dxml metadata node. This call will return the created node."
  },
  {
    "name": "Get_node_attributes",
    "id": 3056,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "&attributes_count",
        "type": "Integer"
      }
    ],
    "description": "Count the number of attributes attributes_count of an XML_Node node A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_node_attributes",
    "id": 3057,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "node",
        "type": "XML_Node"
      },
      {
        "name": "&attributes_count",
        "type": "Integer"
      },
      {
        "name": "&names",
        "type": "Dynamic_Text"
      },
      {
        "name": "&values",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Count the number of attributes attributes_count of an XML_Node node Output the list of attribute names to names Output the list of attribute values to values A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_type",
    "id": 7809,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&node",
        "type": "XML_Node"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "Get the Integer type of an XML_Node node Possible type 0 DOCUMENT, 1 ELEMENT, 2 COMMENT, 3 UNKNOWN, 4 TEXT, 5 DECLARATION, A return value of zero indicates the function call was successful. XML Page 907 12d Model Macro Manual"
  },
  {
    "name": "Write_XML_Document",
    "id": 2951,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "doc",
        "type": "XML_Document"
      },
      {
        "name": "&file",
        "type": "File"
      }
    ],
    "description": "Write XML_Document doc to File file. A return value of -1 indicates the File file did not exist. A return value of -2 indicates the XML_Document doc did not exist. A return value of -3 indicates the XML_Document doc was not valid. A return value of -4 indicates the saving failed. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Write_XML",
    "id": 3199,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "precision",
        "type": "Integer"
      },
      {
        "name": "output_model_name",
        "type": "Integer"
      },
      {
        "name": "bool_flags",
        "type": "Integer"
      },
      {
        "name": "null_value",
        "type": "Real"
      }
    ],
    "description": "Open the file called filename, and write the 12d XML of all the Elements in the Model model to the file. Any coordinates and Reals are written out to precision decimal places. If output_model_name = 1 then write the name of model out to the file before the Elements. If output_model_name = 0 then don\u2019t write out the Model name. For Integer bool_flags see 5.17.4.2 Write_Panel_Flags. Just for this macro call, there is an extra bit in the bool_flags of value 1048576. When this bit is on, then a valid 12D XML header and the corresponding closing tag will also be added to the output file to form a valid 12D XML file. Null values will be written as Real null_value. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "XML_to_12da",
    "id": 3729,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xml_filename",
        "type": "Text"
      },
      {
        "name": "tda_filename",
        "type": "Text"
      }
    ],
    "description": "From a given 12dXML file xml_filename, and write the equivalent 12d Ascii (12da) to a file tda_filename. A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "Translate_XML_file",
    "id": 3730,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xml_filename",
        "type": "Text"
      },
      {
        "name": "xslt_filename",
        "type": "Text"
      },
      {
        "name": "output_type",
        "type": "Integer"
      },
      {
        "name": "decimal",
        "type": "Integer"
      },
      {
        "name": "output_filename",
        "type": "Text"
      }
    ],
    "description": "Translate a given XML report file xml_filename using the transformation given in a file xslt_filename; write the output to the file output_filename. Integer output_file_type: 3 HTML; 4 PDF; 5 rich text format 6 text format 7 CSV 8 text report If some Real to be convert to text in the output file, the number of decimal will be used A function return value of zero indicates the data was successfully written."
  },
  {
    "name": "ADAC_get_xsd_path",
    "id": 2952,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "version",
        "type": "Text"
      },
      {
        "name": "&path",
        "type": "Text"
      }
    ],
    "description": "Return the XSD path of ADAC version Integer version to Text path. A return value of zero indicates the function call was successful."
  },
  {
    "name": "XSD_get_type_enumerations",
    "id": 2953,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xsd",
        "type": "Text"
      },
      {
        "name": "schema",
        "type": "Text"
      },
      {
        "name": "frag_path",
        "type": "Text"
      },
      {
        "name": "&enums",
        "type": "Dynamic_Text"
      },
      {
        "name": "&elem_type",
        "type": "Text"
      }
    ],
    "description": "Get the enumerations for a simple or primitive type in the Text schema of file named Text xsd. The list of enumerations is returned to Dynamic_Text enums. The type of the enumeration list is returned to Text elem_types. A return value of zero indicates the function call was successful. The list of values for XSF primitive type Text Boolean XML Page 909 12d Model Macro Manual Integer Double Float Duration Date_Time Time Date"
  },
  {
    "name": "Map_file_create",
    "id": 864,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&file",
        "type": "Map_File"
      }
    ],
    "description": "Create a mapping file. The file unit is returned as Map_file file. A function return value of zero indicates the file was opened successfully."
  },
  {
    "name": "Map_file_open",
    "id": 865,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "prefix",
        "type": "Text"
      },
      {
        "name": "use_ptline",
        "type": "Integer"
      },
      {
        "name": "&file",
        "type": "Map_File"
      }
    ],
    "description": "Open up a mapping file to read. The file unit is returned as Map_file file. The prefix of models is given as Text prefix. The string type is given as Integer use_ptline, 0 \u2013 point string 1 \u2013 line sting. A function return value of zero indicates the file was opened successfully."
  },
  {
    "name": "Map_file_close",
    "id": 866,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Map_File"
      }
    ],
    "description": "Close a mapping file. The file being closed is Map_file file. A function return value of zero indicates the file was closed successfully."
  },
  {
    "name": "Map_file_number_of_keys",
    "id": 868,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Map_File"
      },
      {
        "name": "&number",
        "type": "Integer"
      }
    ],
    "description": "Get the number of keys in a mapping file. The file is given as Map_file file. The number of keys is returned in Integer number. A function return value of zero indicates the number was returned successfully. Map File Page 911 12d Model Macro Manual"
  },
  {
    "name": "Map_file_add_key",
    "id": 869,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Map_File"
      },
      {
        "name": "key",
        "type": "Text"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "model",
        "type": "Text"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "ptln",
        "type": "Integer"
      },
      {
        "name": "style",
        "type": "Text"
      }
    ],
    "description": "Add key to a mapping file. The file is given in Map_file file. The key is given in Text key. The string name is given in Text name. The model name is given in Text model. The string colour is given in Integer colour. The string type is given in Integer ptln. The string style is given in Text style. A function return value of zero indicates the key was added successfully."
  },
  {
    "name": "Map_file_get_key",
    "id": 870,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Map_File"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&key",
        "type": "Text"
      },
      {
        "name": "&name",
        "type": "Text"
      },
      {
        "name": "&model",
        "type": "Text"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&ptln",
        "type": "Integer"
      },
      {
        "name": "&style",
        "type": "Text"
      }
    ],
    "description": "Get nth key\u2019s data from a mapping file. The file is given in Map_file file. The key is returned in Text key. The string name is returned in Text name. The model name is returned in Text model. The string colour is returned in Integer colour. The string type is returned in Integer ptln. The string style is returned in Text style. A function return value of zero indicates the key was returned successfully."
  },
  {
    "name": "Map_file_find_key",
    "id": 871,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Map_File"
      },
      {
        "name": "key",
        "type": "Text"
      },
      {
        "name": "&number",
        "type": "Integer"
      }
    ],
    "description": "Find the record number from a mapping file that contains the given key. Page 912 Map File Chapter 5 12dPL Library Calls The file unit is given in Map_file file. The record number is returned in Integer number. A function return value of zero indicates the key was find successfully."
  },
  {
    "name": "Read_project_settings_file",
    "id": 3731,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "project_settings_filename",
        "type": "Text"
      }
    ],
    "description": "Read a project settings file (.12dsettings) into the current project. A function return value of zero indicates the file was read successfully."
  },
  {
    "name": "Get_active_project_settings_profile",
    "id": 3732,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&active_profile_name",
        "type": "Text"
      }
    ],
    "description": "Get the name active_profile_name for the active project settings profile of the current project. A function return value of zero indicates the function call was successful"
  },
  {
    "name": "Set_active_project_settings_profile",
    "id": 3733,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "active_profile_name",
        "type": "Text"
      }
    ],
    "description": "Set the profile of name active_profile_name as the active project settings profile of the current project. A function return value of zero indicates the function call was successful"
  },
  {
    "name": "Remove_project_setting",
    "id": 3545,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the file was opened successfully."
  },
  {
    "name": "Project_setting_exists",
    "id": 3546,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "A function return value of one indicates the setting exists; return zero otherwise."
  },
  {
    "name": "Get_project_setting_integer",
    "id": 3548,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "ID = 3547 Get_project_setting_real(Text name) Name Real Get_project_setting_real(Text name) Description"
  },
  {
    "name": "Get_project_setting_text",
    "id": 3551,
    "returnType": "Text",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "ID = 3549 Project Setting Page 915 12d Model Macro Manual Get_project_setting_colour(Text name) Name Integer Get_project_setting_colour(Text name) Description"
  },
  {
    "name": "Set_project_setting_integer",
    "id": 3552,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "ID = 3552 Set_project_setting_integer(Text name,Integer value) Name Integer Set_project_setting_integer(Text name,Integer value) Description"
  },
  {
    "name": "Set_project_setting_real",
    "id": 3554,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "ID = 3553 Set_project_setting_text(Text name,Text value) Name Integer Set_project_setting_text(Text name,Text value) Description"
  },
  {
    "name": "Set_project_setting_colour",
    "id": 3556,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "ID = 3555 Set_project_setting_attributes(Text name,Attributes value) Page 916 Project Setting Chapter 5 12dPL Library Calls Name Integer Set_project_setting_attributes(Text name,Attributes value) Description"
  },
  {
    "name": "Set_message_mode",
    "id": 427,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "When macros are running, progress information can be displayed in the information/error message area. Most 12dPL computational intensive functions have standard messages that can be displayed. For example, when triangulating, regular messages showing the number of points triangulated can be displayed. Or the message running with the ticker character \"/\" rotating through 360 degrees. The user can have the standard 12dPL messages displayed, or replace them at any time by a user defined message (set using the function Set_message_text). If mode is set to 0 the user defined message 1 the standard 12dPL message is displayed in the information/error message area. A function return value of zero indicates the mode was successfully set."
  },
  {
    "name": "Set_message_text",
    "id": 426,
    "returnType": "void",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      }
    ],
    "description": "Set the user defined information message to msg. This is a prefix for the ticker \"/\". When the message mode is set to 0 (using the function Set_message_mode), msg is displayed in the information/error message area. The message msg is followed by a rotating ticker (/) to indicate to the user that the macro is running. A function return value of zero indicates the message was successfully set."
  },
  {
    "name": "Prompt",
    "id": 34,
    "returnType": "void",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area of the macro console. prompt message area If another message is written to the prompt message area then the previous message will be Page 920 Macro Console Chapter overwritten by the new message."
  },
  {
    "name": "Prompt",
    "id": 28,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then wait for the user to type text into the user reply area of the Macro Console. When <enter> is pressed then the text in the user reply area is returned in ret. That is, write out the message msg and get a Text ret from the Macro Console when the text is terminated by pressing <enter>. The reply is returned in Text ret. A function return value of zero indicates the text is returned successfully."
  },
  {
    "name": "Prompt",
    "id": 26,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Integer"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back an Integer from the user reply area of the Macro Console. That is, write out the message msg and wait for an integer reply from the Macro Console. The reply is terminated by pressing <enter>. The reply is returned in Integer ret. A function return value of zero indicates that the Integer was returned successfully."
  },
  {
    "name": "Prompt",
    "id": 27,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Real"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Real from the user reply area of the Macro Console. The reply is terminated by pressing <enter>. The reply is returned in Real ret. A function return value of zero indicates that the Real was returned successfully."
  },
  {
    "name": "Error_prompt",
    "id": 419,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the information/error message area of the Macro Console, and writes Press return to continue to the prompt message area and then waits for an <enter> in the user reply area before the macro continues. information/error message area prompt message area user reply area A function return value of zero indicates the function terminated successfully."
  },
  {
    "name": "Choice_prompt",
    "id": 421,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "no_choices",
        "type": "Integer"
      },
      {
        "name": "choices[]",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the choice icon at the right hand end of the user reply area, user reply area, the list of text given in the Text array choices is placed in a pop-up. If one of the choices is selected from the pop-up (using LB), the choice is placed in the user reply area. The reply, either typed or selected from the choice pop-up, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the text is returned successfully."
  },
  {
    "name": "File_prompt",
    "id": 405,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "wild_card_key",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the folder icon at the right hand end of the user reply area, a list of all files in the current area which match the wild_card_key (for example, *.dat) is placed in a pop-up. If a file is Macro Console Page 923 12d Model Macro Manual selected from the pop-up (using LB), the file name is placed in the user reply area. If a name is entered without a dot ending (e.g. fred and not fred.csv say) then the ending after the dot in the wild_card_key is automatically added to the name. For example, if wild_card_key = \"*.rpt\" and \"fred\" is type in as the file name, then ret will be returned as ret = \"fred.rpt\". The reply, either typed or selected from the file pop-up, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Model_prompt",
    "id": 401,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the icon at the right hand end of the user reply area, a list of all existing models is placed in a pop-up. If a model is selected from the pop-up (using LB), the model name is placed in the user reply area. MB for \"Same As\" also applies. That is, If MB is clicked in the user reply area and then a string from a model on a view is selected, then the name of the model containing the selected string is written to the user reply area. msg written to prompt message area Click LB to on the icon to bring up the list of models to select from user reply area The reply, either typed or selected from the model pop-up or Same As, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Template_prompt",
    "id": 403,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. Page 924 Macro Console Chapter If LB is pressed on the icon at the right hand end of the user reply area, a list of all existing templates is placed in a pop-up. If a template is selected from the pop-up (using LB), the template name is placed in the user reply area. The reply, either typed or selected from the template popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the text is returned successfully."
  },
  {
    "name": "Tin_prompt",
    "id": 402,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the tin icon at the right hand end of the user reply area, a list of all existing tins is placed in a pop-up. If a tin is selected from the pop-up (using LB), the Tin name is placed in the user reply area. The reply, either typed or selected from the Tin popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Tin_prompt",
    "id": 684,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the tin icon at the right hand end of the user reply area, a list of all existing tins is placed in a pop-up. If a tin is selected from the pop-up (using LB), the Tin name is placed in the user reply area. The value of mode determines whether Super Tins are listed in the pop-up. Mode Description 0 Don\u2019t list SuperTin. 1 List SuperTin. The reply, either typed or selected from the Tin pop-up, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "View_prompt",
    "id": 406,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the view icon at the right hand end of the user reply area, a list of all existing views is placed in a pop-up. If a view is selected from the pop-up (using LB), the view name is placed in the user reply area. The reply, either typed or selected from the view popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Yes_no_prompt",
    "id": 420,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the choice icon at the right hand end of the user reply area, a yes/no pop-up is placed on the screen. If yes or no is selected from the pop-up (using LB), the selected test is placed in the user reply area. The reply, either typed or selected from the yes/no popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Plotter_prompt",
    "id": 817,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the plotter icon at the right hand end of the user reply area, a list of all existing plotters is placed in a pop-up. If a plotter is selected from the pop-up (using LB), the plotter name is placed in the user reply area. The reply, either typed or selected from the plotter popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Sheet_size_prompt",
    "id": 818,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the choice icon at the right hand end of the user reply area, a list of all existing sheet sizes is placed in a pop-up. If a sheet size is selected from the pop-up (using LB), the sheet size name is placed in the user reply area. The reply, either typed or selected from the sheet_size popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Linestyle_prompt",
    "id": 819,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the linestyle icon at the right hand end of the user reply area, a list of all existing linestyles is placed in a pop-up. If a linestyle is selected from the pop-up (using LB), the linestyle name is placed in the user reply area. The reply, either typed or selected from the linestyle popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Textstyle_prompt",
    "id": 820,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the textstyle icon at the right hand end of the user reply area, a list of all existing textstyles is placed in a pop-up. If a textstyle is selected from the pop-up (using LB), the textstyle name is placed in the user reply area. The reply, either typed or selected from the textstyle popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. Macro Console Page 927 12d Model Macro Manual A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Justify_prompt",
    "id": 821,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the choice icon at the right hand end of the user reply area, a list of all existing justifications is placed in a pop-up. If a Justify is selected from the pop-up (using LB), the Justify name is placed in the user reply area. The reply, either typed or selected from the Justify popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Angle_prompt",
    "id": 822,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the angle icon at the right hand end of the user reply area, a list of Angle measure options is placed in a pop-up. If a Angle is selected from the pop-up (using LB), the Angle name is placed in the user reply area. The reply, either typed or selected from the Angle popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Function_prompt",
    "id": 823,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the function icon at the right hand end of the user reply area, a list of all existing 12d Model Functions is placed in a pop-up. If a Function is selected from the pop-up (using LB), the Function name is placed in the user reply area. The reply, either typed or selected from the Function popup, must be terminated by pressing Page 928 Macro Console Chapter <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Project_prompt",
    "id": 824,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the icon at the right hand end of the user reply area, a list of all existing Projects in the folder is placed in a pop-up. If a Project is selected from the pop-up (using LB), the Project name is placed in the user reply area. The reply, either typed or selected from the Project popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Directory_prompt",
    "id": 825,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the folder icon at the right hand end of the user reply area, the Select Folder dialogue is opened. If a Folder is selected by clicking on it with LB and then clicking on the Select Folder button, the Folder name is placed in the user reply area. The reply, either typed or selected from the Select Folder dialogue, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Text_units_prompt",
    "id": 826,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the choice icon at the right hand end of the user reply area, a list of all existing Text units is placed in a pop-up. If a Text_units is selected from the pop-up (using LB), the Text units Macro Console Page 929 12d Model Macro Manual name is placed in the user reply area. The reply, either typed or selected from the Text_units popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "XYZ_prompt",
    "id": 827,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back what must be x-value y- value z- value with the values separated by one or more spaces. If LB is clicked on the pick icon at the right hand end of the user reply area, an XYZ pick is started and when a pick is made, the coordinates of the pick, separated by spaces, are written in the user reply area. The reply, either typed or selected from the Pick, must be terminated by pressing <Enter> for the macro to continue. The values are returned in x, y and z. A function return value of zero indicates values x, y and z are successfully returned."
  },
  {
    "name": "Name_prompt",
    "id": 828,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      },
      {
        "name": "&ret",
        "type": "Text"
      }
    ],
    "description": "Print the message msg to the prompt message area and then read back a Text from the user reply area of the Macro Console. If LB is clicked on the Name icon at the right hand end of the user reply area, a list of all existing Names is placed in a pop-up. If a Name is selected from the pop-up (using LB), the Name is placed in the user reply area. The reply, either typed or selected from the Name popup, must be terminated by pressing <Enter> for the macro to continue. The reply is returned in Text ret. A function return value of zero indicates the Text ret is returned successfully."
  },
  {
    "name": "Panel_prompt",
    "id": 685,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "panel_name",
        "type": "Text"
      },
      {
        "name": "interactive",
        "type": "Integer"
      },
      {
        "name": "no_field",
        "type": "Integer"
      },
      {
        "name": "field_name[]",
        "type": "Text"
      },
      {
        "name": "field_value[]",
        "type": "Text"
      }
    ],
    "description": "Page 930 Macro Console Chapter Pop up a panel of the name panel_name. No_field specifies how many fields you wish to fill in for the panel. The name of each field is specified in Field_name array. The value of each field is specified in field_value array. If interactive is 1, the panel is displayed and remains until the finish button is selected. If interactive is 0, the panel is displayed, runs the option and then closes. A function return value of zero indicates success. See example Defining and Using Panel_prompt"
  },
  {
    "name": "Panel_prompt",
    "id": 2068,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "panel_name",
        "type": "Text"
      },
      {
        "name": "interactive",
        "type": "Integer"
      },
      {
        "name": "data",
        "type": "Text"
      }
    ],
    "description": "Pop up a panel of the name panel_name. Data specifies the SLF or SLX content. Note, SLF content is deprecated and only for compatibilty purposes. Where a panel has been changed, the SLF content may no longer work. See example Macro Console Page 931 12d Model Macro Manual below: For SLF based data If interactive is 1, the panel is displayed and remains until the finish button is selected. If interactive is 0, the panel is displayed, runs the option and then closes. For SLX based data If interactive is 0xff01, the panel is displayed and remains until the finish button is selected. If interactive is 0xff00, the panel is displayed, runs the option and then closes. A function return value of zero indicates success. See example Defining and Using Panel_prompt"
  },
  {
    "name": "Get_cursor_position",
    "id": 1329,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&x",
        "type": "Integer"
      },
      {
        "name": "&y",
        "type": "Integer"
      }
    ],
    "description": "Get the cursor position (x,y). The units of x and y are screen units (pixels). The type of x and y must be Integer. A function return value of zero indicates the position was returned successfully."
  },
  {
    "name": "Set_cursor_position",
    "id": 1330,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x",
        "type": "Integer"
      },
      {
        "name": "y",
        "type": "Integer"
      }
    ],
    "description": "Set the cursor position with the coordinates (x, y). The units of x and y are screen units (pixels). A function return value of zero indicates the position was successfully set."
  },
  {
    "name": "Create_panel",
    "id": 843,
    "returnType": "Panel",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      }
    ],
    "description": "Create a panel with the title title_text. If LB is clicked on the X on the top right corner of the panel, the text \"Panel Quit\" is returned as the cmd argument to Wait_on_widgets. Click LB on X to send the \"Panel Quit\" command Click LB on the Widows icon to bring up the Windows panel If LB is clicked on the Windows icon on the top left hand corner of the panel, Click LB on X to send the \"Panel About\" command Click LB on X to send the \"Panel About\" command See Wait_on_widgets(Integer &id,Text &cmd,Text &msg). For an example of a panel with Widgets Tin_Box, Buttons, Message_Box and Horizontal and Vertical Groups etc, see Panel Example: The function return value is the created Panel. Note: the Show_widget(Panel panel) call must be made to display the panel on the screen - see Panel Example:."
  },
  {
    "name": "Create_panel",
    "id": 7665,
    "returnType": "Panel",
    "parameters": [
      {
        "name": "title",
        "type": "Text"
      },
      {
        "name": "sizing_enable",
        "type": "Integer"
      },
      {
        "name": "allow_dump",
        "type": "Integer"
      }
    ],
    "description": "Internal use only Same as the above function, this function also creates a panel with the title title_text, but with extra parameters sizing_enable to control the user resizing, allow_dump to control the ability to create ddx slx or chain file, allow_dialog_defaults to allow the dialog defaults when click on the to left of panel. The resulting panel is resizable only if sizing_enable is not zero. The resulting panel is allowed dump only if allow_dump is not zero. The function return value is the created Panel."
  },
  {
    "name": "Create_panel",
    "id": 7950,
    "returnType": "Panel",
    "parameters": [
      {
        "name": "title",
        "type": "Text"
      },
      {
        "name": "sizing_enable",
        "type": "Integer"
      },
      {
        "name": "allow_dump",
        "type": "Integer"
      },
      {
        "name": "allow_dialog_defaults",
        "type": "Integer"
      }
    ],
    "description": "Internal use only, note that the containing widgets inside the panel might make the dialog default not working as user expected in some special cases. Same as the above function, this function also creates a panel with the title title_text, but with extra parameters sizing_enable to control the user resizing, allow_dump to control the ability to create ddx slx or chain file, allow_dialog_defaults to allow the dialog defaults when click on the to left of panel. The resulting panel is resizable only if sizing_enable is not zero. The resulting panel is allowed dump only if allow_dump is not zero. The resulting panel is allowed dialog defaults only if allow_dialog_defaults is not zero. The function return value is the created Panel."
  },
  {
    "name": "Set_panel_tooltips",
    "id": 7998,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "panel",
        "type": "Panel"
      },
      {
        "name": "onoff",
        "type": "Integer"
      }
    ],
    "description": "Change the tooltips for Panel panel on if onoff is 1; off otherwise. A return value of zero indicates the tooltips status was successfully changed."
  },
  {
    "name": "Write_SLX",
    "id": 2903,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "panel",
        "type": "Panel"
      },
      {
        "name": "filename",
        "type": "Text"
      }
    ],
    "description": "Write screen layout file of the Panel panel to the file named filename. A return value of zero indicates the file was successfully written."
  },
  {
    "name": "Read_SLX",
    "id": 2904,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "panel",
        "type": "Panel"
      },
      {
        "name": "filename",
        "type": "Text"
      }
    ],
    "description": "Apply the screen layout file named filename to the Panel panel. A return value of zero indicates the layout was successfully applied."
  },
  {
    "name": "Create_horizontal_group",
    "id": 845,
    "returnType": "Horizontal_Group",
    "parameters": [
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create a Widget of type Horizontal_Group. A Horizontal_Group is used to collect a number of Widgets together. The Widgets are added to the Horizontal_Group using the Append(Widget widget,Horizontal_Group group) call. The Widgets are automatically spaced horizontally in the order that they are appended. mode has the values (defined in set_ups.h) // modes for Horizontal_Group (note -1 is also allowed) For BALANCE_WIDGETS_OVER_WIDTH = 1 the widgets in the horizontal group are all given the same width and are evenly spaced horizontally. So the widgets all have the size of what the largest widget needed. For ALL_WIDGETS_OWN_WIDTH = 2 the widgets in the horizontal group are all their own size all. For COMPRESS_WIDGETS_OVER_WIDTH = 4 . The function return value is the created Horizontal_Group."
  },
  {
    "name": "Create_button_group",
    "id": 846,
    "returnType": "Horizontal_Group",
    "parameters": [],
    "description": "Create a Widget of type Horizontal_Group to hold Widgets of type Button. A Horizontal_Group is used to collect a number of Widgets together. The Widgets are added to the Horizontal_Group using the Append(Widget widget,Horizontal_Group group) call. The Widgets are automatically spaced horizontally in the order that they are appended. The Create_button_group goes a bit further than Create_horizontal_group in making the button spacing more even. The function return value is the created Horizontal_Group."
  },
  {
    "name": "Set_border",
    "id": 1098,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Horizontal_Group"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Set a border for the Horizontal_Group group with Text text.on the top left side of the border. If text is blank, the border is removed. Horizontal_Groupoftwo Buttons withnoborder Horizontal_Groupoftwo Buttons withborderandtext\"Buttons\" A function return value of zero indicates the border was successfully set."
  },
  {
    "name": "Set_border",
    "id": 858,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Horizontal_Group"
      },
      {
        "name": "bx",
        "type": "Integer"
      },
      {
        "name": "by",
        "type": "Integer"
      }
    ],
    "description": "Set a gap around the border of the Horizontal_Group group. bx sets the left and right side gap around the border. by sets the top and bottom side gap around of the border. The units of bx and by are screen units (pixels). A function return value of zero indicates the border gap was successfully set. Panels and Widgets Page 945 12d Model Macro Manual Horizontal_Groupoftwo Buttons withdefaultbordergaps andtext\"Buttons\" Horizontal_Groupoftwo Buttons withbordergapsbx=10andby=20 andtext\"Buttons\""
  },
  {
    "name": "Set_gap",
    "id": 1506,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Horizontal_Group"
      },
      {
        "name": "gap",
        "type": "Integer"
      }
    ],
    "description": "Set a horizontal gap of at least gap screen units (pixels) between the Widgets of the Horizontal_Group group. A function return value of zero indicates the vertical gap was successfully set."
  },
  {
    "name": "Set_radio",
    "id": 7704,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Horizontal_Group"
      },
      {
        "name": "tick",
        "type": "Named_Tick_Box"
      },
      {
        "name": "left_hand_side",
        "type": "Integer"
      }
    ],
    "description": "Under development, not yet ready"
  },
  {
    "name": "Set_button",
    "id": 7706,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Horizontal_Group"
      },
      {
        "name": "tick",
        "type": "Named_Tick_Box"
      },
      {
        "name": "left_hand_side",
        "type": "Integer"
      }
    ],
    "description": "Under development, not yet ready"
  },
  {
    "name": "Create_vertical_group",
    "id": 844,
    "returnType": "Vertical_Group",
    "parameters": [
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create a widget of type Vertical_Group. A Vertical_Group is used to collect a number of Widgets together. The Widgets are added to the Vertical_Group using the Append(Widget widget,Vertical_Group group) call. All the Widgets appended to the Vertical_Group are given the same width. The Widgets are automatically spaced vertically in the order that they are appended to the Vertical_Group. mode has the values (defined in set_ups.h) // modes for Vertical_Group (note -1 is also allowed) For BALANCE_WIDGETS_OVER_HEIGHT = 1 the widgets in the vertical group are evenly spaced vertically. For ALL_WIDGETS_OWN_HEIGHT = 2 For ALL_WIDGETS_OWN_LENGTH = 4 The function return value is the created Vertical_Group."
  },
  {
    "name": "Append",
    "id": 854,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "group",
        "type": "Vertical_Group"
      }
    ],
    "description": "Append the Widget widget to the Vertical_Group group. A function return value of zero indicates the widget was appended successfully."
  },
  {
    "name": "Set_border",
    "id": 1099,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Vertical_Group"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Set a border of the Vertical_Group group with Text text.on the top left side of the border. If text is Panels and Widgets Page 947 12d Model Macro Manual blank, the border is removed. A function return value of zero indicates the border was successfully set. ThetinsareaVertical_Groupof 4 Widgetswithnoborder ThesameVertical_Groupof4 Widgets withborderandtext\"Tins\" Note that for the left and right gaps that the width of the panel doesn\u2019t change but the gap from the sides of the panel to the box is increased"
  },
  {
    "name": "Set_border",
    "id": 859,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Vertical_Group"
      },
      {
        "name": "bx",
        "type": "Integer"
      },
      {
        "name": "by",
        "type": "Integer"
      }
    ],
    "description": "Set a gap around the border of the Vertical_Group group. bx sets the left and right side gap around the border. by sets the top and bottom side gap around of the border. The units of bx and by are screen units (pixels). A function return value of zero indicates the border gap was successfully set. Page 948 Panels and Widgets Chapter Vertical_Group of 4 Widgets with default border gaps andtext \"Tins\" Vertical_Group of 4 Widgets with border gaps bx =10 and by = 20 and text \"Tins\" Note that for the left and right gaps that the width of the panel doesn\u2019t change but the gap from the sides of the panel to the box is increased"
  },
  {
    "name": "Set_gap",
    "id": 1507,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Vertical_Group"
      },
      {
        "name": "gap",
        "type": "Integer"
      }
    ],
    "description": "Set a vertical gap of at least gap screen units (pixels) between the Widgets of the Vertical_Group group. A function return value of zero indicates the vertical gap was successfully set."
  },
  {
    "name": "Get_sizing_constraints",
    "id": 3822,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&horizontal_mode",
        "type": "Integer"
      },
      {
        "name": "&vertical_mode",
        "type": "Integer"
      }
    ],
    "description": "Get the horizontal_mode and vertical_mode of the sizing constraints for given Widget widget. Meaning of the sizing constraint modes 0 Sizing_Balance_Resize balance the widgets over the available space (and set them to be the same size) 1 Sizing_Balance_No_Resize balance the widgets over the available space (and keep them their original size) 2 Sizing_Fill fill the widgets to entirely fill the available space 3 Sizing_Fill_No_Resize size to fill the available space, but don't resize after that 4 Sizing_Original keep the widgets in their original size and location Panels and Widgets Page 949 12d Model Macro Manual 5 Sizing_Default do whatever the container wants to do A function return value of zero indicates the sizing constraints was successfully returned."
  },
  {
    "name": "Set_sizing_constraints",
    "id": 3823,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "horizontal_mode",
        "type": "Integer"
      },
      {
        "name": "vertical_mode",
        "type": "Integer"
      }
    ],
    "description": "Set the horizontal_mode and vertical_mode of the sizing constraints for given Widget widget. Meaning of the sizing constraint modes 0 Sizing_Balance_Resize balance the widgets over the available space (and set them to be the same size) 1 Sizing_Balance_No_Resize balance the widgets over the available space (and keep them their original size) 2 Sizing_Fill fill the widgets to entirely fill the available space 3 Sizing_Fill_No_Resize size to fill the available space, but don't resize after that 4 Sizing_Original keep the widgets in their original size and location 5 Sizing_Default do whatever the container wants to do A function return value of zero indicates the sizing constraints was successfully set."
  },
  {
    "name": "Set_radio",
    "id": 7705,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Vertical_Group"
      },
      {
        "name": "tick",
        "type": "Named_Tick_Box"
      },
      {
        "name": "left_hand_side",
        "type": "Integer"
      }
    ],
    "description": "Under development, not yet ready"
  },
  {
    "name": "Set_button",
    "id": 7707,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "group",
        "type": "Vertical_Group"
      },
      {
        "name": "tick",
        "type": "Named_Tick_Box"
      },
      {
        "name": "left_hand_side",
        "type": "Integer"
      }
    ],
    "description": "Under development, not yet ready"
  },
  {
    "name": "Wait_on_widgets",
    "id": 857,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&id",
        "type": "Integer"
      },
      {
        "name": "&cmd",
        "type": "Text"
      },
      {
        "name": "&msg",
        "type": "Text"
      }
    ],
    "description": "When the user activates a Widget displayed on the screen (for example by clicking on a Button Widget), the id, cmd and msg from the widget is passed back to Wait_on_widgets. id is the id of the Widget that has been activated. cmd is the command text that is returned from the Widget. msg is the message text that is returned from the Widget. A function return value of zero indicates the data was successfully returned. Note: there might be unknown events might be passed to Wait_on_widgets, the return value will still be zero in those case, but id, cmd and msg will remain unchanged. Note: for a Button, the returned cmd is the Text reply given when the Button was created. See Create_button(Text title_text,Text reply)."
  },
  {
    "name": "Wait_on_events",
    "id": 5422,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&id",
        "type": "Integer64"
      },
      {
        "name": "&cmd",
        "type": "Text"
      },
      {
        "name": "&msg",
        "type": "Text"
      }
    ],
    "description": "When the user activates a Widget displayed on the screen (for example by clicking on a Button Widget), the id, cmd and msg from the widget is passed back to Wait_on_widgets. id is the id of the Widget that has been activated. cmd is the command text that is returned from the Widget. msg is the message text that is returned from the Widget. A function return value of zero indicates the data was successfully returned. Note: there might be unknown events might be passed to Wait_on_events, the return value will still be zero in those case, but id, cmd and msg will remain unchanged. Note: for a Button, the returned cmd is the Text reply given when the Button was created. See Create_button(Text title_text,Text reply)."
  },
  {
    "name": "Get_id64",
    "id": 5423,
    "returnType": "Integer64",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      }
    ],
    "description": "Return the ID of a given Widget widget as a 64bit Integer."
  },
  {
    "name": "Use_browse_button",
    "id": 1095,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set whether the browse button is available for Widget widget. If mode = 1 use the browse button if mode = 0 don\u2019t use the browse button. The default value for a Widget is mode = 1. If the browse button is not used, the space where the button would be, is removed. Note: This call must be made before the Panel that contains the widget is shown. A function return value of zero indicates the value was valid. BrowsebuttonofaWidget Use_browse_button mode = 1 Use_browse_button mode = 0"
  },
  {
    "name": "Show_browse_button",
    "id": 1096,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "This calls you to show or hide the browse button for the Widget widget. If mode = 1 show the browse button if mode = 0 don\u2019t show the browse button. The default value for a Widget is mode = 1. This call can be made after the Widget has been added to a panel and allows the Browse button of the Widget to be turned on and off under the programmers control. Note if Use_browse_button was called with a mode of 0 then this call is ineffective. See Use_browse_button(Widget widget,Integer mode) A function return value of zero indicates the mode was successfully set. BrowseButtonof theTin_BoxWidget Show_browse_button mode = 1 Show_browse_button mode = 0"
  },
  {
    "name": "Set_enable",
    "id": 1101,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the enabled mode for the Widget widget. If mode = 1 the Widget is to be enabled mode = 0 the Widget is not to be enabled. The default value for a Widget is mode = 1. Note If the widget is not enabled, it will be greyed out in the standard Windows fashion and no interaction with the Widget is possible. A function return value of zero indicates the mode was successfully set. Set_enable mode = 1 Set_enable mode = 0 AllpartsofthedisabledWidgetaregreyedout"
  },
  {
    "name": "Get_enable",
    "id": 1100,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Check if the Widget widget is enabled or disabled. See Set_enable(Widget widget,Integer mode) Return the Integer mode where mode = 1 if the Widget is enabled mode = 0 if the Widget is not enabled. A function return value of zero indicates the mode was returned successfully."
  },
  {
    "name": "Set_optional",
    "id": 1324,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the optional mode for the Widget widget. That is, if the Widget field is blank, the title text to the left is greyed out, signifying that this Widget is optional. If mode = 1 the widget is optional mode = 0 the widget is not optional. The default value for a Widget is mode = 0. Panels and Widgets Page 953 12d Model Macro Manual If this mode is used (i.e. 1), the widget must be able to accept a blank response for the field, or assume a reasonable value. A function return value of zero indicates the mode was successfully set. Set_optional mode = 0 Widgettitle Set_optional mode = 1 greyedout Note: not all Widgets can be set to be optional. For example Choice_Box, Named_Tick_Box, Source_Box,"
  },
  {
    "name": "Get_optional",
    "id": 1325,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Check if the Widget widget is optional. That is, the Widget does not have to be answered.See Set_optional(Widget widget,Integer mode) Return the Integer mode where mode = 1 if the Widget is optional mode = 0 if the Widget is not optional. A function return value of zero indicates the mode was returned successfully."
  },
  {
    "name": "Set_visible",
    "id": 1614,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the visible mode for the Widget widget. If mode = 1 the widget is visible, and not displayed on the panel mode = 0 the widget is not visible and not displayed. Even if the widget is invisible, it still takes the same space on a panel. The default value for a Widget is visible. That is, mode = 1. A function return value of zero indicates the visibility was successfully set. Page 954 Panels and Widgets Chapter Widget is visible Set_visible mode = 1 Widget is invisible Set_visible mode = 0 Space is still left where the Widget is even though it is invisible"
  },
  {
    "name": "Get_visible",
    "id": 1615,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Get the visibility mode for the Widget widget. Return the Integer mode where mode = 1 if the Widget is visible mode = 0 if the Widget is not visible. A function return value of zero indicates the visibility was returned successfully."
  },
  {
    "name": "Set_name",
    "id": 1326,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Set the title text of the Widget widget. A Widget is usually given a title when it is first created This call can be made after the Widget has been added to a panel and allows the title of the Widget to be changed under the programmers control. A function return value of zero indicates the title was successfully set."
  },
  {
    "name": "Get_name",
    "id": 1327,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "Get the title text from the Widget widget. Panels and Widgets Page 955 12d Model Macro Manual A function return value of zero indicates the text was returned successfully."
  },
  {
    "name": "Set_dump_name",
    "id": 2905,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Set the dump name of the Widget widget to Text text. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_dump_name",
    "id": 2906,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "Get the dump name of the Widget widget to set to Text text. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_dump_name",
    "id": 2907,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&text",
        "type": "Text"
      },
      {
        "name": "effective",
        "type": "Integer"
      }
    ],
    "description": "Get the dump name of the Widget widget to set to Text text. If effective is not zero, the name is \"effective\". A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_error_message",
    "id": 1437,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "This call is used to set the error message for a Widget if it is validated and there is an error. LJG ? When there is an error, text is sent to the associated Message_Box of the widget, the focus is set to the widget and the cursor is moved to the widget. A function return value of zero indicates the text was successfully set."
  },
  {
    "name": "Set_width_in_chars",
    "id": 1042,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "num_char",
        "type": "Integer"
      }
    ],
    "description": "Set the Widget widget to be num_char characters wide. A function return value of zero indicates the width was set successful."
  },
  {
    "name": "Show_widget",
    "id": 855,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      }
    ],
    "description": "Show the Widget widget at the cursor\u2019s current position. Note: The call Show_widget(Widget widget,Integer x,Integer y) allows you to give the screen coordinates to position the Widget. See Show_widget(Widget widget,Integer x,Integer y). A function return value of zero indicates the widget was shown successfully."
  },
  {
    "name": "Show_widget",
    "id": 1039,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "x",
        "type": "Integer"
      },
      {
        "name": "y",
        "type": "Integer"
      }
    ],
    "description": "Show the Widget widget at the screen coordinates x, y. The units for x and y are pixels. A function return value of zero indicates the widget was shown successfully."
  },
  {
    "name": "Hide_widget",
    "id": 856,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      }
    ],
    "description": "Hide the Widget widget. That is, don\u2019t display the Widget on the screen. Note the Widget still exists but it is not visible on the screen. The Widget will appear again by calling Show_widget. See Show_widget(Widget widget). A function return value of zero indicates the widget was hidden successfully."
  },
  {
    "name": "Set_size",
    "id": 1365,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "x",
        "type": "Integer"
      },
      {
        "name": "y",
        "type": "Integer"
      }
    ],
    "description": "Panels and Widgets Page 957 12d Model Macro Manual Set the size in screen units (pixels) of the Widget widget with the width x and height y. The type of x and y must be Integer. A function return value of zero indicates the size was successfully set."
  },
  {
    "name": "Get_size",
    "id": 1331,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&x",
        "type": "Integer"
      },
      {
        "name": "&y",
        "type": "Integer"
      }
    ],
    "description": "Get the size in screen units (pixels) of the Widget widget in x and y. The type of x and y must be Integer. A function return value of zero indicates the size was returned successfully."
  },
  {
    "name": "Get_widget_size",
    "id": 1041,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&w",
        "type": "Integer"
      },
      {
        "name": "&h",
        "type": "Integer"
      }
    ],
    "description": "Get the size of the Widget widget in screen units (pixels) The width of widget is returned in w and the height of widget is returned in h. A function return value of zero indicates the size was successfully returned."
  },
  {
    "name": "Set_cursor_position",
    "id": 1059,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      }
    ],
    "description": "Move the cursor position to the Widget widget. A function return value of zero indicates the position was successfully set."
  },
  {
    "name": "Get_widget_position",
    "id": 1040,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&x",
        "type": "Integer"
      },
      {
        "name": "&y",
        "type": "Integer"
      }
    ],
    "description": "Get the screen position of the Widget widget. The position of the widget is returned in x, y. The units of x and y are screen units (pixels). A function return value of zero indicates the position was successfully returned."
  },
  {
    "name": "Get_position",
    "id": 1366,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&x",
        "type": "Integer"
      },
      {
        "name": "&y",
        "type": "Integer"
      }
    ],
    "description": "Get the screen position of the Widget widget. The position of the widget is returned in x, y. The units of x and y are screen units (pixels). A function return value of zero indicates the position was successfully returned."
  },
  {
    "name": "Get_id",
    "id": 1097,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      }
    ],
    "description": "When a Widget is created, it is given a unique identifying number (id) in the project. This function get the id of the Widget widget and returns id as the function return value. That is, the Integer function return value is the Widget id. D = 879 Set_focus(Widget widget) Name Integer Set_focus(Widget widget) Description Set the focus to the typed input area for an Input Widget widget, or on the button for a Button Widget widget. After this call all typed input will go to this widget. A function return value of zero indicates the focus was successfully set."
  },
  {
    "name": "Set_tooltip",
    "id": 1363,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "tip",
        "type": "Text"
      }
    ],
    "description": "Sets the tool tip message for the Widget widget to tip. When the user hovers over widget, this message tip will be displayed as a Windows tooltip. A function return value of zero indicates the tooltip was successfully set. Tooltip shown as cursor goes over the Widget"
  },
  {
    "name": "Get_tooltip",
    "id": 1364,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&tip",
        "type": "Text"
      }
    ],
    "description": "Queries the current tool tip message and returns the message in tip. A function return value of zero indicates the tooltip was successfully returned."
  },
  {
    "name": "Set_help",
    "id": 1312,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "help_num",
        "type": "Integer"
      }
    ],
    "description": "For the Widget widget, the help number for widget is set to help_num. This is currently not used. A function return value of zero indicates the help number was successfully set. Note: See 5.61.13.4 Help Button for creating a Help button that allows the macro to access the 12d Model Extra Help system."
  },
  {
    "name": "Get_help",
    "id": 1313,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&help_num",
        "type": "Integer"
      }
    ],
    "description": "Get the help number for Widget widget and return it in help_num. Page 962 Panels and Widgets Chapter The type of help must be integer. A function return value of zero indicates the help number was successfully returned. Note: See 5.61.13.4 Help Button for creating a Help button that allows the macro to access the 12d Model Extra Help system."
  },
  {
    "name": "Set_help",
    "id": 1314,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "help_message",
        "type": "Text"
      }
    ],
    "description": "For the Widget widget, the help message for widget is set to help_message. This help message will be sent back to 12d Model via Wait_on_widgets(Integer &id,Text &cmd,Text &msg) with command cmd equal to \u201cHelp\u201d, and msg equal to help_message. So a sample bit of code to handle help is Wait_on_widgets(id,cmd,msg); if (cmd == \u201cHelp\u201d) {; Winhelp(panel,\"12d.hlp\",'a',msg); // in the Winhelp file 12d.hlp, // find and display the a table entry msg continue; } A function return value of zero indicates the text was successfully set."
  },
  {
    "name": "Get_help",
    "id": 1315,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&help_message",
        "type": "Text"
      }
    ],
    "description": "Queries the current help message for a widget and returns the message in help_mesage. A function return value of zero indicates the message was successfully returned."
  },
  {
    "name": "Winhelp",
    "id": 1316,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "help_file",
        "type": "Text"
      },
      {
        "name": "key",
        "type": "Text"
      }
    ],
    "description": "Calls the Windows help system to display the key from the k table of the Windows help file help_file. The Windows help file help_file must exist and be in a location that can be found. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Winhelp",
    "id": 1317,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "help_file",
        "type": "Text"
      },
      {
        "name": "table",
        "type": "Integer"
      },
      {
        "name": "key",
        "type": "Text"
      }
    ],
    "description": "Calls the Windows help system to display the key from the named table of the help file help_file. table takes the form \u2018a\u2019, \u2018k\u2019 etc. The Windows help file help_file must exist and be in a location that can be found. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Winhelp",
    "id": 1318,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "help_file",
        "type": "Text"
      },
      {
        "name": "help_id",
        "type": "Integer"
      }
    ],
    "description": "Calls the Windows help system to display the key from the k table of the help file help_file. The Windows help file help_file must exist and be in a location that can be found. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Winhelp",
    "id": 1319,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "help_file",
        "type": "Text"
      },
      {
        "name": "help_id",
        "type": "Integer"
      },
      {
        "name": "popup",
        "type": "Integer"
      }
    ],
    "description": "Calls the Windows help system to display the help with help number help_id from the k table of the help file help_file. The Windows help file help_file must exist and be in a location that can be found. If popup is not zero then the help information appears as a popup style help; If popup is zero then the help information appears as a normal help. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Create_widget_pages",
    "id": 1243,
    "returnType": "Widget_Pages",
    "parameters": [],
    "description": "A Widget_Pages object allows a number of controls to exist in the same physical location on a dialog. This is very handy if you want a field to change between a Model_Box, View_Box or the like. A bit of sample code might look like, Vertical_Group vgroup1 = Create_vertical_group(0); Model_Box mbox = Create_model_box(\u2026); Append(mbox,vgroup1); Vertical_Group vgroup2 = Create_vertical_group(0); View_Box vbox = Create_view_box(\u2026); Append(vbox,vgroup2); Widget_Pages pages = Create_widget_pages(); Append(vgroup1,pages); Append(vgroup2,pages); Set_page(page,1) // this shows the 1st page - vgroup1 The function return value is the created Widget_pages."
  },
  {
    "name": "Append",
    "id": 1244,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "pages",
        "type": "Widget_Pages"
      }
    ],
    "description": "Append Widget widget into the Widget_Pages pages. For each item appended, another page is created. If you want more than 1 item on a page, add each item to a Horizontal_Group, Vertical_Group. A function return value of zero indicates the widget was appended successfully."
  },
  {
    "name": "Set_page",
    "id": 1245,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pages",
        "type": "Widget_Pages"
      },
      {
        "name": "n",
        "type": "Integer"
      }
    ],
    "description": "Show (display on the screen) the n\u2019th page of the Widget_Pages pages. Note the \"n\u2019th page\" is the n\u2019th widget appended to the Widget_Pages pages. All the controls associated with the n\u2019th page_no are shown. A function return value of zero indicates the page was successfully set. Panels and Widgets Page 965 12d Model Macro Manual"
  },
  {
    "name": "Set_page",
    "id": 1606,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pages",
        "type": "Widget_Pages"
      },
      {
        "name": "widget",
        "type": "Widget"
      }
    ],
    "description": "Show (display on the screen) the page of pages containing the Widget widget. All the controls associated with the widget are shown. A function return value of zero indicates the page was successfully set."
  },
  {
    "name": "Get_page",
    "id": 1607,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pages",
        "type": "Widget_Pages"
      },
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "&page_no",
        "type": "Integer"
      }
    ],
    "description": "For the Widget_Pages pages, get the page number of the page containing the Widget widget. Note the \"n\u2019th page\" of a Widget_Pages is the n\u2019th widget appended to the Widget_Pages. The page n umber is returned as page_no. A function return value of zero indicates the page number was successfully returned."
  },
  {
    "name": "Set_dynamic_sizing",
    "id": 3963,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pages",
        "type": "Widget_Pages"
      },
      {
        "name": "enable",
        "type": "Integer"
      }
    ],
    "description": "Set dynamic sizing ability for Widget page pages by Integer enable (1 - yes, 0 - no). A function return value of zero indicates the page was successfully set."
  },
  {
    "name": "Get_dynamic_sizing",
    "id": 3964,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pages",
        "type": "Widget_Pages"
      },
      {
        "name": "&enable",
        "type": "Integer"
      }
    ],
    "description": "For the Widget_Pages pages, check the dynamic sizing ability and return it in Integer enable (1 - yes, 0 - no). A function return value of zero indicates the page property was successfully returned."
  },
  {
    "name": "Create_angle_box",
    "id": 886,
    "returnType": "Angle_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Angle_Box for inputting and validating angles. See 5.61.10.1 Angle_Box. An angle is typed into the Angle_Box in hp notation (i.e. ddd.mmssss) but after it is validated it is displayed in degrees, minutes and seconds. However the validated angle is stored in the Angle_Box as a Real in radians. The Angle_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Angle_Box validation messages. The function return value is the created Angle_Box."
  },
  {
    "name": "Set_data",
    "id": 888,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Angle_Box"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "Set the data for the Angle_Box box to the Real value angle. angle is in radians and is measured in a counterclockwise direction from the positive x-axis. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1515,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Angle_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the text displayed in the Angle_Box box to the Text text_data. Note that text_data should be in degrees, minutes and seconds using the hp notation (i.e. ddd.mmssss) BUT the text_data can be any text at all and may not even be a valid angle (in degrees in hp notation). This may lead to an error when the Angle_Box is validated. A function return value of zero indicates the data was successfully set, even if the text_data will not validate."
  },
  {
    "name": "Validate",
    "id": 887,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Angle_Box"
      },
      {
        "name": "&angle",
        "type": "Real"
      }
    ],
    "description": "Validate the contents of the Angle_Box box and return the angle in radians angle. angle is in radians and is measured in a counterclockwise direction from the positive x-axis. The function returns the value of: NO_NAME if the Widget Angle_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Create_attributes_box",
    "id": 2210,
    "returnType": "Attributes_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Attributes_Box. See 5.61.10.2 Attributes_Box. The Attributes_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Attribute_Box validation messages. The function return value is the created Attributes_Box."
  },
  {
    "name": "Set_data",
    "id": 2213,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Attributes_Box"
      },
      {
        "name": "&data",
        "type": "Attributes"
      }
    ],
    "description": "Set the data of type Attributes for the Attributes_Box box to data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 2214,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Attributes_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Attributes_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 2212,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Attributes_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Attributes_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_billboard_box",
    "id": 1871,
    "returnType": "Billboard_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Billboard_Box. See 5.61.10.3 Billboard_Box. The Billboard_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Billboard_Box validation messages. The function return value is the created Billboard_Box."
  },
  {
    "name": "Set_data",
    "id": 1873,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Billboard_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Billboard_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 1874,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Billboard_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Billboard_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Validate",
    "id": 1872,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Billboard_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Billboard_Box box and return the name of the billboard in Text result. The function returns the value of: NO_NAME if the Widget Billboard_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Panels and Widgets Page 973 12d Model Macro Manual Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_billboard_size",
    "id": 1932,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&w",
        "type": "Real"
      },
      {
        "name": "&h",
        "type": "Real"
      }
    ],
    "description": "Get world size from billboards.4d file with width w and height h. A function return value of zero indicates the size was successfully returned."
  },
  {
    "name": "Create_bitmap_fill_box",
    "id": 1879,
    "returnType": "Bitmap_Fill_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Bitmap_Fill_Box. See 5.61.10.4 Bitmap_Fill_Box. The Bitmap_Fill_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Bitmap_Fill_Box validation messages. The function return value is the created Bitmap_Fill_Box."
  },
  {
    "name": "Validate",
    "id": 1880,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Bitmap_Fill_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Bitmap_Fill_Box box and return the name of the bitmap in Text result. The function returns the value of: NO_NAME if the Widget Bitmap_Fill_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 1881,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Bitmap_Fill_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Bitmap_Fill_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 1882,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Bitmap_Fill_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Bitmap_Fill_Box box and return it in text_data. Panels and Widgets Page 975 12d Model Macro Manual A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_chainage_box",
    "id": 2203,
    "returnType": "Chainage_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Chainage_Box. See 5.61.10.5 Chainage_Box. The Chainage_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Chainage_Box validation messages. The function return value is the created Chainage_Box."
  },
  {
    "name": "Validate",
    "id": 2204,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Chainage_Box"
      },
      {
        "name": "&result",
        "type": "Real"
      }
    ],
    "description": "Validate the contents of Chainage_Box box and return the chainage in Real result. The function returns the value of: NO_NAME if the Widget Chainage_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 2205,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Chainage_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Page 978 Panels and Widgets Chapter Get the data of type Text from the Chainage_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 2206,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Chainage_Box"
      },
      {
        "name": "real_data",
        "type": "Real"
      }
    ],
    "description": "Set the data of type Real for the Chainage_Box box to real_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 2207,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Chainage_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Chainage_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_choice_box",
    "id": 890,
    "returnType": "Choice_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Choice_Box. See 5.61.10.6 Choice_Box. The Choice_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Choice_Box validation messages. The function return value is the created Choice_Box."
  },
  {
    "name": "Validate",
    "id": 891,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Choice_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Choice_Box box and return the Text result. The function returns the value of: NO_NAME if the Widget Choice_Box is optional and the box is left empty 1 if no other return code is needed and result is valid. -1 if there is an invalid choice. zero if there is a drastic error. So a function return value of zero indicates that there is an error as well as other values. Warning this is the opposite of most 12dPL function return values Double Warning: most times the function return code is not zero even when you think it should be. The actual value of the function return code must be checked to see what is going on. For example, when there is an incorrect choice, the function return value is -2."
  },
  {
    "name": "Get_data",
    "id": 893,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Choice_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Choice_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 7949,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Choice_Box"
      },
      {
        "name": "data",
        "type": "Text"
      },
      {
        "name": "validate",
        "type": "Integer"
      }
    ],
    "description": "Set the data of type Text for the Choice_Box box to text_data. If validate is not zero, then the call will only allow text_data that is in the current choice list. If validate is zero, then any text value for text_data can be set to the box A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 997,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Choice_Box"
      },
      {
        "name": "nc",
        "type": "Integer"
      },
      {
        "name": "choices[]",
        "type": "Text"
      }
    ],
    "description": "Set the values available in the choice list. There are nc items in the choices list for the Choice_Box box. For example Text choices[3]; choices[1] = \"top\"; choices[2] = \"middle\"; choices[3] = \"bottom\"; Choice_Box choice_box = Create_choice_box(\"Pick from list\",message); Set_data(choice_box,3,choices); Note: To be valid, any data typed into the Choice_Box information area must be from the choices list. A function return value of zero indicates the nc\u2019th data in the choices list was successfully set."
  },
  {
    "name": "Set_data",
    "id": 7959,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Choice_Box"
      },
      {
        "name": "choices",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Set the values available in the choice list using a Dynamic_Text choices. This is a safer alternative than the above call. A function return value of zero indicates the list of choices was successfully set. Page 982 Panels and Widgets Chapter"
  },
  {
    "name": "Create_projection_box",
    "id": 7730,
    "returnType": "Projection_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Projection_Box. The Projection_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Colour_Box validation messages. The function return value is the created Projection_Box."
  },
  {
    "name": "Validate",
    "id": 7731,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Projection_Box"
      },
      {
        "name": "&name",
        "type": "Text"
      },
      {
        "name": "&type",
        "type": "Text"
      },
      {
        "name": "&data",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Projection_Box box and return the type and data. The function returns the value of: NO_NAME if the Widget Projection_Box is optional and the box is left empty -1 if the text in the Projection_Box is not a valid projection. TRUE (1) if the projection is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. For example, the Projection_Box is not optional and is left blank. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 7732,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Projection_Box"
      },
      {
        "name": "data",
        "type": "Text"
      }
    ],
    "description": "Set the data for the Projection_Box box to be the text data. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Create_colour_box",
    "id": 894,
    "returnType": "Colour_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Colour_Box. See 5.61.10.8 Colour_Box. Panels and Widgets Page 987 12d Model Macro Manual The Colour_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Colour_Box validation messages. The function return value is the created Colour_Box."
  },
  {
    "name": "Validate",
    "id": 895,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Colour_Box"
      },
      {
        "name": "&col_num",
        "type": "Integer"
      }
    ],
    "description": "Validate the contents of Colour_Box box and return the Integer colour number I in col_num. The function returns the value of: NO_NAME if the Widget Colour_Box is optional and the box is left empty -1 if the text in the Colour_Box is not a valid colour number or colour name. TRUE (1) if no other return code is needed and col_num is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. For example, the Colour_Box is not optional and is left blank. Warning this is the opposite of most 12dPL function return values Double Warning the function return can be non zero but the col_num is unusable."
  },
  {
    "name": "Set_data",
    "id": 896,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Colour_Box"
      },
      {
        "name": "colour_num",
        "type": "Integer"
      }
    ],
    "description": "Set the data for the Colour_Box box to be the colour number colour_num. This is the colour number that will be first displayed in the Colour_Box. colour_num must be Integer. A function return value of zero indicates the colour number was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1328,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Colour_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Colour_Box box to text_data. This is the colour name that will be first displayed in the Colour_Box. A function return value of zero indicates the data was successfully set. Page 988 Panels and Widgets Chapter"
  },
  {
    "name": "Get_data",
    "id": 897,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Colour_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Colour_Box box and return it in text_data. This is the colour name entered into the Colour_Box. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_date_time_box",
    "id": 1883,
    "returnType": "Date_Time_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Date_Time_Box. See 5.61.10.9 Date_Time_Box. The Date_Time_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Date_Time_Box validation messages. By default, the format for a new Date_Time_Box is set to Show_Date and the value for is_gmt is false; see the below Set_format and Set_gmt call for more detail The function return value is the created Date_Time_Box."
  },
  {
    "name": "Set_format",
    "id": 2289,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "format",
        "type": "Integer"
      }
    ],
    "description": "Set the format for the Date_Time_Box box to Integer format. The list of valid format is: Show_Date 0 Show_Time 1 Show_Date_Time 2 Show_Time_Decimals 3 Show_Date_Time_Decimals 4 A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_gmt",
    "id": 2290,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "is_gmt",
        "type": "Integer"
      }
    ],
    "description": "Set the GMT property for the Date_Time_Box box to Integer is_gmt. If value is_gmt is not zero, then the Date_Time_Box is in GMT. If value is_gmt is not zero, then the Date_Time_Box is using local machine time. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Validate",
    "id": 2287,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "&data",
        "type": "Integer"
      }
    ],
    "description": "Validate the contents of Date_Time_Box box and return the time in Integer data as the number of seconds elapsed since midnight (00:00:00), January 1, 1970, Coordinated Universal Time (UTC). The function returns the value of: NO_NAME if the Widget Date_Time_Box is optional and the box is left empty TRUE (1) if no other return code is needed and data is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Validate",
    "id": 2288,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "&data",
        "type": "Real"
      }
    ],
    "description": "Validate the contents of Date_Time_Box box and return the time in Real data as the number of seconds elapsed since midnight (00:00:00), January 1, 1601, Coordinated Universal Time (UTC). The function returns the value of: NO_NAME if the Widget Date_Time_Box is optional and the box is left empty TRUE (1) if no other return code is needed and data is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 1885,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Date_Time_Box box to text_data. There are various text format for text_data that the call will accept such as DD/MM/YYYY HH:MM:SS or DD-MMM-YYYY HH:MM:SS. Warning the call only work after the containing panel has been shown. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 1886,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Date_Time_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 2283,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "integer_data",
        "type": "Integer"
      }
    ],
    "description": "Set the data of type Integer for the Date_Time_Box box to integer_data as the number of seconds elapsed since midnight (00:00:00), January 1, 1970, Coordinated Universal Time (UTC). Warning the call only work after the containing panel has been shown. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 2284,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "&integer_data",
        "type": "Integer"
      }
    ],
    "description": "Get the data of type Integer from the Date_Time_Box box and return it in integer_data as the number of seconds elapsed since midnight (00:00:00), January 1, 1970, Coordinated Universal Time (UTC). A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 2285,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "real_data",
        "type": "Real"
      }
    ],
    "description": "Set the data of type Real for the Date_Time_Box box to real_data as the number of seconds elapsed since midnight (00:00:00), January 1, 1601, Coordinated Universal Time (UTC). Warning the call only work after the containing panel has been shown. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 2286,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Date_Time_Box"
      },
      {
        "name": "&real_data",
        "type": "Real"
      }
    ],
    "description": "Get the data of type Real from the Date_Time_Box box and return it in real_data as the number of seconds elapsed since midnight (00:00:00), January 1, 1601, Coordinated Universal Time (UTC). A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_directory_box",
    "id": 898,
    "returnType": "Directory_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Directory_Box. See 5.61.10.10 Directory_Box. The Directory_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Directory_Box validation messages. The value of mode is listed in the Appendix A - Directory mode The function return value is the created Directory_Box."
  },
  {
    "name": "Validate",
    "id": 899,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Directory_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Directory_Box box and return the Text result. The value of mode is listed in the Appendix A - Directory mode. See Directory Mode The function returns the value of: NO_NAME if the Widget Directory_Box is optional and the box is left empty NO_DIRECTORY, DIRECTORY_EXISTS, or NEW_DIRECTORY. TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 901,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Directory_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Directory_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 900,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Directory_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Directory_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_draw_box",
    "id": 1337,
    "returnType": "Draw_Box",
    "parameters": [
      {
        "name": "box_width",
        "type": "Integer"
      },
      {
        "name": "box_height",
        "type": "Integer"
      },
      {
        "name": "border",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Draw_Box with the drawing area defined by the parameters box_width, box_height and border which are all in screen units (pixels).See 5.61.10.11 Draw_Box. The function return value is the created Draw_Box."
  },
  {
    "name": "Get_size",
    "id": 1352,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&actual_width",
        "type": "Integer"
      },
      {
        "name": "&actual_height",
        "type": "Integer"
      }
    ],
    "description": "Get the width and height in pixels of the Draw_Box drawing area on the panel and return the values in actual_width and actual_height. See 5.61.10.11 Draw_Box for the calculations of width and height. A function return value of zero indicates the width and height were successfully returned."
  },
  {
    "name": "Set_origin",
    "id": 1340,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "Set the coordinates of the left hand bottom corner of the Draw_Box box to (x,y) where x and y are given in the units of the Draw_Box. A function return value of zero indicates the origin was successfully set."
  },
  {
    "name": "Set_scale",
    "id": 1341,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      }
    ],
    "description": "Change the units for the x-axis and the y-axis of the Draw_Box box. The new length of one unit in the x-direction is xs times the previous unit length on the x-axis. For example, if xs = 0.5, then the new unit length along the x-axis is half the size of the previous unit length. Similarly, the new length of one unit in the y-direction is ys times the previous unit length on the y- axis. A function return value of zero indicates the scales were successfully set."
  },
  {
    "name": "Start_batch_draw",
    "id": 1361,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      }
    ],
    "description": "The Start_batch_draw command must be given before any drawing calls for the Draw_Box box are made. Any drawing calls made before Start_batch_draw is called will do nothing and return a non-zero function return code (that is, the call was not successful). A function return value of zero indicates the batch draw call was successful. Panels and Widgets Page 999 12d Model Macro Manual"
  },
  {
    "name": "End_batch_draw",
    "id": 1362,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      }
    ],
    "description": "<no description>"
  },
  {
    "name": "Clear",
    "id": 1344,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "r",
        "type": "Integer"
      },
      {
        "name": "g",
        "type": "Integer"
      },
      {
        "name": "b",
        "type": "Integer"
      }
    ],
    "description": "Clear the Draw_Box box and then fill box with a colour given by r, g and b. The colour is given in rgb which requires three Integers with values between 0 and 255, one each for red, green and blue. The red, green and blue values are given in r, g and b respectively. If Clear is called before a Start_batch_draw (box) call is made, then the Clear fails and a non-zero function return value is returned. A function return value of zero indicates the clear was successful."
  },
  {
    "name": "Set_colour",
    "id": 1342,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "colour_num",
        "type": "Integer"
      }
    ],
    "description": "For the Draw_Box box, set the drawing colour for following line work to have the 12d Model colour colour_num. A function return value of zero indicates the set was successful."
  },
  {
    "name": "Set_colour",
    "id": 1343,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "r",
        "type": "Integer"
      },
      {
        "name": "g",
        "type": "Integer"
      },
      {
        "name": "b",
        "type": "Integer"
      }
    ],
    "description": "For the Draw_Box box, set the drawing colour for following line work to have the an rgb colour. The colour is given in rgb which requires three Integers with values between 0 and 255, one each for red, green and blue. The red, green and blue values are given in r, g and b respectively. A function return value of zero indicates the set was successful."
  },
  {
    "name": "Move_to",
    "id": 1338,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "For the Draw_Box box, move the current position of the drawing nib to (x, y) where x and y are given in the units of the Draw_Box. If Move_to is called before a Start_batch_draw (box) call is made, then the Move_to fails and a non- zero function return value is returned. A function return value of zero indicates the move was successful."
  },
  {
    "name": "Draw_to",
    "id": 1339,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      }
    ],
    "description": "For the Draw_Box box, draw from the current position to (x, y) where x and y are given in the units of the Draw_Box. If Draw_to is called before a Start_batch_draw (box) call is made, then the Draw_to fails and a non- zero function return value is returned. A function return value of zero indicates the draw was successful."
  },
  {
    "name": "Draw_polyline",
    "id": 1355,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "num_pts",
        "type": "Integer"
      },
      {
        "name": "x[]",
        "type": "Real"
      },
      {
        "name": "y[]",
        "type": "Real"
      }
    ],
    "description": "For the Draw_Box box, draw the polyline of num_pts points with the x-coordinates given in the array x[], and the y-coordinates in the array y[]. If Draw_polyline is called before a Start_batch_draw (box) call is made, then the Draw_polyline fails and a non-zero function return value is returned. A function return value of zero indicates the draw was successful."
  },
  {
    "name": "Set_text_colour",
    "id": 1346,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "r",
        "type": "Integer"
      },
      {
        "name": "g",
        "type": "Integer"
      },
      {
        "name": "b",
        "type": "Integer"
      }
    ],
    "description": "Set the colour used for the drawing text in the Draw_Box box. The colour is given in rgb which requires three Integers with values between 0 and 255, one each for red, green and blue. The red, green and blue values are given in r, g and b respectively. Panels and Widgets Page 1001 12d Model Macro Manual A function return value of zero indicates the colour was successfully set."
  },
  {
    "name": "Set_text_font",
    "id": 1349,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "font",
        "type": "Text"
      }
    ],
    "description": "For the Draw_Box box, set the font for the following text calls to be the True Type Font font. A function return value of zero indicates the text font was successfully set."
  },
  {
    "name": "Set_text_weight",
    "id": 1350,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "weight",
        "type": "Integer"
      }
    ],
    "description": "Set the text weight weight for the Draw_Box box. A function return value of zero indicates the weight was successfully set."
  },
  {
    "name": "Set_text_align",
    "id": 1351,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the text alignment to mode for any text drawn in the Draw_Box box after the Set_text_align call. The values for mode are given in Text Alignment Modes for Draw_Box. The file set_ups.h needs to be included for the modes to be defined. The default mode is that the coordinates of the text are for the top left of the bounding box surrounding the text. A function return value of zero indicates the text alignment was successfully set."
  },
  {
    "name": "Draw_text",
    "id": 1345,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Draw_Box"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "angle",
        "type": "Real"
      },
      {
        "name": "txt",
        "type": "Text"
      }
    ],
    "description": "In the Draw_Box box, draw the text txt at the position (x,y) where the coordinates (x,y) are in the Draw_Box\u2019s coordinate system. The text has size size (in pixels), and the rotation angle of angle radians. If Draw_text is called before a Start_batch_draw (box) call is made, then the Draw_text fails and a non-zero function return value is returned. A function return value of zero indicates the text was successfully drawn. Page 1002 Panels and Widgets Chapter"
  },
  {
    "name": "Create_file_box",
    "id": 906,
    "returnType": "File_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "wild",
        "type": "Text"
      }
    ],
    "description": "Create an input Widget of type File_Box for inputting and validating files. The File_Box is created with the title title_text (see 5.61.10.12 File_Box). The Message_Box message is normally the message box for the panel and is used to display File_Box validation messages. If <enter> is typed into the File_Box, automatic validation is performed by the File_Box according to mode. What the validation is, what messages are written to Message_Box, and what actions automatically occur, depend on the value of mode. For example, CHECK_FILE_NEW 20 // if the file doesn\u2019t exists, the message says \"will be created\" // if it exist, the messages says \"ERROR\" The values for mode and their actions are listed in Appendix A (see File Mode). If LB is clicked on the icon at the right hand end of the File_Box, a list of the files in the current area which match the wild card text wild (for example, *.dat) Is placed in a pop-up. If a file is selected from the pop-up (using LB), the file name is placed in the information area of the File_Box and validation performed according to mode. The function return value is the created File_Box. Special Note: #include \"set_ups.h\" must be in the macro code to define CHECK_FILE_NEW etc."
  },
  {
    "name": "Create_file_box",
    "id": 3989,
    "returnType": "File_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "description",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "wild",
        "type": "Text"
      }
    ],
    "description": "This call is identical to the above 906 but with an extra Text parameter description which is used on return (usually warning or error) messages on the Message_Box message or on the output window."
  },
  {
    "name": "Get_data",
    "id": 909,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the File_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 908,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the File_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_wildcard",
    "id": 1321,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "&data",
        "type": "Text"
      }
    ],
    "description": "Get the wildcard from the File_Box box. The type of data must be Text. A function return value of zero indicates the wildcard data was returned successfully."
  },
  {
    "name": "Set_wildcard",
    "id": 1320,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the wildcard to the File_Box box. The type of data must be Text. A function return value of zero indicates the wildcard data was successfully set."
  },
  {
    "name": "Add_wildcard",
    "id": 7702,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "pattern",
        "type": "Text"
      },
      {
        "name": "include_in_default",
        "type": "Integer"
      }
    ],
    "description": "Add (can be additional) wildcard pattern to the File_Box box. If include_in_default is non zero, then the new pattern is choose a the default pattern for the box. A function return value of zero indicates the wildcard data was successfully set."
  },
  {
    "name": "Get_directory",
    "id": 1323,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "&data",
        "type": "Text"
      }
    ],
    "description": "Get folder for the file from the File_Box box and return the folder in data. A function return value of zero indicates the directory data was returned successfully."
  },
  {
    "name": "Set_directory",
    "id": 1322,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the folder to the file in the File_Box box to the Text data. A function return value of zero indicates the directory data was successfully set."
  },
  {
    "name": "Set_many",
    "id": 1547,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the Text_Edit_Box box to support many files if mode is non-zero, disable it otherwise. Panels and Widgets Page 1007 12d Model Macro Manual A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Get_many",
    "id": 1548,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Set the value of Integer mode to: 1 if the File_Box box supports many files. 0 otherwise. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_encoding",
    "id": 2947,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "encoding",
        "type": "Integer"
      }
    ],
    "description": "Set file encoding for File_Box box with Integer encoding. A return value of zero indicates the function call was successful. List of value for file encoding 0 Native 1 Ansi 2 Unicode 3 Unicode Little Endian 4 Unicode Big Endian 5 UTF_8 6 UTF-16_Little_Endian"
  },
  {
    "name": "Get_encoding",
    "id": 2948,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "&encoding",
        "type": "Integer"
      }
    ],
    "description": "Get file encoding for File_Box box to Integer encoding. A return value of zero indicates the function call was successful. List of value for file encoding 0 Native 1 Ansi 2 Unicode 3 Unicode Little Endian Page 1008 Panels and Widgets Chapter 4 Unicode Big Endian 5 UTF_8 6 UTF-16_Little_Endian"
  },
  {
    "name": "Set_show_encodings",
    "id": 2949,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "show",
        "type": "Integer"
      }
    ],
    "description": "Set show encoding of the File_Box box to: false if Integer show is 0; true otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_show_encodings",
    "id": 2950,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "&show",
        "type": "Integer"
      }
    ],
    "description": "Set Integer show to: 1 if the File_Box box shows the encoding; 0 otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_libraries",
    "id": 2863,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "data",
        "type": "Integer"
      }
    ],
    "description": "Set the property of browsing to 12D library folder of the Input_Box box to false if data is 0; to true otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_libraries",
    "id": 2862,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "&data",
        "type": "Integer"
      }
    ],
    "description": "If the property of browsing to 12D library folder of the Input_Box box is true then set the value of data to 1; otherwise set the value of data to 0. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_setups",
    "id": 2865,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "data",
        "type": "Integer"
      }
    ],
    "description": "Set the property of supporting 12D setup folder of the Input_Box box to false if data is 0; to true otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_setups",
    "id": 2864,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "File_Box"
      },
      {
        "name": "&data",
        "type": "Integer"
      }
    ],
    "description": "If the property of browsing to 12D setup folder of the Input_Box box is true then set the value of data to 1; otherwise set the value of data to 0. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_function_box",
    "id": 1183,
    "returnType": "Function_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Function_Box for inputting and validating Functions. See 5.61.10.13 Function_Box. The Function_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Function_Box validation messages. The value of mode is listed in the Appendix A - Function mode. See Function Mode. The value of type is listed in the Appendix A - Function type. See Function Type. The function return value is the created Function_Box."
  },
  {
    "name": "Validate",
    "id": 1184,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Function_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Function"
      }
    ],
    "description": "Validate the contents of Function_Box box and return the Function result. The value of mode is listed in the Appendix A - Function mode. See Function Mode The function returns the value of: NO_NAME if the Widget Function_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 1186,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Function_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Function_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_type",
    "id": 1334,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Function_Box"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "Get the function Integer type from the Function_Box box and return it in type. A function return value of zero indicates the type was returned successfully."
  },
  {
    "name": "Set_type",
    "id": 1333,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Function_Box"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "Set the function Integer type for the Function_Box box to type. The type of type must be Integer. A function return value of zero indicates the type was successfully set."
  },
  {
    "name": "Get_type",
    "id": 1336,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Function_Box"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the function Text type from the Function_Box box and return it in type. A function return value of zero indicates the type was returned successfully."
  },
  {
    "name": "Create_hyperlink_box",
    "id": 1887,
    "returnType": "HyperLink_Box",
    "parameters": [
      {
        "name": "hyperlink",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type HyperLink_Box. See 5.61.10.14 HyperLink_Box. The Hyperlink_Box is created with the Text in hyperlink. This text should be a hyperlink. When the user clicks on the HyperLink then the HyperLink will be activated, The Message_Box message is normally the message box for the panel and is used to display Hyperlink_Box validation messages. The function return value is the created Hyperlink_Box."
  },
  {
    "name": "Validate",
    "id": 1888,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "HyperLink_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of HyperLink_Box box and return the name of the hyperlink in Text result. The function returns the value of: NO_NAME if the Widget HyperLink_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 1890,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "HyperLink_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Hyperlink_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_input_box",
    "id": 910,
    "returnType": "Input_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Input_Box. See 5.61.10.15 Input_Box. The Input_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Input_Box validation messages. The function return value is the created Input_Box."
  },
  {
    "name": "Validate",
    "id": 911,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Input_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Input_Box box and return the Text result. This call is almost not required as the box either has text or it does not but it is required to know if the Input_Box was optional and nothing was typed in. The function returns the value of: NO_NAME if the Widget Input_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 913,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Input_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Input_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 912,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Input_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Input_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_multi_line",
    "id": 2859,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Input_Box"
      },
      {
        "name": "no_lines",
        "type": "Integer"
      }
    ],
    "description": "Set the number of lines for Input_Box box to Integer no_lines. A return value of zero indicates the function call was successful. Page 1018 Panels and Widgets Chapter"
  },
  {
    "name": "Get_multi_line",
    "id": 2860,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Input_Box"
      },
      {
        "name": "&no_lines",
        "type": "Integer"
      }
    ],
    "description": "Get the number of lines no_lines for Input_Box box. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_default_data",
    "id": 7987,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Input_Box"
      },
      {
        "name": "data",
        "type": "Text"
      }
    ],
    "description": "Set the default data for the Input_Box box to data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_default_data",
    "id": 7988,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Input_Box"
      },
      {
        "name": "data",
        "type": "Text"
      },
      {
        "name": "validate_return",
        "type": "Integer"
      }
    ],
    "description": "Set the default data for the Input_Box box to data, the special result of validation of the box when the value is of the default will be validate_return. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_default_data",
    "id": 7989,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Input_Box"
      },
      {
        "name": "&data",
        "type": "Text"
      },
      {
        "name": "&validate_return",
        "type": "Integer"
      }
    ],
    "description": "Get the default data for the Input_Box box and return it in data, the special result of validation of the box when the value is of the default will be validate_return. A function return value of zero indicates the data was successfully get."
  },
  {
    "name": "Create_integer_box",
    "id": 914,
    "returnType": "Integer_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Integer_Box. See 5.61.10.16 Integer_Box. The Integer_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Integer_Box validation messages. The function return value is the created Integer_Box. Panels and Widgets Page 1021 12d Model Macro Manual"
  },
  {
    "name": "Validate",
    "id": 915,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Integer_Box"
      },
      {
        "name": "&result",
        "type": "Integer"
      }
    ],
    "description": "Validate result (of type Integer) in the Integer_Box box. Validate the contents of Integer_Box box and return the Integer result. The function returns the value of: NO_NAME if the Widget Integer_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 917,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Integer_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Input_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 916,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Integer_Box"
      },
      {
        "name": "integer_data",
        "type": "Integer"
      }
    ],
    "description": "Set the data of type Integer for the Integer_Box box to integer_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1517,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Integer_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Integer_Box box to text_data. A function return value of zero indicates the data was successfully set. Page 1022 Panels and Widgets Chapter"
  },
  {
    "name": "Create_justify_box",
    "id": 918,
    "returnType": "Justify_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Justify_Box. See 5.61.10.17 Justify_Box. The Justify_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Justify_Box validation messages. The function return value is the created Justify_Box."
  },
  {
    "name": "Validate",
    "id": 919,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Justify_Box"
      },
      {
        "name": "&result",
        "type": "Integer"
      }
    ],
    "description": "Validate the contents of Justify_Box box and return the Integer result. The function returns the value of: NO_NAME if the Widget Justify_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 921,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Justify_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Justify_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 920,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Justify_Box"
      },
      {
        "name": "integer_data",
        "type": "Integer"
      }
    ],
    "description": "Set the data of type Integer for the Justify_Box box to integer_data. integer_data represents the text justification and can have the values 1 to 9. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1518,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Justify_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Justify_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_linestyle_box",
    "id": 922,
    "returnType": "Linestyle_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Linestyle_Box. See 5.61.10.18 Linestyle_Box. The Linestyle_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Linestyle_Box validation messages. The value of mode is listed in the Appendix A - Linestyle mode. See Linestyle Mode. The function return value is the created Linestyle_Box."
  },
  {
    "name": "Validate",
    "id": 923,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Linestyle_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Linestyle_Box box and return the name of the linestyle in Text result. The value of mode is listed in the Appendix A - Linestyle mode. See Linestyle Mode The function returns the value of: NO_NAME if the Widget Linestyle_Box is optional and the box is left empty LINESTYLE_EXISTS or NO_LINESTYLE. TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 925,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Linestyle_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Linestyle_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 924,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Linestyle_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Panels and Widgets Page 1029 12d Model Macro Manual Set the data of type Text for the Linestyle_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_list_box",
    "id": 1278,
    "returnType": "List_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "nlines",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type List_Box. See 5.61.10.19 List_Box. The List_Box is created with the title title_text. The number of lines nline will be created in the List_Box. The Message_Box message is normally the message box for the panel and is used to display List_Box validation messages. The function return value is the created List_Box."
  },
  {
    "name": "Get_number_of_items",
    "id": 1546,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "For the List_Box box, get the number of items in the list and return the number in count. A function return value of zero indicates that count is successfully returned."
  },
  {
    "name": "Set_sort",
    "id": 1279,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the sort mode for the List_Box box depending on the Integer mode. If mode is 0 then the sort is ascending, If mode is 1 then the sort is descending. A function return value of zero indicates the sort was successfully set."
  },
  {
    "name": "Get_sort",
    "id": 1280,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Get the sort mode from the List_Box box and return it in mode. If mode is 0 then the sort is ascending, If mode is 1 then the sort is descending. A function return value of zero indicates the mode was returned successfully. Panels and Widgets Page 1031 12d Model Macro Manual"
  },
  {
    "name": "Set_auto_cut_paste",
    "id": 1296,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Disable the auto cut paste property of the List_Box box if the Integer mode is zero, enable it otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_auto_cut_paste",
    "id": 1297,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "If the auto cut paste property of the List_Box box is enable set the Integer mode to 1, otherwise set mode to 0. A function return value of zero indicates the mode was returned successfully."
  },
  {
    "name": "Set_selections",
    "id": 1281,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Disable the multiple item selection property of the List_Box box if the Integer mode is zero, enable it otherwise. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_selections",
    "id": 1282,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "If the multiple item selection property of the List_Box box is enable set the Integer mode to 1, otherwise set mode to 0. A function return value of zero indicates the mode was returned successfully."
  },
  {
    "name": "Get_caret",
    "id": 1284,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "&pos",
        "type": "Integer"
      }
    ],
    "description": "Get the index of the item with the caret of the List_Box box and return it to pos. A function return value of zero indicates the index was returned successfully."
  },
  {
    "name": "Delete_item",
    "id": 1287,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "pos",
        "type": "Integer"
      }
    ],
    "description": "Delete the item with index pos of the List_Box box. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Insert_item",
    "id": 1286,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "pos",
        "type": "Integer"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Insert a new the item with the value text at index pos to the List_Box box. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Add_item",
    "id": 1285,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Insert a new the item with the value text to the end of the List_Box box. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_item",
    "id": 1288,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "pos",
        "type": "Integer"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "Assign the value of the item with index pos of the List_Box box to text. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_selection",
    "id": 1289,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "pos",
        "type": "Integer"
      }
    ],
    "description": "Set the current selection of the List_Box box to the item with index pos. If the List_Box box allows multiple selection, the function fails with return code one. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_selection",
    "id": 1290,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "&pos",
        "type": "Integer"
      }
    ],
    "description": "Get the index of current selected index of the List_Box box and assign to Integer pos. If the List_Box box allows multiple selection, the function fails with return code one. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_selection_count",
    "id": 1291,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of selected items of the List_Box box and assign to Integer count. If the List_Box box does not allow multiple selection, the function fails with return code one. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_selection_list",
    "id": 1292,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "maxc",
        "type": "Integer"
      },
      {
        "name": "list[]",
        "type": "Integer"
      },
      {
        "name": "do_select",
        "type": "Integer"
      }
    ],
    "description": "For the items of the List_Box box of indices from the first maxc number in the list: Page 1034 Panels and Widgets Chapter If do_select is zero, unselect those item. If do_select is non-zero, select those item. If the List_Box box does not allow multiple selection, the function fails with return code one. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_selection_list",
    "id": 1293,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "List_Box"
      },
      {
        "name": "maxc",
        "type": "Integer"
      },
      {
        "name": "list[]",
        "type": "Integer"
      }
    ],
    "description": "Get all the selected items of the List_Box box and assign the first maxc indices to the list: If the List_Box box does not allow multiple selection, the function fails with return code one. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_map_file_box",
    "id": 926,
    "returnType": "Map_File_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Map_File_Box. See 5.61.10.20 Map_File_Box. The Map_File_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Map_File_Box validation messages. The value of mode is listed in the Appendix A - File mode. See File Mode The function return value is the created Map_File_Box."
  },
  {
    "name": "Validate",
    "id": 927,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Map_File_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Map_File_Box box and return the Text result. The value of mode is listed in the Appendix A - File mode. See File Mode The function returns the value of: NO_NAME if the Widget Map_File_Box is optional and the box is left empty NO_FILE, FILE_EXISTS or NO_FILE_ACCESS TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 929,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Map_File_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Map_File_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_model_box",
    "id": 848,
    "returnType": "Model_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Model_Box for inputting and validating Models. The Model_Box is created with the title title_text (see 5.61.10.21 Model_Box). The Message_Box message is normally the message box for the panel and is used to display Model_Box validation messages. If <enter> is typed into the Model_Box automatic validation is performed by the Model_Box according to mode. What the validation is, what messages are written to Message_Box, and what actions automatically occur, depend on the value of mode. For example, CHECK_MODEL_MUST_EXIST 7 // if the model exists, the message says \"exists\".\uf020 // if it doesn\u2019t exist, the messages says \"ERROR\" The values for mode and their actions are listed in Appendix A (see Model Mode). If LB is clicked on the icon at the right hand end of the Model_Box, a list of all existing models is placed in a pop-up. If a model is selected from the pop-up (using LB), the model name is placed in the information area of the Model_Box and validation performed according to mode. MB for \"Same As\" also applies. That is, If MB is clicked in the information area and then a string from a model on a view is selected, then the name of the model containing the selected string is written to the information area and validation performed according to mode. The function return value is the created Model_Box. Special Note: #include \"set_ups.h\" must be in the macro code to define CHECK_MODEL_MUST_EXIST etc."
  },
  {
    "name": "Validate",
    "id": 880,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Model_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Model"
      }
    ],
    "description": "Panels and Widgets Page 1039 12d Model Macro Manual Validate the contents of the Model_Box box and return the Model result. The value of mode will determine what validation occurs, what messages are written to the Message_Box, what actions are taken and what the function return value is. The values for mode and the actions are listed in Appendix A (see Model Mode). The function return value depends on mode and are given in Appendix A (see Model Mode). A function return value of zero indicates that there is a drastic error. Warning this is the opposite of most 12dPL function return values Double Warning: most times the function return code is not zero even when you think it should be. The actual value of the function return code must be checked to see what is going on. For example, when mode = CHECK_MODEL_MUST_EXIST will return NO_MODEL if the model name is not blank and no model of that name exist (NO_MODEL does not equal zero)."
  },
  {
    "name": "Get_data",
    "id": 885,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Model_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Model_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 884,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Model_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Model_Box box as the Text text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Validate",
    "id": 931,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Name_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Name_Box box and return the Text result. The function returns the value of: NO_NAME if the Widget Name_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (0) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 933,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Name_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Name_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 932,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Name_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Name_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_named_tick_box",
    "id": 849,
    "returnType": "Named_Tick_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "state",
        "type": "Integer"
      },
      {
        "name": "response",
        "type": "Text"
      }
    ],
    "description": "Create an input Widget of type Named_Tick_Box. See 5.61.10.23 Named_Tick_Box. The Named_Tick_Box is created with the Text title_text. The Integer state specifies the ticked/unticked state of the box: state = 0 set the box as unticked Page 1044 Panels and Widgets Chapter state = 1 set the box as ticked The Text response returns the msg when calling the Wait_on_widgets function. The function return value is the created Named_Tick_Box."
  },
  {
    "name": "Validate",
    "id": 974,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Named_Tick_Box"
      },
      {
        "name": "&result",
        "type": "Integer"
      }
    ],
    "description": "Validate the contents of Named_Tick_Box box and return the Integer result. result = 0 if the tick box is unticked result = 1 if the tick box is ticked A function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 2239,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Named_Tick_Box"
      },
      {
        "name": "state",
        "type": "Integer"
      }
    ],
    "description": "Set the state of the Named_Tick_Box to ticked if state = 1 unticked if state = 0 A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 976,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Named_Tick_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Named_Tick_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 975,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Named_Tick_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Named_Tick_Box box to text_data. A function return value of zero indicates the data was successfully set. Panels and Widgets Page 1045 12d Model Macro Manual"
  },
  {
    "name": "Set_left_tick",
    "id": 7983,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Named_Tick_Box"
      },
      {
        "name": "left",
        "type": "Integer"
      }
    ],
    "description": "Set the position of the tick for the Named_Tick_Box box to the left if left is non-zero; right if left is zero. A function return value of zero indicates the position was successfully set."
  },
  {
    "name": "Create_new_select_box",
    "id": 2240,
    "returnType": "New_Select_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "select_title",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type New_Select_Box. See 5.61.10.24 New_Select_Box. The New_Select_Box is created with the title title_text. The Select title displayed in the screen message area is select_title. The value of mode is listed in the Appendix A - Select mode. See Select Mode. The Message_Box message is normally the message box for the panel and is used to display New_Select_Box validation messages. Note that the New_Select_Box only picks strings and does not return information if a cursor pick is made. The 5.61.10.31 Select_Box allows for cursor picks. The function return value is the created New_Select_Box."
  },
  {
    "name": "Validate",
    "id": 2241,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "&string",
        "type": "Element"
      }
    ],
    "description": "Validate the contents of New_Select_Box select and return the selected Element in string. The function returns the value of: NO_NAME if the Widget New_Select_Box is optional and the box is left empty TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values Page 1048 Panels and Widgets Chapter"
  },
  {
    "name": "Validate",
    "id": 2242,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "&string",
        "type": "Element"
      },
      {
        "name": "silent",
        "type": "Integer"
      }
    ],
    "description": "Validate the contents of New_Select_Box select and return the selected Element in string. If silent = 0, and there is an error, a message is written and the cursor goes back to the box. If silent = 1 and there is an error, no message or movement of cursor is done. The function returns the value of: NO_NAME if the Widget New_Select_Box is optional and the box is left empty TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 2243,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "string",
        "type": "Element"
      }
    ],
    "description": "Set the data of for the New_Select_Box select to string. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 2244,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "model_string",
        "type": "Text"
      }
    ],
    "description": "Set the Element of the New_Select_Box box by giving the model name and string name as a Text model_string in the form \"model_name model_id string_name string_id\" with tab separating. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 2245,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "&model_string",
        "type": "Text"
      }
    ],
    "description": "Get the model and string name of the Element in the New_Select_Box box and return it in Text Panels and Widgets Page 1049 12d Model Macro Manual model_string. Note: the model and string name is in the form \"model_name model_id string_name string_id\" with tab separating so only one Text is required. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Select_start",
    "id": 3783,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      }
    ],
    "description": "Starts the string selection for the New_Select_Box select. This is the same as if the button on the New_Select_Box had been clicked. A function return value of zero indicates the start was successful."
  },
  {
    "name": "Select_end",
    "id": 3784,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      }
    ],
    "description": "Cancels the string selection that is running for the New_Select_Box select. This is the same as if Cancel had been selected from the Pick Ops menu. A function return value of zero indicates the end was successful."
  },
  {
    "name": "Set_select_type",
    "id": 3776,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "Set the string selection type type for the New_Select_Box select. For example \u201cAlignment\u201d, \u201c3d\u201d. A function return value of zero indicates the type was successfully set."
  },
  {
    "name": "Set_select_snap_mode",
    "id": 3777,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "snap_control",
        "type": "Integer"
      }
    ],
    "description": "Set the snap control for the New_Select_Box select to snap_control. snap_control control value Ignore_Snap = 0 User_Snap = 1 Program_Snap = 2 Page 1050 Panels and Widgets Chapter A function return value of zero indicates the snap control was successfully set."
  },
  {
    "name": "Set_select_snap_mode",
    "id": 3778,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "snap_mode",
        "type": "Integer"
      },
      {
        "name": "snap_control",
        "type": "Integer"
      },
      {
        "name": "snap_text",
        "type": "Text"
      }
    ],
    "description": "Set the snap mode snap_mode and snap control snap_control for the New_Select_Box select. Where snap_mode is: Failed_Snap = -1 No_Snap = 0 Point_Snap = 1 Line_Snap = 2 Grid_Snap = 3 Intersection_Snap = 4 Cursor_Snap = 5 Name_Snap = 6 Tin_Snap = 7 Model_Snap = 8 Height_Snap = 9 Segment_Snap = 11 Text_Snap = 12 Fast_Snap = 13 Fast_Accept = 14 and snap_control is Ignore_Snap = 0 User_Snap = 1 Program_Snap = 2 The snap_text must be string name; tin name, model name respectively, otherwise, leave the snap_text blank (\u201c\u201d). A function return value of zero indicates the snap mode was successfully set."
  },
  {
    "name": "Set_select_direction",
    "id": 3779,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "dir",
        "type": "Integer"
      }
    ],
    "description": "Set the selection direction dir for the New_Select_Box select. Dir Value Pick direction 1 the direction of the string -1 against the direction of the string A function return value of zero indicates the direction was successfully set."
  },
  {
    "name": "Get_select_direction",
    "id": 3780,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "&dir",
        "type": "Integer"
      }
    ],
    "description": "Get the selection direction dir from the string selected for the New_Select_Box select. The returned dir type must be Integer. If select without direction, the returned dir is 1, otherwise, the returned dir is: Dir Value Pick direction 1 the direction of the string -1 against the direction of the string A function return value of zero indicates the direction was successfully returned."
  },
  {
    "name": "Set_select_coordinate",
    "id": 3781,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Set the coordinates, chainage and height of the selected snap point of the string for the New_Select_Box select. The input values of x, y, z, ch, and ht are of type Real. A function return value of zero indicates the values were successfully set."
  },
  {
    "name": "Get_select_coordinate",
    "id": 3782,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "New_Select_Box"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&ht",
        "type": "Real"
      }
    ],
    "description": "Get the coordinates, chainage and height of the selected snap point of the string for the New_Select_Box select. The return values of x, y, z, ch, and ht are of type Real. A function return value of zero indicates the values were successfully returned."
  },
  {
    "name": "Create_new_xyz_box",
    "id": 2252,
    "returnType": "New_XYZ_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type New_XYZ_Box. See 5.61.10.25 New_XYZ_Box. The New_XYZ_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display New_XYZ_Box validation messages. The function return value is the created New_XYZ_Box. Page 1054 Panels and Widgets Chapter"
  },
  {
    "name": "Validate",
    "id": 2253,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "New_XYZ_Box"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Validate the contents of the New_XYZ_Box box and check that it decodes to three Reals. The three Reals are returned in x, y, and z. The function returns the value of: NO_NAME if the Widget New_XYZ_Box is optional and the box is left empty TRUE (1) if no other return code is needed and x, y and z are valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 2254,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "New_XYZ_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the New_XYZ_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 2255,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "New_XYZ_Box"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Set the x y z data (all of type Real) for the New_XYZ_Box box to the values x, y and z. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 2256,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "New_XYZ_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the New_XYZ_Box box to text_data. A function return value of zero indicates the data was successfully set. Panels and Widgets Page 1055 12d Model Macro Manual"
  },
  {
    "name": "Create_plotter_box",
    "id": 934,
    "returnType": "Plotter_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Plotter_Box. See 5.61.10.26 Plotter_Box. The Plotter_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Plotter_Box validation messages. The function return value is the created Plotter_Box."
  },
  {
    "name": "Validate",
    "id": 935,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Plotter_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Plotter_Box box and return the Text result. The function returns the value of: NO_NAME if the Widget Plotter_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (0) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 937,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Plotter_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Plotter_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 936,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Plotter_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Plotter_Box box to text_data. Panels and Widgets Page 1057 12d Model Macro Manual A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Validate",
    "id": 2465,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Plotter_Box"
      },
      {
        "name": "&plotter_mode",
        "type": "Text"
      },
      {
        "name": "&plotter_names",
        "type": "Text"
      },
      {
        "name": "&plotter_type",
        "type": "Text"
      }
    ],
    "description": "<no description>"
  },
  {
    "name": "Set_data",
    "id": 2466,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Plotter_Box"
      },
      {
        "name": "plotter_mode",
        "type": "Text"
      },
      {
        "name": "plotter_names",
        "type": "Text"
      },
      {
        "name": "plotter_type",
        "type": "Text"
      }
    ],
    "description": "<no description>"
  },
  {
    "name": "Get_data",
    "id": 2467,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Plotter_Box"
      },
      {
        "name": "&plotter_mode",
        "type": "Text"
      },
      {
        "name": "&plotter_names",
        "type": "Text"
      },
      {
        "name": "&plotter_type",
        "type": "Text"
      }
    ],
    "description": "<no description>"
  },
  {
    "name": "Create_polygon_box",
    "id": 2246,
    "returnType": "Polygon_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "select_title",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Polygon_Box. See 5.61.10.27 Polygon_Box. The Polygon_Box is created with the title title_text. The text in the screen message area is defined by select_title, if select_title is blank then the default text \"select polygon\" will be used. The parameter mode is not yet used for now. The Message_Box message is normally the message box for the panel and is used to display Polygon_Box validation messages. The function return value is the created Polygon_Box."
  },
  {
    "name": "Validate",
    "id": 2247,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Polygon_Box"
      },
      {
        "name": "&string",
        "type": "Element"
      }
    ],
    "description": "Validate the contents of Polygon_Box select and return the selected Element in string. If there is an error, a message is written and the cursor goes back to the Polygon_Box. The function returns the value of: NO_NAME if the Widget Polygon_Box is optional and the box is left empty TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Validate",
    "id": 2248,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Polygon_Box"
      },
      {
        "name": "&string",
        "type": "Element"
      },
      {
        "name": "silent",
        "type": "Integer"
      }
    ],
    "description": "Validate the contents of Polygon_Box select and return the selected Element in string. If silent = 0, and there is an error, a message is written and the cursor goes back to the Polygon_Box. If silent = 1 and there is an error, no message or movement of cursor is done. The function returns the value of: Panels and Widgets Page 1059 12d Model Macro Manual NO_NAME if the Widget Polygon_Box is optional and the box is left empty TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 2249,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Polygon_Box"
      },
      {
        "name": "string",
        "type": "Element"
      }
    ],
    "description": "Set the data of type Element for the Polygon_Box select to string. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 2250,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Polygon_Box"
      },
      {
        "name": "string_name",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Polygon_Box select to string_name. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 2251,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Polygon_Box"
      },
      {
        "name": "&string",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Polygon_Box select and return it in string. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_allow_holes",
    "id": 3802,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Polygon_Box"
      },
      {
        "name": "&allow",
        "type": "Integer"
      }
    ],
    "description": "Get the property of allowing polygon with holes for Polygon_Box select and return it in allow. A function return value of zero indicates the property was successfully changes."
  },
  {
    "name": "Create_real_box",
    "id": 902,
    "returnType": "Real_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Real_Box. See 5.61.10.28 Real_Box. The Real_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Real_Box validation messages. The function return value is the created Real_Box."
  },
  {
    "name": "Validate",
    "id": 903,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      },
      {
        "name": "&result",
        "type": "Real"
      }
    ],
    "description": "Validate the contents of Real_Box box and return the Real result. The function returns the value of: NO_NAME if the Widget Real_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 905,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Real_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 904,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      },
      {
        "name": "real_data",
        "type": "Real"
      }
    ],
    "description": "Set the data of type Real for the Real_Box box to real_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1516,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Real_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_precision",
    "id": 7986,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      },
      {
        "name": "precision",
        "type": "Integer"
      }
    ],
    "description": "Set the precision display for the Real_Box box to precision. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_default_data",
    "id": 7991,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      },
      {
        "name": "data",
        "type": "Real"
      }
    ],
    "description": "Set the default data for the Real_Box box to data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_default_data",
    "id": 7992,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      },
      {
        "name": "data",
        "type": "Real"
      },
      {
        "name": "validate_return",
        "type": "Integer"
      }
    ],
    "description": "Set the default data for the Real_Box box to data, the special result of validation of the box when the value is of the default will be validate_return. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_default_data",
    "id": 7993,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      },
      {
        "name": "&data",
        "type": "Real"
      },
      {
        "name": "&validate_return",
        "type": "Integer"
      }
    ],
    "description": "Get the default data for the Real_Box box and return it in data, the special result of validation of the box when the value is of the default will be validate_return. Page 1064 Panels and Widgets Chapter A function return value of zero indicates the data was successfully get."
  },
  {
    "name": "Clear_default_data",
    "id": 7994,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Real_Box"
      }
    ],
    "description": "Clear the default data for the Real_Box box. A function return value of zero indicates the clear was successful."
  },
  {
    "name": "Create_report_box",
    "id": 938,
    "returnType": "Report_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Report_Box. See 5.61.10.29 Report_Box. The Report_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Report_Box validation messages. The value of mode is listed in the Appendix A - File mode. The function return value is the created Report_Box."
  },
  {
    "name": "Validate",
    "id": 939,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Report_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Report_Box box and return the Text result. The value of mode is listed in the Appendix A - File mode. See File Mode The function returns the value of: NO_NAME if the Widget Report_Box is optional and the box is left empty NO_FILE, FILE_EXISTS or NO_FILE_ACCESS TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 940,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Report_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Report_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_screen_text",
    "id": 1369,
    "returnType": "Screen_Text",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Create a Screen_Text with the Text text. See 5.61.10.30 Screen_Text. The function return value is the created Screen_Text."
  },
  {
    "name": "Set_data",
    "id": 1371,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Screen_Text"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Screen_Text widget to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 1370,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Screen_Text"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Screen_Text widget and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_select_box",
    "id": 882,
    "returnType": "Select_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "select_title",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Select_Box. The Select_Box is created with the title title_text. The Select title displayed in the screen message area is select_title. The value of mode is listed in the Appendix A - Select mode. See Select Mode. The Message_Box message is normally the message box for the panel and is used to display string select validation messages. The function return value is the created Select_Box."
  },
  {
    "name": "Validate",
    "id": 981,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "&string",
        "type": "Element"
      }
    ],
    "description": "Validate the Element string in the Select_Box select. The function returns the value of: NO_NAME if the Widget Select_Box is optional and the box is left empty TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Validate",
    "id": 1376,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "&string",
        "type": "Element"
      },
      {
        "name": "silent",
        "type": "Integer"
      }
    ],
    "description": "Validate the Element string in the Select_Box select. If silent = 0, and there is an error, a message is written and the cursor goes back to the box. If silent = 1 and there is an error, no message or movement of cursor is done. The function returns the value of SELECT_STRING indicates the string is selected successfully."
  },
  {
    "name": "Set_data",
    "id": 982,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "model_string",
        "type": "Text"
      }
    ],
    "description": "Set the Element in the Select_Box select by giving the model name and string name as a Text model_string in the form \"model_name->string_name\" .A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1174,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "string",
        "type": "Element"
      }
    ],
    "description": "Set the Element for the Select_Box select to string. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 983,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "&string",
        "type": "Text"
      }
    ],
    "description": "Get the model and string name of the Element in Select_Box select and return it in the Text model_string, Note: the model and string name is in the form \"model_name->string_name\" so only one Text is required. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Select_start",
    "id": 1169,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      }
    ],
    "description": "Starts the string selection for the Select_Box select. This is the same as if the button on the Select_Box had been clicked. A function return value of zero indicates the start was successful."
  },
  {
    "name": "Set_select_type",
    "id": 1048,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "Set the string selection type type for the Select_Box select. For example \u201cAlignment\u201d, \u201c3d\u201d. A function return value of zero indicates the type was successfully set."
  },
  {
    "name": "Set_select_snap_mode",
    "id": 1049,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "snap_control",
        "type": "Integer"
      }
    ],
    "description": "Set the snap control for the Select_Box select to snap_control. snap_control control value Ignore_Snap = 0 User_Snap = 1 Program_Snap = 2 A function return value of zero indicates the snap control was successfully set."
  },
  {
    "name": "Set_select_snap_mode",
    "id": 1045,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "snap_mode",
        "type": "Integer"
      },
      {
        "name": "snap_control",
        "type": "Integer"
      },
      {
        "name": "snap_text",
        "type": "Text"
      }
    ],
    "description": "Set the snap mode snap_mode and snap control snap_control for the Select_Box select. Where snap_mode is: Failed_Snap = -1 No_Snap = 0 Point_Snap = 1 Line_Snap = 2 Grid_Snap = 3 Intersection_Snap = 4 Cursor_Snap = 5 Name_Snap = 6 Tin_Snap = 7 Model_Snap = 8 Height_Snap = 9 Panels and Widgets Page 1073 12d Model Macro Manual Segment_Snap = 11 Text_Snap = 12 Fast_Snap = 13 Fast_Accept = 14 and snap_control is Ignore_Snap = 0 User_Snap = 1 Program_Snap = 2 The snap_text must be string name; tin name, model name respectively, otherwise, leave the snap_text blank (\u201c\u201d). A function return value of zero indicates the snap mode was successfully set."
  },
  {
    "name": "Set_select_direction",
    "id": 1447,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "dir",
        "type": "Integer"
      }
    ],
    "description": "Set the selection direction dir for the Select_Box select. Dir Value Pick direction 1 the direction of the string -1 against the direction of the string A function return value of zero indicates the direction was successfully set."
  },
  {
    "name": "Get_select_direction",
    "id": 1051,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "&dir",
        "type": "Integer"
      }
    ],
    "description": "Get the selection direction dir from the string selected for the Select_Box select. The returned dir type must be Integer. If select without direction, the returned dir is 1, otherwise, the returned dir is: Dir Value Pick direction 1 the direction of the string -1 against the direction of the string A function return value of zero indicates the direction was successfully returned."
  },
  {
    "name": "Set_select_coordinate",
    "id": 1448,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Set the coordinates, chainage and height of the selected snap point of the string for the Select_Box Page 1074 Panels and Widgets Chapter select. The input values of x, y, z, ch, and ht are of type Real. A function return value of zero indicates the values were successfully set."
  },
  {
    "name": "Get_select_coordinate",
    "id": 1052,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Box"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&ht",
        "type": "Real"
      }
    ],
    "description": "Get the coordinates, chainage and height of the selected snap point of the string for the Select_Box select. The return values of x, y, z, ch, and ht are of type Real. A function return value of zero indicates the values were successfully returned."
  },
  {
    "name": "Create_select_boxes",
    "id": 883,
    "returnType": "Select_Boxes",
    "parameters": [
      {
        "name": "no_boxes",
        "type": "Integer"
      },
      {
        "name": "title_text[]",
        "type": "Text"
      },
      {
        "name": "select_title[]",
        "type": "Text"
      },
      {
        "name": "mode[]",
        "type": "Integer"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Select_Boxes which is actually a collection of 0 or more boxes that each acts like a Select_Box. See 5.61.10.32 Select_Boxes. no_boxes indicates the number of boxes in the boxes array. The Select_Boxes are created with the titles given in the array title_text[]. The Screen select titles displayed in the screen message area are given in the array select_title[]. The value of mode[] is listed in the Appendix A - Select mode. The Message_Box message is used to display the select information. The function return value is the created Select_Boxes."
  },
  {
    "name": "Validate",
    "id": 984,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&string",
        "type": "Element"
      }
    ],
    "description": "Validate the nth Element string in the Select_Boxes select. The function returns the value of: NO_NAME if the n\u2019th box of the New_Select_Box is optional and the box is left empty TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Validate",
    "id": 1377,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&string",
        "type": "Element"
      },
      {
        "name": "silent",
        "type": "Integer"
      }
    ],
    "description": "Validate the nth Element string in the Select_Boxes select. If silent = 0, and there is an error, a message is written and the cursor goes back to the box. If silent = 1 and there is an error, no message or movement of cursor is done. The function returns the value of: NO_NAME if the n\u2019th box of the New_Select_Box is optional and the box is left empty Panels and Widgets Page 1077 12d Model Macro Manual TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 985,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "model_string",
        "type": "Text"
      }
    ],
    "description": "Set the Element of the n\u2019th box in the Select_Boxes select by giving the model name and string name as a Text model_string in the form \"model_name->string_name\". A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1175,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "string",
        "type": "Element"
      }
    ],
    "description": "Set the data of type Element for the n\u2019th box in the Select_Boxes select to string. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 986,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&model_string",
        "type": "Text"
      }
    ],
    "description": "Get the model and string name of the Element in the n\u2019th box of the Select_Boxes select. and return it in the Text model_string, Note: the model and string name is in the form \"model_name->string_name\" so only one Text is required. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Select_start",
    "id": 1171,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      }
    ],
    "description": "Starts the string selection for the n\u2019th box of the Select_Boxes select. This is the same as if the button on the n\u2019th box of Select_Boxes had been clicked. Page 1078 Panels and Widgets Chapter A function return value of zero indicates the start was successful."
  },
  {
    "name": "Select_end",
    "id": 1172,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      }
    ],
    "description": "Cancels the string selection that is running for the n\u2019th box of the Select_Boxes n\u2019th box of the Select_Boxes select. This is the same as if Cancel had been selected from the Pick Ops menu. A function return value of zero indicates the end was successful."
  },
  {
    "name": "Set_select_type",
    "id": 1053,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "Set the string selection for the n\u2019th box of the Select_Boxes select to type. For example \u201cAlignment\u201d, \u201c3d\u201d. A function return value of zero indicates the type was successfully set."
  },
  {
    "name": "Set_select_snap_mode",
    "id": 1054,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "control",
        "type": "Integer"
      }
    ],
    "description": "Set the snap control for n\u2019th box of the Select_Boxes select to control. snap control control value Ignore_Snap 0 User_Snap Program_Snap 2 A function return value of zero indicates the snap control was successfully set."
  },
  {
    "name": "Set_select_snap_mode",
    "id": 1055,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "snap_mode",
        "type": "Integer"
      },
      {
        "name": "snap_control",
        "type": "Integer"
      },
      {
        "name": "snap_text",
        "type": "Text"
      }
    ],
    "description": "Set the snap mode mode and snap control snap_control for the nth box of the Select_Boxes select. Panels and Widgets Page 1079 12d Model Macro Manual When snap mode is: Name_Snap 6 Tin_Snap 7 Model_Snap 8 the snap_text must be string name; tin name, model name respectively, otherwise, leave the snap_text blank (\u201c\u201d). A function return value of zero indicates the snap mode was successfully set."
  },
  {
    "name": "Set_select_direction",
    "id": 1449,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "dir",
        "type": "Integer"
      }
    ],
    "description": "Set the selection direction dir of the string selected for the n\u2019th box of the Select_Boxes select. The input dir type must be Integer. Dir Value Pick direction 1 the direction of the string -1 against the direction of the string A function return value of zero indicates the direction was successfully set."
  },
  {
    "name": "Get_select_direction",
    "id": 1056,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&dir",
        "type": "Integer"
      }
    ],
    "description": "Get the selection direction dir of the string selected for the n\u2019th box of the Select_Boxes select. The returned dir type must be Integer. If select without direction, the returned dir is 1, otherwise, the returned dir is: Dir Value Pick direction 1 the direction of the string -1 against the direction of the string A function return value of zero indicates the direction was successfully returned."
  },
  {
    "name": "Set_select_coordinate",
    "id": 1450,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "ch",
        "type": "Real"
      },
      {
        "name": "ht",
        "type": "Real"
      }
    ],
    "description": "Page 1080 Panels and Widgets Chapter Get the coordinate, chainage and height of the snap point of the string selected for the n\u2019th box of the Select_Boxes select. The input value of x, y, z, ch, and ht are of type of Real. A function return value of zero indicates the coordinate was successfully set."
  },
  {
    "name": "Get_select_coordinate",
    "id": 1057,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Boxes"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&ch",
        "type": "Real"
      },
      {
        "name": "&ht",
        "type": "Real"
      }
    ],
    "description": "Get the coordinate, chainage and height of the snap point of the string selected for the n\u2019th box of the Select_Boxes select. The return value of x, y, z, ch, and ht are of type of Real. A function return value of zero indicates the coordinate was successfully returned."
  },
  {
    "name": "Create_sheet_size_box",
    "id": 946,
    "returnType": "Sheet_Size_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Sheet_Size_Box. See 5.61.10.33 Sheet_Size_Box. The Sheet_Size_Box is created with the title title_text. The Message_Box message is used to display sheet size information. The function return value is the created Sheet_Size_Box."
  },
  {
    "name": "Validate",
    "id": 947,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Sheet_Size_Box"
      },
      {
        "name": "&w",
        "type": "Real"
      },
      {
        "name": "&h",
        "type": "Real"
      },
      {
        "name": "&sheet",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Sheet_Size_Box box and return the width of the sheet as w, the height of the sheet as h and the sheet size as Text sheet or blank if it is not a standard size. The function returns the value of: NO_NAME if the Widget Sheet_Size_Box is optional and the box is left empty TRUE (1) if no other return code is needed and w, h, sheet are valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 949,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Sheet_Size_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Sheet_Size_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 948,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Sheet_Size_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Sheet_Size_Box box to text_data. Page 1084 Panels and Widgets Chapter A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_slider_box",
    "id": 2706,
    "returnType": "Slider_Box",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "width",
        "type": "Integer"
      },
      {
        "name": "height",
        "type": "Integer"
      },
      {
        "name": "min_value",
        "type": "Integer"
      },
      {
        "name": "max_value",
        "type": "Integer"
      },
      {
        "name": "tick_interval",
        "type": "Integer"
      },
      {
        "name": "horizontal",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Slider_Box. See 5.61.10.34 Slider_Box. Panels and Widgets Page 1087 12d Model Macro Manual The Slider_Box can be horizontal or vertical. If horizontal = 1 then the Slider_Box is horizontal. If horizontal = 0 then the Slider_Box is vertical. The range of values returned by the Slider_Box are specified by a minimum value (min_val) which is when the slider is at the left of a horizontal Slider_Box, or the top for a vertical Slider_Box, and a maximum value (max_range) which is reached when the slider is at the right of a horizontal Slider_Box, or at the bottom of a vertical Slider_Box. min_value must be less than max_val. Tick marks are drawn at the interval given by tick_interval on the bottom of a horizontal slider, of to the right of a vertical slider. The slider box is created with a width width and height height where the width and height are given in screen units (pixels). The function return value is the created Slider_Box. Note: the height for a horizontal Slider_Box or the width for a vertical Slider_Box should be at least 30 or there will be no room to display the slider and tick marks."
  },
  {
    "name": "Set_slider_position",
    "id": 2707,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Slider_Box"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "Move the slider of Slider_Box box to the position given by value units of the Slider_Box. A function return value of zero indicates the set was successful."
  },
  {
    "name": "Get_slider_position",
    "id": 2708,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Slider_Box"
      },
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "For the Slider_Box box, get the position of the slider in units of the Slider_Box and return the number of units in value. A function return value of zero indicates the get was successful."
  },
  {
    "name": "Create_source_box",
    "id": 1675,
    "returnType": "Source_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "box",
        "type": "Message_Box"
      },
      {
        "name": "flags",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Source_Box which is used to define how to select data. See 5.61.10.35 Source_Box. The Source_Box is created with the title \"Data \" followed by title_text. What Data Source Choices are displayed and hence available to select, is controlled by flags. i If flags = 0, then all the choices are displayed. Model Source_Box_Model = 0x001 = 1 View Source_Box_View = 0x002 = 2 String Source_Box_String = 0x004 = 4 Rectangle Source_Box_Rectangle = 0x008 = 8 Trapezoid Source_Box_Trapezoid = 0x010 = 16 Polygon Source_Box_Polygon = 0x020 Lasso Source_Box_Lasso = 0x040 Filter Source_Box_Filter = 0x080 Models Source_Box_Models = 0x100 Favourites Source_Box_Favorites = 0x200 All Source_Box_All = 0xfff Fence inside Source_Box_Fence_Inside = 0x01000 Fence cross Source_Box_Fence_Cross = 0x02000 Fence outside Source_Box_Fence_Outside = 0x04000 Fence string Source_Box_Fence_String = 0x08000 Fence points Source_Box_Fence_Points = 0x10000 Fence all Source_Box_Fence_All = 0xff000 Source_Box_Standard = Source_Box_All | Source_Box_Fence_Inside | \uf020 Source_Box_Fence_Outside | Source_Box_Fence_Cross | Source_Box_Fence_String You can have just some of them by combining the ones you want with |. For example Source_Box_Model | Source_Box_View The Message_Box message is used to display information. The function return value is the created Source_Box."
  },
  {
    "name": "Create_source_box",
    "id": 2626,
    "returnType": "Source_Box",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "box",
        "type": "Message_Box"
      },
      {
        "name": "flags",
        "type": "Integer"
      },
      {
        "name": "start_flag",
        "type": "Integer"
      }
    ],
    "description": "Same as the other Create_source_box function but with an extra start_flag to indicate the choice of data source that the box starts with. The function return value is the created Source_Box."
  },
  {
    "name": "Set_data",
    "id": 2156,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Source_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Source_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 2157,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Source_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Source_Edit_Box box and return it in text_data. text_data describes what has been selected in the Source_Box. Because of all the choices it is very complicated looking. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Write_favorite",
    "id": 2159,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Source_Box"
      },
      {
        "name": "filename",
        "type": "Text"
      }
    ],
    "description": "For the Source_Box box, write out the Source_Box selection information to the file named filename. Note: the Read_favourite and Write_favourite calls allow Source_Box selection settings to be saved, and passed around between different Source_Box\u2019s. A function return value of zero indicates the file was successfully written."
  },
  {
    "name": "Create_symbol_box",
    "id": 2170,
    "returnType": "Symbol_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Symbol_Box. See 5.61.10.36 Symbol_Box. The Symbol_Box is created with the title title_text. The Message_Box message is used to display information. The value of mode is listed in the Appendix A - Linestyle mode. See Linestyle Mode. The function return value is the created Symbol_Box."
  },
  {
    "name": "Validate",
    "id": 2171,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Symbol_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Symbol_Box box and return the name of the symbol in Text result. The value of mode is listed in the Appendix A - Symbol mode. See Symbol Mode The function returns the value of: NO_NAME if the Widget Symbol_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 2172,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Symbol_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Symbol_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned. Panels and Widgets Page 1095 12d Model Macro Manual"
  },
  {
    "name": "Set_data",
    "id": 2173,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Symbol_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Symbol_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_target_box",
    "id": 1677,
    "returnType": "Target_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "box",
        "type": "Message_Box"
      },
      {
        "name": "flags",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Target_Box. See 5.61.10.37 Target_Box. The Target_Box is created with the title title_text. The Message_Box message is used to display information. The choices of targets are defined by flags. See Target Box Flags. The function return value is the created Target_Box."
  },
  {
    "name": "Validate",
    "id": 1678,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Target_Box"
      }
    ],
    "description": "Validate the Target_Box box and return its choice as return value. See Target Box Flags. A function return value of negative number indicates the call was not successful."
  },
  {
    "name": "Validate",
    "id": 2653,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Target_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Validate the Target_Box box and return its choice in mode. See Target Box Flags. A function return value of zero indicates the call was successful. Panels and Widgets Page 1097 12d Model Macro Manual"
  },
  {
    "name": "Create_template_box",
    "id": 942,
    "returnType": "Template_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Template_Box. See 5.61.10.38 Template_Box. The Template_Box is created with the title title_text. The Message_Box message is used to display template information. The value of mode is listed in the Appendix A - Template mode. The function return value is the created Template_Box."
  },
  {
    "name": "Validate",
    "id": 943,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Template_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Template_Box box and return the Text result. The value of mode is listed in the Appendix A - Template mode. See Template Mode The value result must be type of Text. The function returns the value of: NO_NAME if the Widget Template_Box is optional and the box is left empty NO_TEMPLATE, TEMPLATE_EXISTS, DISK_TEMPLATE_EXISTS or NEW_TEMPLATE TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 945,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Template_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the data was successfully returned. Get the data of type Text from the Template_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned. Page 1100 Panels and Widgets Chapter"
  },
  {
    "name": "Set_data",
    "id": 944,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Template_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Template_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Validate",
    "id": 951,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Style_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Text_Style_Box box and return name of the textstyle as the Text result. The function returns the value of: NO_NAME if the Widget Text_Style_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 953,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Style_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Text_Style_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 952,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Style_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Text_Style_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Validate",
    "id": 955,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Units_Box"
      },
      {
        "name": "&result",
        "type": "Integer"
      }
    ],
    "description": "Validate the contents of Text_Units_Box box and return the Integer result. The function returns the value of: NO_NAME if the Widget Text_Units_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 957,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Units_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Text_Units_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 956,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Units_Box"
      },
      {
        "name": "integer_data",
        "type": "Integer"
      }
    ],
    "description": "Set the data of type Integer for the Text_Units_Box box to integer_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1519,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Units_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Text_Units_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_textstyle_data_box",
    "id": 1671,
    "returnType": "Textstyle_Data_Box",
    "parameters": [
      {
        "name": "text",
        "type": "Text"
      },
      {
        "name": "box",
        "type": "Message_Box"
      },
      {
        "name": "flags",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Textstyle_Data_Box. See 5.61.10.41 Textstyle_Data_Box. The Textstyle_Data_Box is created with the title title_text. The Message_Box message is used to display the information. The Integer flags indicates enable fields in the textstyle data box. The function return value is the created Textstyle_Data_Box."
  },
  {
    "name": "Validate",
    "id": 1672,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Textstyle_Data_Box"
      },
      {
        "name": "&data",
        "type": "Textstyle_Data"
      }
    ],
    "description": "Validate the contents of Textstyle_Data_Box box and return the Textstyle_Data data. The function returns the value of: NO_NAME if the Widget Textstyle_Data_Box is optional and the box is left empty TRUE (1) if no other return code is needed and data is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 1673,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Textstyle_Data_Box"
      },
      {
        "name": "data",
        "type": "Textstyle_Data"
      }
    ],
    "description": "Set the data of type Textstyle_Data for the Textstyle_Data_Box box to data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 2161,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Textstyle_Data_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Texstyle_Data_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 2160,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Textstyle_Data_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Textstyle_Data_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_text_edit_box",
    "id": 1372,
    "returnType": "Text_Edit_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "box",
        "type": "Message_Box"
      },
      {
        "name": "no_lines",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Text_Edit_Box. See 5.61.10.42 Text_Edit_Box. The Text_Edit_Box is created with the title title_text. The Message_Box box is used to display information. The number of lines allowed is no_lines. The function return value is the created Text_Edit_Box."
  },
  {
    "name": "Create_text_edit_box",
    "id": 7892,
    "returnType": "Text_Edit_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "box",
        "type": "Message_Box"
      },
      {
        "name": "no_lines",
        "type": "Integer"
      },
      {
        "name": "enable_spell_check",
        "type": "Integer"
      }
    ],
    "description": "The spell checking feature is under development. Create an input Widget of type Text_Edit_Box. See 5.61.10.42 Text_Edit_Box. The Text_Edit_Box is created with the title title_text. If enable_spell_check is 1, spell checking will be performed on the box. The Message_Box box is used to display information. The number of lines allowed is no_lines. The function return value is the created Text_Edit_Box."
  },
  {
    "name": "Set_data",
    "id": 1374,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Edit_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Text_Edit_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 1617,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Text_Edit_Box"
      },
      {
        "name": "dt_data",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Panels and Widgets Page 1111 12d Model Macro Manual Set the data of type Dynamic_Text for the Text_Edit_Box widget to dt_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 1373,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Text_Edit_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Text_Edit_Box widget and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_data",
    "id": 1616,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Text_Edit_Box"
      },
      {
        "name": "&dt_data",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the data of type Dynamic_Text from the Text_Edit_Box widget and return it in dt_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_word_wrap",
    "id": 1596,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Edit_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Disable the word wrap for the Text_Edit_Box box if and mode is zero, enable the word wrap otherwise. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Get_word_wrap",
    "id": 1597,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Edit_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Set the value of Integer mode to: 0 if the word wrap is disable for the Text_Edit_Box box 1 otherwise. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_read_only",
    "id": 1598,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Text_Edit_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the Text_Edit_Box box to read-only if mode is non-zero, disable read-only otherwise. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Get_read_only",
    "id": 1599,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Text_Edit_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Set the value of Integer mode to: 1 if the Text_Edit_Box box is read-only. 0 otherwise. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Set_vertical_scroll_bar",
    "id": 1600,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Text_Edit_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Disable the vertical scroll bar for the Text_Edit_Box box if and mode is zero, enable the vertical scroll bar otherwise. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Get_vertical_scroll_bar",
    "id": 1601,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Text_Edit_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Set the value of Integer mode to: 1 if the vertical scroll bar is enable for the Text_Edit_Box box 0 otherwise. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Get_horizontal_scroll_bar",
    "id": 1603,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Text_Edit_Box"
      },
      {
        "name": "&mode",
        "type": "Integer"
      }
    ],
    "description": "Set the value of Integer mode to: 1 if the horizontal scroll bar is enable for the Text_Edit_Box box 0 otherwise. A function return value of zero indicates that the function call was successful."
  },
  {
    "name": "Create_texture_box",
    "id": 1875,
    "returnType": "Texture_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Texture_Box. See 5.61.10.43 Texture_Box. The Texture_Box is created with the title title_text. The Message_Box message is used to display information. The function return value is the created Texture_Box."
  },
  {
    "name": "Validate",
    "id": 1876,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Texture_Box"
      },
      {
        "name": "&result",
        "type": "Text"
      }
    ],
    "description": "Validate the contents of Texture_Box box and return the name of the texture in Text result. The function returns the value of: NO_NAME if the Widget Texture_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 1877,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Texture_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Texture_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 1878,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Texture_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Texture_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Create_tick_box",
    "id": 958,
    "returnType": "Tick_Box",
    "parameters": [
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Tick_Box. See 5.61.10.44 Tick_Box. The Message_Box message is used to display the tick information. The function return value is the created Tick_Box."
  },
  {
    "name": "Validate",
    "id": 959,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tick_Box"
      },
      {
        "name": "&result",
        "type": "Integer"
      }
    ],
    "description": "Validate result (of type Integer) in the Tick_Box box. Validate the contents of Tick_Box box and return the Integer result. result = 0 if the tick box is unticked result = 1 if the tick box is ticked A function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 961,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tick_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Tick_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 960,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tick_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Tick_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_tin_box",
    "id": 962,
    "returnType": "Tin_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Tin_Box for inputting and validating Tins. The Tin_Box is created with the title title_text (see 5.61.10.45 Tin_Box). The Message_Box message is normally the message box for the panel and is used to display Model_Box validation messages. If <enter> is typed into the Tin_Box or a tin selected from the tin pop-up list, automatic validation is performed by the Tin_Box according to mode. What the validation is, what messages are written to Message_Box, and what actions automatically occur, depend on the value of mode. For example, CHECK_TIN_MUST_EXIST // if the tins exists, the message says \"exists\"\uf020 // if it doesn\u2019t exist, the messages says \"ERROR\" The values for mode and their actions are listed in Appendix A (see Tin Mode). The function return value is the created Tin_Box."
  },
  {
    "name": "Validate",
    "id": 963,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "Tin"
      }
    ],
    "description": "Validate the contents of Tin_Box box and return the Tin result. The value of mode will determine what validation occurs, what messages are written to the Message_Box, what actions are taken and what the function return value is. The values for mode and the actions are listed in Appendix A (see Tin Mode). The function return values depends on mode and are given in Appendix A (see Tin Mode). A function return value of zero indicates that there is a drastic error. Warning this is the opposite of most 12dPL function return values Double Warning: most times the function return code is not zero even when you think it should be. The actual value of the function return code must be checked to see what is going on. For example, when mode = CHECK_TIN_MUST_EXIST will return NO_TIN if the tin name is not blank and no tin of that name exist (NO_TIN does not equal zero)."
  },
  {
    "name": "Get_data",
    "id": 965,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Tin_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 964,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Tin_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_supertin",
    "id": 1311,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "For the Tin_box box, set whether the pop up for the Tin_ box shows tins and super tins, or only tins. If mode = 0, only tins are displayed in the pop-up. If mode = 1, only tins and super tins are displayed in the pop-up. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_tin_type",
    "id": 2894,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "Set the type of acceptable tin for the Tin_Box box to type. The valid types of tin are: 1 normal tin, 2 super tin, 3 grid tin. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_tin_type",
    "id": 2896,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "type",
        "type": "Integer"
      },
      {
        "name": "type2",
        "type": "Integer"
      },
      {
        "name": "type3",
        "type": "Integer"
      }
    ],
    "description": "Set the type of acceptable tin for the Tin_Box box to type, type2, type3. The valid types of tin are: 1 normal tin, 2 super tin, 3 grid tin. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_all_tin_types",
    "id": 2897,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      }
    ],
    "description": "Set the type of acceptable tin for the Tin_Box box to all types. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_tin_mode",
    "id": 2898,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set the mode the Tin_Box box to mode. The valid modes for tin are: 1 section, 2 exact. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_tin_mode",
    "id": 2899,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "mode2",
        "type": "Integer"
      }
    ],
    "description": "Set the mode the Tin_Box box to mode, mode2. The valid modes for tin are: 1 section, 2 exact. A return value of zero indicates the function call was successful. Page 1124 Panels and Widgets Chapter"
  },
  {
    "name": "Set_all_tin_modes",
    "id": 2900,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      }
    ],
    "description": "Set the mode the Tin_Box box to all modes. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_tin_access",
    "id": 2901,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "access",
        "type": "Integer"
      }
    ],
    "description": "Set the access type of the Tin_Box box to access. The valid tin access types are: 1 read access, 2 write access. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_tin_access",
    "id": 2902,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Tin_Box"
      },
      {
        "name": "access",
        "type": "Integer"
      },
      {
        "name": "access2",
        "type": "Integer"
      }
    ],
    "description": "Set the access type of the Tin_Box box to access, access2. The valid tin access types are: 1 read access, 2 write access. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Create_view_box",
    "id": 966,
    "returnType": "View_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type View_Box for inputting and validating Views. The View_Box is created with the title title_text (see 5.61.10.46 View_Box). The Message_Box message is normally the message box of the panel and is used to display the View_Box validation messages. If an <enter> is typed in the View_Box or a view selected from the view pop-up list, automatic validation is performed by the View_Box according to mode - what the validation is, what messages are written to Message_Box, and what actions automatically occur, depend on the value of mode. For example, CHECK_TIN_MUST_EXIST // if the model exists, the message says \"exists\" and\uf020 // if it doesn\u2019t exist, the messages says \"ERROR\" The value of mode and their actions are listed in Appendix A (see View Mode). The function return value is the created View_Box."
  },
  {
    "name": "Validate",
    "id": 967,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "View_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&result",
        "type": "View"
      }
    ],
    "description": "Validate the contents of View_Box box and return the View result. The value of mode will determine what validation occurs, what messages are written to the Message_Box, what actions are taken and what the function return value is. The values for mode and the actions are listed in Appendix A (see View Mode). The function return value depends on mode and are given in Appendix A (see View Mode). A function return value of zero indicates that there is a drastic error. Warning this is the opposite of most 12dPL function return values Double Warning: most times the function return code is not zero even when you think it should be. The actual value of the function return code must be checked to see what is going on. For example, when mode = CHECK_VIEW_MUST_EXIST will return NO_VIEW if the view name is not blank and no view of that name exist (NO_VIEW does not equal zero)."
  },
  {
    "name": "Get_data",
    "id": 969,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "View_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the View_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 968,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "View_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the View_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_view_type",
    "id": 2942,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "View_Box"
      },
      {
        "name": "type",
        "type": "Integer"
      }
    ],
    "description": "Set acceptable view type for View_box box with Integer type. A return value of 0 indicates the function call was successful. List of values for view type 1 Plan, 2 Perspective, 3 Section, 4 Hidden, A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_view_type",
    "id": 2943,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "View_Box"
      },
      {
        "name": "type",
        "type": "Integer"
      },
      {
        "name": "type2",
        "type": "Integer"
      }
    ],
    "description": "Set acceptable view types for View_box box with Integer type, type2. A return value of 0 indicates the function call was successful. List of values for view type 1 Plan, 2 Perspective, 3 Section, 4 Hidden, A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_all_view_types",
    "id": 2945,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "View_Box"
      }
    ],
    "description": "Set acceptable view types for View_box box with all view types. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Set_view_engine",
    "id": 2946,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "View_Box"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Set view engine mode for View_Box box with Integer mode. A return value of zero indicates the function call was successful. List of value for view engine mode 1 GDI 2 OpenGL 3 OpenGL GPU"
  },
  {
    "name": "Create_weight_box",
    "id": 7804,
    "returnType": "Weight_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type Weight_Box. See 5.61.10.47 Weight_Box. The Weight_Box is created with the title title_text. The Message_Box message is normally the message box for the panel and is used to display Weight_Box validation messages. The function return value is the created Weight_Box."
  },
  {
    "name": "Validate",
    "id": 7805,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Weight_Box"
      },
      {
        "name": "&result",
        "type": "Real"
      }
    ],
    "description": "Validate the contents of Weight_Box box and return the Real result. The function returns the value of: Page 1130 Panels and Widgets Chapter NO_NAME if the Widget Weight_Box is optional and the box is left empty TRUE (1) if no other return code is needed and result is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 7806,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Weight_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Weight_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 7807,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Weight_Box"
      },
      {
        "name": "real_data",
        "type": "Real"
      }
    ],
    "description": "Set the data of type Real for the Weight_Box box to real_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 7808,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Weight_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Weight_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_xyz_box",
    "id": 970,
    "returnType": "XYZ_Box",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "message",
        "type": "Message_Box"
      }
    ],
    "description": "Create an input Widget of type XYZ_Box. See 5.61.10.48 XYZ_Box. The XYZ_Box is created with the title title_text. The Message_Box message is used to display the XYZ information. The function return value is the created XYZ_Box."
  },
  {
    "name": "Validate",
    "id": 971,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "XYZ_Box"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Validate the contents of the XYZ_Box box and check it decodes to three Reals. The three Reals are returned in x, y, and z. The function returns the value of: NO_NAME if the Widget XYZ_Box is optional and the box is left empty TRUE (1) if no other return code is needed and x, y and z are valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_data",
    "id": 973,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "XYZ_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the XYZ_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 1520,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "XYZ_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the XYZ_Box box to text_data. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_colour_message_box",
    "id": 2629,
    "returnType": "Colour_Message_Box",
    "parameters": [
      {
        "name": "message_text",
        "type": "Text"
      }
    ],
    "description": "Create a box of type Colour_Message_Box for writing out messages. See 5.61.11.1 Colour_Message_Box. The Colour_Message_Box is created with the text message_text displayed in it. The background colour of the display area is set using Set_level (Colour_Message_Box, level), or can be set with the message using Set_data(Colour_Message_Box box,Text text_data,Integer level)). The function return value is the created Colour_Message_Box."
  },
  {
    "name": "Set_data",
    "id": 2632,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Colour_Message_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      },
      {
        "name": "level",
        "type": "Integer"
      }
    ],
    "description": "Set the data of type Text for the Colour_Message_Box box as the Text text_data. Page 1136 Panels and Widgets Chapter If the Colour_Message_Box box is on a panel then the message text_data will be displayed in the information area of box with the background colour of the box set by level. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_data",
    "id": 2631,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Colour_Message_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Colour_Message_Box box as the Text text_data. If the Colour_Message_Box box is on a panel then the message text_data will be displayed in the information area of box with the background colour previously defined by the Set_level call. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Set_level",
    "id": 2630,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Colour_Message_Box"
      },
      {
        "name": "level",
        "type": "Integer"
      }
    ],
    "description": "Setting level defines the background colour to use when text messages are displayed in the information area of box. This level will be over ridden if the Set_data(Colour_Message_Box box,Text text_data,Integer level) call is used. For level = 1, the colour is normal. For level = 2, the colour is yellow (for Warning) For level = 3, the colour is red (for Error) For level = 4, the colour is green (for Good) If no Set_level call is made then the default level is 1. A function return value of zero indicates the level was successfully set."
  },
  {
    "name": "Create_message_box",
    "id": 847,
    "returnType": "Message_Box",
    "parameters": [
      {
        "name": "message_text",
        "type": "Text"
      }
    ],
    "description": "Create a box of type Message_Box for writing out messages. See 5.61.11.2 Message_Box. The Message_Box is created with the text message_text displayed in it. The function return value is the created Message_Box."
  },
  {
    "name": "Get_data",
    "id": 1037,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Message_Box"
      },
      {
        "name": "&text_data",
        "type": "Text"
      }
    ],
    "description": "Get the data of type Text from the Message_Box box and return it in text_data. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Set_data",
    "id": 1038,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Message_Box"
      },
      {
        "name": "text_data",
        "type": "Text"
      }
    ],
    "description": "Set the data of type Text for the Message_Box box as the Text text_data. If the Message_Box box is on a panel then the message text_data will be displayed in the Page 1138 Panels and Widgets Chapter information area of box. A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Create_log_box",
    "id": 2671,
    "returnType": "Log_Box",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "box_width",
        "type": "Integer"
      },
      {
        "name": "box_height",
        "type": "Integer"
      }
    ],
    "description": "Create an input Widget of type Log_Box with the message area defined by the parameters box_width, box_height which are in screen units (pixels).See 5.61.12 Log_Box and Log_Lines. A Log_Box behaves like the standard 12d Model Output Window but may be added to a Panel or Vertical / Horizontal group. Log_Lines are the method of passing messages to the Log_Box. The function return value is the created Log_Box."
  },
  {
    "name": "Create_text_log_line",
    "id": 2663,
    "returnType": "Log_Line",
    "parameters": [
      {
        "name": "message",
        "type": "Text"
      },
      {
        "name": "log_level",
        "type": "Integer"
      }
    ],
    "description": "Create a Text Log_Line with the message message and a log level log_level. The text message is displayed in a Log_Box with the log level log_level when the Log_Line is added to the Log_Box. Available log levels are 0 for none, 1 for General, 2 for Warning 3 for Error. Log levels other than 0 will display a small icon to indicate their status. icons for log_level\u2019s WARNING To be visible, the created Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. The function return code is the created Log_Line."
  },
  {
    "name": "Create_highlight_string_log_line",
    "id": 2664,
    "returnType": "Log_Line",
    "parameters": [
      {
        "name": "message",
        "type": "Text"
      },
      {
        "name": "log_level",
        "type": "Integer"
      },
      {
        "name": "model_id",
        "type": "Uid"
      },
      {
        "name": "string_id",
        "type": "Uid"
      }
    ],
    "description": "Create a Highlight String Log_Line giving a string by its model Uid model_id and string Uid string_id, a text message and a log level log_level. The text message is displayed in a Log_Box with the log level log_level when the Log_Line is added to the Log_Box. If LB is clicked on the log line, the string will be highlighted. Available log levels are 0 for none, 1 for General, 2 for Warning 3 for Error. Log levels other than 0 will display a small icon to indicate their status. highlight string log line with log level 2 Clicking LB on the Highlight String log line highlights the string in each view the string is on, and autopans to the string. WARNING To be visible, the created Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. The function return code is the created Log_Line."
  },
  {
    "name": "Create_highlight_string_log_line",
    "id": 2665,
    "returnType": "Log_Line",
    "parameters": [
      {
        "name": "message",
        "type": "Text"
      },
      {
        "name": "log_level",
        "type": "Integer"
      },
      {
        "name": "model_id",
        "type": "Uid"
      },
      {
        "name": "string_id",
        "type": "Uid"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Create a Highlight String Log_Line giving a string by its model Uid model_id and string Uid Page 1142 Panels and Widgets Chapter string_id, a coordinate (x,y,z) on the string, a text message and a log level log_level. The text message is displayed in a Log_Box with the log level log_level when the Log_Line is added to the Log_Box. If LB is clicked on the log line, the coordinate (x,y,z) on the string, and the string, will be highlighted. Available log levels are 0 for none, 1 for General, 2 for Warning 3 for Error. Log levels other than 0 will display a small icon to indicate their status. highlight string (with xyz) log line and log level 2 Clicking LB on the highlight string (with xyz) log line highlights the string at the given position (x,y,z) in each view the string is on, and autopans to the string. WARNING To be visible, the created Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. The function return code is the created Log_Line."
  },
  {
    "name": "Create_highlight_point_log_line",
    "id": 2666,
    "returnType": "Log_Line",
    "parameters": [
      {
        "name": "message",
        "type": "Text"
      },
      {
        "name": "log_level",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      }
    ],
    "description": "Create a Log_Line giving a coordinate (x,y,z). If LB is clicked on the log line, the coordinate (x,y,z) will be highlighted. LJG? on which views? It also displays the text message message and has a log level log_level. Available log levels are 0 for none, 1 for General, 2 for Warning Panels and Widgets Page 1143 12d Model Macro Manual 3 for Error. Log levels other than 0 will display a small icon to indicate their status. WARNING To be visible, the created Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. The function return code is the created Log_Line."
  },
  {
    "name": "Create_edit_string_log_line",
    "id": 2667,
    "returnType": "Log_Line",
    "parameters": [
      {
        "name": "message",
        "type": "Text"
      },
      {
        "name": "log_level",
        "type": "Integer"
      },
      {
        "name": "model_id",
        "type": "Uid"
      },
      {
        "name": "string_id",
        "type": "Uid"
      }
    ],
    "description": "Create an Edit Log_Line giving a string by its model Uid model_id and string Uid string_id, a text message and a log level log_level. The text message is displayed in a Log_Box with the log level log_level when the Log_Line is added to the Log_Box. If LB is clicked on the log line, the string will be highlighted. If LB is double clicked on the log line, the string is edited. If RB is clicked on the log line then an Options menu is displayed with the choices: Edit the string Delete the string Show the string properties Not applicable It also displays the text message message and has a log level log_level. Available log levels are 0 for none, 1 for General, 2 for Warning 3 for Error. Log levels other than 0 will display a small icon to indicate their status. Page 1144 Panels and Widgets Chapter edit string log line with log level 1 Clicking LB on the edit string log line highlights the string in each view the string is on, and autopans to the string. Double clicking LB on the edit string log line highlights and edits the string. That is, it highlights the string and also brings the string up in its editor Clicking RB on the edit string log line brings up the Options for the string WARNING To be visible, the created Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. The function return code is the created Log_Line."
  },
  {
    "name": "Create_macro_log_line",
    "id": 2668,
    "returnType": "Log_Line",
    "parameters": [
      {
        "name": "message",
        "type": "Text"
      },
      {
        "name": "log_level",
        "type": "Integer"
      },
      {
        "name": "macro",
        "type": "Text"
      },
      {
        "name": "select_cmd_line",
        "type": "Text"
      }
    ],
    "description": "This call creates a log line that will allow the user to run a macro when the log line is double clicked. The macro is specified by the parameter macro and any optional arguments to be passed to it are specified by cmd_line. It also displays the text message message and has a log level log_level. Available log levels are 0 for none 1 for General, 2 for Warning 3 for Error. Log levels other than 0 will display a small icon to indicate their status. WARNING To be visible, the created Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. The function return code is the created Log_Line."
  },
  {
    "name": "Create_macro_log_line",
    "id": 2669,
    "returnType": "Log_Line",
    "parameters": [
      {
        "name": "message",
        "type": "Text"
      },
      {
        "name": "log_level",
        "type": "Integer"
      },
      {
        "name": "macro",
        "type": "Text"
      },
      {
        "name": "select_cmd_line",
        "type": "Text"
      },
      {
        "name": "menu_names",
        "type": "Dynamic_Text"
      },
      {
        "name": "menu_command_lines",
        "type": "Dynamic_Text"
      }
    ],
    "description": "This call creates a log line that will allow the user to run a macro when the log line is double clicked. The macro is specified by the parameter macro and any optional arguments to be passed to it are specified by cmd_line. This log line also provides options in a context menu when the user right clicks it. There are two parameters required; a list of all the names to be displayed in the menu, stored in a Dynamic_Text object called menu_names and the list of arguments to be passed down to the macro when the menu item is selected, stored in menu_command_lines. It also displays the text message message and has a log level log_level. Available log levels are 0 for none, 1 for General, 2 for Warning 3 for Error. Log levels other than 0 will display a small icon to indicate their status. WARNING To be visible, the created Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. Page 1146 Panels and Widgets Chapter The function return code is the created Log_Line."
  },
  {
    "name": "Add_log_line",
    "id": 2672,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Log_Box"
      },
      {
        "name": "line",
        "type": "Log_Line"
      }
    ],
    "description": "Add the Log_Line line to the existing Log_Box box. WARNING To be visible, a Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. Note that each Log_Line can be added at most one time; the add destination can be one of the three types: Output window; a Log_Box; or a parent Log_Line group. If the line is already added, then the function will return -1. A function return value of zero indicates the Log_Line was successfully added."
  },
  {
    "name": "Clear",
    "id": 2673,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "box",
        "type": "Log_Box"
      }
    ],
    "description": "Clear any text and log lines from a Log_Box box. A function return value of zero indicates the Log_Box was successfully cleared."
  },
  {
    "name": "Print_log_line",
    "id": 2670,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "is_error",
        "type": "Integer"
      }
    ],
    "description": "Print the Log_Line line to the 12d Model Output window. If is_error = 1, the Output window will treat the Log_line as an error message and the Output window will flash and/or pop up). Note that each Log_Line can be added at most one time; the add destination can be one of the three types: Output window; a Log_Box; or a parent Log_Line group. If the line is already added, then the function will return -1. A function return value of zero indicates the Log_Line was successfully printed."
  },
  {
    "name": "Create_group_log_line",
    "id": 3757,
    "returnType": "Log_Line",
    "parameters": [
      {
        "name": "message",
        "type": "Text"
      },
      {
        "name": "log_level",
        "type": "Integer"
      }
    ],
    "description": "Create a group Log_Line with the message message and a log level log_level. The text message is displayed in a Log_Box with the log level log_level when the Log_Line is added to the Log_Box. Available log levels are 0 for none, 1 for General, 2 for Warning 3 for Error. Log levels other than 0 will display a small icon to indicate their status. WARNING To be visible, the created Log_Line is added to a Log_Box using the call Add_log_line(Log_Box box,Log_Line line) BUT this call can only be made after the Log_Box is displayed in a panel using the Show_panel call. The function return code is the created group Log_Line."
  },
  {
    "name": "Get_type",
    "id": 3758,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "&type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of a given Log_Line line and return it in Integer type. The value of type can be ??? As in v14 c2g the value is always 0. A function return value of zero indicates the type was successfully returned."
  },
  {
    "name": "Get_type",
    "id": 3759,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the type of a given Log_Line line and return it in Text type. The value of type can be ??? As in v14 c2g the value is always empty string. A function return value of zero indicates the type was successfully returned."
  },
  {
    "name": "Get_id",
    "id": 3760,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "&id",
        "type": "Integer"
      }
    ],
    "description": "Get the Id of a given Log_Line line and return it in Integer id. A function return value of zero indicates the id was successfully returned."
  },
  {
    "name": "Get_parent_id",
    "id": 3761,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "&parent",
        "type": "Integer"
      }
    ],
    "description": "Get the Id of the parent of a given Log_Line line and return it in Integer parent. A function return value of zero indicates the id was successfully returned."
  },
  {
    "name": "Get_parent",
    "id": 3762,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "&parent",
        "type": "Log_Line"
      }
    ],
    "description": "Get the parent of a given Log_Line line and return it in Log_Line parent. A function return value of zero indicates the parent was successfully returned."
  },
  {
    "name": "Append_log_line",
    "id": 3763,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "parent",
        "type": "Log_Line"
      }
    ],
    "description": "Append a given Log_Line line to a parent Log_Line group parent. If the parent is not a group, the function return -3. Note that each Log_Line can be added at most one time; the add destination can be one of the three types: Output window; a Log_Box; or a parent Log_Line group. If the line is already added, then the function will return -4. A function return value of zero indicates the append was successful."
  },
  {
    "name": "Get_log_line_number_of_actions",
    "id": 7965,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "&action_count",
        "type": "Integer"
      }
    ],
    "description": "Get the total user actions added to the given Log_Line line, and set the number to action_count. This number does not include any inbuilt actions. When a log line is something like an Edit_File_Log_Line, it has the inbuilt actions \"Edit file\" and \"Open folder\". They are not user actions and so cannot be accessed or modified. A function return value of zero indicates the get was successful."
  },
  {
    "name": "Get_log_line_action_id_index",
    "id": 7966,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "&action_index",
        "type": "Integer"
      }
    ],
    "description": "Get the user action with given id (the return value of Add_macro_action) of the given Log_Line line, and set the index (1 2 3 counting of the order that actions being added) to action_index. A function return value of zero indicates the get was successful."
  },
  {
    "name": "Get_log_line_action_id_time",
    "id": 7967,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "&action_time",
        "type": "Integer64"
      }
    ],
    "description": "Get the user action with given id (the return value of Add_macro_action) of the given Log_Line line, and set the time to action_time. action_time is when the user last performed the action. 0 means not actioned A function return value of zero indicates the get was successful."
  },
  {
    "name": "Get_log_line_action_id_help",
    "id": 7968,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "&action_help",
        "type": "Text"
      }
    ],
    "description": "Get the user action with given id (the return value of Add_macro_action) of the given Log_Line line, and set the help text to action_help. A function return value of zero indicates the get was successful."
  },
  {
    "name": "Get_log_line_action_id",
    "id": 7970,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "&action_id",
        "type": "Integer"
      }
    ],
    "description": "Get the user action number index (1 2 3 counting of the order that actions being added) of the given Log_Line line, and set the index to action_index. A function return value of zero indicates the get was successful."
  },
  {
    "name": "Get_log_line_action_time",
    "id": 7971,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "index",
        "type": "Integer"
      },
      {
        "name": "&action_time",
        "type": "Integer64"
      }
    ],
    "description": "Get the user action number index (1 2 3 counting of the order that actions being added) of the given Log_Line line, and set the time to action_time. action_time is when the user last performed the action. 0 means not actioned A function return value of zero indicates the get was successful."
  },
  {
    "name": "Get_log_line_action_id_help",
    "id": 7972,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "&action_help",
        "type": "Text"
      }
    ],
    "description": "Get the user action number index (1 2 3 counting of the order that actions being added) of the given Log_Line line, and set the help text to action_help. A function return value of zero indicates the get was successful."
  },
  {
    "name": "Get_log_line_action_id_mode",
    "id": 7973,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "line",
        "type": "Log_Line"
      },
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "&action_mode",
        "type": "Integer"
      }
    ],
    "description": "Page 1152 Panels and Widgets Chapter Get the user action number index (1 2 3 counting of the order that actions being added) of the given Log_Line line, and set the mode to action_index. action_mode is reserved for whether the action is manditory. The intent here is unless an action has been actioned, you may not be able to exit the option A function return value of zero indicates the get was successful."
  },
  {
    "name": "Create_button",
    "id": 850,
    "returnType": "Button",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "reply",
        "type": "Text"
      }
    ],
    "description": "Create a Widget of type Button. The Button is created with title_text a the text on the Button. The Text reply is the command that is sent by the Button back to the macro via Wait_on_widgets when the Button is clicked on. See Wait_on_widgets(Integer &id,Text &cmd,Text &msg). The function return value is the created Button."
  },
  {
    "name": "Create_button",
    "id": 7672,
    "returnType": "Button",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "reply",
        "type": "Text"
      },
      {
        "name": "bitmap_name",
        "type": "Text"
      }
    ],
    "description": "Create a Widget of type Button. The Button is created with image using file named bitmap_name and title_text a the text on the Button. The Text reply is the command that is sent by the Button back to the macro via Wait_on_widgets when the Button is clicked on. See Wait_on_widgets(Integer &id,Text &cmd,Text &msg). The function return value is the created Button. Panels and Widgets Page 1155 12d Model Macro Manual"
  },
  {
    "name": "Create_run_button",
    "id": 7999,
    "returnType": "Button",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "reply",
        "type": "Text"
      }
    ],
    "description": "Create a Widget of type Button. The run Button is created with title_text a the text on the Button. \"Standard\" operation panels should have exactly one run button per panel. The Text reply is the command that is sent by the Button back to the macro via Wait_on_widgets when the Button is clicked on. See Wait_on_widgets(Integer &id,Text &cmd,Text &msg). The function return value is the created Button."
  },
  {
    "name": "Set_panel_allow_test_case",
    "id": 8000,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "panel",
        "type": "Panel"
      },
      {
        "name": "onoff",
        "type": "Integer"
      }
    ],
    "description": "Internal use only. The function return value is the created Button."
  },
  {
    "name": "Set_raised_button",
    "id": 1058,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "button",
        "type": "Button"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Not yet implemented Set the button raised or sank depending on the mode value. mode value -3 Raise 0 Flat 3 Sink A function return value of zero indicates the button was successfully raised."
  },
  {
    "name": "Create_child_button",
    "id": 851,
    "returnType": "Button",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      }
    ],
    "description": "Not implemented."
  },
  {
    "name": "Create_finish_button",
    "id": 1367,
    "returnType": "Button",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "reply",
        "type": "Text"
      }
    ],
    "description": "Creates a Finish Button with title_text the text on the Button. The Text reply is the command that is sent by the Button back to the macro via Wait_on_widgets when the Button is clicked on. See Wait_on_widgets(Integer &id,Text &cmd,Text &msg). This is a special button and there should only be one per panel. The title_text is normally \"Finish\" At the end of the processing in the macro, Set_finish_button (see Set_finish_button(Widget panel,Integer move_cursor)) should be called to put the cursor on the Finish button. Set_finish_button needs to be called so that chains know that the macro has terminated correctly. The function return value is the created Button."
  },
  {
    "name": "Set_finish_button",
    "id": 1368,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "panel",
        "type": "Widget"
      },
      {
        "name": "move_cursor",
        "type": "Integer"
      }
    ],
    "description": "If move_cursor = 1 then the cursor is moved onto the finish button."
  },
  {
    "name": "Create_select_button",
    "id": 881,
    "returnType": "Select_Button",
    "parameters": [
      {
        "name": "title_text",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "box",
        "type": "Message_Box"
      }
    ],
    "description": "Create a button of type Select_Button. This is a special Button that when clicked, allows the user to select a string. The button is created with the label text title_text. The Message_Box box is selected to display the select information. The value of mode is: mode value SELECT_STRING 5509 Page 1160 Panels and Widgets Chapter SELECT_STRINGS 5510 not implemented! Refer to the list in the Appendix A. The function return value is the created Select_Button. Note The Select_Button is now rarely used and has been replaced by the New_Select_Box or the Select_Box. See 5.61.10.24 New_Select_Box and 5.61.10.31 Select_Box"
  },
  {
    "name": "Validate",
    "id": 978,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      },
      {
        "name": "&string",
        "type": "Element"
      }
    ],
    "description": "Validate the Element string that is selected via the Select_Button select. The function returns the value of: TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Validate",
    "id": 1375,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      },
      {
        "name": "&string",
        "type": "Element"
      },
      {
        "name": "silent",
        "type": "Integer"
      }
    ],
    "description": "Validate the contents of Select_Button select and return the selected Element in string. If silent = 0, and there is an error, a message is written and the cursor goes back to the button. If silent = 1 and there is an error, no message or movement of cursor is done. The function returns the value of: TRUE (1) if no other return code is needed and string is valid. FALSE (zero) if there is an error. So a function return value of zero indicates that there is an error. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Set_data",
    "id": 979,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      },
      {
        "name": "string",
        "type": "Text"
      }
    ],
    "description": "Set the model and string name as a Text string in the form \"model_name->string_name\" A function return value of zero indicates the data was successfully set."
  },
  {
    "name": "Get_data",
    "id": 980,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      },
      {
        "name": "&string",
        "type": "Text"
      }
    ],
    "description": "Get the model and string name for the selected string in the form \"model_name->string_name\". Return the Text in string. The returned string type must be Text. A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Select_start",
    "id": 1167,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      }
    ],
    "description": "Starts the string selection for the Select_Button select. This is the same as if the button had been clicked. A function return value of zero indicates the start was successful."
  },
  {
    "name": "Select_end",
    "id": 1168,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      }
    ],
    "description": "Cancels the string selection that is running for the Select_Button select. This is the same as if Cancel had been selected from the Pick Ops menu. A function return value of zero indicates the end was successful."
  },
  {
    "name": "Set_select_type",
    "id": 1043,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "Set the type of the string that can be selected to type for Select_Botton select. For example \u201cAlignment\u201d, \u201c3d\u201d. A function return value of zero indicates the type was successfully set."
  },
  {
    "name": "Set_select_snap_mode",
    "id": 1044,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      },
      {
        "name": "snap_control",
        "type": "Integer"
      }
    ],
    "description": "Set the snap control snap_control for the Select_Button select. mode value Ignore_Snap 0 User_Snap 1 Program_Snap 2 A function return value of zero indicates the type was successfully set."
  },
  {
    "name": "Get_select_direction",
    "id": 1046,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      },
      {
        "name": "&dir",
        "type": "Integer"
      }
    ],
    "description": "Get the select_direction dir from the selected string. The returned dir type must be Integer. If select without direction, the returned dir is 1, otherwise, the returned dir: Value Pick direction 1 the direction of the string -1 against the direction of the string A function return value of zero indicates the direction was successfully returned."
  },
  {
    "name": "Set_select_snap_mode",
    "id": 1047,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "select",
        "type": "Select_Button"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "control",
        "type": "Integer"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Panels and Widgets Page 1163 12d Model Macro Manual Set the snap mode mode and snap control control for the Select_Button select. When snap mode is: Name_Snap 6 Tin_Snap 7 Model_Snap 8 the snap_text must be string name; tin name, model name accordingly, otherwise, leave the snap_text blank \u201c\u201d. A function return value of zero indicates the type was successfully set. Get_select_coordinate(Select_Button select,Real &x,Real &y,Real &z,Real &ch,Real &ht) Name Integer Get_select_coordinate(Select_Button select,Real &x,Real &y,Real &z,Real &ch,Real &ht) Description Get the coordinate of the selected snap point. The return value of x, y, z, ch and ht must be type of Real. A function return value of zero indicates the coordinate was successfully returned."
  },
  {
    "name": "Create_help_button",
    "id": 2633,
    "returnType": "Button",
    "parameters": [
      {
        "name": "panel",
        "type": "Panel"
      },
      {
        "name": "title_txt",
        "type": "Text"
      }
    ],
    "description": "Create a button with the title title_text and return it as the function return value. To set up the file for extra help, see How to Set Up Extra Help."
  },
  {
    "name": "Create_gridctrl_box",
    "id": 2393,
    "returnType": "GridCtrl_Box",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "num_rows",
        "type": "Integer"
      },
      {
        "name": "num_columns",
        "type": "Integer"
      },
      {
        "name": "column_widgets[]",
        "type": "Widget"
      },
      {
        "name": "show_nav",
        "type": "Integer"
      },
      {
        "name": "messages",
        "type": "Message_Box"
      },
      {
        "name": "width",
        "type": "Integer"
      },
      {
        "name": "height",
        "type": "Integer"
      }
    ],
    "description": "This call creates a new GridCtrl_Box object which can be added to Panels. name is the name of the GridCtrl_Box and the number of rows that the grid initially has is num_rows and the number of columns is num_columns (rows can also be added or deleted after the GridCtrl_Box has been displayed). column_widgets[] is an array of Widgets in column order, and each Widget is of the type for that column. For an example see 5.61.14 GridCtrl_Box. If show_nav is 1 then there are navigation boxes on the side of the GridCtrl_Box. If show_nav is 0 then there are no navigation boxes. The width of the grid cell is width and the height of the grid cell is height, The units for width and height are screen units (pixels). Important note: All Boxes, even through they have names like Real_Box and Input_Box, derived from Widgets and can be used in many options that take a Widget. For example Show_widget. However for the array of widgets column_widgets[ ] defining the GridCtrl_Box columns, the array values need to be Widget and so the other types derived from Widget have to be cast to a Widget before they can be used to fill the column_widgets[] array. The cast is easily done by simply having the following cast function defined and in your macro code. Widget cast(Widget w) { return w; } See 5.61.14 GridCtrl_Boxfor an example of using cast when defining values for column_widgets[]. GridCtrl_Box with two row and three columns with column types Real_Box, Input_Box, Tick_Box The titles of the Widgets are the headings for the columns show_nav = 0 so navigation boxes show_nav = 1 Grid navigation so navigation boxes boxes If the rows and columns are too large to fit inside the area defined by width and height, scroll bars are automatically created so that all cells can be reached. Page 1168 Panels and Widgets Chapter A vertical scroll bar is automatically added when the rows are wider than the given height A horizontal scroll bar is automatically added when the columns are wider than the given width The created GridCtrl_Box is returned as the function return value."
  },
  {
    "name": "Load_widgets_from_row",
    "id": 2394,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row_num",
        "type": "Integer"
      }
    ],
    "description": "Let column_widgets[] be the array that was used to define the GridCtrl_Box columns in the Create_gridcltrl_box call. See Create_gridctrl_box(Text name,Integer num_rows,Integer num_columns,Widget column_widgets[],Integer show_nav,Message_Box messages,Integer width,Integer height). Load_widgets_from_row loads the values in row row_num of the GridCtrl_Box grid into column_widgets[]. Load_widgets_from_row allows you to validate grid values for a row, or to get the values to use for other purposes. To change grid values, you first call Load_widgets_from_row to place the existing values for a row into column_widgets[], change the values that you wish to change in column_widgets[], and then call Load_row_from_widgets to load the new values from column_widgets[] back into the row. See Load_row_from_widgets(GridCtrl_Box grid,Integer row_num). Note - this call can only be made after the Show_widget call is made to display the panel containing the GridCtrl_Box. A function return value of zero indicates the load was successful."
  },
  {
    "name": "Load_row_from_widgets",
    "id": 2395,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row_num",
        "type": "Integer"
      }
    ],
    "description": "Let column_widgets[] be the array that was used to define the GridCtrl_Box columns in the Create_gridcltrl_box call. See Create_gridctrl_box(Text name,Integer num_rows,Integer num_columns,Widget column_widgets[],Integer show_nav,Message_Box messages,Integer width,Integer height). Load_row_from_widgets loads the values of column_widgets[] into row row_num of the GridCtrl_Box grid. Note - this call can only be made after the Show_widget call is made to display the panel containing the GridCtrl_Box. A function return value of zero indicates the load was successful."
  },
  {
    "name": "Insert_row",
    "id": 2397,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row_num",
        "type": "Integer"
      },
      {
        "name": "is_before",
        "type": "Integer"
      }
    ],
    "description": "This call inserts a blank row into the GridCtrl_Box grid. If is_before = 1, a blank row is inserted before row_num, so that the blank row becomes the new row_num\u2019th row. The old rows from row row_num onwards are all pushed down one row. If is_before = 0, a blank row is after row row_num, so that the blank row becomes a new (num_row+1)\u2019th row. The old rows from row (num_row+1) onwards are pushed down one row. t row number row_num of the GridCtrl_Box grid. If you wish it to be inserted before the specified row, set is_before to 1, otherwise the row will be inserted after. Note: a GridCtrl_Box(grid) call should be done after the Insert_row(GridCtrl_Box grid,Integer row_num,Integer is_before) call. See Format_grid(GridCtrl_Box grid). A function return value of a positive number indicates the insertion was successful; and the number should equal the number of rows after the insertion."
  },
  {
    "name": "Delete_row",
    "id": 2408,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row_num",
        "type": "Integer"
      }
    ],
    "description": "Delete the row row_num from the GridCtrl_Box grid. A function return value of zero indicates the row was successfully deleted."
  },
  {
    "name": "Delete_all_rows",
    "id": 2409,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      }
    ],
    "description": "Delete all the rows of the GridCtrl_Box grid. A function return value of zero indicates the rows were successfully deleted."
  },
  {
    "name": "Get_row_count",
    "id": 2398,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      }
    ],
    "description": "This call returns the number of rows currently in a GridCtrl_Box grid as the function return value."
  },
  {
    "name": "Format_grid",
    "id": 2399,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      }
    ],
    "description": "This call formats the GridCtrl_Box grid. This means it makes sure all columns and rows are large enough to fit any entered data. A function return value of zero indicates the format was successful."
  },
  {
    "name": "Set_cell",
    "id": 2400,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row_num",
        "type": "Integer"
      },
      {
        "name": "col_num",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "For the cell with row number row_num and column number col_num of the GridCtrl_Box grid, set the text value of the cell to text. It is recommended that you use the Load_row_from_widgets call, as this call will not provide any validation of data. This call will return 0 if successful. A function return value of zero indicates the set was successful."
  },
  {
    "name": "Get_cell",
    "id": 2401,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row_num",
        "type": "Integer"
      },
      {
        "name": "col_num",
        "type": "Integer"
      },
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Get the text value of the cell at row number row_num and column number col_num of the GridCtrl_Box grid, and returns the text in value. It is recommended that you use the Load_widgets_from_row call instead, as this call will not provide any validation of data. A function return value of zero indicates the get was successful."
  },
  {
    "name": "Set_column_width",
    "id": 2402,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "width",
        "type": "Integer"
      }
    ],
    "description": "For the GridCtrl_Box grid, set the width of column number col to width. The units of width are screen units (pixels). The column can be made invisible by setting its width to 0. A function return value of zero indicates the width was successfully set."
  },
  {
    "name": "Set_modified",
    "id": 2403,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "modified",
        "type": "Integer"
      }
    ],
    "description": "This call sets the modified state of the GridCtrl_Box grid. If modified = 0 then the modified state is set to off. If modified = 1 then the modified state is set to on. A function return value of zero indicates the modified state was successfully set."
  },
  {
    "name": "Set_warn_on_modified",
    "id": 2404,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "warn_on_modified",
        "type": "Integer"
      }
    ],
    "description": "This call sets the warn on modified state of the GridCtrl_Box grid. If warn_on_modified = 1 then if the panel containing grid is being closed and grid is in a modified state, then the user is prompted to confirm that grid is to be closed. If warn_on_modified = 0 then there is no warning when the panel containing grid is being closed even if the panel has been modified. Note: a GridCtrl_Box is in a in a modified state if data in the GridCtrl_Box has been changed and the modified state has not been set off by a Set_modified(grid,0) call. See Set_modified(GridCtrl_Box grid,Integer modified) The default for a GridCtrl_Box is that a warning is given when attempting to close it. A function return value of zero indicates the warn on modified state was successfully set."
  },
  {
    "name": "Get_selected_cells",
    "id": 2410,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "&start_row",
        "type": "Integer"
      },
      {
        "name": "&start_col",
        "type": "Integer"
      },
      {
        "name": "&end_row",
        "type": "Integer"
      },
      {
        "name": "&end_col",
        "type": "Integer"
      }
    ],
    "description": "For the GridCtrl_Box grid, return the minimum and maximum row and column numbers for the current selected cells (the range of the selected cells). The minimum and maximums are returned in start_row, start_col and end_row and end_col. Note that not all the cells in the range need to be selected. start_row = 2 start_col= 1 end_row = 4 end_col = 4 The function return value is zero if there are selected cells and the range is returned successfully. The function return value is non-zero is there are no selected rows."
  },
  {
    "name": "Get_focus_cells",
    "id": 7897,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "&row",
        "type": "Integer"
      },
      {
        "name": "&col",
        "type": "Integer"
      }
    ],
    "description": "For the GridCtrl_Box grid, return the row and column numbers for the current focus cell. The function return value is zero if there is the focus cell and the numbers is returned successfully."
  },
  {
    "name": "Set_fixed_row_count",
    "id": 2655,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "num_fixed_rows",
        "type": "Integer"
      }
    ],
    "description": "Sets the number of fixed rows in the GridCtrl_Box grid. Fixed rows can not be deleted or moved and rows can not be inserted between two other fixed rows. If you want Row labelled number 1 to be fixed the num_fixed_rows should be equal to two. This is because the top header is already a fixed row. Therefore, there is an offset of one. If you want rows one and two to be fixed, the num_fixed_rows should be three. A function return value of zero indicates the set was successful."
  },
  {
    "name": "Get_fixed_row_count",
    "id": 2656,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      }
    ],
    "description": "Gets the number of fixed rows in the GridCtrl_Box grid. Fixed rows can not be deleted or moved and rows can not be inserted between two other fixed rows. Note that the top header row is already a fixed row. The number of fixed rows is returned as the function return value."
  },
  {
    "name": "Set_cell_read_only",
    "id": 2657,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "read_only",
        "type": "Integer"
      }
    ],
    "description": "For the GridCtrl_Box grid, set the cell specified by row row and column col as read only. Note that colouring may be removed when grid is formatted and the format_grid message should be trapped to reapply these settings. A function return value of zero indicates the set was successful."
  },
  {
    "name": "Get_cell_read_only",
    "id": 2658,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      }
    ],
    "description": "For the GridCtrl_Box grid, check if the cell specified by row row and column column is read only. The function return value is: 1 if the cell is read only zero if the cell is not read only."
  },
  {
    "name": "Set_cell_colour",
    "id": 6892,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Do not use this call/ For the GridCtrl_Box grid, set the text and back colour of the cell specified by row row and column col to colour A function return value of zero indicates the call was successful."
  },
  {
    "name": "Set_cell_text_colour",
    "id": 6893,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the GridCtrl_Box grid, set the text colour of the cell specified by row row and column col to colour A function return value of zero indicates the call was successful."
  },
  {
    "name": "Set_cell_back_colour",
    "id": 6894,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "For the GridCtrl_Box grid, set the back colour of the cell specified by row row and column col to colour. A function return value of zero indicates the call was successful."
  },
  {
    "name": "Is_cell_selected",
    "id": 7963,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "grid",
        "type": "GridCtrl_Box"
      },
      {
        "name": "row",
        "type": "Integer"
      },
      {
        "name": "col",
        "type": "Integer"
      },
      {
        "name": "&selected",
        "type": "Integer"
      }
    ],
    "description": "For the GridCtrl_Box grid, check if the cell specified by row row and column col is selected and set selected to 1 for true and 0 for false. A function return value of zero indicates the call was successful."
  },
  {
    "name": "Create_tree_box",
    "id": 2571,
    "returnType": "Tree_Box",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "root_item_text",
        "type": "Text"
      },
      {
        "name": "tree_width",
        "type": "Integer"
      },
      {
        "name": "tree_height",
        "type": "Integer"
      }
    ],
    "description": "This call creates a Tree_Box with the name name and with width tree_width and height tree_height. The units for width and height are screen units (pixels). An empty node/page at the root of the tree is created with the title root_item_text. This is called the root page. Panels and Widgets Page 1179 12d Model Macro Manual An example of a section of the code required to create a Tree_Box with its root page is: Tree_Box tree_box = Create_tree_box(\"Tree\", \"Tree Root\", 200, 200); The created Tree_Box is returned as the function return value."
  },
  {
    "name": "Get_root_page",
    "id": 2572,
    "returnType": "Tree_Page",
    "parameters": [
      {
        "name": "tree_box",
        "type": "Tree_Box"
      }
    ],
    "description": "Get the root page of the Tree_Box tree_box and return it as the function return value. All Tree_Box\u2019s automatically have a root page."
  },
  {
    "name": "Create_tree_page",
    "id": 2577,
    "returnType": "Tree_Page",
    "parameters": [
      {
        "name": "parent_page",
        "type": "Tree_Page"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "show_border",
        "type": "Integer"
      },
      {
        "name": "use_name_for_border",
        "type": "Integer"
      }
    ],
    "description": "This call creates a new Tree_Page with the name name, as a child of the Tree_Page parent_page. Note: a lot of tree pages created in one instance of 12D will crash 12D because of the limited GDI count Windows allow for each running application. When the right hand side of the created page exists and there is none or more than one Group (either Horizontal_Group\u2019s and/or Vertical_Group\u2019s), then the right hand side can have an optional border and be given the name of the Tree_Page as a title for the border. If show_border = 1, a border is drawn around the right had side of the created Tree_Page. If show_border = 0, no border is drawn around the right had side of the created Tree_Page. If use_name_for_border = 1, name is used as the title when the border is drawn around the right Page 1180 Panels and Widgets Chapter had side of the created Tree_Page. If use_name_for_border = 0, there is no title when the border is drawn around the right had side of the created Tree_Page. Title for border Border around right hand side of \"Page1\" Right hand side of Tree_Page \"Page 1\" The right hand side comes up when you click on \"Page 1\" in the Tree on the left A parent page must exist before a child page can be created. The parent page may be the root page that is automatically created for a Tree_Box and the Get_root_page call is used to get the root page of a Tree_Box. See Get_root_page(Tree_Box tree_box) A Tree_Page can contain any number of children pages. An example of a section of the code required to create a Tree_Box with its root page, and then one child page of the root page is: Tree_Box tree_box = Create_tree_box(\"Tree\", \"Tree Root\", 200, 200); // get the root page to add a child page called \"Page 1\" to Tree_Page root_page = Get_root_page(tree_box); Tree_Page page_1 = Create_tree_page(root_page, \"Page 1\", 1, 1); Panels and Widgets Page 1181 12d Model Macro Manual The created Tree_Box is returned as the function return value."
  },
  {
    "name": "Append",
    "id": 2583,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "widget",
        "type": "Widget"
      },
      {
        "name": "page",
        "type": "Tree_Page"
      }
    ],
    "description": "Append the Widget widget to the Tree_Page page. All Widgets appended to a Tree_Page page are displayed on the right hand side of the Tree_Box when the user clicks on page on the left hand side of the Tree_Box. A function return value of zero indicates the Widget was successfully appended. An example of a section of the code required to create a Tree_Box with its root page, one child page of the root page, and some boxes to show on the right had side of the child page is: Panel panel = Create_panel(\"Tree Box test\"); Tree_Box tree_box = Create_tree_box(\"Tree\", \"Tree Root\", 200, 200); // get the root page to add a child page to Tree_Page root_page = Get_root_page(tree_box); Tree_Page page_1 = Create_tree_page(root_page, \"Page 1\", 1, 1); Message_Box message_box = Create_message_box(\"\"); Input_Box ib_1 = Create_input_box(\"Input box\", message_box); Real_Box db_1 = Create_real_box(\"Double box\", message_box); Append(ib_1,page_1); Append(db_1,page_1); Append(message_box,page_1); Append(tree_box, panel); Show_widget(panel);"
  },
  {
    "name": "Get_number_of_pages",
    "id": 2578,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "page",
        "type": "Tree_Page"
      }
    ],
    "description": "For the Tree_Page page, return the number of child pages belonging to page as the function return value."
  },
  {
    "name": "Get_page",
    "id": 2579,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "parent",
        "type": "Tree_Page"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&child_page",
        "type": "Tree_Page"
      }
    ],
    "description": "For the Tree_Page parent, find the n\u2019th child page of parent and return the page as child_page. A function return value of zero indicates a child page was successfully returned."
  },
  {
    "name": "Has_widget",
    "id": 2581,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "page",
        "type": "Tree_Page"
      },
      {
        "name": "w",
        "type": "Widget"
      }
    ],
    "description": "This call checks if the Tree_Page page contains the Widget w. A non-zero function return value indicates that w is in page. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_page_name",
    "id": 2582,
    "returnType": "Text",
    "parameters": [
      {
        "name": "page",
        "type": "Tree_Page"
      }
    ],
    "description": "For the Tree_Page page, return the Text name of page as the function return value."
  },
  {
    "name": "Set_page",
    "id": 2573,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tree_box",
        "type": "Tree_Box"
      },
      {
        "name": "w",
        "type": "Widget"
      }
    ],
    "description": "Set the current displayed page of the Tree_Box tree to the Tree_Page that contains the Widget w. This is particularly useful for validation, when validation fails. A function return value of zero indicates the page was successfully displayed."
  },
  {
    "name": "Set_page",
    "id": 2574,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tree_box",
        "type": "Tree_Box"
      },
      {
        "name": "page",
        "type": "Tree_Page"
      }
    ],
    "description": "Set the current displayed page of the Tree_Box tree to the Tree_Page page. A function return value of zero indicates the page was successfully displayed."
  },
  {
    "name": "Set_page",
    "id": 2575,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tree_box",
        "type": "Tree_Box"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Set the current displayed page of the Tree_Box tree to the Tree_Page with name name. A function return value of zero indicates the page was successfully displayed."
  },
  {
    "name": "Get_current_page",
    "id": 2576,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tree_box",
        "type": "Tree_Box"
      },
      {
        "name": "&current_page",
        "type": "Tree_Page"
      }
    ],
    "description": "Get the Tree_Page that is currently selected and return it in current_page. A function return value of zero indicates the page was successfully returned."
  },
  {
    "name": "Quick_sort",
    "id": 2745,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "count",
        "type": "Integer"
      },
      {
        "name": "index[]",
        "type": "Integer"
      },
      {
        "name": "val_array[]",
        "type": "Integer"
      }
    ],
    "description": "Sort the Integer array val_array[count] of size count, and return the sort order for val_array[] in the Index array index[]. For more information see 5.62.1 Quick Sort. The array index[] must be of at least size count. A function return value of zero indicates that the sort was successful."
  },
  {
    "name": "Quick_sort",
    "id": 2746,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "count",
        "type": "Integer"
      },
      {
        "name": "index[]",
        "type": "Integer"
      },
      {
        "name": "val_array[]",
        "type": "Real"
      }
    ],
    "description": "Sort the Real array val_array[count] of size count, and return the sort order for val_array[] in the Index array index[]. For more information see 5.62.1 Quick Sort. The array index[] must be of at least size count. A function return value of zero indicates that the sort was successful."
  },
  {
    "name": "Quick_sort",
    "id": 2747,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "count",
        "type": "Integer"
      },
      {
        "name": "index[]",
        "type": "Integer"
      },
      {
        "name": "val_array[]",
        "type": "Text"
      }
    ],
    "description": "Sort the Text array val_array[count] of size count, and return the sort order for val_array[] in the Index array index[]. For more information see 5.62.1 Quick Sort. The array index[] must be of at least size count. A function return value of zero indicates that the sort was successful."
  },
  {
    "name": "Match_name",
    "id": 188,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "reg_exp",
        "type": "Text"
      }
    ],
    "description": "Checks to see if the Text name matches a regular expression given by Text reg_exp. The regular expression uses * for a wild cards ? for a wild character A function return value of non-zero indicates that there was a match. A zero function return value indicates that there is no match or there was an error."
  },
  {
    "name": "Match_name",
    "id": 189,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "de",
        "type": "Dynamic_Element"
      },
      {
        "name": "reg_exp",
        "type": "Text"
      },
      {
        "name": "&matched",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Returns all the Elements from the Dynamic_Element de whose names match the regular expression Text reg_exp. The matching elements are returned by appended them to the Dynamic_Element matched. A function return value of zero indicates there were no errors in the matching calculations."
  },
  {
    "name": "Is_null",
    "id": 469,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Checks to see if the Real value is null or not. A non-zero function return value indicates the value is null. A zero function return value indicates the value is not null. Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Is_null2",
    "id": 7838,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "Checks to see if the Real value is either null or negative of null. A non-zero function return value indicates the value is null or negative of null. A zero function return value indicates the value is not null or negative of null. Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Null",
    "id": 470,
    "returnType": "void",
    "parameters": [
      {
        "name": "&value",
        "type": "Real"
      }
    ],
    "description": "This function sets the Real value to the 12d Model null-value. There is no function return value."
  },
  {
    "name": "Null_ht",
    "id": 407,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "This function examines the z-values of each point for all non-Alignment strings in the Dynamic_Element elements, and if the z-value of the point equals height, the z-value is reset to the null value. Page 1188 General Chapter A returned value of zero indicates there were no errors in the null operation."
  },
  {
    "name": "Null_ht_range",
    "id": 408,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "ht_min",
        "type": "Real"
      },
      {
        "name": "ht_max",
        "type": "Real"
      }
    ],
    "description": "This function examines the z-values of each point for all non-Alignment strings in the Dynamic_Element elements, and if the z-value of the point is between ht_min and ht_max, the z- value is reset to the null value. A returned value of zero indicates there were no errors in the null operation."
  },
  {
    "name": "Reset_null_ht",
    "id": 409,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "height",
        "type": "Real"
      }
    ],
    "description": "This function resets all the null z-values of all points of non-Alignment strings in the Dynamic_Element elements, to the value height. A returned value of zero indicates there were no errors in the reset operation."
  },
  {
    "name": "Contour",
    "id": 143,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "cmin",
        "type": "Real"
      },
      {
        "name": "cmax",
        "type": "Real"
      },
      {
        "name": "cinc",
        "type": "Real"
      },
      {
        "name": "cont_ref",
        "type": "Real"
      },
      {
        "name": "cont_col",
        "type": "Integer"
      },
      {
        "name": "&cont_de",
        "type": "Dynamic_Element"
      },
      {
        "name": "bold_inc",
        "type": "Real"
      },
      {
        "name": "bold_col",
        "type": "Integer"
      },
      {
        "name": "&bold_de",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Contour the triangulation tin between the minimum and maximum z values cmin and cmax. The contour increment is cinc, and cref is a z value that the contours will pass through. ccol is the colour of the normal contours and they are added to the Dynamic_Element cont_de. bold_inc and bold_col are the increment and colour of the bold contours respectively. If bold_inc is zero then no bold contour are produced. Any bold contours are added to the Dynamic_Element bold_de. A function return value of zero indicates the contouring was successful."
  },
  {
    "name": "Tin_tin_depth_contours",
    "id": 394,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "original",
        "type": "Tin"
      },
      {
        "name": "new",
        "type": "Tin"
      },
      {
        "name": "cut_colour",
        "type": "Integer"
      },
      {
        "name": "zero_colour",
        "type": "Integer"
      },
      {
        "name": "fill_colour",
        "type": "Integer"
      },
      {
        "name": "interval",
        "type": "Real"
      },
      {
        "name": "start_level",
        "type": "Real"
      },
      {
        "name": "end_level",
        "type": "Real"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&de",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Calculate depth contours (isopachs) between the triangulations original and new. The contour increment is interval, and the range is from start_level to end_level. cut_colour, zero_colour and fill_colour are the colours of the cut, zero and fill contours respectively. If the value of mode is 0 2d strings are produced with depth as the z-value 1 3d strings are produced with the depth contours projected onto the Tin original. 2 3d strings are produced with the depth contours projected onto the Tin new. The new strings are added to the Dynamic_Element de. A function return value of zero indicates the contouring was successful."
  },
  {
    "name": "Tin_tin_intersect",
    "id": 479,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "original",
        "type": "Tin"
      },
      {
        "name": "new",
        "type": "Tin"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "&de",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Calculate the intersection (daylight lines) between the triangulations original and new. The intersection lines have colour colour and are added to the Dynamic_Element de. Note This is the same as the zero depth contours projected onto either Tin original or new (mode 1 or 2) that are produced by the function Tin_tin_depth_contours. A function return value of zero indicates the intersection was successful."
  },
  {
    "name": "Tin_tin_intersect",
    "id": 393,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "original",
        "type": "Tin"
      },
      {
        "name": "new",
        "type": "Tin"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "&de",
        "type": "Dynamic_Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      }
    ],
    "description": "Calculate the intersection (daylight lines) between the triangulations original and new. The intersection lines have colour colour and are added to the Dynamic_Element de. If mode is 0 the intersection line with z = 0 (2d string) is produced 1 the full 3d intersection is created. A function return value of zero indicates the intersection was successful."
  },
  {
    "name": "Drape",
    "id": 3790,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&draped_elts",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Drape all the Elements in the Model model onto the Tin tin. The draped Elements are returned in the Dynamic_Element draped_elts. A function return value of zero indicates the drape was successful. Drape(Tin tin,Dynamic_Element de, Dynamic_Element &draped_elts) Name Integer Drape(Tin tin,Dynamic_Element de, Dynamic_Element &draped_elts) Description Drape all the Elements in the Dynamic_Element de onto the Tin tin. The draped Elements are returned in the Dynamic_Element draped_elts. A function return value of zero indicates the drape was successful. Drape(Tin tin,Dynamic_Element de, Dynamic_Element &draped_elts, Integer create_supers) Name Integer Drape(Tin tin,Dynamic_Element de, Dynamic_Element &draped_elts, Integer create_supers) Description Drape all the Elements in the Dynamic_Element de onto the Tin tin. The draped Elements are returned in the Dynamic_Element draped_elts. The resulting elements in draped_elts will be super string only if create_supers is non zero. A function return value of zero indicates the drape was successful."
  },
  {
    "name": "Face_drape",
    "id": 145,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&face_draped_elts",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Face drape all the Elements in the Model model onto the Tin tin. The draped Elements are returned in the Dynamic_Element face_draped_elts. A function return value of zero indicates the face drape was successful. General Page 1193 12d Model Macro Manual Face_drape(Tin tin,Dynamic_Element de,Dynamic_Element &face_draped_strings) Name Integer Face_drape(Tin tin,Dynamic_Element de,Dynamic_Element &face_draped_strings) Description Face drape all the Elements in the Dynamic_Element de onto the Tin tin. The face draped Elements are returned in the Dynamic_Element face_draped_elts. A function return value of zero indicates the face drape was successful."
  },
  {
    "name": "Get_drainage_intensity",
    "id": 2209,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "rainfall_filename",
        "type": "Text"
      },
      {
        "name": "rainfall_method",
        "type": "Integer"
      },
      {
        "name": "frequency",
        "type": "Real"
      },
      {
        "name": "duration",
        "type": "Real"
      },
      {
        "name": "&intensity",
        "type": "Real"
      }
    ],
    "description": "The Rainfall Intensity information is part of a 12d Model Rainfall File (that ends in \".12dhdyro\"). The Rainfall Files can be created and/or edited by the 12d Model Rainfall File Editor: Water->Stormwater tools->Rainfall editor. 12d Model comes with some Rainfall Files and others can be created by users. The Get_drainage_intensity call returns the intensity for a given rainfall method, frequency storm duration. The image below are the rainfall Intensity Methods from the \"AUS ACT Canberra.12dhydro\" file loaded into the Rainfall File Editor. 12d hydro file name durations intensities IFD Table Intensity Method in the Rainfall File General Page 1195 12d Model Macro Manual 12d hydro file name ARR 1987 Intensity Method in the Rainfall File 12d hydro file name ARR 1977 Intensity Method in the Rainfall File The function arguments are: rainfall_filename is the local name of the \".12dhydro\" file to get the Intensity from. rainfall_method is one of: \"IFD Table\" \"ARR 1987\" \"ARR 1977\" frequency is the frequency (ARI) in years duration is the duration in minutes Page 1196 General Chapter intensity is returned and is the intensity calculated from the table given by the rainfall_method, frequency and the duration. A function return value of zero indicates that the intensity was successfully returned. A non zero function return indicates that there was an error getting the intensity. The value of the non-zero function value indicates the type of error: Error Codes -999 = no Drainage Analysis license -99 = error reading file -9 = no valid data found for specified method -8 = frequency outside valid range -4 = unsupported rainfall method -3 = error building ARR1977 storm data -2 = error building ARR1987 storm data -1 = error building IFD storm data"
  },
  {
    "name": "Get_rainfall_temporal_patterns_enabled",
    "id": 3187,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Text"
      },
      {
        "name": "min_freq",
        "type": "Real"
      },
      {
        "name": "max_freq",
        "type": "Real"
      },
      {
        "name": "&storms",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&ret_num",
        "type": "Integer"
      }
    ],
    "description": "The Rainfall Temporal Pattern information is part of a 12d Model Rainfall File (that ends in \".12dhdyro\"). The Rainfall Files can be created and/or edited by the 12d Model Rainfall File Editor: Water->Stormwater tools->Rainfall editor. 12d Model comes with some Rainfall Files and others can be created by users. The rainfall Temporal Patterns transform the constant average rainfall to a time varied rainfall. The Get_rainfall_temporal_patterns_enabled call returns a Dynamic_Integer list of storm numbers for all the enabled storm patterns in a Rainfall File. These storm numbers are used to retrieve the full storm data via the call\uf020 \uf020 Get_rainfall_temporal_pattern(Text rainfall_filename,Integer storm_num,Integer &run,Text &zone_filter,Real &duration,Real &from_ari,Real &to_ari,Real &interval,Real pattern[],Integer max_num,Integer &ret_num) The image below table is the is of the rainfall Temporal Patterns from the \"AUS ACT Canberra.12dhydro\" file loaded into the Rainfall File Editor. 12d hydro flag to say Zone total length Average Recurrence file name run storm filter of storm Interval (ARI) from to Storm number Storm name or Storm ID Temporal Patterns in the Rainfall File The function arguments are: rainfall_filename is the local name of the \".12dhydro\" file to get the temporal pattern values from. Page 1198 General Chapter min_freq the From ARI value must match this argument. max_freq the To ARI value must match this argument. storms is a Dynamic_Integer list of storm numbers where the Run storm is selected. These numbers are used in the following call to retrieve the full storm data.\uf020 \uf020 Get_rainfall_temporal_pattern(Text rainfall_filename,Integer storm_num,Integer &run,Text &zone_filter,Real &duration,Real &from_ari,Real &to_ari,Real &interval,Real pattern[],Integer max_num,Integer &ret_num) ret_num returns the actual number of storms returned A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_rainfall_temporal_pattern",
    "id": 2405,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "rainfall_filename",
        "type": "Text"
      },
      {
        "name": "storm_num",
        "type": "Integer"
      },
      {
        "name": "&run",
        "type": "Integer"
      },
      {
        "name": "&zone_filter",
        "type": "Text"
      },
      {
        "name": "&duration",
        "type": "Real"
      },
      {
        "name": "&from_ari",
        "type": "Real"
      },
      {
        "name": "&to_ari",
        "type": "Real"
      },
      {
        "name": "&interval",
        "type": "Real"
      },
      {
        "name": "pattern[]",
        "type": "Real"
      },
      {
        "name": "max_num",
        "type": "Integer"
      },
      {
        "name": "&ret_num",
        "type": "Integer"
      }
    ],
    "description": "The Rainfall Temporal Pattern information is part of a 12d Model Rainfall File (that ends in \".12dhdyro\"). The Rainfall Files can be created and/or edited by the 12d Model Rainfall File Editor: Water->Stormwater tools->Rainfall editor. 12d Model comes with some Rainfall Files and others can be created by users. The rainfall Temporal Patterns transform the constant average rainfall to a time varied rainfall. The Get_rainfall_temporal_pattern call returns the information for one storm from the rainfall Temporal Patterns in a Rainfall File. The image below table is the is of the rainfall Temporal Patterns from the \"AUS ACT Canberra.12dhydro\" file loaded into the Rainfall File Editor. 12d hydro flag to say Zone total length Average Recurrence file name run storm filter of storm Interval (ARI) from to Storm number Storm name or Storm ID Temporal Patterns in the Rainfall File Page 1200 General Chapter interval temporal pattern values file name Temporal Pattern Table from the Rainfall File The function arguments are: rainfall_filename is the local name of the \".12dhydro\" file to get the temporal pattern values from. storm_num is the number of the storm in the file. With the addition of the frequent, intermediate and rare temporal patterns all the storms are combined into one list in the order they appear in the editor. The storm number in the index on this list. The rest of the arguments of the call return values from the storm_num\u2019th line of the Temporal Pattern table. run returns 1 if \"Run Storm\" is ticked 0 if \"Run Storm\" is not ticked zone_filter returns the value from \"Zone Filter\" duration returns the total length of the storm from_ari returns the \"from ARI\" (Average Recurrence Interval, also known as the Frequency or Return Period) to_ari returns the \"to ARI\" (Average Recurrence Interval, also known as the Frequency or Return Period) interval returns the time interval for each of the values in the temporal patterns table (which give the percentage of the total storm that occurs in that period) pattern[ ] is an array to return the values of the temporal pattern max_num is the maximum size of the array pattern[] ret_num returns the actual number of values returned in pattern A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Get_rainfall_temporal_pattern",
    "id": 2406,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "rainfall_filename",
        "type": "Text"
      },
      {
        "name": "storm_name",
        "type": "Text"
      },
      {
        "name": "&run",
        "type": "Integer"
      },
      {
        "name": "&zone_filter",
        "type": "Text"
      },
      {
        "name": "&duration",
        "type": "Real"
      },
      {
        "name": "&from_ari",
        "type": "Real"
      },
      {
        "name": "&to_ari",
        "type": "Real"
      },
      {
        "name": "&interval",
        "type": "Real"
      },
      {
        "name": "pattern[]",
        "type": "Real"
      },
      {
        "name": "max_num",
        "type": "Integer"
      },
      {
        "name": "&ret_num",
        "type": "Integer"
      }
    ],
    "description": "The Rainfall Temporal Pattern information is part of a 12d Model Rainfall File (that ends in \".12dhdyro\"). The Rainfall Files can be created and/or edited by the 12d Model Rainfall File Editor: Water->Stormwater tools->Rainfall editor. 12d Model comes with some Rainfall Files others can be created by users. The rainfall Temporal Patterns give the mathematical description of one or more storms. The Get_rainfall_temporal_pattern call returns the information for one storm from the rainfall Temporal Patterns in a Rainfall File. The image of the rainfall Temporal Patterns from the \"AUS ACT Canberra.12dhydro\" file loaded into the Rainfall File Editor is given in Get_rainfall_temporal_pattern(Text rainfall_filename,Integer storm_num,Integer &run,Text &zone_filter,Real &duration,Real &from_ari,Real &to_ari,Real &interval,Real pattern[],Integer max_num,Integer &ret_num). The difference between the two calls is that in the other call, the required storm in the Temporal Patterns is given by a line number whereas in this function the storm is found by giving a storm ID (storm name). storm_name is the name (Storm ID) of the required storm in the file. The Storm ID is will give the line in the Temporal Patterns to return the data from. All the return values are the same as for the documentation in Get_rainfall_temporal_pattern(Text rainfall_filename,Integer storm_num,Integer &run,Text &zone_filter,Real &duration,Real &from_ari,Real &to_ari,Real &interval,Real pattern[],Integer max_num,Integer &ret_num). A function return value of zero indicates the data was successfully returned."
  },
  {
    "name": "Drainage_join_strings",
    "id": 5424,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string_us",
        "type": "Element"
      },
      {
        "name": "string_ds",
        "type": "Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&joined_string",
        "type": "Element"
      }
    ],
    "description": "Join a upstream drainage string string_us with a downstream drainage string string_ds and set the result in a new drainage string joined_string. If mode is 0, then the joint starts with the downstream; if mode is 1, then the joint starts with the upstream. Return code -1 = ERROR: invalid drainage string -2 = ERROR: cannot join string to itself -3 = ERROR: string has no MHs Page 1202 General Chapter -4 = ERROR: no sewer license -5 = ERROR: opposing flow directions -6 = ERROR: try reversing pick order -7 = ERROR: cannot reset nodes (drop point failed) -11 = ERROR: string 1 not a drainage string -12 = ERROR: string 2 not a drainage string -13 = ERROR: mode is not 0 or 1 A function return value of zero indicates the call was successfully returned."
  },
  {
    "name": "Drainage_split_string",
    "id": 7762,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input",
        "type": "Element"
      },
      {
        "name": "at_node",
        "type": "Integer"
      },
      {
        "name": "&output1",
        "type": "Element"
      },
      {
        "name": "&output2",
        "type": "Element"
      }
    ],
    "description": "Split a drainage string input at a given node at_node and set the result in two new drainage strings output1 output2. A function return value of zero indicates the call was successfully returned."
  },
  {
    "name": "Volume",
    "id": 147,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_1",
        "type": "Tin"
      },
      {
        "name": "ht",
        "type": "Real"
      },
      {
        "name": "poly",
        "type": "Element"
      },
      {
        "name": "ang",
        "type": "Real"
      },
      {
        "name": "sep",
        "type": "Real"
      },
      {
        "name": "report_name",
        "type": "Text"
      },
      {
        "name": "report_mode",
        "type": "Integer"
      },
      {
        "name": "&cut",
        "type": "Real"
      },
      {
        "name": "&fill",
        "type": "Real"
      },
      {
        "name": "&balance",
        "type": "Real"
      }
    ],
    "description": "Calculate the volume from a tin tin_1 to a height ht inside the polygon poly using the end area method. The sections used for the end area calculations are taken at the angle ang with a separation of sep. A report file is created called report_name which contains cut, fill and balance information. If report_mode is equal to 0 only the total cut, fill and balance is given 1 the cut and fill value for every section is given. If the file report_name is blank (\"\"), no report is created. The variables cut, fill and balance return the total cut, fill and balance. A function return value of zero indicates the volume calculation was successful."
  },
  {
    "name": "Volume",
    "id": 148,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_1",
        "type": "Tin"
      },
      {
        "name": "tin_2",
        "type": "Tin"
      },
      {
        "name": "poly",
        "type": "Element"
      },
      {
        "name": "ang",
        "type": "Real"
      },
      {
        "name": "sep",
        "type": "Real"
      },
      {
        "name": "report_name",
        "type": "Text"
      },
      {
        "name": "report_mode",
        "type": "Integer"
      },
      {
        "name": "&cut",
        "type": "Real"
      },
      {
        "name": "&fill",
        "type": "Real"
      },
      {
        "name": "&balance",
        "type": "Real"
      }
    ],
    "description": "Calculate the volume from tin tin_1 to tin tin_2 inside the polygon poly using the end area method. The sections used for the end area calculations are taken at the angle ang with a separation of sep. A report file is created called report_name which contains cut, fill and balance information. If report_mode is equal to 0 only the total cut, fill and balance is given 1 the cut and fill value for every section is given. If the file report_name is blank (\"\"), no report is created. The variables cut, fill and balance return the total cut, fill and balance. A function return value of zero indicates the volume calculation was successful."
  },
  {
    "name": "Volume_exact",
    "id": 149,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_1",
        "type": "Tin"
      },
      {
        "name": "ht",
        "type": "Real"
      },
      {
        "name": "poly",
        "type": "Element"
      },
      {
        "name": "&cut",
        "type": "Real"
      },
      {
        "name": "&fill",
        "type": "Real"
      },
      {
        "name": "&balance",
        "type": "Real"
      }
    ],
    "description": "Calculate the volume from a tin tin_1 to a height ht inside the polygon poly using the exact method. The variables cut, fill and balance return the total cut, fill and balance. A function return value of zero indicates the volume calculation was successful."
  },
  {
    "name": "Volume_exact",
    "id": 150,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_1",
        "type": "Tin"
      },
      {
        "name": "tin_2",
        "type": "Tin"
      },
      {
        "name": "poly",
        "type": "Element"
      },
      {
        "name": "&cut",
        "type": "Real"
      },
      {
        "name": "&fill",
        "type": "Real"
      },
      {
        "name": "&balance",
        "type": "Real"
      }
    ],
    "description": "Calculate the volume between tin tin_1 and tin tin_2 inside the polygon poly using the exact method. The variables cut, fill and balance return the total cut, fill and balance. A function return value of zero indicates the volume calculation was successful."
  },
  {
    "name": "Interface",
    "id": 151,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "cut_slope",
        "type": "Real"
      },
      {
        "name": "fill_slope",
        "type": "Real"
      },
      {
        "name": "sep",
        "type": "Real"
      },
      {
        "name": "search_dist",
        "type": "Real"
      },
      {
        "name": "side",
        "type": "Integer"
      },
      {
        "name": "&interface_string",
        "type": "Element"
      }
    ],
    "description": "Perform an interface to the tin tin along the Element string. Use cut and fill slopes of value cut_slope and fill_slope and a distance between sections of sep. The units for slopes is 1:x. Search to a maximum distance search_dist to find an intersection with the tin. If side is negative, the interface is made to the left hand side of the string. If side is positive, the interface is made to the right hand side of the string. The resulting string is returned as the Element interface_string. A function return value of zero indicates the interface was successful."
  },
  {
    "name": "Interface",
    "id": 152,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "cut_slope",
        "type": "Real"
      },
      {
        "name": "fill_slope",
        "type": "Real"
      },
      {
        "name": "sep",
        "type": "Real"
      },
      {
        "name": "search_dist",
        "type": "Real"
      },
      {
        "name": "side",
        "type": "Integer"
      },
      {
        "name": "&interface_string",
        "type": "Element"
      },
      {
        "name": "&tadpoles",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Perform the interface as given in the previous function with the addition that slope lines are created and returned in the Dynamic_Element tadpoles. A function return value of zero indicates the interface was successful."
  },
  {
    "name": "Template_exists",
    "id": 201,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "template_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a template with the name template_name exists in the project. A non-zero function return value indicates the template does exist. A zero function return value indicates that no template of that name exists. Warning - this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_project_templates",
    "id": 233,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&template_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get the names of all the templates in the project. The dynamic array of template names is returned in the Dynamic_Text template_names. A function return value of zero indicates success."
  },
  {
    "name": "Template_rename",
    "id": 424,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "original_name",
        "type": "Text"
      },
      {
        "name": "new_name",
        "type": "Text"
      }
    ],
    "description": "Change the name of the Template original_name to the new name new_name. A function return value of zero indicates the rename was successful."
  },
  {
    "name": "Apply",
    "id": 399,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xpos",
        "type": "Real"
      },
      {
        "name": "ypos",
        "type": "Real"
      },
      {
        "name": "zpos",
        "type": "Real"
      },
      {
        "name": "ang",
        "type": "Real"
      },
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "template",
        "type": "Text"
      },
      {
        "name": "&xsect",
        "type": "Element"
      }
    ],
    "description": "Applies the templates template at the point (xpos,ypos,zpos) going out at the plan angle, ang. The Tin tin is used as the surface for any interface calculations and the calculated section is returned as the Element xsect. A function return value of zero indicates the apply was successful."
  },
  {
    "name": "Apply",
    "id": 195,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "start_ch",
        "type": "Real"
      },
      {
        "name": "end_ch",
        "type": "Real"
      },
      {
        "name": "sep",
        "type": "Real"
      },
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "left_template",
        "type": "Text"
      },
      {
        "name": "right_template",
        "type": "Text"
      },
      {
        "name": "&cut",
        "type": "Real"
      },
      {
        "name": "&fill",
        "type": "Real"
      },
      {
        "name": "&balance",
        "type": "Real"
      }
    ],
    "description": "Applies the templates left_template and right_template to the Element string going from start chainage start_ch to end chainage end_ch with distance sep between each section. The Tin tin is used as the surface for any interface calculations. The variables cut, fill and balance return the total cut, fill and balance for the apply. A function return value of zero indicates the apply was successful."
  },
  {
    "name": "Apply",
    "id": 196,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "start_ch",
        "type": "Real"
      },
      {
        "name": "end_ch",
        "type": "Real"
      },
      {
        "name": "sep",
        "type": "Real"
      },
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "left_template",
        "type": "Text"
      },
      {
        "name": "right_template",
        "type": "Text"
      },
      {
        "name": "&cut",
        "type": "Real"
      },
      {
        "name": "&fill",
        "type": "Real"
      },
      {
        "name": "&balance",
        "type": "Real"
      },
      {
        "name": "report",
        "type": "Text"
      }
    ],
    "description": "Applies templates as for the previous function with the addition of a report being created with the name report. A function return value of zero indicates the apply was successful."
  },
  {
    "name": "Apply_many",
    "id": 198,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "separation",
        "type": "Real"
      },
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "many_template_file",
        "type": "Text"
      },
      {
        "name": "&cut",
        "type": "Real"
      },
      {
        "name": "&fill",
        "type": "Real"
      },
      {
        "name": "&balance",
        "type": "Real"
      }
    ],
    "description": "Applies the templates as specified in the file many_template_file to the Element string with distance sep between each section. The Tin tin is used as the surface for any interface calculations. The variables cut, fill and balance return the total cut, fill and balance for the apply. A function return value of zero indicates success."
  },
  {
    "name": "Apply_many",
    "id": 199,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "separation",
        "type": "Real"
      },
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "many_template_file",
        "type": "Text"
      },
      {
        "name": "&cut_volume",
        "type": "Real"
      },
      {
        "name": "&fill_volume",
        "type": "Real"
      },
      {
        "name": "&balance_volume",
        "type": "Real"
      },
      {
        "name": "report",
        "type": "Text"
      }
    ],
    "description": "Applies templates as for the previous function with the addition of a report being created with the name report. A function return value of zero indicates success."
  },
  {
    "name": "String_reverse",
    "id": 1134,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "in",
        "type": "Element"
      },
      {
        "name": "&out",
        "type": "Element"
      }
    ],
    "description": "This functions creates a reversed copy of the string Element in and the reversed string is returned in out. That is, the chainage of string out starts at the end of the original string in and goes to the beginning of the original string in. If successful, the new reversed string is returned in Element out. A function return value of zero indicates the reverse was successful."
  },
  {
    "name": "Extend_string",
    "id": 664,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "before",
        "type": "Real"
      },
      {
        "name": "after",
        "type": "Real"
      },
      {
        "name": "&newelt",
        "type": "Element"
      }
    ],
    "description": "Extend the start and end of the string in Element elt. The start of the string is extended by Real before. The end of the string is extended by Real after. If successful, the new element is returned in Element newelt. Note that even when either before or after is zero, the two new points still being added to the new element newelt (as duplicated of the old start/end). A function return value of zero indicates the chainage was returned successfully."
  },
  {
    "name": "Clip_string",
    "id": 542,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "chainage1",
        "type": "Real"
      },
      {
        "name": "chainage2",
        "type": "Real"
      },
      {
        "name": "&left_string",
        "type": "Element"
      },
      {
        "name": "&mid_string",
        "type": "Element"
      },
      {
        "name": "&right_string",
        "type": "Element"
      }
    ],
    "description": "Clip a string about 2 chainages for the Element string. This will result in 3 new strings being created. The part that exists before Real chainage1 is returned in Element left_string. The part that exists after Real chainage2 is returned in Element right_string. The part that exists between Real chainage1 and Real chainage2 is returned in Element mid_string. A function return value of zero indicates the clip was successful. Note If the string is closed, right_string is not used. If chainage1 is on or before the start of the string, left_string is not used. Page 1212 General Chapter If chainage2 is on or after the end of the string, right_string is not used. If chainage1 is greater than chainage2, they are first swapped."
  },
  {
    "name": "Clip_string",
    "id": 549,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string",
        "type": "Element"
      },
      {
        "name": "direction",
        "type": "Integer"
      },
      {
        "name": "chainage1",
        "type": "Real"
      },
      {
        "name": "chainage2",
        "type": "Real"
      },
      {
        "name": "&left_string",
        "type": "Element"
      },
      {
        "name": "&mid_string",
        "type": "Element"
      },
      {
        "name": "&right_string",
        "type": "Element"
      }
    ],
    "description": "Clip a string about 2 chainages for the string Element string. This will result in 3 new strings being created. The clipped parts are returned relative to Integer direction. If direction is negative, string is first reversed before being clipped. The part that exists before Real chainage1 is returned in Element left_string. The part that exists after Real chainage2 is returned in Element right_string. The part that exists between Real chainage1 and Real chainage2 is returned in Element mid_string. A function return value of zero indicates the clip was successful. Note If the string is closed, right_string is not used. If chainage1 is on or before the start of the string, left_string is not used. If chainage2 is on or after the end of the string, right_string is not used. If chainage1 is greater than chainage2, they are first swapped."
  },
  {
    "name": "Polygons_clip",
    "id": 543,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "npts_clip",
        "type": "Integer"
      },
      {
        "name": "xclip[]",
        "type": "Real"
      },
      {
        "name": "yclip[]",
        "type": "Real"
      },
      {
        "name": "npts_in",
        "type": "Integer"
      },
      {
        "name": "xarray_in[]",
        "type": "Real"
      },
      {
        "name": "&npts_out",
        "type": "Integer"
      },
      {
        "name": "xarray_out[]",
        "type": "Real"
      },
      {
        "name": "yarray_out[]",
        "type": "Real"
      },
      {
        "name": "yarray_out[]",
        "type": "Real"
      }
    ],
    "description": "ID = 1440 Split_string(Element string,Real chainage,Element &string1,Element &string2) Name Integer Split_string(Element string,Real chainage,Element &string1,Element &string2) Description Split a string about a chainage for ELement string This will result in 2 new strings being created. The part that exists before Real chainage is returned in Element string1. The part that exists after Real chainage is returned in Element string2. General Page 1213 12d Model Macro Manual A function return value of zero indicates the split was successful."
  },
  {
    "name": "Join_strings",
    "id": 544,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "string1",
        "type": "Element"
      },
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "z1",
        "type": "Real"
      },
      {
        "name": "string2",
        "type": "Element"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "z2",
        "type": "Real"
      },
      {
        "name": "&joined_string",
        "type": "Element"
      }
    ],
    "description": "Join the 2 strings Element string1 and Element string2 together to form 1 new string. The end of string1 closest to x1,y1,z1 is joined to the end of string2 closest to x2,y2,z2. The joined string is returned in Element joined_string. A function return value of zero indicates the interface was successful. Note If the ends joined are no coincident, then a line between the ends is inserted. The joined string is always of a type that preserves as much as possible about the original strings. If you join 2 strings of the same type, the joined string is of the same type."
  },
  {
    "name": "Rectangle_clip",
    "id": 1438,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x1",
        "type": "Real"
      },
      {
        "name": "y1",
        "type": "Real"
      },
      {
        "name": "x2",
        "type": "Real"
      },
      {
        "name": "y2",
        "type": "Real"
      },
      {
        "name": "npts_in",
        "type": "Integer"
      },
      {
        "name": "&npts_out",
        "type": "Integer"
      },
      {
        "name": "xarray_out[]",
        "type": "Real"
      },
      {
        "name": "yarray_out[]",
        "type": "Real"
      }
    ],
    "description": "<no description>"
  },
  {
    "name": "Super_offset",
    "id": 2861,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super",
        "type": "Element"
      },
      {
        "name": "offset",
        "type": "Real"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "&super_offset",
        "type": "Element"
      }
    ],
    "description": "Offset the super Element super by Real offset; assign the result to super Element super_offset. A return value of zero indicates the function call was successful. The valid values for mode are: 0: joins ends of resulting segments by lines 1: intersects resulting segments 2: fillets any pair of resulting segments with change of direction 3: dual clipping 4: clips any crossing part"
  },
  {
    "name": "Place_mesh",
    "id": 2803,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "source_type",
        "type": "Integer"
      },
      {
        "name": "source_name",
        "type": "Text"
      },
      {
        "name": "offset",
        "type": "Vector3"
      },
      {
        "name": "rotate",
        "type": "Vector3"
      },
      {
        "name": "scale",
        "type": "Vector3"
      },
      {
        "name": "&mesh_string",
        "type": "Element"
      }
    ],
    "description": "This call places a mesh on the vertex of a new super string, at the co-ordinate specified by parameters x, y, z. The source_type determines where the mesh will be loaded from: \uf020 source_type = 0 for the Mesh Library\uf020 , 1 for from a file The source_name specifies the name of the mesh in the library or file, as defined by the source_type parameter. You can also set any additional offset, rotation or scale parameters in the offset, rotate or scale vectors. If you are not intending to set additional parameters, you must set them to at least default values: offset(0.0, 0.0, 0.0)\uf020 rotate(0.0, 0.0, 0.0)\uf020 scale(1.0, 1.0, 1.0); The created super string will be stored in the element mesh_string. This function returns 0 if it succeeds and non zero if it fails."
  },
  {
    "name": "Place_mesh",
    "id": 2804,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "z",
        "type": "Real"
      },
      {
        "name": "mesh_name",
        "type": "Text"
      },
      {
        "name": "offset",
        "type": "Vector3"
      },
      {
        "name": "rotate",
        "type": "Vector3"
      },
      {
        "name": "scale",
        "type": "Vector3"
      },
      {
        "name": "anchor_tin",
        "type": "Tin"
      },
      {
        "name": "&mesh_string",
        "type": "Element"
      }
    ],
    "description": "This call places a mesh from the mesh library on the vertex of a new super string, at the co-ordinate specified by parameters x, y, z and anchors it to the tin anchor_tin. The Text mesh_name specifies the name of the mesh in the library. You can also set any additional offset, rotation or scale parameters in the offset, rotate or scale vectors. If you are not intending to set additional parameters, you must set them to at least default values: offset(0.0, 0.0, 0.0)\uf020 rotate(0.0, 0.0, 0.0)\uf020 scale(1.0, 1.0, 1.0); The created super string will be stored in the Element mesh_string. This function returns 0 if it succeeds and non zero if it fails."
  },
  {
    "name": "Get_image_size",
    "id": 2634,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "&width",
        "type": "Integer"
      },
      {
        "name": "&height",
        "type": "Integer"
      }
    ],
    "description": "Read the image from the file named filename; return its size as number of pixels in width and height. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Boundary_polygon",
    "id": 1796,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Dynamic_Element"
      },
      {
        "name": "seed_x",
        "type": "Real"
      },
      {
        "name": "seed_y",
        "type": "Real"
      },
      {
        "name": "distance",
        "type": "Real"
      },
      {
        "name": "&result",
        "type": "Element"
      }
    ],
    "description": "Boundary_polygon works on the plan projection of all the strings in list withing the radius distance of the seed point (seed_x, seed_y), and if possible, creates a closed polygon from the parts of the strings surrounding the seed point. A straight line must be able to be drawn from the seed point to the lines/arcs that could be used in the surrounding strings. seed point is inside the polygon to be created Created polygon Creating a Polygon by Seed Point Inside the Polygon A return value of zero indicates the function call was successful."
  },
  {
    "name": "Print_stack_trace",
    "id": 2720,
    "returnType": "void",
    "parameters": [],
    "description": "Print the stack trace for the running macro to the output window. The stack trace is a list of the line number followed by the line contents of the macro code."
  },
  {
    "name": "Get_stack_trace",
    "id": 2721,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&stack",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "Assign the list of line numbers of the running macro stack trace to Dynamic_Integer stack. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Print_stack_trace",
    "id": 2744,
    "returnType": "void",
    "parameters": [
      {
        "name": "msg",
        "type": "Text"
      }
    ],
    "description": "Print the Text msg to the output window. Then print the stack trace for the running macro to the output window. The stack trace is a list of the line number followed by the line contents of the macro code."
  },
  {
    "name": "Enable_3d",
    "id": 3011,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      }
    ],
    "description": "Enable 3D chainage calculation for a valid super alignment super_alignment. A return value of 2 indicates the input element is not valid. A return value of 3 indicates the input element is not a super alignment. A return value of 5 indicates the vertical part of the input super alignment is not valid. A return value of 6 indicates the horizontal part of the input super alignment is not valid. A return value of 7 indicates the input super alignment has no vertical part. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_start_chainage_3d",
    "id": 3012,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "&ch_3d",
        "type": "Real"
      }
    ],
    "description": "Get start 3D chainage ch_3d of a super alignment super_alignment. Note: the Enable_3d needed to be call for the super alignment before making this call. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_end_chainage_3d",
    "id": 3013,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "&ch_3d",
        "type": "Real"
      }
    ],
    "description": "Get end 3D chainage ch_3d of a super alignment super_alignment. Note: the Enable_3d needed to be call for the super alignment before making this call. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_3d_length",
    "id": 3014,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "&length_3d",
        "type": "Real"
      }
    ],
    "description": "Get 3D length length_3d of a super alignment super_alignment. Page 1222 Utilities Chapter Note: the Enable_3d needed to be call for the super alignment before making this call. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Chainage_2d_to_3d",
    "id": 3015,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "ch_2d",
        "type": "Real"
      },
      {
        "name": "&length_3d",
        "type": "Real"
      }
    ],
    "description": "Calculate 3D length length_3d of a super alignment super_alignment from 2D chainage ch_2d. Note: the Enable_3d needed to be call for the super alignment before making this call. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Chainage_3d_to_2d",
    "id": 3016,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "length_3d",
        "type": "Real"
      },
      {
        "name": "&ch_2d",
        "type": "Real"
      }
    ],
    "description": "Calculate 2D chainage ch_2d of a super alignment super_alignment from 3D length length_3d. Note: the Enable_3d needed to be call for the super alignment before making this call. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_position_ex_3d",
    "id": 3017,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "length_3d",
        "type": "Real"
      },
      {
        "name": "offset",
        "type": "Real"
      },
      {
        "name": "dz",
        "type": "Real"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&dir",
        "type": "Real"
      },
      {
        "name": "&radius",
        "type": "Real"
      },
      {
        "name": "&grade",
        "type": "Real"
      }
    ],
    "description": "WARNING - this is NOT an ex version of get position call; and also the return value for &dir is the opposite (zero minus the correct number) of the normal direction. Get xyz-coordinate x y z, direction dir, radius radius, grade grade of a point based on a super alignment super_alignment, 3D length length_3d, offset offset, change in z dz. Note: the Enable_3d needed to be call for the super alignment before making this call. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Drop_point_3d",
    "id": 3018,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "super_alignment",
        "type": "Element"
      },
      {
        "name": "xd",
        "type": "Real"
      },
      {
        "name": "yd",
        "type": "Real"
      },
      {
        "name": "zd",
        "type": "Real"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      },
      {
        "name": "&l",
        "type": "Real"
      },
      {
        "name": "&o",
        "type": "Real"
      },
      {
        "name": "&dir",
        "type": "Real"
      },
      {
        "name": "&radius",
        "type": "Real"
      },
      {
        "name": "&grade",
        "type": "Real"
      }
    ],
    "description": "Get xyz-coordinate x y z, 3d length l, offset o, direction dir, radius radius, grade grade of the dropped point from xyz-coordinate xd yd zd to a super alignment super_alignment. Note: the Enable_3d needed to be call for the super alignment before making this call. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Tunnel_profile_3d",
    "id": 3531,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_str",
        "type": "Element"
      },
      {
        "name": "tunnel_def",
        "type": "Text"
      },
      {
        "name": "point_x",
        "type": "Dynamic_Real"
      },
      {
        "name": "point_y",
        "type": "Dynamic_Real"
      },
      {
        "name": "point_z",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "&e_tun_ele_idx",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&e_tun_ele_dist",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_per",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_dir",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_prev_dir",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_next_dir",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_radius",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_prf_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ex",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ey",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ez",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_status_3d",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pd_status_2d",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pd_dist_3d",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_dist_2d",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_vt_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_plm_vt_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_hz_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_plm_hz_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_ref_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_zd",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_di",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_plm_zd",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_ref_zd",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_plm_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_ref_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_cl_grd",
        "type": "Dynamic_Real"
      },
      {
        "name": "&message",
        "type": "Text"
      }
    ],
    "description": "Some warning and error message would be set to the Text message. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Tunnel_profile_3d",
    "id": 3532,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_str",
        "type": "Element"
      },
      {
        "name": "tunnel_def",
        "type": "Text"
      },
      {
        "name": "point_x",
        "type": "Dynamic_Real"
      },
      {
        "name": "point_y",
        "type": "Dynamic_Real"
      },
      {
        "name": "point_z",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_idx",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&e_tun_ele_dist",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_per",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_radius",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_prf_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ex",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ey",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ez",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_status_3d",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pd_status_2d",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pd_ref_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&message",
        "type": "Text"
      }
    ],
    "description": "Some warning and error message would be set to the Text message. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Tunnel_profile_3d",
    "id": 3533,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_str",
        "type": "Element"
      },
      {
        "name": "tunnel_def",
        "type": "Text"
      },
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "inner_extent",
        "type": "Real"
      },
      {
        "name": "outer_extent",
        "type": "Real"
      },
      {
        "name": "point_x",
        "type": "Dynamic_Real"
      },
      {
        "name": "point_y",
        "type": "Dynamic_Real"
      },
      {
        "name": "point_z",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "&e_tun_ele_idx",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&e_tun_ele_dist",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_per",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_dir",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_prev_dir",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_next_dir",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_radius",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_prf_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ex",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ey",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ez",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_status_3d",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pd_status_2d",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pd_dist_3d",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_dist_2d",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_vt_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_plm_vt_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_hz_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_plm_hz_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_ref_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_zd",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_di",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_plm_zd",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_ref_zd",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_plm_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_sqr_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_ref_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_cl_grd",
        "type": "Dynamic_Real"
      },
      {
        "name": "&trimesh_offset",
        "type": "Dynamic_Real"
      },
      {
        "name": "&message",
        "type": "Text"
      }
    ],
    "description": "Utilities Page 1231 12d Model Macro Manual Some warning and error message would be set to the Text message. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Tunnel_profile_3d",
    "id": 3534,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ref_str",
        "type": "Element"
      },
      {
        "name": "tunnel_def",
        "type": "Text"
      },
      {
        "name": "trimesh",
        "type": "Element"
      },
      {
        "name": "inner_extent",
        "type": "Real"
      },
      {
        "name": "outer_extent",
        "type": "Real"
      },
      {
        "name": "point_x",
        "type": "Dynamic_Real"
      },
      {
        "name": "point_y",
        "type": "Dynamic_Real"
      },
      {
        "name": "point_z",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "&e_tun_ele_idx",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&e_tun_ele_dist",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_per",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_radius",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_ele_os",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_tun_prf_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ex",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ey",
        "type": "Dynamic_Real"
      },
      {
        "name": "&e_ez",
        "type": "Dynamic_Real"
      },
      {
        "name": "&pd_status_3d",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pd_status_2d",
        "type": "Dynamic_Integer"
      },
      {
        "name": "&pd_ref_ch",
        "type": "Dynamic_Real"
      },
      {
        "name": "&trimesh_offset",
        "type": "Dynamic_Real"
      },
      {
        "name": "&message",
        "type": "Text"
      }
    ],
    "description": "Some warning and error message would be set to the Text message. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Cut_fill_trimeshes_between_tins",
    "id": 5447,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ground_tin",
        "type": "Tin"
      },
      {
        "name": "design_tin",
        "type": "Tin"
      },
      {
        "name": "cut_model",
        "type": "Model"
      },
      {
        "name": "cut_name",
        "type": "Text"
      },
      {
        "name": "cut_colour",
        "type": "Integer"
      },
      {
        "name": "fill_model",
        "type": "Model"
      },
      {
        "name": "fill_name",
        "type": "Text"
      },
      {
        "name": "fill_colour",
        "type": "Integer"
      },
      {
        "name": "fence",
        "type": "Element"
      },
      {
        "name": "fence_model",
        "type": "Model"
      },
      {
        "name": "&return_msg",
        "type": "Text"
      }
    ],
    "description": "Find the cut and fill trimesh between two given tin ground_tin and design_tin accroding to given arguments. Some warning and error message would be set to the Text return_msg. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Affine",
    "id": 414,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "rotate_x",
        "type": "Real"
      },
      {
        "name": "rotate_y",
        "type": "Real"
      },
      {
        "name": "scale_x",
        "type": "Real"
      },
      {
        "name": "scale_y",
        "type": "Real"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      }
    ],
    "description": "Apply to all the elements in the Dynamic_Element elements, the Affine transformation with parameters: X axis rotation rotate_x (in radians) Y axis rotation rotate_y (in radians) X scale factor scale_x Y scale factor scale_y Translation (dx,dy) Note that if the scales or the rotates are different between x and y, the true transformation of arcs (or cirles) would be no longer arcs. 12D would try to approximate the arcs result in some cases, otherwise the radius of segments would be lost. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Helmert_2d_Transform",
    "id": 7627,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "r",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "tx",
        "type": "Real"
      },
      {
        "name": "ty",
        "type": "Real"
      },
      {
        "name": "tz",
        "type": "Real"
      },
      {
        "name": "ox",
        "type": "Real"
      },
      {
        "name": "oy",
        "type": "Real"
      },
      {
        "name": "call_inverse",
        "type": "Integer"
      },
      {
        "name": "&ele",
        "type": "Element"
      }
    ],
    "description": "Apply to element ele the Helmert 2d transformation with parameters: rotation r (in radians) scale factor scale Translation (tx,ty,tz) Origin (ox,oy) If Integer call_inverse is not zero, then the reserve of the given transformation will be use instead. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Helmert_2d_Transform",
    "id": 7628,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "r",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "tx",
        "type": "Real"
      },
      {
        "name": "ty",
        "type": "Real"
      },
      {
        "name": "tz",
        "type": "Real"
      },
      {
        "name": "ox",
        "type": "Real"
      },
      {
        "name": "oy",
        "type": "Real"
      },
      {
        "name": "call_inverse",
        "type": "Integer"
      },
      {
        "name": "&ele",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Utilities Page 1233 12d Model Macro Manual Apply to all the elements in the Dynamic_Element ele the Helmert 2d transformation with parameters: rotation r (in radians) scale factor scale Translation (tx,ty,tz) Origin (ox,oy) If Integer call_inverse is not zero, then the reserve of the given transformation will be use instead. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Helmert_2d_Transform",
    "id": 7629,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "r",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "tx",
        "type": "Real"
      },
      {
        "name": "ty",
        "type": "Real"
      },
      {
        "name": "tz",
        "type": "Real"
      },
      {
        "name": "ox",
        "type": "Real"
      },
      {
        "name": "oy",
        "type": "Real"
      },
      {
        "name": "call_inverse",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Apply to the point with xyz-coordinate (x,y,z), the Helmert 2d transformation with parametersrotation r (in radians) scale factor scale Translation (tx,ty,tz) Origin (ox,oy) If Integer call_inverse is not zero, then the reserve of the given transformation will be use instead. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Helmert_2d_Transform",
    "id": 7630,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "r",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "tx",
        "type": "Real"
      },
      {
        "name": "ty",
        "type": "Real"
      },
      {
        "name": "tz",
        "type": "Real"
      },
      {
        "name": "ox",
        "type": "Real"
      },
      {
        "name": "oy",
        "type": "Real"
      },
      {
        "name": "call_inverse",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Dynamic_Real"
      },
      {
        "name": "&y",
        "type": "Dynamic_Real"
      },
      {
        "name": "&z",
        "type": "Dynamic_Real"
      }
    ],
    "description": "Apply to the list of points with xyz-coordinates in three lists x,y,z , the Helmert 2d transformation with parameters: rotation r (in radians) scale factor scale Translation (tx,ty,tz) Origin (ox,oy) If Integer call_inverse is not zero, then the reserve of the given transformation will be use instead. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Helmert_3d_Transform",
    "id": 3485,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "rx",
        "type": "Real"
      },
      {
        "name": "ry",
        "type": "Real"
      },
      {
        "name": "rz",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "tx",
        "type": "Real"
      },
      {
        "name": "ty",
        "type": "Real"
      },
      {
        "name": "tz",
        "type": "Real"
      },
      {
        "name": "oy",
        "type": "Real"
      },
      {
        "name": "oz",
        "type": "Real"
      },
      {
        "name": "call_inverse",
        "type": "Integer"
      },
      {
        "name": "&ele",
        "type": "Element"
      }
    ],
    "description": "Apply to element ele the Helmert 3d transformation with parameters: X axis rotation rx (in radians) Y axis rotation ry (in radians) Z axis rotation rz (in radians) scale factor scale Translation (tx,ty,tz) Origin (ox,oy,oz) If Integer call_inverse is not zero, then the reserve of the given transformation will be use instead. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Helmert_3d_Transform",
    "id": 3486,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "rx",
        "type": "Real"
      },
      {
        "name": "ry",
        "type": "Real"
      },
      {
        "name": "rz",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "tx",
        "type": "Real"
      },
      {
        "name": "ty",
        "type": "Real"
      },
      {
        "name": "tz",
        "type": "Real"
      },
      {
        "name": "ox",
        "type": "Real"
      },
      {
        "name": "oy",
        "type": "Real"
      },
      {
        "name": "oz",
        "type": "Real"
      },
      {
        "name": "call_inverse",
        "type": "Integer"
      },
      {
        "name": "&elements",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Apply to all the elements in the Dynamic_Element elements, the Helmert 3d transformation with parameters: X axis rotation rx (in radians) Y axis rotation ry (in radians) Z axis rotation rz (in radians) scale factor scale Translation (tx,ty,tz) Origin (ox,oy,oz) If Integer call_inverse is not zero, then the reserve of the given transformation will be use instead. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Helmert_3d_Transform",
    "id": 3487,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "rx",
        "type": "Real"
      },
      {
        "name": "ry",
        "type": "Real"
      },
      {
        "name": "rz",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "tx",
        "type": "Real"
      },
      {
        "name": "ty",
        "type": "Real"
      },
      {
        "name": "tz",
        "type": "Real"
      },
      {
        "name": "ox",
        "type": "Real"
      },
      {
        "name": "oy",
        "type": "Real"
      },
      {
        "name": "oz",
        "type": "Real"
      },
      {
        "name": "call_inverse",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      },
      {
        "name": "&z",
        "type": "Real"
      }
    ],
    "description": "Apply to the 3D point with xyz-coordinate (x,y,z), the Helmert 3d transformation with parameters: Utilities Page 1235 12d Model Macro Manual X axis rotation rx (in radians) Y axis rotation ry (in radians) Z axis rotation rz (in radians) scale factor scale Translation (tx,ty,tz) Origin (ox,oy,oz) If Integer call_inverse is not zero, then the reserve of the given transformation will be use instead. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Helmert_3d_Transform",
    "id": 3488,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "rx",
        "type": "Real"
      },
      {
        "name": "ry",
        "type": "Real"
      },
      {
        "name": "rz",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "tx",
        "type": "Real"
      },
      {
        "name": "ty",
        "type": "Real"
      },
      {
        "name": "tz",
        "type": "Real"
      },
      {
        "name": "ox",
        "type": "Real"
      },
      {
        "name": "oy",
        "type": "Real"
      },
      {
        "name": "oz",
        "type": "Real"
      },
      {
        "name": "call_inverse",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Dynamic_Real"
      },
      {
        "name": "&y",
        "type": "Dynamic_Real"
      },
      {
        "name": "&z",
        "type": "Dynamic_Real"
      }
    ],
    "description": "Apply to the list 3D points with xyz-coordinates in three lists x,y,z , the Helmert 3d transformation with parameters: X axis rotation rx (in radians) Y axis rotation ry (in radians) Z axis rotation rz (in radians) scale factor scale Translation (tx,ty,tz) Origin (ox,oy,oz) If Integer call_inverse is not zero, then the reserve of the given transformation will be use instead. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Get_carto_projection_datum_data",
    "id": 3724,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "datum_name",
        "type": "Text"
      },
      {
        "name": "carto_file_name",
        "type": "Text"
      },
      {
        "name": "&datum_data",
        "type": "Text"
      }
    ],
    "description": "Looking up the datum_data of a projection of given datum_name using a given carto file carto_file_name. The carto file must have the same format as the builtin carto.4d If carto_file_name is the string \"carto.4d\" or the empty string \"\", then it will be the same file using in all builtin 12D panels. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Get_geodetic_projection_datum_data",
    "id": 7661,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "datum_name",
        "type": "Text"
      },
      {
        "name": "carto_file_name",
        "type": "Text"
      }
    ],
    "description": "Looking up the datum_data of a projection of given datum_name using a given carto file carto_file_name. The carto file must have the same format as the builtin carto.12dcarto If carto_file_name is the string \"carto.12dcarto\" or the empty string \"\", then it will be the same file using in all builtin 12D panels. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Convert_long_lat",
    "id": 3725,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "datum_data",
        "type": "Text"
      },
      {
        "name": "longlat_angle_mode",
        "type": "Integer"
      },
      {
        "name": "from_long_lat",
        "type": "Integer"
      },
      {
        "name": "&ele",
        "type": "Element"
      }
    ],
    "description": "Convert the x and y values of an Element ele between Easting-Northing and Longtitude-Latitude using: The datum_data being used. Note: this is the actual data not the name. The direction of the conversion: from_long_lat from long-lat to Easting-Northing: zero being false; one being true. The angle mode of the longtitude, latitude longlat_angle_mode :zero being radians; one being decimal degrees; two being DMS degrees minutes seconds. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Convert_long_lat",
    "id": 3726,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "datum_data",
        "type": "Text"
      },
      {
        "name": "longlat_angle_mode",
        "type": "Integer"
      },
      {
        "name": "from_long_lat",
        "type": "Integer"
      },
      {
        "name": "&ele_list",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Convert the x and y values of all Element from a given list ele_list between Easting-Northing and Longtitude-Latitude using: The datum_data being used. Note: this is the actual data not the name. The direction of the conversion: from_long_lat from long-lat to Easting-Northing: zero being false; one being true. The angle mode of the longtitude, latitude longlat_angle_mode :zero being radians; one being decimal degrees; two being DMS degrees minutes seconds. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Convert_long_lat",
    "id": 3727,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "datum_data",
        "type": "Text"
      },
      {
        "name": "longlat_angle_mode",
        "type": "Integer"
      },
      {
        "name": "from_long_lat",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Real"
      },
      {
        "name": "&y",
        "type": "Real"
      }
    ],
    "description": "Convert the value of two Real x,y between Easting-Northing and Longtitude-Latitude using: The datum_data being used. Note: this is the actual data not the name. The direction of the conversion: from_long_lat from long-lat to Easting-Northing: zero being false; one being true. The angle mode of the longtitude, latitude longlat_angle_mode :zero being radians; one being decimal degrees; two being DMS degrees minutes seconds. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Convert_long_lat",
    "id": 3728,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "datum_data",
        "type": "Text"
      },
      {
        "name": "longlat_angle_mode",
        "type": "Integer"
      },
      {
        "name": "from_long_lat",
        "type": "Integer"
      },
      {
        "name": "&x",
        "type": "Dynamic_Real"
      },
      {
        "name": "&y",
        "type": "Dynamic_Real"
      }
    ],
    "description": "Convert the values of in the two lists (of the same sizes) Dynamic_Real x,y between Easting- Northing and Longtitude-Latitude using: The datum_data being used. Note: this is the actual data not the name. The direction of the conversion: from_long_lat from long-lat to Easting-Northing: zero being false; one being true. The angle mode of the longtitude, latitude longlat_angle_mode :zero being radians; one being decimal degrees; two being DMS degrees minutes seconds. A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Get_ellipsoid_distance",
    "id": 7801,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "datum_data",
        "type": "Text"
      },
      {
        "name": "easting1",
        "type": "Real"
      },
      {
        "name": "northing1",
        "type": "Real"
      },
      {
        "name": "easting2",
        "type": "Real"
      },
      {
        "name": "northing2",
        "type": "Real"
      },
      {
        "name": "&ellipsoid_distance",
        "type": "Real"
      }
    ],
    "description": "Calculate the ellipsoid_distance between two points (easting1,northing1) and (easting2,northing2). The datum_data being used. Note: this is the actual data not the name. A function return value of zero indicates the calculation was successful."
  },
  {
    "name": "Get_grid_azimuth",
    "id": 7802,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "datum_data",
        "type": "Text"
      },
      {
        "name": "easting1",
        "type": "Real"
      },
      {
        "name": "northing1",
        "type": "Real"
      },
      {
        "name": "easting2",
        "type": "Real"
      },
      {
        "name": "northing2",
        "type": "Real"
      },
      {
        "name": "&grid_azimuth",
        "type": "Real"
      }
    ],
    "description": "Calculate the grid_azimuth between two points (easting1,northing1) and (easting2,northing2). The datum_data being used. Note: this is the actual data not the name. A function return value of zero indicates the calculation was successful."
  },
  {
    "name": "Calculate_helmert_3d_transform_parameters",
    "id": 7617,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xc",
        "type": "Dynamic_Real"
      },
      {
        "name": "yc",
        "type": "Dynamic_Real"
      },
      {
        "name": "zc",
        "type": "Dynamic_Real"
      },
      {
        "name": "xo",
        "type": "Dynamic_Real"
      },
      {
        "name": "yo",
        "type": "Dynamic_Real"
      },
      {
        "name": "zo",
        "type": "Dynamic_Real"
      },
      {
        "name": "fixed_scale",
        "type": "Integer"
      },
      {
        "name": "origin_method",
        "type": "Integer"
      },
      {
        "name": "&rx",
        "type": "Real"
      },
      {
        "name": "&ry",
        "type": "Real"
      },
      {
        "name": "&rz",
        "type": "Real"
      },
      {
        "name": "&scale",
        "type": "Real"
      },
      {
        "name": "&tx",
        "type": "Real"
      },
      {
        "name": "&ty",
        "type": "Real"
      },
      {
        "name": "&tz",
        "type": "Real"
      },
      {
        "name": "&ox",
        "type": "Real"
      },
      {
        "name": "&oy",
        "type": "Real"
      },
      {
        "name": "&oz",
        "type": "Real"
      },
      {
        "name": "&error_msg",
        "type": "Text"
      }
    ],
    "description": "From the list of control points given by list of x,y,z coordinates xc yc zc and the list of observation points given by list of x,y,z coordinate xo yo zo calculate the parameters for the equivalent helmert 3d transform. If fixed_scale is none zero then the transformation is used fixed scale. The valid value for origin_method 0 - manual 1 - observed centroid 2 - control centroid Some warning and error message would be set to the Text error_msg. A function return value of zero indicates the call was successful."
  },
  {
    "name": "Calculate_helmert_2d_transform_parameters",
    "id": 7618,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xc",
        "type": "Dynamic_Real"
      },
      {
        "name": "yc",
        "type": "Dynamic_Real"
      },
      {
        "name": "xo",
        "type": "Dynamic_Real"
      },
      {
        "name": "yo",
        "type": "Dynamic_Real"
      },
      {
        "name": "fixed_scale",
        "type": "Integer"
      },
      {
        "name": "input_scale",
        "type": "Real"
      },
      {
        "name": "&r",
        "type": "Real"
      },
      {
        "name": "&scale",
        "type": "Real"
      },
      {
        "name": "&tx",
        "type": "Real"
      },
      {
        "name": "&ty",
        "type": "Real"
      },
      {
        "name": "&ox",
        "type": "Real"
      },
      {
        "name": "&oy",
        "type": "Real"
      },
      {
        "name": "&error_msg",
        "type": "Text"
      }
    ],
    "description": "From the list of control points given by list of x,y coordinates xc yc and the list of observation points given by list of x,y coordinate xo yo calculate the parameters for the equivalent helmert 2d transform. Utilities Page 1239 12d Model Macro Manual If fixed_scale is none zero then the transformation is used fixed scale. This call missing the input parameter for \"origin_method\", which will be assume to be 2. See the bellow call. Some warning and error message would be set to the Text error_msg. A function return value of zero indicates the call was successful."
  },
  {
    "name": "Calculate_helmert_2d_transform_parameters",
    "id": 7956,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "xc",
        "type": "Dynamic_Real"
      },
      {
        "name": "yc",
        "type": "Dynamic_Real"
      },
      {
        "name": "xo",
        "type": "Dynamic_Real"
      },
      {
        "name": "yo",
        "type": "Dynamic_Real"
      },
      {
        "name": "fixed_scale",
        "type": "Integer"
      },
      {
        "name": "input_scale",
        "type": "Real"
      },
      {
        "name": "origin_method",
        "type": "Integer"
      },
      {
        "name": "&r",
        "type": "Real"
      },
      {
        "name": "&scale",
        "type": "Real"
      },
      {
        "name": "&tx",
        "type": "Real"
      },
      {
        "name": "&ty",
        "type": "Real"
      },
      {
        "name": "&ox",
        "type": "Real"
      },
      {
        "name": "&oy",
        "type": "Real"
      },
      {
        "name": "&error_msg",
        "type": "Text"
      }
    ],
    "description": "From the list of control points given by list of x,y coordinates xc yc and the list of observation points given by list of x,y coordinate xo yo calculate the parameters for the equivalent helmert 2d transform. If fixed_scale is none zero then the transformation is used fixed scale. Some warning and error message would be set to the Text error_msg. A function return value of zero indicates the call was successful."
  },
  {
    "name": "Run_chain",
    "id": 2096,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "chain",
        "type": "Text"
      }
    ],
    "description": "Run the chain in the file named chain. A function return value of zero indicates the chain was successfully run."
  },
  {
    "name": "Convert",
    "id": 139,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "in_de",
        "type": "Dynamic_Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "pass_others",
        "type": "Integer"
      },
      {
        "name": "&out_de",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Convert the strings in Dynamic_Element in_de using Integer mode and when mode equals 1 convert 2d to 3d 2 convert 3d to 2d if the 3d string has constant z 3 convert 4d to 3d (the text is dropped at each point) The converted strings are returned by appending them to the Dynamic_Element out_de. If Integer pass_others is non zero, any strings in in_de that cannot be converted will be copied to out_de. A function return value of zero indicates the conversion was successful."
  },
  {
    "name": "Convert",
    "id": 655,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "type",
        "type": "Text"
      },
      {
        "name": "&newelt",
        "type": "Element"
      }
    ],
    "description": "Tries to convert the Element elt to the Element type given by Text type. If successful, the new element is returned in Element newelt. A function return value of zero indicates the conversion was successful."
  },
  {
    "name": "Cut_strings",
    "id": 541,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seed",
        "type": "Dynamic_Element"
      },
      {
        "name": "strings",
        "type": "Dynamic_Element"
      },
      {
        "name": "&result",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Cut all the strings from the list Dynamic_Element seed with the strings from the list Dynamic_Element strings and add to Dynamic_Element result. The strings created are 4d strings which have at each vertex the string cut. Cuts are only considered valid if they have heights. Any cut at a point where the string height is null, will not be included. A function return value of zero indicates the cut calculations was successful."
  },
  {
    "name": "Cut_strings",
    "id": 3788,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seed",
        "type": "Dynamic_Element"
      },
      {
        "name": "strings",
        "type": "Dynamic_Element"
      },
      {
        "name": "&result",
        "type": "Dynamic_Element"
      },
      {
        "name": "create_supers",
        "type": "Integer"
      }
    ],
    "description": "Cut all the strings from the list Dynamic_Element seed with the strings from the list Dynamic_Element strings and add to Dynamic_Element result. If create_supers is zero, the strings created are 4d strings which have at each vertex the string cut. If create_supers is non zero, the strings created are super strings which have at each vertex the string cut. Cuts are only considered valid if they have heights. Any cut at a point where the string height is null, will not be included. A function return value of zero indicates the cut calculations was successful."
  },
  {
    "name": "Cut_strings_with_nulls",
    "id": 548,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seed",
        "type": "Dynamic_Element"
      },
      {
        "name": "strings",
        "type": "Dynamic_Element"
      },
      {
        "name": "&result",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Cut all the strings from the list Dynamic_Element seed with the strings from the list Dynamic_Element strings and add to Dynamic_Element result. The strings created are 4d strings which have at each vertex the string cut. A function return value of zero indicates the cut calculations was successful. Utilities Page 1243 12d Model Macro Manual"
  },
  {
    "name": "Cut_strings_with_nulls",
    "id": 3789,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "seed",
        "type": "Dynamic_Element"
      },
      {
        "name": "strings",
        "type": "Dynamic_Element"
      },
      {
        "name": "&result",
        "type": "Dynamic_Element"
      },
      {
        "name": "create_supers",
        "type": "Integer"
      }
    ],
    "description": "Cut all the strings from the list Dynamic_Element seed with the strings from the list Dynamic_Element strings and add to Dynamic_Element result. If create_supers is zero, the strings created are 4d strings which have at each vertex the string cut. If create_supers is non zero, the strings created are super strings which have at each vertex the string cut. A function return value of zero indicates the cut calculations was successful."
  },
  {
    "name": "Factor",
    "id": 411,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "xf",
        "type": "Real"
      },
      {
        "name": "yf",
        "type": "Real"
      },
      {
        "name": "zf",
        "type": "Real"
      }
    ],
    "description": "Multiply all the co-ordinates of all the elements in the Dynamic_Element elements by the factors (xf,yf,zf). Note that if the xf and yf are different, then the true transformation of arcs (or cirles) would be no longer arcs. 12D would try to approximate the arcs result in some cases, otherwise the radius of segments would be lost. A function return value of zero indicates the factor was successful."
  },
  {
    "name": "Fence",
    "id": 137,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "data_to_fence",
        "type": "Dynamic_Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "user_poly",
        "type": "Element"
      },
      {
        "name": "&ret_inside",
        "type": "Dynamic_Element"
      },
      {
        "name": "&ret_outside",
        "type": "Dynamic_Element"
      }
    ],
    "description": "This function fences all the Elements in the Dynamic_Element data_to_list against the user supplied polygon Element user_poly. The fence mode is given by Integer mode and when mode equals 0 get the inside of the polygon 1 get the outside of the polygon 2 get the inside and the outside of the polygon If the inside is required, the data is returned by appending it to the Dynamic_Element ret_inside. If the outside is required, the data is returned by appending it to the Dynamic_Element ret_outside A returned value of zero indicates there were no errors in the fence operation. Fence(Dynamic_Element data_to_fence,Integer mode,Dynamic_Element polygon_list,Dynamic_Element &ret_inside,Dynamic_Element &ret_outside) Name Integer Fence(Dynamic_Element data_to_fence,Integer mode,Dynamic_Element polygon_list,Dynamic_Element &ret_inside,Dynamic_Element &ret_outside) Description This function fences all the Elements in the Dynamic_Element data_to_list against one or more user supplied polygons given in the Dynamic_Element polygon_list. The fence mode is given by Integer mode and when mode equals 0 get the inside of each of the polygons 1 get the outside of all the polygons 2 get the inside and the outside of the polygons If the inside is required, the data is returned by appending it to the Dynamic_Element ret_inside. If the outside is required, the data is returned by appending it to the Dynamic_Element ret_outside A returned value of zero indicates there were no errors in the fence operation Head to Tail"
  },
  {
    "name": "Check_polygon_fence",
    "id": 3543,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "&good_polygon",
        "type": "Integer"
      },
      {
        "name": "&good_fence",
        "type": "Integer"
      }
    ],
    "description": "This function check the input polygon and set. Integer good_polygon to 1 if the input is a simple polygon; 0 otherwise. Integer good_polygon to 1 if the input polygon can be used as the fence; 0 otherwise. Page 1246 Utilities Chapter A returned value of zero indicates there were no errors in the checking operation."
  },
  {
    "name": "Check_polygon",
    "id": 3544,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygon_in",
        "type": "Element"
      },
      {
        "name": "&good_polygon",
        "type": "Integer"
      },
      {
        "name": "&polygon_out",
        "type": "Element"
      }
    ],
    "description": "This function check the input polygon_in and set. Integer good_polygon to 1 if the input is a simple polygon; 0 otherwise. When the input is not a good polygon, there will be an attempt to fix some problems and return the fixed polygon as polygon_out. A returned value of zero indicates there were no errors in the checking operation."
  },
  {
    "name": "Check_polygon_planar",
    "id": 7818,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "&planar",
        "type": "Integer"
      }
    ],
    "description": "This function check the input polygon is a 3D super string and set. Integer planar to 0 if all the points of the polygon are identical 1 if all the points of the polygon are in one line 2 if all the points of the polygon are in one plane 3 if all the points of the polygon are not in one plane A returned value of zero indicates there were no errors in the checking. The return value 6 indicate the input element is not a string. The return value 7 indicate the input element is not a super string. The return value 11 12 15 indicate the input polygon does not have z value at some points. The return value 21 indicate the input polygon has less than three points."
  },
  {
    "name": "XY_inside_polygon",
    "id": 7839,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "&inside_status",
        "type": "Integer"
      }
    ],
    "description": "This function check point with coordinate x,y is inside the polygon and set. Integer inside_status to 0 if all the point is not inside the polygon 1 if all the point is inside the polygon A returned value of zero indicates there were no errors in the checking. Utilities Page 1247 12d Model Macro Manual"
  },
  {
    "name": "Filter",
    "id": 140,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "in_de",
        "type": "Dynamic_Element"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "pass_others",
        "type": "Integer"
      },
      {
        "name": "tolerance",
        "type": "Real"
      },
      {
        "name": "&out_de",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Filter removes points from 2d and/or 3d strings that do not deviate by more than the distance tolerance from the straight lines joining successive string points. Hence the function Filter filters the data from in_de where mode means: 0 only 2d strings are filtered. 1 2d and 3d strings are filtered. The filtered data is placed in the Dynamic_Element out_de. If pass_others is non-zero, elements that can't be processed using the mode will be copied to out_de. A function return value of zero indicates the filter was successful."
  },
  {
    "name": "Head_to_tail",
    "id": 138,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "in_list",
        "type": "Dynamic_Element"
      },
      {
        "name": "&out_list",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Perform head to tail processing on the data in Dynamic_Element in_list. The resulting elements are returned by appending them to the Dynamic_Element out_list. A function return value of zero indicates there were no errors in the head to tail process."
  },
  {
    "name": "Helmert",
    "id": 413,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "rotate",
        "type": "Real"
      },
      {
        "name": "scale",
        "type": "Real"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      }
    ],
    "description": "Apply to all the elements in the Dynamic_Element elements, the Helmert transformation with parameters: Rotation rotate (in radians) Scale factor scale Translation (dx,dy) A function return value of zero indicates the transformation was successful."
  },
  {
    "name": "Medial_axis_polygon",
    "id": 3031,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "&cx",
        "type": "Real"
      },
      {
        "name": "&cy",
        "type": "Real"
      },
      {
        "name": "&radius",
        "type": "Real"
      }
    ],
    "description": "Get xy-coordinate cx cy of the medial axis point and the radius of biggest circle of an Element polygon A return value of zero indicates the function call was successful."
  },
  {
    "name": "Medial_axis_polygon",
    "id": 3462,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "&cx",
        "type": "Real"
      },
      {
        "name": "&cy",
        "type": "Real"
      },
      {
        "name": "&radius",
        "type": "Real"
      },
      {
        "name": "radius_tolerance",
        "type": "Real"
      }
    ],
    "description": "Get xy-coordinate cx cy of the medial axis point and the radius of biggest circle of an Element polygon. In some cases, such as when the polygon is almost a long rectangle, the biggest circle is at one end of the (almost) rectangle. For many purposes (such as labelling), the desired centre is the middle of the rectangle. A radius_tolerance (a positive number less than 0.2) is used to adjust the centre in such cases. E.g. the medial axis centre will be moved toward the middle of the polygon when the radius of the largest circle being reduced by less than the given tolerance. The value of radius_tolerance in the other call for medial_axis_polygon is 0.05 (5 percent). A return value of zero indicates the function call was successful."
  },
  {
    "name": "Get_polygon_centroid",
    "id": 3479,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "polygon",
        "type": "Element"
      },
      {
        "name": "&cx",
        "type": "Real"
      },
      {
        "name": "&cy",
        "type": "Real"
      }
    ],
    "description": "Get xy-coordinate cx cy of the centroid of an Element polygon. A return value of zero indicates the function call was successful."
  },
  {
    "name": "Rotate",
    "id": 410,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "xorg",
        "type": "Real"
      },
      {
        "name": "yorg",
        "type": "Real"
      },
      {
        "name": "ang",
        "type": "Real"
      }
    ],
    "description": "Rotate all the elements in the Dynamic_Element elements about the centre point (xorg,yorg) through the angle ang. A function return value of zero indicates the rotate was successful."
  },
  {
    "name": "Share_status",
    "id": 3051,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&is_share_out",
        "type": "Integer"
      },
      {
        "name": "&is_share_in",
        "type": "Integer"
      }
    ],
    "description": "Check share status of the Model model Share out status is_share_out: 0 not share out, 1 share out Share out status is_share_in: 0 not share in, 1 share in A return value of zero indicates the function call was successful."
  },
  {
    "name": "Share_status",
    "id": 3052,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&is_share_out",
        "type": "Integer"
      },
      {
        "name": "&is_share_in",
        "type": "Integer"
      }
    ],
    "description": "Check share status of the Tin tin Share out status is_share_out: 0 not share out, 1 share out Share out status is_share_in: 0 not share in, 1 share in A return value of zero indicates the function call was successful."
  },
  {
    "name": "Share_status",
    "id": 3064,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&is_share_out",
        "type": "Integer"
      },
      {
        "name": "&is_share_in",
        "type": "Integer"
      },
      {
        "name": "&share_in_location",
        "type": "Text"
      }
    ],
    "description": "Check share status of the Model model Share out status is_share_out: 0 not share out, 1 share out Share out status is_share_in: 0 not share in, 1 share in Location for share return in share_in_location A return value of zero indicates the function call was successful."
  },
  {
    "name": "Share_status",
    "id": 3065,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&is_share_out",
        "type": "Integer"
      },
      {
        "name": "&is_share_in",
        "type": "Integer"
      },
      {
        "name": "&share_in_location",
        "type": "Text"
      }
    ],
    "description": "Page 1254 Utilities Chapter Check share status of the Tin tin Share out status is_share_out: 0 not share out, 1 share out Share out status is_share_in: 0 not share in, 1 share in Location for share return in share_in_location A return value of zero indicates the function call was successful."
  },
  {
    "name": "Swap_xy",
    "id": 412,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Swap the x and y co-ordinates for all the elements in the Dynamic_Element elements. A function return value of zero indicates the swap was successful."
  },
  {
    "name": "Translate",
    "id": 400,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elements",
        "type": "Dynamic_Element"
      },
      {
        "name": "dx",
        "type": "Real"
      },
      {
        "name": "dy",
        "type": "Real"
      },
      {
        "name": "dz",
        "type": "Real"
      }
    ],
    "description": "Translate translates all the elements in the Dynamic_Element elements by the amount (dx,dy,dz). A function return value of zero indicates the translate was successful."
  },
  {
    "name": "TDF_NMEA_checksum",
    "id": 7756,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "nmea_string",
        "type": "Text"
      }
    ],
    "description": "Return the checksum of a NMEA format string as a decimal integer, the string must begin with '$' and terminate with '*', the checksum is calculated using all characters up to but not including the *, for example the following string will return a value of 79. \"$GPGGA,053349.00,4245.631,S,14713.9987,E,4,36,0.4,47.715,M,-8.2,M,1.0,0116*\" A function return of zero or greater indicates the checksum was correctly calculated. The return value -1 indicates the string did not start with $ The return value -2 indicates the string had no characters after the starting $ The return value -3 indicates the string was not terminated by *"
  },
  {
    "name": "TDF_NMEA_checksum_as_hex",
    "id": 7757,
    "returnType": "Text",
    "parameters": [
      {
        "name": "nmea_string",
        "type": "Text"
      }
    ],
    "description": "Return the checksum of a NMEA format string in Text representing a hexadecimal integer, the string must begin with '$' and terminate with '*', the checksum is calculated using all characters up to but not including the *, for example the following string will return a value of \"4F\" \"$GPGGA,053349.00,4245.631,S,14713.9987,E,4,36,0.4,47.715,M,-8.2,M,1.0,0116*\" A function return not starting with the first character '-' indicates the checksum was correctly calculated. The return value \"-1\" indicates the string did not start with $ The return value \"-2\" indicates the string had no characters after the starting $ The return value \"-3\" indicates the string was not terminated by *"
  },
  {
    "name": "Get_water_defaults_fs_tin",
    "id": 7939,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&tin_name",
        "type": "Text"
      }
    ],
    "description": "Get the current water defaults for fs tin and assign the name to Text tin_name."
  },
  {
    "name": "Get_water_defaults_manhole",
    "id": 7940,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&diameter",
        "type": "Real"
      },
      {
        "name": "&drop",
        "type": "Real"
      },
      {
        "name": "&name",
        "type": "Text"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the current water defaults for manhole and assign the values to Real diameter Real drop Text name Text type."
  },
  {
    "name": "Get_water_defaults_pipe",
    "id": 7941,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&diameter",
        "type": "Real"
      },
      {
        "name": "&minimum_grade",
        "type": "Real"
      },
      {
        "name": "&minimum_cover",
        "type": "Real"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "Get the current water defaults for pipe and assign the values to Real diameter Real minimum_grade Real minimum_cover Text type."
  },
  {
    "name": "Get_water_defaults_property_control",
    "id": 7942,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&diameter",
        "type": "Real"
      },
      {
        "name": "&grade",
        "type": "Real"
      },
      {
        "name": "&cover",
        "type": "Real"
      },
      {
        "name": "&colour",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get the current water defaults for property control and assign the values to Real diameter Real grade Real cover Integer colour Text name"
  },
  {
    "name": "Set_water_defaults_fs_tin",
    "id": 7944,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_name",
        "type": "Text"
      }
    ],
    "description": "Set the current water defaults for fs tin using the value of Text tin_name."
  },
  {
    "name": "Set_water_defaults_manhole",
    "id": 7945,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "diameter",
        "type": "Real"
      },
      {
        "name": "drop",
        "type": "Real"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "Set the current water defaults for manhole using the values of Real diameter Real drop Text name Text type."
  },
  {
    "name": "Set_water_defaults_pipe",
    "id": 7946,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "diameter",
        "type": "Real"
      },
      {
        "name": "minimum_grade",
        "type": "Real"
      },
      {
        "name": "minimum_cover",
        "type": "Real"
      },
      {
        "name": "type",
        "type": "Text"
      }
    ],
    "description": "Set the current water defaults for pipe using the values of Real diameter Real minimum_grade Real minimum_cover Text type."
  },
  {
    "name": "Set_water_defaults_property_control",
    "id": 7947,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "diameter",
        "type": "Real"
      },
      {
        "name": "grade",
        "type": "Real"
      },
      {
        "name": "cover",
        "type": "Real"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Set the current water defaults for property control using the values of Real diameter Real grade Real cover Integer colour Text name"
  },
  {
    "name": "Set_inquire_style",
    "id": 3838,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "inquire_style",
        "type": "Text"
      }
    ],
    "description": "Set the current inquire style of the project to the one with name inquire_style. A function return value of zero indicates the style was set successfully."
  },
  {
    "name": "Get_current_inquire_style",
    "id": 3931,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&current_style",
        "type": "Text"
      }
    ],
    "description": "Get the current inquire style of the project and assign the name to Text current_style. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Inquire_style_exists",
    "id": 3932,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "style",
        "type": "Text"
      }
    ],
    "description": "Check if the inquire style with given name style exists. A function return value of zero indicates the style does not exist. A function return value of one indicates the style exists."
  },
  {
    "name": "License_module_valid",
    "id": 3933,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "module",
        "type": "Text"
      },
      {
        "name": "&valid",
        "type": "Integer"
      }
    ],
    "description": "Check if the user has valid license to use given 12d module A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Project_settings_profile_exists",
    "id": 3934,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "profile_name",
        "type": "Text"
      }
    ],
    "description": "Page 1262 Utilities Chapter Check if the project settings profile with given name profile_name exists. A function return value of zero indicates the style does not exist. A function return value of one indicates the style exists."
  },
  {
    "name": "Delete_all_functions",
    "id": 3937,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "delete_strings_and_models",
        "type": "Integer"
      }
    ],
    "description": "Delete all functions in the project. if delete_strings_and_models is non zero then all strings and models created by functions also being deleted. Note: the call cannot be undone. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Delete_function_strings_and_models",
    "id": 3938,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_name",
        "type": "Text"
      }
    ],
    "description": "Delete all strings and models created by a function with given name function_name Note: the call cannot be undone. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_icon_size",
    "id": 7593,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&size",
        "type": "Integer"
      }
    ],
    "description": "Get the current pixel size of the standard icon in the project and set it to Integer size A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_active_theme_name",
    "id": 7594,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get name of the active theme and set it to Text name A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_active_theme_image_directory",
    "id": 7595,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&image_directory",
        "type": "Text"
      }
    ],
    "description": "Get image directory of the active theme and set it to Text image_directory A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_disk_file_name",
    "id": 7613,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      },
      {
        "name": "&disk_name",
        "type": "Text"
      }
    ],
    "description": "Get disk file name of given model and set it to Text disk_name A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_disk_file_name",
    "id": 7614,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&disk_name",
        "type": "Text"
      }
    ],
    "description": "Get disk file name of given tin and set it to Text disk_name A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_disk_file_name",
    "id": 7615,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin",
        "type": "Tin"
      },
      {
        "name": "&disk_name",
        "type": "Text"
      }
    ],
    "description": "Get disk file name of given tin and set it to Text disk_name A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_disk_file_name",
    "id": 7616,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "f",
        "type": "Function"
      },
      {
        "name": "&disk_name",
        "type": "Text"
      }
    ],
    "description": "Get disk file name of given Function f and set it to Text disk_name A function return value of zero indicates the call was successfully. Page 1264 Utilities Chapter"
  },
  {
    "name": "Get_disk_file_name",
    "id": 7617,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "view",
        "type": "View"
      },
      {
        "name": "&disk_name",
        "type": "Text"
      }
    ],
    "description": "Get disk file name of given view and set it to Text disk_name A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Check_object_tree_enable",
    "id": 7619,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&enable",
        "type": "Integer"
      }
    ],
    "description": "Integer enble should be 1 A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_license_client",
    "id": 7620,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&client",
        "type": "Text"
      }
    ],
    "description": "Get the client information from 12D license and set that to Text client A function return value of zero indicates the call was successful."
  },
  {
    "name": "Explode_text",
    "id": 7626,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "input_data",
        "type": "Dynamic_Element"
      },
      {
        "name": "preserve_height",
        "type": "Integer"
      },
      {
        "name": "&output_texts",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Explode text component of text strings and 4d strings into arc and lines. The z value of the text will be set to the results if preserve_height is 1. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Explode_vertex_text_border",
    "id": 7637,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Element"
      },
      {
        "name": "vertex",
        "type": "Integer"
      },
      {
        "name": "pixel_to_mm",
        "type": "Real"
      },
      {
        "name": "plot_scale",
        "type": "Real"
      },
      {
        "name": "&border",
        "type": "Element"
      }
    ],
    "description": "Explode the border of given vertex text of a super string text into a super string Element border. If the type of text is device; pixel_to_mm will be used for the size of the result border. If the type of text is paper; plot_scale will be used for the size of the result border. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Explode_segment_text_border",
    "id": 7638,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "text",
        "type": "Element"
      },
      {
        "name": "segment",
        "type": "Integer"
      },
      {
        "name": "pixel_to_mm",
        "type": "Real"
      },
      {
        "name": "plot_scale",
        "type": "Real"
      },
      {
        "name": "&border",
        "type": "Element"
      }
    ],
    "description": "Explode the border of given segment text of a super string text into a super string Element border. If the type of text is device; pixel_to_mm will be used for the size of the result border. If the type of text is paper; plot_scale will be used for the size of the result border. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Write_DAE_file",
    "id": 7658,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "data_to_write",
        "type": "Dynamic_Element"
      },
      {
        "name": "origin",
        "type": "Point"
      },
      {
        "name": "null_z_value",
        "type": "Real"
      },
      {
        "name": "ss_justify_mode",
        "type": "Integer"
      },
      {
        "name": "output_file_name",
        "type": "Text"
      }
    ],
    "description": "Write a new DAE file at the location output_file_name from a list of 3D data data_to_write. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Is_dumping_widgets",
    "id": 7703,
    "returnType": "Integer",
    "parameters": [],
    "description": "For internal use only, no doco."
  },
  {
    "name": "Get_SDR_field_file_type",
    "id": 7742,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function",
        "type": "Function"
      },
      {
        "name": "&field_file_type",
        "type": "Integer"
      }
    ],
    "description": "Get the field_file_type of given SDR function: 0 means flat, 1 means tree. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Convert_SDR_flat_to_tree",
    "id": 7743,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function",
        "type": "Function"
      },
      {
        "name": "opcodes_as_children",
        "type": "Integer"
      }
    ],
    "description": "If the field file type of given SDR function is flat, attempt to change that into tree type. If opcodes_as_children is non zero, then moving the opcodes of the measurement as children. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_last_child_macro_exit_code",
    "id": 8019,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&value",
        "type": "Integer"
      }
    ],
    "description": "Get the Integer value of the last child macro exit code. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_last_child_macro_exit_code",
    "id": 8020,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&value",
        "type": "Text"
      }
    ],
    "description": "Get the Text value of the last child macro exit code. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Clear_last_child_macro_exit_code",
    "id": 8021,
    "returnType": "Integer",
    "parameters": [],
    "description": "Clear the last child macro exit code. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Set_macro_allow_cancelling",
    "id": 8022,
    "returnType": "Integer",
    "parameters": [],
    "description": "Allow the current macro to be cancelled by the user. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_macro_allow_cancelling",
    "id": 8023,
    "returnType": "Integer",
    "parameters": [],
    "description": "A function return value of one indicates the macro can be cancelled; zero otherwise."
  },
  {
    "name": "Clear_macro_allow_cancelling",
    "id": 8024,
    "returnType": "Integer",
    "parameters": [],
    "description": "Disable the current macro to be cancelled by the user. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Set_macro_cancelling",
    "id": 8025,
    "returnType": "Integer",
    "parameters": [],
    "description": "Set the status of the current macro to be cancelling. A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Get_macro_cancelling",
    "id": 8026,
    "returnType": "Integer",
    "parameters": [],
    "description": "A function return value of one indicates the macro can is cancelling; zero otherwise."
  },
  {
    "name": "Create_macro_function",
    "id": 1135,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_name",
        "type": "Text"
      },
      {
        "name": "&func",
        "type": "Macro_Function"
      }
    ],
    "description": "Create a user defined 12d Model Function with the name function_name and return the created Function as func. If a Function with the name function_name already exists, the function fails and a non-zero function return value is returned. A function return value of zero indicates the Function was successfully created."
  },
  {
    "name": "Function_recalc",
    "id": 1138,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Function"
      }
    ],
    "description": "Recalc (i.e. re-run) the Function func. A function return value of zero indicates the recalc was successful."
  },
  {
    "name": "Function_exists",
    "id": 1141,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a 12d or user 12d Function with the name function_name exists. A non-zero function return value indicates a Function does exist. A zero function return value indicates that no Function of name function_name exists. Warning - this is the opposite of most 12dPL function return values."
  },
  {
    "name": "Function_rename",
    "id": 425,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "original_name",
        "type": "Text"
      },
      {
        "name": "new_name",
        "type": "Text"
      }
    ],
    "description": "Change the name of the Function original_name to the new name new_name. A function return value of zero indicates the rename was successful."
  },
  {
    "name": "Get_type",
    "id": 3530,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Function"
      },
      {
        "name": "&func_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the Function func and return it in func_type. The value of func_type is listed in the Appendix A - Function type. See Function Type. A function return value of zero indicates the Function name was successfully returned."
  },
  {
    "name": "Get_function",
    "id": 1140,
    "returnType": "Function",
    "parameters": [
      {
        "name": "function_name",
        "type": "Text"
      }
    ],
    "description": "Get the Function with the name function_name and return it as the function return value. If the function does not exist, a null function will be returned. The existence of a function with the name function_name can first be checked by the call Function_exists(function_name)."
  },
  {
    "name": "Get_macro_function",
    "id": 1142,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_name",
        "type": "Text"
      },
      {
        "name": "&func",
        "type": "Macro_Function"
      }
    ],
    "description": "Get the Macro Function with the name function_name and return it as func. If the Function named function_name does not exist, or it does exist but is not a Macro Function, then the function fails and a non-zero function return value is returned. A function return value of zero indicates the Macro Function was successfully returned."
  },
  {
    "name": "Get_all_functions",
    "id": 1139,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&functions",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get all names of the 12d and user defined Function currently in the project. The Function names are returned in the Dynamic_Text functions. Page 1278 12d Model Macro_Functions Chapter A function return value of zero indicates the Function names are returned successfully."
  },
  {
    "name": "Function_delete",
    "id": 1137,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_name",
        "type": "Text"
      }
    ],
    "description": "Delete the Function with the name function_name. Note that the data in the function is not deleted. If a Function with the name function_name does not exist, the function fails and a non-zero function return value is returned. A function return value of zero indicates the Function was successfully deleted."
  },
  {
    "name": "Get_time_created",
    "id": 2117,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Function"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "Get the time that the Function func was created and return the time in time. The time time is given as seconds since January 1 1970. A function return value of zero indicates the time was successfully returned."
  },
  {
    "name": "Get_time_updated",
    "id": 2118,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Function"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "Get the time that the Function func was last updated and return the time in time. The time time is given as seconds since January 1 1970. A function return value of zero indicates the time was successfully returned."
  },
  {
    "name": "Set_time_updated",
    "id": 2119,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Function"
      },
      {
        "name": "time",
        "type": "Integer"
      }
    ],
    "description": "Set the update time for the Function func to time. The time time is given as seconds since January 1 1970. A function return value of zero indicates the time was successfully set. 12d Model Macro_Functions Page 1279 12d Model Macro Manual"
  },
  {
    "name": "Add_dependancy_file",
    "id": 1143,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "file",
        "type": "Text"
      }
    ],
    "description": "Record in the Macro Function func, that the disk file named file is dependant on func and on a recalc of func, needs to be checked for changes from the last time that func was recalced. The dependency is added with the unique name name. If a dependency called name already exists, a non-zero function return value is returned and no dependency is added. A function return value of zero indicates the dependency was successfully set."
  },
  {
    "name": "Add_dependancy_model",
    "id": 1144,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "Record in the Macro Function func, that the Model model is dependant on func and on a recalc of func, needs to be checked for changes from the last time that func was recalced. If a dependency called name already exists, a non-zero function return value is returned and no dependency is added. A function return value of zero indicates the dependency was successfully set."
  },
  {
    "name": "Add_dependancy_tin",
    "id": 1145,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "Record in the Macro Function func, that the Tin tin is dependant on func and on a recalc of func, needs to be checked for changes from the last time that func was recalced. If a dependency called name already exists, a non-zero function return value is returned and no dependency is added. A function return value of zero indicates the dependency was successfully set."
  },
  {
    "name": "Add_dependancy_template",
    "id": 1146,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "template",
        "type": "Text"
      }
    ],
    "description": "Record in the Macro Function func, that the template name template is dependant on func and on Page 1280 12d Model Macro_Functions Chapter a recalc of func, needs to be checked for changes from the last time that func was recalced. If a dependency called name already exists, a non-zero function return value is returned and no dependency is added. A function return value of zero indicates the dependency was successfully set."
  },
  {
    "name": "Add_dependancy_element",
    "id": 1147,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Record in the Macro Function func, that the Element elt is dependant on func and on a recalc of func, needs to be checked for changes from the last time that func was recalced. If a dependency called name already exists, a non-zero function return value is returned and no dependency is added. A function return value of zero indicates the dependency was successfully set."
  },
  {
    "name": "Get_number_of_dependancies",
    "id": 1148,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "For the Macro_Function func, return the number of dependencies that exist for func and return the number in count. A function return value of zero indicates the count was successfully returned."
  },
  {
    "name": "Get_dependancy_name",
    "id": 1149,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, return the name of the i\u2019th dependencies in name. A function return value of zero indicates the name was successfully returned."
  },
  {
    "name": "Get_dependancy_type",
    "id": 1150,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, return the type of the i\u2019th dependencies as the Text type. The valid types are: 12d Model Macro_Functions Page 1281 12d Model Macro Manual unknown File Element Model Template Tin Integer Real Text A function return value of zero indicates the type was successfully returned."
  },
  {
    "name": "Get_dependancy_file",
    "id": 1151,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&file",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, if the i\u2019th dependency is a file then return the name of the file in name. If the i\u2019th dependency is not a file then a non-zero function return value is returned. A function return value of zero indicates the file name was successfully returned."
  },
  {
    "name": "Get_dependancy_model",
    "id": 1152,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&model",
        "type": "Model"
      }
    ],
    "description": "For the Macro_Function func, if the i\u2019th dependency is a Model then return the Model in model. If the i\u2019th dependency is not a Model then a non-zero function return value is returned. A function return value of zero indicates the Model was successfully returned."
  },
  {
    "name": "Get_dependancy_tin",
    "id": 1153,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "For the Macro_Function func, if the i\u2019th dependency is a Tin then return the Tin in tin. If the i\u2019th dependency is not a Tin then a non-zero function return value is returned. A function return value of zero indicates the Tin was successfully returned."
  },
  {
    "name": "Get_dependancy_element",
    "id": 1155,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&element",
        "type": "Element"
      }
    ],
    "description": "For the Macro_Function func, if the i\u2019th dependency is an Element then return the Element in elt. If the i\u2019th dependency is not an Element then a non-zero function return value is returned. A function return value of zero indicates the Element was successfully returned."
  },
  {
    "name": "Get_dependancy_data",
    "id": 1156,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "i",
        "type": "Integer"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, a text description of the i\u2019th dependency is returned in text. For an Element, the text description is: model_name->element_name is return in text. For a File/Model/Template/Tin, the text description is the name of the File/Model/Template/Tin. For an Integer, the text description is the Integer converted to Text. For a Real, the text description is the Real converted to Text. LJG? how many decimals For a Text, the text description is just the text. A function return value of zero indicates the Macro_Function description was successfully returned."
  },
  {
    "name": "Get_dependancy_type",
    "id": 1157,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&type",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, return the type of the dependency with the name name as the Text type. The valid types are: unknown File Element Model 12d Model Macro_Functions Page 1283 12d Model Macro Manual Template Tin Integer // not implemented or accessible from macros Real // not implemented or accessible from macros Text // not implemented or accessible from macros If a dependency called name does not exist then a non-zero function return value is returned. A function return value of zero indicates the type was successfully returned."
  },
  {
    "name": "Get_dependancy_file",
    "id": 1158,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&file",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, get the dependency called name and if it is a File, return the file name as file. If no dependency called name exists, or it does exist and it is not a file, then a non-zero function return value is returned; and also file remains unchanged. A function return value of zero indicates the file name was successfully returned."
  },
  {
    "name": "Get_dependancy_model",
    "id": 1159,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&model",
        "type": "Model"
      }
    ],
    "description": "For the Macro_Function func, get the dependency called name and if it is a Model, return the Model as model. If no dependency called name exists, or it does exist and it is not a Model, then a non-zero function return value is returned; and also model remains unchanged. A function return value of zero indicates the Model was successfully returned."
  },
  {
    "name": "Get_dependancy_tin",
    "id": 1160,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "For the Macro_Function func, get the dependency called name and if it is a Tin, return the Tin as tin. If no dependency called name exists, or it does exist and it is not a Tin, then a non-zero function return value is returned; and also tin remains unchanged. A function return value of zero indicates the Tin was successfully returned."
  },
  {
    "name": "Get_dependancy_template",
    "id": 1161,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&template",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, get the dependency called name and if it is a Template, return the Template name as template. If no dependency called name exists, or it does exist and it is not a Template, then a non-zero function return value is returned; and also template remains unchanged. A function return value of zero indicates the template name was successfully returned."
  },
  {
    "name": "Get_dependancy_element",
    "id": 1162,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&elt",
        "type": "Element"
      }
    ],
    "description": "For the Macro_Function func, get the dependency called name and if it is an Element, return the Element as elt. If no dependency called name exists, or it does exist and it is not an Element, then a non-zero function return value is returned; and also elt remains unchanged. A function return value of zero indicates the Element was successfully returned."
  },
  {
    "name": "Get_dependancy_data",
    "id": 1163,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&text",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, get the dependency called name and if it is a Text, return the Text as text. If no dependency called name exists, or it does exist and it is not a Text, then a non-zero function return value is returned; and also text remains unchanged. A function return value of zero indicates the Text was successfully returned."
  },
  {
    "name": "Delete_dependancy",
    "id": 1164,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      },
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "For the Macro_Function func, if the dependency called name exist then it is deleted from the list of dependencies for func. Warning: if a dependency is deleted then the dependency number of all dependencies after the deleted one will be reduced by one. If no dependency called name exists then a non-zero function return value is returned. 12d Model Macro_Functions Page 1285 12d Model Macro Manual A function return value of zero indicates the dependency was successfully deleted."
  },
  {
    "name": "Delete_all_dependancies",
    "id": 1165,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Macro_Function"
      }
    ],
    "description": "For the Macro_Function func, delete all the dependencies. A function return value of zero indicates all the dependency were successfully deleted."
  },
  {
    "name": "Get_id",
    "id": 1909,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Function"
      },
      {
        "name": "&id",
        "type": "Uid"
      }
    ],
    "description": "For the Function/Macro_Function func, get its unique Uid in the Project and return it in id. A function return value of zero indicates the Uid was successfully returned."
  },
  {
    "name": "Get_id",
    "id": 1177,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "func",
        "type": "Function"
      },
      {
        "name": "&id",
        "type": "Integer"
      }
    ],
    "description": "For the Function/Macro_Function func, get its unique id in the Project and return it in id. A function return value of zero indicates the id was successfully returned. Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Get_id(Function func,Uid &id) instead."
  },
  {
    "name": "Get_function_id",
    "id": 1910,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "&id",
        "type": "Uid"
      }
    ],
    "description": "For an Element elt, check if it has a function Uid and if it has, return it in id. If the element doesn\u2019t have a function Uid, id will be set as null. A function return value of zero indicates the Uid was successfully returned."
  },
  {
    "name": "Set_function_id",
    "id": 1911,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "id",
        "type": "Uid"
      }
    ],
    "description": "For an Element elt, set its function Uid to id. A function return value of zero indicates the function Uid was successfully set."
  },
  {
    "name": "Set_function_id",
    "id": 1179,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      },
      {
        "name": "id",
        "type": "Integer"
      }
    ],
    "description": "For an Element elt, set its function id to id. A function return value of zero indicates the function id was successfully set. Deprecation Warning - this function has now been deprecated and will no longer exist unless special compile flags are used. Use Set_function_id(Element elt,Uid id) instead."
  },
  {
    "name": "Get_function",
    "id": 1916,
    "returnType": "Function",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      }
    ],
    "description": "Find the Function/Macro_Function with the Uid function_id. The Function is returned as the function return value. If there is no Function/Macro_Function with the Uid function_id, then a null Function/ Macro_Function is returned as the function return value."
  },
  {
    "name": "Function_exists",
    "id": 1915,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      }
    ],
    "description": "Checks to see if a Function/Macro_Function with Uid function_id exists. A non-zero function return value indicates that a Function does exist. A zero function return value indicates that no Function exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Get_function_data_start_model_id",
    "id": 7712,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "f",
        "type": "Function"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Get the smallest model id from a give function f and set the value to Uid uid, A function return value of zero indicates the Uid value is successfully set.."
  },
  {
    "name": "Get_function_data_end_model_id",
    "id": 7713,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "f",
        "type": "Function"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Get the biggest model id from a give function f and set the value to Uid uid, A function return value of zero indicates the Uid value is successfully set.."
  },
  {
    "name": "Get_function_data_start_element_id",
    "id": 7714,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "f",
        "type": "Function"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Get the smallest element id from a give function f and set the value to Uid uid, A function return value of zero indicates the Uid value is successfully set.."
  },
  {
    "name": "Get_function_data_end_element_id",
    "id": 7715,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "f",
        "type": "Function"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "Get the biggest element id from a give function f and set the value to Uid uid, A function return value of zero indicates the Uid value is successfully set.."
  },
  {
    "name": "Get_elements",
    "id": 2794,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "start_model_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "start_element_id",
        "type": "Uid"
      },
      {
        "name": "end_element_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "&elements",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Get all the elements created by given function_id (limitted the search by start_model_id, end_model_id, start_element_id, end_element_id) and set those to Dynamic_Element elements, If skip_tins is non zero, then tins are not included in the list of result. A function return value of zero indicates the elements list is successfully set.."
  },
  {
    "name": "Get_elements",
    "id": 2795,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "start_model_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "start_element_id",
        "type": "Uid"
      },
      {
        "name": "end_element_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "loaded_models",
        "type": "Integer"
      },
      {
        "name": "&elements",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Get all the elements created by given function_id (limitted the search by start_model_id, end_model_id, start_element_id, end_element_id) and set those to Dynamic_Element elements, If skip_tins is non zero, then tins are not included in the list of result. The search will load previously unloaded model into the project if loaded_models is non zero. A function return value of zero indicates the elements list is successfully set.."
  },
  {
    "name": "Get_models",
    "id": 2796,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "start_model_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "start_element_id",
        "type": "Uid"
      },
      {
        "name": "end_element_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "&models",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get all the models created by given function_id (limitted the search by start_model_id, end_model_id, start_element_id, end_element_id) and set their names to Dynamic_Text models, If skip_tins is non zero, then tins are not included in the list of result. A function return value of zero indicates the names list is successfully set."
  },
  {
    "name": "Check_elements_for_clean",
    "id": 2798,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "start_model_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "start_element_id",
        "type": "Uid"
      },
      {
        "name": "end_element_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      }
    ],
    "description": "Check if all elements created by given function_id (limitted the search by start_model_id, end_model_id, start_element_id, end_element_id) are ready for clean. If skip_tins is non zero, then tins are not included in the list to check. A function return value of zero all elements are ready for clean."
  },
  {
    "name": "Clean_elements",
    "id": 2799,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "start_model_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "start_element_id",
        "type": "Uid"
      },
      {
        "name": "end_element_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      }
    ],
    "description": "Clean all elements created by given function_id (limitted the search by start_model_id, end_model_id, start_element_id, end_element_id). If skip_tins is non zero, then tins are not included in the list to clean. A function return value of zero all elements are cleaned successfully."
  },
  {
    "name": "Clean_elements",
    "id": 2800,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "start_model_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "start_element_id",
        "type": "Uid"
      },
      {
        "name": "end_element_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "&elements",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Clean all elements created by given function_id (limitted the search by start_model_id, end_model_id, start_element_id, end_element_id). If skip_tins is non zero, then tins are not included in the list to clean. The list of old elements also is returned in Dynamic_Element elements. 12d Model Macro_Functions Page 1303 12d Model Macro Manual A function return value of zero all elements are cleaned successfully."
  },
  {
    "name": "Draw_elements",
    "id": 2801,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "start_model_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "start_element_id",
        "type": "Uid"
      },
      {
        "name": "end_element_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      }
    ],
    "description": "Redraw all elements created by given function_id (limitted the search by start_model_id, end_model_id, start_element_id, end_element_id). If skip_tins is non zero, then tins are not included in the list to draw. A function return value of zero all elements are drawn successfully."
  },
  {
    "name": "Draw_elements",
    "id": 2802,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "start_model_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "start_element_id",
        "type": "Uid"
      },
      {
        "name": "end_model_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Redraw all elements created by given function_id (limitted the search by start_model_id, end_model_id, start_element_id, end_element_id) using an override Colour colour. If skip_tins is non zero, then tins are not included in the list to draw. A function return value of zero all elements are drawn successfully."
  },
  {
    "name": "Get_elements",
    "id": 7717,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "loaded_models",
        "type": "Integer"
      },
      {
        "name": "&elements",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Page 1304 12d Model Macro_Functions Chapter Get all the elements created by given function_id and set those to Dynamic_Element elements, If skip_tins is non zero, then tins are not included in the list of result. The search will load previously unloaded model into the project if loaded_models is non zero. A function return value of zero indicates the elements list is successfully set.."
  },
  {
    "name": "Get_models",
    "id": 7718,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "&models",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get all the models created by given function_id and set their names to Dynamic_Text models, If skip_tins is non zero, then tins are not included in the list of result. A function return value of zero indicates the names list is successfully set."
  },
  {
    "name": "Get_models",
    "id": 7719,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "loaded_models",
        "type": "Integer"
      },
      {
        "name": "&models",
        "type": "Dynamic_Text"
      }
    ],
    "description": "Get all the models created by given function_id and set their names to Dynamic_Text models, If skip_tins is non zero, then tins are not included in the list of result. The search will load previously unloaded model into the project if loaded_models is non zero. A function return value of zero indicates the names list is successfully set."
  },
  {
    "name": "Check_elements_for_clean",
    "id": 7720,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      }
    ],
    "description": "Check if all elements created by given function_id are ready for clean. If skip_tins is non zero, then tins are not included in the list to check. A function return value of zero all elements are ready for clean."
  },
  {
    "name": "Clean_elements",
    "id": 7721,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      }
    ],
    "description": "Clean all elements created by given function_id. If skip_tins is non zero, then tins are not included in the list to clean. 12d Model Macro_Functions Page 1305 12d Model Macro Manual A function return value of zero all elements are cleaned successfully."
  },
  {
    "name": "Clean_elements",
    "id": 7722,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "&elements",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Clean all elements created by given function_id. If skip_tins is non zero, then tins are not included in the list to clean. The list of old elements also is returned in Dynamic_Element elements. A function return value of zero all elements are cleaned successfully."
  },
  {
    "name": "Draw_elements",
    "id": 7723,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      }
    ],
    "description": "Redraw all elements created by given function_id. If skip_tins is non zero, then tins are not included in the list to draw. A function return value of zero all elements are drawn successfully."
  },
  {
    "name": "Draw_elements",
    "id": 7724,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_id",
        "type": "Uid"
      },
      {
        "name": "skip_tins",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      }
    ],
    "description": "Redraw all elements created by given function_id using an override Colour colour. If skip_tins is non zero, then tins are not included in the list to draw. A function return value of zero all elements are drawn successfully."
  },
  {
    "name": "Create_function_property_collection",
    "id": 2726,
    "returnType": "Function_Property_Collection",
    "parameters": [],
    "description": "Create a Function_Property_Collection. Function_Property_Collection\u2019s are used to transfer information about a function such as the Apply Many function instead of needing a large number of function calls which would need to be updated every time a new parameter was added to the Apply Many, The function return value is the created Function_Property_Collection."
  },
  {
    "name": "Set_property",
    "id": 2727,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "int_val",
        "type": "Integer"
      }
    ],
    "description": "In the Function Property Collection collection, set the value of the Integer property called name to int_val. For more information on which properties are available for the function in question, please see the section Function Properties. The return value is zero if name doesn\u2019t exist or it is not Integer property. A function return value of zero indicates the value is successfully set."
  },
  {
    "name": "Set_property",
    "id": 2728,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "real_val",
        "type": "Real"
      }
    ],
    "description": "In the Function Property Collection collection, set the value of the Real property called name to real_val. For more information on which properties are available for the function in question, please see the section Function Properties. The return value is zero if name doesn\u2019t exist or it is not Real property. A function return value of zero indicates the value is successfully set."
  },
  {
    "name": "Set_property",
    "id": 2729,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "txt_val",
        "type": "Text"
      }
    ],
    "description": "12d Model Macro_Functions Page 1307 12d Model Macro Manual In the Function Property Collection collection, set the value of the Text property called name to txt_val. For more information on which properties are available for the function in question, please see the section Function Properties. The return value is zero if name doesn\u2019t exist or it is not Text property. A function return value of zero indicates the value is successfully set."
  },
  {
    "name": "Set_property_colour",
    "id": 2730,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "colour_name",
        "type": "Text"
      }
    ],
    "description": "In the Function Property Collection collection, set the value of the Colour property called name to the colour given by colour_name. For more information on which properties are available for the function in question, please see the section Function Properties. The return value is zero if name doesn\u2019t exist or it is not Text property. A function return value of zero indicates the value is successfully set."
  },
  {
    "name": "Set_property",
    "id": 2731,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "element",
        "type": "Element"
      }
    ],
    "description": "In the Function Property Collection collection, set the value of the Element property called name to element. For more information on which properties are available for the function in question, please see the section Function Properties. The return value is zero if name doesn\u2019t exist or it is not Element property. A function return value of zero indicates the value is successfully set."
  },
  {
    "name": "Set_property",
    "id": 2732,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "tin",
        "type": "Tin"
      }
    ],
    "description": "In the Function Property Collection collection, set the tin of the Tin property called name to tin. For more information on which properties are available for the function in question, please see the section Function Properties. The return value is zero if name doesn\u2019t exist or it is not Tin property. A function return value of zero indicates the value is successfully set. Page 1308 12d Model Macro_Functions Chapter"
  },
  {
    "name": "Set_property",
    "id": 2733,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "In the Function Property Collection collection, set the model of the Model property called name to model. For more information on which properties are available for the function in question, please see the section Function Properties. The return value is zero if name doesn\u2019t exist or it is not Model property. A function return value of zero indicates the value is successfully set."
  },
  {
    "name": "Get_property",
    "id": 2737,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&int_val",
        "type": "Integer"
      }
    ],
    "description": "From the Function Property Collection collection, get the value of the Integer property called name and return it in int_val. For more information on which properties are available for the function in question, please see the section Function Properties. The function return value is non zero if there is no property called name, or if it does exist, it is not of type Integer. A function return value of zero indicates the value was successfully returned."
  },
  {
    "name": "Get_property",
    "id": 2738,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&real_val",
        "type": "Real"
      }
    ],
    "description": "From the Function Property Collection collection, get the value of the Real property called name and return it in real_val. For more information on which properties are available for the function in question, please see the section Function Properties. The function return value is non zero if there is no property called name, or if it does exist, it is not of type Real. A function return value of zero indicates the value was successfully returned."
  },
  {
    "name": "Get_property",
    "id": 2740,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&tin",
        "type": "Tin"
      }
    ],
    "description": "From the Function Property Collection collection, get the Tin from the Tin property called name and return it in tin. For more information on which properties are available for the function in question, please see the section Function Properties. The function return value is non zero if there is no property called name, or if it does exist, it is not of type Tin. A function return value of zero indicates the value was successfully returned."
  },
  {
    "name": "Get_property",
    "id": 2741,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&element",
        "type": "Element"
      }
    ],
    "description": "From the Function Property Collection collection, get the Element from the Element property called name and return it in element. For more information on which properties are available for the function in question, please see the section Function Properties. The function return value is non zero if there is no property called name, or if it does exist, it is not of type Element. A function return value of zero indicates the value was successfully returned."
  },
  {
    "name": "Get_property",
    "id": 2742,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&model",
        "type": "Model"
      }
    ],
    "description": "From the Function Property Collection collection, get the Model from the Tin property called name and return it in model. Page 1310 12d Model Macro_Functions Chapter For more information on which properties are available for the function in question, please see the section Function Properties. The function return value is non zero if there is no property called name, or if it does exist, it is not of type Model. A function return value of zero indicates the value was successfully returned."
  },
  {
    "name": "Get_property_colour",
    "id": 2743,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "collection",
        "type": "Function_Property_Collection"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&colour_name",
        "type": "Text"
      }
    ],
    "description": "From the Function Property Collection collection, get the Colour from the Colour property called name and return the name of the colour in colour_name. For more information on which properties are available for the function in question, please see the section Function Properties. The function return value is non zero if there is no property called name, or if it does exist, it is not of type Colour. A function return value of zero indicates the value was successfully returned."
  },
  {
    "name": "Create_apply_many_function",
    "id": 2734,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function_name",
        "type": "Text"
      },
      {
        "name": "properties",
        "type": "Function_Property_Collection"
      },
      {
        "name": "&function",
        "type": "Apply_Many_Function"
      },
      {
        "name": "&msg",
        "type": "Text"
      }
    ],
    "description": "Create an Apply Many function with the function name function_name using the values supplied in the Function_Property_Collection properties. For more information on which properties are available, please see Apply Many Function Properties. Any errors such as missing properties, or properties of an incorrect type, will be reported in the Text msg. A non zero function return value indicates that there was a problem creating the Apply Many function. A function return value of zero indicates the Apply Many was successfully created."
  },
  {
    "name": "Get_apply_many_function_properties",
    "id": 2736,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function",
        "type": "Apply_Many_Function"
      },
      {
        "name": "&properties",
        "type": "Function_Property_Collection"
      }
    ],
    "description": "Load the values of the Function_Property_Collection properties from the Apply Many Function function. For more information on which properties are available, please see Apply Many Function Properties. A function return value of zero indicates the get was successful."
  },
  {
    "name": "Get_apply_many_function",
    "id": 2748,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&function",
        "type": "Apply_Many_Function"
      }
    ],
    "description": "Get and existing 12d Model Apply Many Function with the name name and create an Apply_Many_Function with the values from the existing 12d Model Apply Many Function. A non zero function return value indicates that there was no 12d Model Apply Many Function with the name name, or thee was a problem creating the Apply_Many_Function. A function return value of zero indicates the creation of the Apply_Many_Function was successful."
  },
  {
    "name": "Validate_apply_many_function",
    "id": 3929,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "function",
        "type": "Apply_Many_Function"
      },
      {
        "name": "&error_count",
        "type": "Integer"
      }
    ],
    "description": "Validate given Apply_Many_Function function and set the number of errors in Integer error_count. Page 1312 12d Model Macro_Functions Chapter A function return value of zero indicates the call was successful."
  },
  {
    "name": "Create_parameter_file",
    "id": 2447,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      },
      {
        "name": "ppf_type",
        "type": "Text"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type ppf_type and clear out any information already contained in ppf. For the valid types, see Plot_Parameter_File Types. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_section_x_plot_parameter_file",
    "id": 2449,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type section_x_plot, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_melb_water_sewer_long_plot_parameter_file",
    "id": 2450,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type melb_water_sewer_long_plot, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_pipeline_long_plot_parameter_file",
    "id": 2451,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type pipeline_long_plot, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_drainage_plan_plot_parameter_file",
    "id": 2453,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type drainage_plan_plot, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_plot_frame_plot_parameter_file",
    "id": 2454,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type plot_frame_plot, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_rainfall_methods_parameter_file",
    "id": 2455,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type rainfall_methods, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_perspective_plot_parameter_file",
    "id": 3375,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type perspective_plot, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_section_plot_parameter_file",
    "id": 3376,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type section_plot, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Create_water_node_diagram_plot_parameter_file",
    "id": 3377,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Set the Plot_Parameter_File ppf to be of type water_node_diagram_plot, and clear out any information already contained in ppf. Hence if ppf already contained plot information, then all that information will be lost. A function return value of zero indicates the type is successfully set."
  },
  {
    "name": "Read_parameter_file",
    "id": 7957,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      },
      {
        "name": "filename",
        "type": "Text"
      },
      {
        "name": "expand_includes",
        "type": "Integer"
      },
      {
        "name": "clear_default",
        "type": "Integer"
      }
    ],
    "description": "Reads from disk a binary plot parameter file of file name filename and load the data into the Plot_Parameter_File ppf. The type of the Plot_Parameter_File is determined by the file extension of filename. If expand_includes is no-zero then any Includes listed in filename will be read in. Any information that is already in ppf is cleared before loading the data from filename. Some plot parameters might have some default values, if those values are not defined in the ppf file and clear_default is zero then they will remain after the read, which might cause some differences from reading the ppf file from the equivalent builtin plot panel. If clear_default is non zero, then all those default values will be clear, hence the ppf will behave the same way as the equivalent builtin plot panel. A function return value of zero indicates the file was successfully read and loaded into ppf."
  },
  {
    "name": "Write_parameter_file",
    "id": 2458,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      },
      {
        "name": "filename",
        "type": "Text"
      }
    ],
    "description": "Write out to a file on disk, the information in the Plot_Parameter_File ppf. The name of the disk file is filename, plus the appropriate extension given by the type of ppf (see Plot_Parameter_File Types) A function return value of zero indicates the file was successfully written."
  },
  {
    "name": "Get_parameter",
    "id": 2642,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      },
      {
        "name": "parameter_name",
        "type": "Text"
      },
      {
        "name": "&parameter_value",
        "type": "Element"
      }
    ],
    "description": "Get the value for the plot parameter parameter_name in the Plot_Parameter_File ppf and return it as the Element parameter_value. If the value for the plot parameter is not of type Element, then a non-zero return function return value is returned. A function return value of zero indicates the parameter value is successfully found."
  },
  {
    "name": "Set_parameter",
    "id": 2459,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      },
      {
        "name": "parameter_name",
        "type": "Text"
      },
      {
        "name": "parameter_value",
        "type": "Text"
      }
    ],
    "description": "Sets the value of the plot parameter parameter_name in the Plot_Parameter_File ppf to be the Text parameter_value. For example, setting the plot parameter box_titles_x to have the value 24.5 Note - even though a plot parameter file may be used as a real number or an integer, it is stored in the Plot_Parameter_File as a Text. A function return value of zero indicates the parameter value is successfully set."
  },
  {
    "name": "Get_parameter",
    "id": 2460,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      },
      {
        "name": "parameter_name",
        "type": "Text"
      },
      {
        "name": "&parameter_value",
        "type": "Text"
      }
    ],
    "description": "Plot Parameters Page 1323 12d Model Macro Manual so get back as text and you need to decode it. Get the value for the plot parameter parameter_name in the Plot_Parameter_File ppf and return it as the Text parameter_value. Note - if the parameter value is to be used as say an Integer, then the returned Text parameter_value will need to be decoded. If the value for the plot parameter is not of type Text, then a non-zero return function return value is returned. A function return value of zero indicates the parameter value is successfully found."
  },
  {
    "name": "Parameter_exists",
    "id": 2461,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      },
      {
        "name": "parameter_name",
        "type": "Text"
      }
    ],
    "description": "Check to see if a plot parameter of name parameter_name exists in the Plot_Parameter_File ppf. returns no-zero if exists A non-zero function return value indicates that an plot parameter exists. Warning this is the opposite of most 12dPL function return values."
  },
  {
    "name": "Remove_parameter",
    "id": 2462,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      },
      {
        "name": "parameter_name",
        "type": "Text"
      }
    ],
    "description": "Remove the plot parameter of name parameter_name and its value from the Plot_Parameter_File ppf. Note - the Plot_Parameter_File ppf does not necessarily contain values for all the possible plot parameters that are available for a given Plot_Parameter_File. Many parameters can have default values which are used if the plot parameter is not set. A function return value of zero indicates the parameter was successfully removed."
  },
  {
    "name": "Plot_parameter_file",
    "id": 2463,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ppf",
        "type": "Plot_Parameter_File"
      }
    ],
    "description": "Plot the Plot_Parameter_File ppf. Note - ppf needs to contain all the appropriate information on where the plot is plotted to. A function return value of zero indicates the plot was successfully created"
  },
  {
    "name": "Plot_parameter_file",
    "id": 2464,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file",
        "type": "Text"
      }
    ],
    "description": "Plot the plot parameter file in the binary plot parameter disk file name. Note - the file needs to contain all the appropriate information on where the plot is plotted to. A function return value of zero indicates the plot was successfully created."
  },
  {
    "name": "Plot_ppf_file",
    "id": 652,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      }
    ],
    "description": "Plot the plot parameter file in the ascii plot parameter disk file name. Note - the file needs to contain all the appropriate information on where the plot is plotted to. A function return value of zero indicates the plot was successfully created."
  },
  {
    "name": "Add_undo_add",
    "id": 1563,
    "returnType": "Undo",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Create an Undo from the Element elt and give it the name name. The Undo is automatically added to the 12d Model Undo system. Return the created Undo as the function return value. This is telling the 12d Model Undo system that a new element has been created in 12d Model. Note: the element should be added to a model first (e.g using Set_model call) before making this call Note: name is the text that appears when the Undo is displayed in the 12d Model Undo List."
  },
  {
    "name": "Add_undo_add",
    "id": 1564,
    "returnType": "Undo",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "de",
        "type": "Dynamic_Element"
      }
    ],
    "description": "Create an Undo from the Dynamic_Element de and give it the name name. The Undo is automatically added to the 12d Model Undo system. Return the created Undo as the function return value. This is telling the Undo system that a list of new element (stored in the Dynamic_Element de) has been created in 12d Model. Note: the elements should be added to a model first (e.g using Set_model call) before making this call Note: name is the text that appears when the Undo is displayed in the 12d Model Undo List."
  },
  {
    "name": "Add_undo_change",
    "id": 1565,
    "returnType": "Undo",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "duplicate_of_original",
        "type": "Element"
      },
      {
        "name": "changed",
        "type": "Element"
      }
    ],
    "description": "Undos Page 1327 12d Model Macro Manual Create an Undo from a copy of the Element duplicate_of_original and the modified Element changed, and give it the name name. The Undo is automatically added to the 12d Model Undo system. Return the created Undo called name as the function return value. The Element duplicate_of_original should not exist in a Model. The Element changed does exist in a Model. This is telling the Undo system that an Element duplicate_of_original has been modified to create the Element changed. If the Model for original is ever needed then the parent structure of original can be used to get it. Note: name is the text that appears when the Undo is displayed in the 12d Model Undo List. Example code // make a safe copy of the element before updating the content Element_duplicate(changed, original); // set model of original to null model Null(null_model); Set_model(original, null_model) // code for updating the content of changed undo_item = Add_undo_change(\"my reason for changing\", original, changed);"
  },
  {
    "name": "Add_undo_delete",
    "id": 1566,
    "returnType": "Undo",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "original",
        "type": "Element"
      },
      {
        "name": "make_copy",
        "type": "Integer"
      }
    ],
    "description": "If make_copy is non zero, create a copy of the Element original and transfer the Uid from original to the copy. If make_copy is zero, then a reference to original is use. Warning - make_copy = 0 should never be used because if original is then deleted in 12d Model, the Undo list could be corrupted. The Undo is given the name name. The Undo is automatically added to the 12d Model Undo system. Return the created Undo called name as the function return value. This is telling the Undo system that an Element original has been deleted. Note: name is the text that appears when the Undo is displayed in the 12d Model Uno List."
  },
  {
    "name": "Add_undo_range",
    "id": 1919,
    "returnType": "Undo",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "id1",
        "type": "Uid"
      },
      {
        "name": "id2",
        "type": "Uid"
      }
    ],
    "description": "Create an Undo that consists of the Uid range form id1 to id2. The Undo is given the name name. The Undo is automatically added to the 12d Model Undo system. Return the created Undo called name as the function return value. This is telling the Undo system that all the Elements in the Uid id range from Id1 to Id2 have been created. Note: name is the text that appears when the Undo is displayed in the 12d Model Undo List."
  },
  {
    "name": "Get_number_of_items",
    "id": 1557,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&undo_list",
        "type": "Undo_List"
      },
      {
        "name": "&count",
        "type": "Integer"
      }
    ],
    "description": "Get the number of items in the Undo_List undo_list and return the number in count. A function return value of zero indicates the number was successfully returned. Undos Page 1329 12d Model Macro Manual"
  },
  {
    "name": "Get_item",
    "id": 1558,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&undo_list",
        "type": "Undo_List"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "&undo",
        "type": "Undo"
      }
    ],
    "description": "Get the n\u2019th item from the Undo_List undo_list and return the item (which is an Undo) as undo. A function return value of zero indicates the Undo was successfully returned."
  },
  {
    "name": "Set_item",
    "id": 1559,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&undo_list",
        "type": "Undo_List"
      },
      {
        "name": "n",
        "type": "Integer"
      },
      {
        "name": "undo",
        "type": "Undo"
      }
    ],
    "description": "Set the n\u2019th item in the Undo_List undo_list to be the Undo undo. A function return value of zero indicates the Undo was successfully set."
  },
  {
    "name": "Append",
    "id": 1560,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "undo",
        "type": "Undo"
      },
      {
        "name": "&undo_list",
        "type": "Undo_List"
      }
    ],
    "description": "Append the Undo undo to the Undo_List undo_list. That is, the Undo undo is added to the end of the Undo_List and so the number of items in the Undo_List is increased by one. A function return value of zero indicates the Undo was successfully appended."
  },
  {
    "name": "Append",
    "id": 1561,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "list",
        "type": "Undo_List"
      },
      {
        "name": "&to_list",
        "type": "Undo_List"
      }
    ],
    "description": "Append the Undo_list list to the Undo_List to_list. A function return value of zero indicates the Undo_List was successfully appended."
  },
  {
    "name": "Add_undo_list",
    "id": 1568,
    "returnType": "Undo",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "list",
        "type": "Undo_List"
      }
    ],
    "description": "Adds the Undo_List list to the 12d Model Undo system and gives it the name name. At the same time, it automatically removes each of the Undo\u2019s in list from the 12d Model Undo system. So all the items in list are removed from the 12d Model Undo system and replaced by the one item called name."
  },
  {
    "name": "Create_ODBC_connection",
    "id": 2501,
    "returnType": "Connection",
    "parameters": [],
    "description": "Creates an ODBC connection object, which may then by used to connect to a database."
  },
  {
    "name": "Connect",
    "id": 2502,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      },
      {
        "name": "connection_string",
        "type": "Text"
      },
      {
        "name": "user",
        "type": "Text"
      },
      {
        "name": "password",
        "type": "Text"
      }
    ],
    "description": "This call attempts to connect to an external data source, with a username and password. A connection string must also be supplied. This is data source specific and ODBC driver specific. For more information on connection strings, see the vendor of the data source or data source driver. Page 1332 ODBC Macro Calls Chapter This call returns 0 if successful."
  },
  {
    "name": "Connect",
    "id": 2503,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      },
      {
        "name": "connection_string",
        "type": "Text"
      }
    ],
    "description": "This call attempts to connect to an external data source. A connection string must also be supplied. This is data source specific and ODBC driver specific. For more information on connection strings, see the vendor of the data source or data source driver. This call returns 0 if successful."
  },
  {
    "name": "Close",
    "id": 2504,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      }
    ],
    "description": "This call determines if there was an error performing an operation against the connection. This call will return 1 if there was an error."
  },
  {
    "name": "Has_error",
    "id": 2512,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      }
    ],
    "description": "This call will check if an error has occurred as the result of an operation. Has_error should always be called after any operation. If there is an error, Get_last_error can be used to retrieve the result. This call will return 0 if there is no error, and 1 if there is."
  },
  {
    "name": "Get_last_error",
    "id": 2513,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      },
      {
        "name": "&status",
        "type": "Text"
      },
      {
        "name": "&message",
        "type": "Text"
      }
    ],
    "description": "This call will get the last error, if there is one, and retrieve the status and message of the error. This call will return 0 if successful."
  },
  {
    "name": "Create_select_query",
    "id": 2528,
    "returnType": "Select_Query",
    "parameters": [],
    "description": "Creates and returns a select query object."
  },
  {
    "name": "Add_table",
    "id": 2529,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Select_Query"
      },
      {
        "name": "table_name",
        "type": "Text"
      }
    ],
    "description": "This call adds a table of a given name to the supplied query. The query will look at this table when retrieving data. This call returns 0 if successful."
  },
  {
    "name": "Add_result_column",
    "id": 2530,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Select_Query"
      },
      {
        "name": "table",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "return_as",
        "type": "Text\uf020"
      }
    ],
    "description": "This call adds a result column that belongs to a given table to the query. Note that the table must already be added for this to work. The query will retrieve that column from the supplied table when it runs, but in the results it will be called by the name you supply. The call returns 0 if successful."
  },
  {
    "name": "Add_order_by",
    "id": 2533,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Select_Query"
      },
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "sort_ascending",
        "type": "Integer\uf020"
      }
    ],
    "description": "This call will instruct the query to order the results for a column in a table. Set sort_ascending to 1 if you wish the results to be sorted in ascending order. This call returns 0 if successful."
  },
  {
    "name": "Set_limit",
    "id": 2534,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Select_Query"
      },
      {
        "name": "start",
        "type": "Integer"
      },
      {
        "name": "number_to_retrieve",
        "type": "Integer"
      }
    ],
    "description": "This call will set an upper limit on the number of results to read, as well as defining the start index of the returned results. This is useful when you have many results that you wish to return in discrete sets or pages. This call returns 0 if successful."
  },
  {
    "name": "Add_condition",
    "id": 2535,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Select_Query"
      },
      {
        "name": "condition",
        "type": "Query_Condition"
      }
    ],
    "description": "This call will add a query condition to a select query. A query condition will allow you to constrain your results to defined values. See the section 5.67.8 Query Conditions on how to create and defined Query Conditions. This call returns 0 if successful."
  },
  {
    "name": "Execute",
    "id": 2505,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      },
      {
        "name": "query",
        "type": "Select_Query"
      }
    ],
    "description": "This call will execute a created select query for a scalar value. The return value of the call will be the result of the query."
  },
  {
    "name": "Execute",
    "id": 2506,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      },
      {
        "name": "query",
        "type": "Select_Query"
      },
      {
        "name": "&result",
        "type": "Database_Result"
      }
    ],
    "description": "This call will execute a created select query and return a set of results in the result argument. See the section on 5.67.3 Navigating results with Database_Result for more information on the Database_Result object. This call will return 0 if successful."
  },
  {
    "name": "Move_next",
    "id": 2514,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      }
    ],
    "description": "This call moves a database result to the next row. Depending on your provider, you may need to call this before reading the first row. This call will return 0 if the Database_Result was able to move to the next row."
  },
  {
    "name": "Close",
    "id": 2515,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      }
    ],
    "description": "This call will close a database result. This is generally good practise as your data provider may not allow more than one Database_Result to exist at one time. This call will return 0 if successful."
  },
  {
    "name": "Get_result_column",
    "id": 2516,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "column",
        "type": "Integer"
      },
      {
        "name": "&res",
        "type": "Text"
      }
    ],
    "description": "This call will retrieve a text value from a Database_Result, at the current index as given by column. The value will be stored in res. This call will return 0 if successful."
  },
  {
    "name": "Get_result_column",
    "id": 2517,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "column",
        "type": "Integer"
      },
      {
        "name": "&res",
        "type": "Integer"
      }
    ],
    "description": "This call will retrieve an Integer value from a Database_Result, at the current index as given by column. The value will be stored in res. This call will return 0 if successful."
  },
  {
    "name": "Get_result_column",
    "id": 2518,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "column",
        "type": "Integer"
      },
      {
        "name": "&res",
        "type": "Real"
      }
    ],
    "description": "This call will retrieve a Real value from a Database_Result, at the current index as given by ODBC Macro Calls Page 1337 12d Model Macro Manual column. The value will be stored in res. This call will return 0 if successful."
  },
  {
    "name": "Get_time_result_column",
    "id": 2519,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "column",
        "type": "Integer"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "This call will retrieve a timestamp, as an Integer value, from a Database_Result, at the current index as given by column. The value will be stored in res. This call will return 0 if successful."
  },
  {
    "name": "Get_result_column",
    "id": 2520,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "column",
        "type": "Text"
      },
      {
        "name": "&res",
        "type": "Text"
      }
    ],
    "description": "This call will retrieve a text value from a Database_Result, from the column named by the argument column. The value will be stored in res. This call will return 0 if successful."
  },
  {
    "name": "Get_result_column",
    "id": 2521,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "column",
        "type": "Text"
      }
    ],
    "description": "This call will retrieve an Integer value from a Database_Result, from the column named by the argument column. The value will be stored in res. This call will return 0 if successful."
  },
  {
    "name": "Get_result_column",
    "id": 2522,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "column",
        "type": "Text"
      },
      {
        "name": "&res",
        "type": "Real"
      }
    ],
    "description": "This call will retrieve a Real value from a Database_Result, from the column named by the argument column. The value will be stored in res. This call will return 0 if successful."
  },
  {
    "name": "Get_time_result_column",
    "id": 2523,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "result",
        "type": "Database_Result"
      },
      {
        "name": "column",
        "type": "Text"
      },
      {
        "name": "&time",
        "type": "Integer"
      }
    ],
    "description": "This call will retrieve a timestamp value, as an Integer, from a Database_Result, from the column named by the argument column. The value will be stored in res. This call will return 0 if successful."
  },
  {
    "name": "Create_insert_query",
    "id": 2536,
    "returnType": "Insert_Query",
    "parameters": [
      {
        "name": "table",
        "type": "Text"
      }
    ],
    "description": "This call creates and returns an insert query object. The insert will be applied against the value supplied in table."
  },
  {
    "name": "Add_data",
    "id": 2537,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Insert_Query"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "This call will add Integer data to be inserted to a created Insert_Query when it is executed. The data will be inserted into the column named by the column_name argument. This call returns 0 if successful."
  },
  {
    "name": "Add_data",
    "id": 2538,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Insert_Query"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "This call will add Text data to be inserted to a created Insert_Query when it is executed. The data will be inserted into the column named by the column_name argument. This call returns 0 if successful."
  },
  {
    "name": "Add_data",
    "id": 2539,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Insert_Query"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "This call will add Real data to be inserted to a created Insert_Query when it is executed. The data will be inserted into the column named by the column_name argument. This call returns 0 if successful."
  },
  {
    "name": "Add_time_data",
    "id": 2540,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Insert_Query"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "time",
        "type": "Integer"
      }
    ],
    "description": "This call will add timestamp data, stored as an Integer value, to be inserted to a created Insert_Query when it is executed. The data will be inserted into the column named by the column_name argument. This call returns 0 if successful."
  },
  {
    "name": "Execute",
    "id": 2507,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      },
      {
        "name": "query",
        "type": "Insert_Query"
      }
    ],
    "description": "This call will execute a created Insert_Query against the data provider to insert some new data. This call will return 0 if successful."
  },
  {
    "name": "Create_update_query",
    "id": 2541,
    "returnType": "Update_Query",
    "parameters": [
      {
        "name": "table",
        "type": "Text"
      }
    ],
    "description": "This call creates and returns an Update_Query. The update query will be applied against the table Page 1340 ODBC Macro Calls Chapter given by the table argument."
  },
  {
    "name": "Add_data",
    "id": 2542,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Update_Query"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "This call will add Integer data for a column update, when the Update_Query is executed. The data will be updated for the column named by the column_name argument. This call returns 0 if successful."
  },
  {
    "name": "Add_data",
    "id": 2543,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Update_Query"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "This call will add Text data for a column update, when the Update_Query is executed. The data will be updated for the column named by the column_name argument. This call returns 0 if successful."
  },
  {
    "name": "Add_data",
    "id": 2544,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Update_Query"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "This call will add Real data for a column update, when the Update_Query is executed. The data will be updated for the column named by the column_name argument. This call returns 0 if successful."
  },
  {
    "name": "Add_time_data",
    "id": 2545,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Update_Query"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "time",
        "type": "Integer"
      }
    ],
    "description": "This call will add timestamp data, stored as an Integer value, for a column update, when the Update_Query is executed. The data will be updated for the column named by the column_name argument. This call returns 0 if successful."
  },
  {
    "name": "Execute",
    "id": 2508,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      },
      {
        "name": "query",
        "type": "Update_Query"
      }
    ],
    "description": "This call will execute a created Update_Query against the data provider to update existing data. This call will return 0 if successful."
  },
  {
    "name": "Create_delete_query",
    "id": 2547,
    "returnType": "Delete_Query",
    "parameters": [
      {
        "name": "table",
        "type": "Text"
      }
    ],
    "description": "This call will create and return a Delete_Query. When it is executed, it will delete data from the table named by the table argument."
  },
  {
    "name": "Add_condition",
    "id": 2548,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Delete_Query"
      },
      {
        "name": "condition",
        "type": "Query_Condition"
      }
    ],
    "description": "This call will add a Query_Condition to a Delete_Query. Adding a Query_Condition will allow you to constrain which rows of data are deleted from the table. This call will return 0 if successful."
  },
  {
    "name": "Create_manual_query",
    "id": 2549,
    "returnType": "Manual_Query",
    "parameters": [
      {
        "name": "query_text",
        "type": "Text"
      }
    ],
    "description": "This call will create a new Manual_Query. The SQL for the query must be supplied in the query_text argument."
  },
  {
    "name": "Get_parameters",
    "id": 2550,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "query",
        "type": "Manual_Query"
      },
      {
        "name": "parameters",
        "type": "Parameter_Collection"
      }
    ],
    "description": "This call will retrieve the set of Parameters that a Manual Query uses. Parameters are not required but provide greater security when using user input. See the section on Parameters for more details. This call will return 0 if successful."
  },
  {
    "name": "Execute",
    "id": 2510,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      },
      {
        "name": "query",
        "type": "Manual_Query"
      }
    ],
    "description": "This call will execute a created Manual_Query against the data provider to perform a custom operation. This call will return 0 if successful."
  },
  {
    "name": "Create_value_condition",
    "id": 2555,
    "returnType": "Query_Condition",
    "parameters": [
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "operator",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "This call creates and returns a Value Condition Query Condition for a given table, column, operation Page 1344 ODBC Macro Calls Chapter and Text value. See the list of operators for available values of operator. When executed, the data provider will check that the value in column colum_name inside table table_name matches (as appropriate for the given operator) against the supplied value."
  },
  {
    "name": "Create_value_condition",
    "id": 2556,
    "returnType": "Query_Condition",
    "parameters": [
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "operator",
        "type": "Integer"
      }
    ],
    "description": "This call creates and returns a Value Condition Query Condition for a given table, column, operation and Integer value. See the list of operators for available values of operator. When executed, the data provider will check that the value in column colum_name inside table table_name matches (as appropriate for the given operator) against the supplied value."
  },
  {
    "name": "Create_value_condition",
    "id": 2557,
    "returnType": "Query_Condition",
    "parameters": [
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "operator",
        "type": "Integer"
      }
    ],
    "description": "This call creates and returns a Value Condition Query Condition for a given table, column, operation and Real value. See the list of operators for available values of operator. When executed, the data provider will check that the value in column colum_name inside table table_name matches (as appropriate for the given operator) against the supplied value."
  },
  {
    "name": "Create_time_value_condition",
    "id": 2558,
    "returnType": "Query_Condition",
    "parameters": [
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "operator",
        "type": "Integer"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "This call creates and returns a Value Condition Query Condition for a given table, column, operation and timestamp value, as defined by an Integer. See the list of operators for available values of operator. When executed, the data provider will check that the value in column colum_name inside table table_name matches (as appropriate for the given operator) against the supplied value."
  },
  {
    "name": "Create_column_match_condition",
    "id": 2559,
    "returnType": "Query_Condition",
    "parameters": [
      {
        "name": "left_table",
        "type": "Text"
      },
      {
        "name": "left_column",
        "type": "Text"
      },
      {
        "name": "operator",
        "type": "Integer"
      },
      {
        "name": "right_table",
        "type": "Text"
      },
      {
        "name": "right_column",
        "type": "Text"
      }
    ],
    "description": "ODBC Macro Calls Page 1345 12d Model Macro Manual This call will create and return a Column Match Query Condition to match two columns in two tables against each other, using a supplied operator. When executed, the data provider will check that the left_column in table left_table matches (as appropriate for the given operator) against the right_column in table right_table."
  },
  {
    "name": "Create_value_in_sub_query_condition",
    "id": 2560,
    "returnType": "Query_Condition",
    "parameters": [
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "sub_query",
        "type": "Select_Query"
      }
    ],
    "description": "This call will create and return a Value In Sub Query Query_Condition, to match the value of a column against the results of another query. When executed, the data provider will check that the value in column column_name in table table_name is or is not inside (as defined by not_in) the results of the Select Query, sub_query."
  },
  {
    "name": "Create_value_in_list_condition",
    "id": 2561,
    "returnType": "Query_Condition",
    "parameters": [
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "not_in",
        "type": "Integer\uf020"
      },
      {
        "name": "values",
        "type": "Dynamic_Integer"
      }
    ],
    "description": "This call will create and return a Value In List Query_Condition, to see if the value of a column is in a list of integers. When executed, the data provider will check that the value in column column_name in table table_name is or is not inside (as defined by not_in) the list defined by values."
  },
  {
    "name": "Create_value_in_list_condition",
    "id": 2562,
    "returnType": "Query_Condition",
    "parameters": [
      {
        "name": "table_name",
        "type": "Text"
      },
      {
        "name": "column_name",
        "type": "Text"
      },
      {
        "name": "not_in",
        "type": "Integer\uf020"
      },
      {
        "name": "values",
        "type": "Dynamic_Text"
      }
    ],
    "description": "This call will create and return a Value In List Query_Condition, to see if the value of a column is in a list of Text values. When executed, the data provider will check that the value in column column_name in table table_name is or is not inside (as defined by not_in) the list defined by values."
  },
  {
    "name": "Create_manual_condition",
    "id": 2564,
    "returnType": "Manual_Condition",
    "parameters": [
      {
        "name": "sql",
        "type": "Text"
      }
    ],
    "description": "This call will create a Manual Query_Condition. The operation of the manual condition is totally defined by the SQL fragment defined in argument sql."
  },
  {
    "name": "Add_table",
    "id": 2565,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "manual",
        "type": "Manual_Condition"
      },
      {
        "name": "table",
        "type": "Text"
      }
    ],
    "description": "This call will add a table to be used by a Manual Condition. This is required when using Parameters. This call will return 0 if successful."
  },
  {
    "name": "Get_parameters",
    "id": 2566,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "manual",
        "type": "Manual_Condition"
      },
      {
        "name": "&param",
        "type": "Parameter_Collection"
      }
    ],
    "description": "This call will add a table to be used by a Manual Condition. This is required when using Parameters. See the section on Parameters for more information. This call will return 0 if successful."
  },
  {
    "name": "Create_transaction",
    "id": 2524,
    "returnType": "Transaction",
    "parameters": [
      {
        "name": "connection",
        "type": "Connection"
      }
    ],
    "description": "This call creates and returns a transaction object for a given Connection."
  },
  {
    "name": "Begin_transaction",
    "id": 2525,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "transaction",
        "type": "Transaction"
      }
    ],
    "description": "This call begins a new transaction. It will return 0 if successful."
  },
  {
    "name": "Commit_transaction",
    "id": 2526,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "transaction",
        "type": "Transaction"
      }
    ],
    "description": "This call will commit the operations performed inside a transaction to the data provider. The call will return 0 if successful."
  },
  {
    "name": "Rollback_transaction",
    "id": 2527,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "transaction",
        "type": "Transaction"
      }
    ],
    "description": "This call will cancel or rollback the operations performed inside a transaction from the data provider. The call will return 0 if successful."
  },
  {
    "name": "Add_parameter",
    "id": 2551,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "parameters",
        "type": "Parameter_Collection"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "This call will add a new Integer parameter to a Parameter_Collection. This will return 0 if successful."
  },
  {
    "name": "Add_parameter",
    "id": 2552,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "parameters",
        "type": "Parameter_Collection"
      },
      {
        "name": "value",
        "type": "Text"
      }
    ],
    "description": "This call will add a new Text parameter to a Parameter_Collection. This will return 0 if successful."
  },
  {
    "name": "Add_parameter",
    "id": 2553,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "parameters",
        "type": "Parameter_Collection"
      },
      {
        "name": "value",
        "type": "Real"
      }
    ],
    "description": "This call will add a new Real parameter to a Parameter_Collection. This will return 0 if successful."
  },
  {
    "name": "Add_time_parameter",
    "id": 2554,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "parameters",
        "type": "Parameter_Collection"
      },
      {
        "name": "value",
        "type": "Integer"
      }
    ],
    "description": "This call will add a new timestamp parameter, from an Integer value, to a Parameter_Collection. This will return 0 if successful."
  },
  {
    "name": "Synergy_connect",
    "id": 3102,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "server",
        "type": "Text"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Connect 12D Model to the 12D Synergy server of given name server. The Text error would be set to the corresponding message if the connection failed. A function return value of zero indicates the connection was successful."
  },
  {
    "name": "Synergy_connect",
    "id": 3103,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "server",
        "type": "Text"
      },
      {
        "name": "user",
        "type": "Text"
      },
      {
        "name": "password",
        "type": "Text"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Connect 12D Model to the 12D Synergy server of given name server; and given credential user (name) and password. The Text error would be set to the corresponding message if the connection failed. A function return value of zero indicates the connection was successful."
  },
  {
    "name": "Synergy_check_out",
    "id": 3110,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "job",
        "type": "Text"
      },
      {
        "name": "path_to_file",
        "type": "Text"
      },
      {
        "name": "perform_download",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Check out Synergy file with given job; and path_to_file. If the Integer parameter perform_download is 1 then 12D Synergy will download the file if it does not exist in the local folder. The Text error would be set to the corresponding message if the checkout operation failed. A function return value of zero indicates the checkout operation was successful."
  },
  {
    "name": "Synergy_get",
    "id": 3118,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "job",
        "type": "Text"
      },
      {
        "name": "path_to_file",
        "type": "Text"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get the latest version of Synergy file with given job; and path_to_file. The Text error would be set to the corresponding message if the get operation failed. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Synergy_get",
    "id": 3119,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "job",
        "type": "Text"
      },
      {
        "name": "path_to_file",
        "type": "Text"
      },
      {
        "name": "version",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Get a given version revision number of Synergy file with given job; and path_to_file. The Text error would be set to the corresponding message if the get operation failed. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Synergy_build_attribute_string",
    "id": 3787,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attrib_name",
        "type": "Text"
      },
      {
        "name": "attrib_value",
        "type": "Text"
      },
      {
        "name": "&serialized_string",
        "type": "Text"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "For many Synergy integration macro call, the parameters Text attribute or Dynamic_Text attribute require a special (XML like) syntax called serialized_string. This is a helper call to form the serialized attribute string from given attrib_name and attrib_value. The Text error would be set to the corresponding message if the call failed. A function return value of zero indicates the call was successful."
  },
  {
    "name": "Synergy_get_workspace_path",
    "id": 3800,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "job",
        "type": "Text"
      },
      {
        "name": "entity_path",
        "type": "Text"
      },
      {
        "name": "&path",
        "type": "Text"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Not yet working, waiting for respond from Synergy team. The Text error would be set to the corresponding message if the get operation failed. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Synergy_local_folder",
    "id": 5446,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "synergy_folder_path",
        "type": "Text"
      },
      {
        "name": "&local_path",
        "type": "Text"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Given a Synergy folder path synergy_folder_path, return the corresponding local path in local_path The Text error would be set to the corresponding message if the get operation failed. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Share_out_model",
    "id": 7783,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "share_out_as",
        "type": "Text"
      }
    ],
    "description": "Share out a model with given model_name from the current project. If share_out_as is not blank, then use that as the share out name A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Share_out_tin",
    "id": 7784,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "share_out_as",
        "type": "Text"
      }
    ],
    "description": "Share out a tin with given tin_name from the current project. If share_out_as is not blank, then use that as the share out name A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Unshare_out_model",
    "id": 7885,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "Unshare out a model with given model_name. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Unshare_out_tin",
    "id": 7886,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_name",
        "type": "Text"
      }
    ],
    "description": "Unshare out a tin with given tin_name. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Share_in_model",
    "id": 7785,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "project_path",
        "type": "Text"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "share_in_as",
        "type": "Text"
      },
      {
        "name": "use_relative_sharing",
        "type": "Integer"
      },
      {
        "name": "&shared_in_model",
        "type": "Model"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Share in a model with model_name from project_path into the current project. If share_in_as is not blank, then use that as the share in name. The share will be relative if use_relative_sharing is non zero. The result model will be shared_in_model. Any error message will be returned in return_message. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Share_in_tin",
    "id": 7786,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "project_path",
        "type": "Text"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "share_in_as",
        "type": "Text"
      },
      {
        "name": "use_relative_sharing",
        "type": "Integer"
      },
      {
        "name": "&shared_in_tin",
        "type": "Tin"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Share in a tin with tin_name from project_path into the current project. If share_in_as is not blank, then use that as the share in name. The share will be relative if use_relative_sharing is non zero. The result tin will be shared_in_tin. Any error message will be returned in return_message. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Share_in_tin",
    "id": 7840,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "project_path",
        "type": "Text"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "share_in_as",
        "type": "Text"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "use_relative_sharing",
        "type": "Integer"
      },
      {
        "name": "&shared_in_tin",
        "type": "Tin"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Share in a tin with tin_name from project_path into the current project. If share_in_as is not blank, then use that as the share in name. The shared tin will be in the model of given name model_name. The share will be relative if use_relative_sharing is non zero. The result tin will be shared_in_tin. Models Tins Sharing Page 1355 12d Model Macro Manual Any error message will be returned in return_message. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Remove_shared_in_model",
    "id": 7787,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "Remove the shared in model with model_name from the current project. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Remove_shared_in_tin",
    "id": 7788,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_name",
        "type": "Text"
      }
    ],
    "description": "Remove the shared in tin of given tin_name from the current project. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Synchronize_shared_in_model",
    "id": 7789,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Synchronize the shared in model of given model_name. Any error message will be returned in return_message. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Synchronize_shared_in_tin",
    "id": 7790,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Synchronize the shared in tin of given tin_name. Any error message will be returned in return_message. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Synchronize_all_shared_in_models",
    "id": 7792,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Synchronize all shared in models of the current project. Any error message will be returned in return_message. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Synchronize_all_share_in_tins",
    "id": 7793,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Synchronize all shared in tins of the current project. Any error message will be returned in return_message. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Synchronize_all_master_share_ins",
    "id": 7794,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&return_message",
        "type": "Text"
      }
    ],
    "description": "Synchronize all shared from the master share file of the current project. Any error message will be returned in return_message. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_create",
    "id": 7861,
    "returnType": "Integer",
    "parameters": [],
    "description": "Create a new highlight instance. A function return the Integer id of the newly created instance."
  },
  {
    "name": "Highlight_remove",
    "id": 7862,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      }
    ],
    "description": "Removed the highlight instance of given id. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_draw",
    "id": 7863,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      }
    ],
    "description": "Draw the highlight instance of given id. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_redraw",
    "id": 7864,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      }
    ],
    "description": "Redraw the highlight instance of given id. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_reset",
    "id": 7866,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      }
    ],
    "description": "Reset the highlight instance of given id. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_add_point",
    "id": 7867,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "style",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "size",
        "type": "Real"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "angle",
        "type": "Real"
      }
    ],
    "description": "Add a point to the highlight instance of given id. The Integer style determines the style (shape) of the highlight: 0 Cross 1 Cursor 2 Diamond 3 Square 4 Circle 5 X-Cross 6 Triangle 7 Move 8 Arrow 9 Broadhead A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_add_line",
    "id": 7868,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "xe",
        "type": "Real"
      },
      {
        "name": "ye",
        "type": "Real"
      }
    ],
    "description": "Add a line to the highlight instance of given id. A function return value of zero indicates the get operation was successful. Highlight Page 1359 12d Model Macro Manual"
  },
  {
    "name": "Highlight_add_arc",
    "id": 7869,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "xs",
        "type": "Real"
      },
      {
        "name": "ys",
        "type": "Real"
      },
      {
        "name": "xe",
        "type": "Real"
      },
      {
        "name": "ye",
        "type": "Real"
      },
      {
        "name": "radius",
        "type": "Real"
      },
      {
        "name": "major",
        "type": "Integer"
      }
    ],
    "description": "Add an arc to the highlight instance of given id. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_add_string",
    "id": 7870,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "string",
        "type": "Element"
      }
    ],
    "description": "Add a string to the highlight instance of given id. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_add_text",
    "id": 7871,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "colour",
        "type": "Integer"
      },
      {
        "name": "x",
        "type": "Real"
      },
      {
        "name": "y",
        "type": "Real"
      },
      {
        "name": "ts_data",
        "type": "Textstyle_Data"
      },
      {
        "name": "text",
        "type": "Text"
      }
    ],
    "description": "Add a text to the highlight instance of given id. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_delete_all",
    "id": 7872,
    "returnType": "Integer",
    "parameters": [],
    "description": "Delete all highlight instances. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Highlight_set_weight",
    "id": 7891,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "id",
        "type": "Integer"
      },
      {
        "name": "weight",
        "type": "Real"
      }
    ],
    "description": "Set the line weight for the highlight instance of given id. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Set_pit_details",
    "id": 3905,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Run_dws_network",
    "id": 3906,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Regrade_pipes",
    "id": 3907,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Run_drainage_analysis",
    "id": 3908,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Run_drainage_analysis_dynamic",
    "id": 3909,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model",
        "type": "Model"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Get_last_dot",
    "id": 3939,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      }
    ],
    "description": "Return the index of the last dot of a given file_name."
  },
  {
    "name": "Remove_file_extension",
    "id": 3940,
    "returnType": "Text",
    "parameters": [
      {
        "name": "file_name",
        "type": "Text"
      }
    ],
    "description": "Return the name without file extension from a given input file_name."
  },
  {
    "name": "Set_pit_details",
    "id": 3941,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Regrade_pipes",
    "id": 3942,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Run_drainage_analysis",
    "id": 3943,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Run_dws_network",
    "id": 3945,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "model_name",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Run_slf_data",
    "id": 3949,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "slf_data",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Plot_mps",
    "id": 3950,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "mps_file",
        "type": "Text"
      },
      {
        "name": "mode",
        "type": "Integer"
      },
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "ranges",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_attributes",
    "id": 5425,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name at the top level of Attributes attr. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_attributes_with_type",
    "id": 5426,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "attr",
        "type": "Attributes"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name for each attribute type at the top level of Attributes attr. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_element_attributes",
    "id": 5427,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name at the top level of element attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_element_attributes_with_type",
    "id": 5428,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name for each element type at the top level of element attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_segment_attributes",
    "id": 5429,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name at the top level of super string segment attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_vertex_attributes",
    "id": 5431,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name at the top level of super string vertex attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_vertex_attributes_with_type",
    "id": 5432,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name for each element type at the top level of super string vertex attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_drainage_pit_attributes",
    "id": 5433,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name at the top level of drainage string node (pit) attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_drainage_pit_attributes_with_type",
    "id": 5434,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name for each element type at the top level of drainage string node (pit) attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_drainage_pipe_attributes",
    "id": 5435,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name at the top level of drainage string link (pipe) attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Check_unique_drainage_pipe_attributes_with_type",
    "id": 5436,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "els",
        "type": "Dynamic_Element"
      },
      {
        "name": "&are_unique_names",
        "type": "Integer"
      },
      {
        "name": "&are_unique_names_case_insensitive",
        "type": "Integer"
      }
    ],
    "description": "Check for unique name for each element type at the top level of drainage string link (pipe) attributes from a Dynamic_Element els. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Do_not_use",
    "id": 5448,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&t1",
        "type": "Text"
      },
      {
        "name": "&t2",
        "type": "Text"
      },
      {
        "name": "&t3",
        "type": "Text"
      },
      {
        "name": "&t4",
        "type": "Text"
      },
      {
        "name": "&t5",
        "type": "Text"
      },
      {
        "name": "&r1",
        "type": "Real"
      },
      {
        "name": "&r2",
        "type": "Real"
      },
      {
        "name": "&i1",
        "type": "Integer"
      },
      {
        "name": "&i2",
        "type": "Integer"
      },
      {
        "name": "&i3",
        "type": "Integer"
      }
    ],
    "description": "Programmers testing. A function return value of zero indicates the get operation was successful."
  },
  {
    "name": "Run_slf_data",
    "id": 7532,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "slf_data",
        "type": "Text"
      },
      {
        "name": "pr_count",
        "type": "Integer"
      },
      {
        "name": "pr_widget_path",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_widget_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_param_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_active",
        "type": "Dynamic_Integer"
      },
      {
        "name": "pvf_file",
        "type": "Text"
      },
      {
        "name": "clean_up",
        "type": "Integer"
      },
      {
        "name": "interactive",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the call operation was successful."
  },
  {
    "name": "Run_slf_file",
    "id": 7533,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "slf_file",
        "type": "Text"
      },
      {
        "name": "pr_count",
        "type": "Integer"
      },
      {
        "name": "pr_widget_path",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_widget_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_param_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_active",
        "type": "Dynamic_Integer"
      },
      {
        "name": "pvf_file",
        "type": "Text"
      },
      {
        "name": "clean_up",
        "type": "Integer"
      },
      {
        "name": "interactive",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the call operation was successful."
  },
  {
    "name": "Run_slf_data",
    "id": 7534,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "slf_data",
        "type": "Text"
      },
      {
        "name": "pr_count",
        "type": "Integer"
      },
      {
        "name": "pr_widget_path",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_widget_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_param_name",
        "type": "Dynamic_Text"
      },
      {
        "name": "pr_active",
        "type": "Dynamic_Integer"
      },
      {
        "name": "bt_count",
        "type": "Integer"
      },
      {
        "name": "bt_names",
        "type": "Dynamic_Text"
      },
      {
        "name": "panel_name",
        "type": "Text"
      },
      {
        "name": "pvf_file",
        "type": "Text"
      },
      {
        "name": "clean_up",
        "type": "Integer"
      },
      {
        "name": "interactive",
        "type": "Integer"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "A function return value of zero indicates the call operation was successful."
  },
  {
    "name": "Set_macro_attributes",
    "id": 3846,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the macro, set the Attributes to att. A function return value of zero indicates the Attributes was successfully set. Page 1368 Internal Macro Calls Chapter"
  },
  {
    "name": "Get_macro_attributes",
    "id": 3845,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the macro, return the Attributes for the macro as att. If the macro has no attribute then a non-zero return value is returned. A function return value of zero indicates the attribute is successfully returned."
  },
  {
    "name": "Get_macro_attribute",
    "id": 7538,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Uid"
      }
    ],
    "description": "For the macro, get the attribute called att_name and return the attribute value in uid. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_macro_attribute",
    "id": 7539,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the macro, get the attribute called att_name and return the attribute value in att. The attribute must be of type Attributes. If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Get_macro_attribute",
    "id": 7546,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&uid",
        "type": "Uid"
      }
    ],
    "description": "For the macro, get the attribute with number att_no and return the attribute value in uid. The attribute must be of type Uid. If the attribute is not of type Uid then a non-zero return value is returned. Internal Macro Calls Page 1369 12d Model Macro Manual A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Get_macro_attribute",
    "id": 7547,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Attributes"
      }
    ],
    "description": "For the macro, get the attribute with number att_no and return the attribute value in att. The attribute must be of type Attributes. If the attribute is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully returned. Note - the Get_attribute_type call can be used to get the type of the attribute with attribute number att_no."
  },
  {
    "name": "Set_macro_attribute",
    "id": 7556,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the macro, if the attribute called att_name does not exist then create it as type Uid and give it the value uid.\uf020 if the attribute called att_name does exist and it is type Uid, then set its value to uid. If the attribute exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_macro_attribute",
    "id": 7557,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the macro,\uf020 if the attribute called att_name does not exist then create it as type Attributes and give it the value att.\uf020 if the attribute called att_name does exist and it is type Attributes, then set its value to att. If the attribute exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_name."
  },
  {
    "name": "Set_macro_attribute",
    "id": 7564,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "uid",
        "type": "Uid"
      }
    ],
    "description": "For the macro, if the attribute number att_no exists and it is of type Uid, then its value is set to uid. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Uid then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Set_macro_attribute",
    "id": 7565,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Attributes"
      }
    ],
    "description": "For the macro, if the attribute number att_no exists and it is of type Attributes, then its value is set to att. If there is no attribute with number att_no then nothing can be done and a non-zero return code is returned. If the attribute of number att_no exists and is not of type Attributes then a non-zero return value is returned. A function return value of zero indicates the attribute value is successfully set. Note - the Get_attribute_type call can be used to get the type of the attribute called att_no."
  },
  {
    "name": "Macro_attribute_exists",
    "id": 3847,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Checks to see if a macro attribute with the name att_name exists in current macro. A non-zero function return value indicates that the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Macro_attribute_exists",
    "id": 3848,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "name",
        "type": "Text"
      },
      {
        "name": "&no",
        "type": "Integer"
      }
    ],
    "description": "Internal Macro Calls Page 1371 12d Model Macro Manual Checks to see if a macro attribute with the name name exists in current macro. If the attribute exists, its position is returned in Integer no. This position can be used in other Attribute functions described below. A non-zero function return value indicates the attribute does exist. A zero function return value indicates that no attribute of that name exists. Warning this is the opposite of most 12dPL function return values"
  },
  {
    "name": "Macro_attribute_delete",
    "id": 3849,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      }
    ],
    "description": "Delete the macro attribute with the name att_name in current macro. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Macro_attribute_delete",
    "id": 3859,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      }
    ],
    "description": "Delete the macro attribute with the Integer att_no in current macro. A function return value of zero indicates the attribute was deleted."
  },
  {
    "name": "Macro_attribute_delete_all",
    "id": 3851,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "elt",
        "type": "Element"
      }
    ],
    "description": "Delete all the attributes for the macro. Element elt has nothing to do with this call and is ignored. A function return value of zero indicates all the attributes were deleted."
  },
  {
    "name": "Macro_attribute_dump",
    "id": 7536,
    "returnType": "Integer",
    "parameters": [],
    "description": "Write out information about the macro attributes to the Output Window. A function return value of zero indicates the function was successful."
  },
  {
    "name": "Get_macro_number_of_attributes",
    "id": 3852,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&no_atts",
        "type": "Integer"
      }
    ],
    "description": "Get number of attributes Integer no_atts in current macro. A function return value of zero indicates the number is successfully returned."
  },
  {
    "name": "Get_macro_attribute_name",
    "id": 7551,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&name",
        "type": "Text"
      }
    ],
    "description": "Get macro attribute name Text name with attribute number Integer att_no in current macro. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Get_macro_attribute_length",
    "id": 7554,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "Get the length of the macro attribute at position att_no. The macro attribute length is returned in att_len. A function return value of zero indicates the attribute type was successfully returned. Note The length is useful for user attributes of type Text and Binary (Blobs)."
  },
  {
    "name": "Get_macro_attribute_length",
    "id": 7555,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_len",
        "type": "Integer"
      }
    ],
    "description": "Get the length of the macro attribute with the name att_name for the current macro. The macro attribute length is returned in att_len. A function return value of zero indicates the attribute type was successfully returned. Note The length is useful for user attributes of type Text and Binary (Blobs)."
  },
  {
    "name": "Get_macro_attribute_type",
    "id": 7552,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the macro attribute with the name att_name from the current macro. The macro attribute type is returned in Integer att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_macro_attribute_type",
    "id": 7553,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att_type",
        "type": "Integer"
      }
    ],
    "description": "Get the type of the macro attribute at position att_no for the current macro. The macro attribute type is returned in att_type. For the list of attribute types, go to Data Type Attribute Type. A function return value of zero indicates the attribute type was successfully returned."
  },
  {
    "name": "Get_macro_attribute",
    "id": 3855,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "Get macro attribute Real att with attribute name Text att_name in current macro. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_macro_attribute",
    "id": 3858,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "Set the macro attribute with name att_name to the Real att. The macro attribute must be of type Real A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Set_macro_attribute",
    "id": 3857,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Integer"
      }
    ],
    "description": "Set the macro attribute with name att_name to the Integer att. The macro attribute must be of type Integer A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Get_macro_attribute",
    "id": 3853,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "Get macro attribute Text att with attribute number Integer att_no in current macro. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_macro_attribute",
    "id": 3856,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "Set the macro attribute at position att_no to the Text att. The macro attribute must be of type Text A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Get_macro_attribute",
    "id": 7544,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Integer"
      }
    ],
    "description": "Get macro attribute Integer att with attribute number Integer att_no in current macro. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Get_macro_attribute",
    "id": 7545,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "&att",
        "type": "Real"
      }
    ],
    "description": "Get macro attribute Real att with attribute number Integer att_no in current macro. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_macro_attribute",
    "id": 7563,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_no",
        "type": "Integer"
      },
      {
        "name": "att",
        "type": "Real"
      }
    ],
    "description": "Set the macro attribute at position att_no to the Real att. The macro attribute must be of type Real A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Get_macro_attribute",
    "id": 3853,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "&att",
        "type": "Text"
      }
    ],
    "description": "Get macro attribute Text att with attribute name Text att_name in current macro. A function return value of zero indicates the name is successfully returned."
  },
  {
    "name": "Set_macro_attribute",
    "id": 3856,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "att_name",
        "type": "Text"
      },
      {
        "name": "att",
        "type": "Text"
      }
    ],
    "description": "Set the macro attribute with name att_name to the Text att. The macro attribute must be of type Text Page 1376 Internal Macro Calls Chapter A function return value of zero indicates the attribute was successfully set."
  },
  {
    "name": "Macro_attribute_delete_all",
    "id": 7535,
    "returnType": "Integer",
    "parameters": [],
    "description": "Delete all the macro attributes. A function return value of zero indicates all the attribute were successfully deleted."
  },
  {
    "name": "Create_chain_parameters",
    "id": 7600,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "pvf_file",
        "type": "Text"
      },
      {
        "name": "&created",
        "type": "Chain_Parameters"
      }
    ],
    "description": "Create a new chain parameter created object using given chain parameter file pvf_file. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Write_to_file",
    "id": 7961,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "file",
        "type": "Text"
      }
    ],
    "description": "Write the content of chain parameter ch to a given file. A function return value of zero indicates the call were successful."
  },
  {
    "name": "Resolve_parameter",
    "id": 7602,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "raw",
        "type": "Text"
      },
      {
        "name": "&resolved",
        "type": "Text"
      }
    ],
    "description": "Resolve the chain parameter raw using Chain_Parameters ch and set the resolved parameter to Internal Macro Calls Page 1377 12d Model Macro Manual resolved. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Resolve_parameter_strict",
    "id": 7603,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "raw",
        "type": "Text"
      },
      {
        "name": "&resolved",
        "type": "Text"
      }
    ],
    "description": "Strictly resolve the chain parameter raw using Chain_Parameters ch and set the resolved parameter to resolved. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_integer_value",
    "id": 7604,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "para_val",
        "type": "Integer"
      }
    ],
    "description": "Set the value of Integer parameter with given name para_name in Chain_Parameters ch to new value para_val. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_real_value",
    "id": 7605,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "para_val",
        "type": "Real"
      }
    ],
    "description": "Set the value of Real parameter with given name para_name in Chain_Parameters ch to new value para_val. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_text_value",
    "id": 7606,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "para_val",
        "type": "Text"
      }
    ],
    "description": "Set the value of Text parameter with given name para_name in Chain_Parameters ch to new value para_val. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_tin_value",
    "id": 7607,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "ref_mode",
        "type": "Integer"
      },
      {
        "name": "tin_name",
        "type": "Text"
      },
      {
        "name": "tin_id",
        "type": "Uid"
      }
    ],
    "description": "Set the value of Tin parameter with given name para_name in Chain_Parameters ch to new value ref_mode tin_name tin_id. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_model_value",
    "id": 7608,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "ref_mode",
        "type": "Integer"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "model_id",
        "type": "Uid"
      }
    ],
    "description": "Set the value of Model parameter with given name para_name in Chain_Parameters ch to new value ref_mode model_name model_id. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_string_value",
    "id": 7622,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "ref_mode",
        "type": "Integer"
      },
      {
        "name": "string_name",
        "type": "Text"
      },
      {
        "name": "string_id",
        "type": "Uid"
      },
      {
        "name": "model_name",
        "type": "Text"
      },
      {
        "name": "model_id",
        "type": "Uid"
      }
    ],
    "description": "Set the value of String parameter with given name para_name in Chain_Parameters ch to new value ref_mode string_name string_id model_name model_id. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_function_value",
    "id": 7609,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "para_val",
        "type": "Text"
      }
    ],
    "description": "Set the value of Function parameter with given name para_name in Chain_Parameters ch to new value para_val. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_tick_value",
    "id": 7610,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "para_val",
        "type": "Integer"
      }
    ],
    "description": "Set the value of Tick parameter with given name para_name in Chain_Parameters ch to new value para_val. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_colour_value",
    "id": 7611,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "para_val",
        "type": "Text"
      }
    ],
    "description": "Set the value of Colour parameter with given name para_name in Chain_Parameters ch to new value para_val. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Set_grid_value",
    "id": 7612,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "&ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "ref_mode",
        "type": "Integer"
      },
      {
        "name": "mod_mode",
        "type": "Integer"
      },
      {
        "name": "file_name",
        "type": "Text"
      },
      {
        "name": "num_cols",
        "type": "Integer"
      },
      {
        "name": "num_rows",
        "type": "Integer"
      },
      {
        "name": "data",
        "type": "Dynamic_Text"
      },
      {
        "name": "col_names",
        "type": "Dynamic_Text"
      }
    ],
    "description": "???. A function return value of zero indicates all the call were successful."
  },
  {
    "name": "Get_type",
    "id": 7621,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "ch",
        "type": "Chain_Parameters"
      },
      {
        "name": "para_name",
        "type": "Text"
      },
      {
        "name": "&int_type",
        "type": "Integer"
      },
      {
        "name": "&text_type",
        "type": "Text"
      }
    ],
    "description": "Get the type of chain parameter with given name para_name from Chain_Parameters ch A function return value of zero indicates the call was successfully."
  },
  {
    "name": "Run_drainage_2d",
    "id": 7752,
    "returnType": "Integer",
    "parameters": [
      {
        "name": "tcf_name",
        "type": "Text"
      },
      {
        "name": "tu_options",
        "type": "Text"
      },
      {
        "name": "use_tuflow_lock",
        "type": "Integer"
      },
      {
        "name": "coord_sys",
        "type": "Text"
      },
      {
        "name": "update_mode",
        "type": "Integer"
      },
      {
        "name": "dtm",
        "type": "Tin"
      },
      {
        "name": "&error",
        "type": "Text"
      }
    ],
    "description": "Rob will dedice when this one is ready for use??? A function return value of zero indicates the call was successfully."
  }
]