Transformation class

The Transformation class gives you access to define transform cards in PRIMER. More...

The PRIMER JavaScript API provides many class constants, properties and methods. For Arup to be able to extend and enhance the API in the future any constant, property or method names beginning with a lowercase or uppercase letter are reserved.
If you need to add your own properties or methods to one of the existing classes then to avoid any potential future conflict you should ensure that the name begins with either an underscore (_) or a dollar sign ($) or the name is prefixed with your own unique identifier.
For example if company 'ABC' need to add a property called 'example' then to avoid any potential future conflict use one of:

Class functions

Member functions

Transformation properties

Name Type Description
exists (read only) logical true if transformation exists, false if referred to but not defined.
include integer The Include file number that the transformation is in.
label integer Transformation number. Also see the tranid property which is an alternative name for this.
model (read only) integer The Model number that the transformation is in.
nrow (read only) integer Number of rows of transformations
title string The title for the transformation.
tranid integer Transformation number. Also see the label property which is an alternative name for this.

Detailed Description

The Transformation class allows you to create, modify, edit and manipulate define transformation cards. See the documentation below for more details.

Constructor

new Transformation(Model[Model], tranid[integer], title (optional)[string])

Description

Create a new Transformation object.

Arguments

  • Model (Model)

    Model that transformation will be created in

  • tranid (integer)

    Transformation label

  • title (optional) (string)

    Transformation title

    Returns

    Transformation object

    Return type

    Transformation

    Example

    To create a new transformation in model m with label 1000 and title "Example transform"

    var t = new Transformation(m, 1000, "Example transform");

    Details of functions

    AddRow(data[Array of data], row (optional)[integer])

    Description

    Adds a row of data for a *DEFINE_TRANSFORMATION.

    Arguments

  • data (Array of data)

    The data you want to add

  • row (optional) (integer)

    The row you want to add the data at. Existing transforms will be shifted. If omitted the data will be added to the end of the existing transforms. Note that row indices start at 0.

    Returns

    No return value.

    Example

    To add a translation of (0, 0, 100) to transformation t:

    var array = ["TRANSL", 0, 0, 100];
    t.AddRow(array);


    AssociateComment(Comment[Comment])

    Description

    Associates a comment with a transformation.

    Arguments

  • Comment (Comment)

    Comment that will be attached to the transformation

    Returns

    No return value

    Example

    To associate comment c to the transformation t:

    t.AssociateComment(c);


    Browse(modal (optional)[boolean])

    Description

    Starts an edit panel in Browse mode.

    Arguments

  • modal (optional) (boolean)

    If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal.

    Returns

    no return value

    Example

    To Browse transformation t:

    t.Browse();


    ClearFlag(flag[Flag])

    Description

    Clears a flag on the transformation.

    Arguments

  • flag (Flag)

    Flag to clear on the transformation

    Returns

    No return value

    Example

    To clear flag f for transformation t:

    t.ClearFlag(f);


    Copy(range (optional)[boolean])

    Description

    Copies the transformation. The target include of the copied transformation can be set using Options.copy_target_include.

    Arguments

  • range (optional) (boolean)

    If you want to keep the copied item in the range specified for the current include. Default value is false. To set current include, use Include.MakeCurrentLayer().

    Returns

    Transformation object

    Return type

    Transformation

    Example

    To copy transformation t into transformation z:

    var z = t.Copy();


    Create(Model[Model], modal (optional)[boolean]) [static]

    Description

    Starts an interactive editing panel to create a transformation

    Arguments

  • Model (Model)

    Model that the transformation will be created in.

  • modal (optional) (boolean)

    If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal.

    Returns

    Transformation object (or null if not made).

    Return type

    Transformation

    Example

    To start creating a transformation in model m:

    var t = Transformation.Create(m);


    DetachComment(Comment[Comment])

    Description

    Detaches a comment from a transformation.

    Arguments

  • Comment (Comment)

    Comment that will be detached from the transformation

    Returns

    No return value

    Example

    To detach comment c from the transformation t:

    t.DetachComment(c);


    Edit(modal (optional)[boolean])

    Description

    Starts an interactive editing panel.

    Arguments

  • modal (optional) (boolean)

    If this window is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the window will be modal.

    Returns

    no return value

    Example

    To Edit transformation t:

    t.Edit();


    Error(message[string], details (optional)[string])

    Description

    Adds an error for transformation. For more details on checking see the Check class.

    Arguments

  • message (string)

    The error message to give

  • details (optional) (string)

    An optional detailed error message

    Returns

    No return value

    Example

    To add an error message "My custom error" for transformation t:

    t.Error("My custom error");


    First(Model[Model]) [static]

    Description

    Returns the first transformation in the model.

    Arguments

  • Model (Model)

    Model to get first transformation in

    Returns

    Transformation object (or null if there are no transformations in the model).

    Return type

    Transformation

    Example

    To get the first transformation in model m:

    var t = Transformation.First(m);


    FirstFreeLabel(Model[Model], layer (optional)[Include number]) [static]

    Description

    Returns the first free transformation label in the model. Also see Transformation.LastFreeLabel(), Transformation.NextFreeLabel() and Model.FirstFreeItemLabel().

    Arguments

  • Model (Model)

    Model to get first free transformation label in

  • layer (optional) (Include number)

    Include file (0 for the main file) to search for labels in (Equivalent to First free in layer in editing panels). If omitted the whole model will be used (Equivalent to First free in editing panels).

    Returns

    Transformation label.

    Return type

    Number

    Example

    To get the first free transformation label in model m:

    var label = Transformation.FirstFreeLabel(m);


    FlagAll(Model[Model], flag[Flag]) [static]

    Description

    Flags all of the transformations in the model with a defined flag.

    Arguments

  • Model (Model)

    Model that all transformations will be flagged in

  • flag (Flag)

    Flag to set on the transformations

    Returns

    No return value

    Example

    To flag all of the transformations with flag f in model m:

    Transformation.FlagAll(m, f);


    Flagged(flag[Flag])

    Description

    Checks if the transformation is flagged or not.

    Arguments

  • flag (Flag)

    Flag to test on the transformation

    Returns

    true if flagged, false if not.

    Return type

    Boolean

    Example

    To check if transformation t has flag f set on it:

    if (t.Flagged(f) ) do_something...


    ForEach(Model[Model], func[function], extra (optional)[any]) [static]

    Description

    Calls a function for each transformation in the model.
    Note that ForEach has been designed to make looping over transformations as fast as possible and so has some limitations.
    Firstly, a single temporary Transformation object is created and on each function call it is updated with the current transformation data. This means that you should not try to store the Transformation object for later use (e.g. in an array) as it is temporary.
    Secondly, you cannot create new transformations inside a ForEach loop.

    Arguments

  • Model (Model)

    Model that all transformations are in

  • func (function)

    Function to call for each transformation

  • extra (optional) (any)

    An optional extra object/array/string etc that will appended to arguments when calling the function

    Returns

    No return value

    Example

    To call function test for all of the transformations in model m:

    Transformation.ForEach(m, test);
    function test(t)
    {
    // t is Transformation object
    }

    To call function test for all of the transformations in model m with optional object:

    var data = { x:0, y:0 };
    Transformation.ForEach(m, test, data);
    function test(t, extra)
    {
    // t is Transformation object
    // extra is data
    }


    GetAll(Model[Model], property (optional)[string]) [static]

    Description

    Returns an array of Transformation objects or properties for all of the transformations in a model in PRIMER. If the optional property argument is not given then an array of Transformation objects is returned. If the property argument is given, that property value for each transformation is returned in the array instead of a Transformation object

    Arguments

  • Model (Model)

    Model to get transformations from

  • property (optional) (string)

    Name for property to get for all transformations in the model

    Returns

    Array of Transformation objects or properties

    Return type

    Array

    Example

    To make an array of Transformation objects for all of the transformations in model m:

    var a = Transformation.GetAll(m);

    To return an array containing the value of property 'foo' (for example 'x' for a node) for each transformation in model m:

    var a = Transformation.GetAll(m, 'foo');


    GetComments()

    Description

    Extracts the comments associated to a transformation.

    Arguments

    No arguments

    Returns

    Array of Comment objects (or null if there are no comments associated to the node).

    Return type

    Array

    Example

    To get the array of comments associated to the transformation t:

    var comm_array = t.GetComments();


    GetFlagged(Model[Model], flag[Flag], property (optional)[string]) [static]

    Description

    Returns an array of Transformation objects for all of the flagged transformations in a model in PRIMER If the optional property argument is not given then an array of Transformation objects is returned. If the property argument is given, then that property value for each transformation is returned in the array instead of a Transformation object

    Arguments

  • Model (Model)

    Model to get transformations from

  • flag (Flag)

    Flag set on the transformations that you want to retrieve

  • property (optional) (string)

    Name for property to get for all flagged transformations in the model

    Returns

    Array of Transformation objects or properties

    Return type

    Array

    Example

    To make an array of Transformation objects for all of the transformations in model m flagged with f:

    var t = Transformation.GetFlagged(m, f);

    To return an array containing the value of property 'foo' (for example 'x' for a node) for all of the transformations in model m flagged with f:

    var a = Transformation.GetFlagged(m, f, 'foo');


    GetFromID(Model[Model], number[integer]) [static]

    Description

    Returns the Transformation object for a transformation ID.

    Arguments

  • Model (Model)

    Model to find the transformation in

  • number (integer)

    number of the transformation you want the Transformation object for

    Returns

    Transformation object (or null if transformation does not exist).

    Return type

    Transformation

    Example

    To get the Transformation object for transformation 100 in model m

    var t = Transformation.GetFromID(m, 100);


    GetParameter(prop[string])

    Description

    Checks if a Transformation property is a parameter or not. Note that object properties that are parameters are normally returned as the integer or float parameter values as that is virtually always what the user would want. For this function to work the JavaScript interpreter must use the parameter name instead of the value. This can be done by setting the Options.property_parameter_names option to true before calling the function and then resetting it to false afterwards.. This behaviour can also temporarily be switched by using the Transformation.ViewParameters() method and 'method chaining' (see the examples below).

    Arguments

  • prop (string)

    transformation property to get parameter for

    Returns

    Parameter object if property is a parameter, null if not.

    Return type

    Parameter

    Example

    To check if Transformation property t.example is a parameter:

    Options.property_parameter_names = true;
    if (t.GetParameter(t.example) ) do_something...
    Options.property_parameter_names = false;

    To check if Transformation property t.example is a parameter by using the GetParameter method:

    if (t.ViewParameters().GetParameter(t.example) ) do_something...


    GetRow(row[integer])

    Description

    Returns the data for a row in the transformation.

    Arguments

  • row (integer)

    The row you want the data for. Note row indices start at 0.

    Returns

    An array of numbers containing the row variables.

    Return type

    Number

    Example

    To get the data for the 2nd row in transformation t:

    var data = t.GetRow(1);


    Keyword()

    Description

    Returns the keyword for this transformation. Note that a carriage return is not added. See also Transformation.KeywordCards()

    Arguments

    No arguments

    Returns

    string containing the keyword.

    Return type

    String

    Example

    To get the keyword for transformation t:

    var key = t.Keyword();


    KeywordCards()

    Description

    Returns the keyword cards for the transformation. Note that a carriage return is not added. See also Transformation.Keyword()

    Arguments

    No arguments

    Returns

    string containing the cards.

    Return type

    String

    Example

    To get the cards for transformation i:

    var cards = i.KeywordCards();


    Last(Model[Model]) [static]

    Description

    Returns the last transformation in the model.

    Arguments

  • Model (Model)

    Model to get last transformation in

    Returns

    Transformation object (or null if there are no transformations in the model).

    Return type

    Transformation

    Example

    To get the last transformation in model m:

    var t = Transformation.Last(m);


    LastFreeLabel(Model[Model], layer (optional)[Include number]) [static]

    Description

    Returns the last free transformation label in the model. Also see Transformation.FirstFreeLabel(), Transformation.NextFreeLabel() and see Model.LastFreeItemLabel()

    Arguments

  • Model (Model)

    Model to get last free transformation label in

  • layer (optional) (Include number)

    Include file (0 for the main file) to search for labels in (Equivalent to Highest free in layer in editing panels). If omitted the whole model will be used.

    Returns

    Transformation label.

    Return type

    Number

    Example

    To get the last free transformation label in model m:

    var label = Transformation.LastFreeLabel(m);


    Next()

    Description

    Returns the next transformation in the model.

    Arguments

    No arguments

    Returns

    Transformation object (or null if there are no more transformations in the model).

    Return type

    Transformation

    Example

    To get the transformation in model m after transformation t:

    var t = t.Next();


    NextFreeLabel(Model[Model], layer (optional)[Include number]) [static]

    Description

    Returns the next free (highest+1) transformation label in the model. Also see Transformation.FirstFreeLabel(), Transformation.LastFreeLabel() and Model.NextFreeItemLabel()

    Arguments

  • Model (Model)

    Model to get next free transformation label in

  • layer (optional) (Include number)

    Include file (0 for the main file) to search for labels in (Equivalent to Highest+1 in layer in editing panels). If omitted the whole model will be used (Equivalent to Highest+1 in editing panels).

    Returns

    Transformation label.

    Return type

    Number

    Example

    To get the next free transformation label in model m:

    var label = Transformation.NextFreeLabel(m);


    Previous()

    Description

    Returns the previous transformation in the model.

    Arguments

    No arguments

    Returns

    Transformation object (or null if there are no more transformations in the model).

    Return type

    Transformation

    Example

    To get the transformation in model m before transformation t:

    var t = t.Previous();


    RemoveRow(row[integer])

    Description

    Removes the data for a row in *DEFINE_TRANSFORMATION.

    Arguments

  • row (integer)

    The row you want to remove the data for. Note that row indices start at 0.

    Returns

    No return value.

    Example

    To remove the second row of data for transformation t:

    t.RemoveRow(1);


    Select(flag[Flag], prompt[string], limit (optional)[Model or Flag], modal (optional)[boolean]) [static]

    Description

    Allows the user to select transformations using standard PRIMER object menus.

    Arguments

  • flag (Flag)

    Flag to use when selecting transformations

  • prompt (string)

    Text to display as a prompt to the user

  • limit (optional) (Model or Flag)

    If the argument is a Model then only transformations from that model can be selected. If the argument is a Flag then only transformations that are flagged with limit can be selected (limit should be different to flag). If omitted, or null, any transformations can be selected. from any model.

  • modal (optional) (boolean)

    If selection is modal (blocks the user from doing anything else in PRIMER until this window is dismissed). If omitted the selection will be modal.

    Returns

    Number of transformations selected or null if menu cancelled

    Return type

    Number

    Example

    To select transformations from model m, flagging those selected with flag f, giving the prompt 'Select transformations':

    Transformation.Select(f, 'Select transformations', m);

    To select transformations, flagging those selected with flag f but limiting selection to transformations flagged with flag l, giving the prompt 'Select transformations':

    Transformation.Select(f, 'Select transformations', l);


    SetFlag(flag[Flag])

    Description

    Sets a flag on the transformation.

    Arguments

  • flag (Flag)

    Flag to set on the transformation

    Returns

    No return value

    Example

    To set flag f for transformation t:

    t.SetFlag(f);


    SetRow(row[integer], data[Array of data])

    Description

    Sets the data for a row in *DEFINE_TRANSFORMATION.

    Arguments

  • row (integer)

    The row you want to set the data for. Note that row indices start at 0.

  • data (Array of data)

    The data you want to set the row to

    Returns

    No return value.

    Example

    To set the second row of data for transformation t to be a translation of (0, 0, 100):

    var array = ["TRANSL", 0, 0, 100];
    t.SetRow(1, array);


    Total(Model[Model], exists (optional)[boolean]) [static]

    Description

    Returns the total number of transformations in the model.

    Arguments

  • Model (Model)

    Model to get total for

  • exists (optional) (boolean)

    true if only existing transformations should be counted. If false or omitted referenced but undefined transformations will also be included in the total.

    Returns

    number of transformations

    Return type

    Number

    Example

    To get the total number of transformations in model m:

    var total = Transformation.Total(m);


    UnflagAll(Model[Model], flag[Flag]) [static]

    Description

    Unsets a defined flag on all of the transformations in the model.

    Arguments

  • Model (Model)

    Model that the defined flag for all transformations will be unset in

  • flag (Flag)

    Flag to unset on the transformations

    Returns

    No return value

    Example

    To unset the flag f on all the transformations in model m:

    Transformation.UnflagAll(m, f);


    ViewParameters()

    Description

    Object properties that are parameters are normally returned as the integer or float parameter values as that is virtually always what the user would want. This function temporarily changes the behaviour so that if a property is a parameter the parameter name is returned instead. This can be used with 'method chaining' (see the example below) to make sure a property argument is correct.

    Arguments

    No arguments

    Returns

    Transformation object.

    Return type

    Transformation

    Example

    To check if Transformation property t.example is a parameter by using the Transformation.GetParameter() method:

    if (t.ViewParameters().GetParameter(t.example) ) do_something...


    Warning(message[string], details (optional)[string])

    Description

    Adds a warning for transformation. For more details on checking see the Check class.

    Arguments

  • message (string)

    The warning message to give

  • details (optional) (string)

    An optional detailed warning message

    Returns

    No return value

    Example

    To add a warning message "My custom warning" for transformation t:

    t.Warning("My custom warning");


    Xrefs()

    Description

    Returns the cross references for this transformation.

    Arguments

    No arguments

    Returns

    Xrefs object.

    Return type

    Xrefs

    Example

    To get the cross references for transformation t:

    var xrefs = t.Xrefs();


    toString()

    Description

    Creates a string containing the transformation data in keyword format. Note that this contains the keyword header and the keyword cards. See also Transformation.Keyword() and Transformation.KeywordCards().

    Arguments

    No arguments

    Returns

    string

    Return type

    String

    Example

    To get data for transformation t in keyword format

    var s = t.toString();