StagedConstructionPart class

The StagedConstructionPart class gives you access to Define staged construction part 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

StagedConstructionPart constants

Name Description
StagedConstructionPart.PART DEFN is *DEFINE_STAGED_CONSTRUCTION_PART.
StagedConstructionPart.SET DEFN is *DEFINE_STAGED_CONSTRUCTION_PART_SET.

StagedConstructionPart properties

Name Type Description
exists (read only) logical true if Define staged construction part exists, false if referred to but not defined.
id integer Part ID or part set ID (not internal label)
include integer The Include file number that the Define staged construction part is in.
label (read only) integer The label the Define staged construction parts has in PRIMER
model (read only) integer The Model number that the Define staged construction part is in.
option constant The Define staged construction parts option. Can be StagedConstructionPart.PART or StagedConstructionPart.SET.
stga integer Construction stage at which part is added.
stgr integer Construction stage at which part is removed.

Detailed Description

The StagedConstructionPart class allows you to create, modify, edit and manipulate Define staged construction parts cards. See the documentation below for more details.

Constructor

new StagedConstructionPart(Model[Model], option[constant], id[integer], stga[integer], stgr[integer])

Description

Create a new StagedConstructionPart object.

Arguments

  • Model (Model)

    Model that Define staged construction parts will be created in

  • option (constant)

    Specify the type of Define staged construction parts. Can be StagedConstructionPart.PART or StagedConstructionPart.SET)

  • id (integer)

    Part ID or part set ID

  • stga (integer)

    Construction stage at which part is added.

  • stgr (integer)

    Construction stage at which part is removed.

    Returns

    StagedConstructionPart object

    Return type

    StagedConstructionPart

    Example

    To create a new Define staged construction part in model m, of type SET, with part set 9, stga 18 and stgr 12

    var scp = new StagedConstructionPart(m, StagedConstructionPart.SET, 9, 18, 12);

    Details of functions

    AssociateComment(Comment[Comment])

    Description

    Associates a comment with a Define staged construction part.

    Arguments

  • Comment (Comment)

    Comment that will be attached to the Define staged construction part

    Returns

    No return value

    Example

    To associate comment c to the Define staged construction part scp:

    scp.AssociateComment(c);


    Blank()

    Description

    Blanks the Define staged construction part

    Arguments

    No arguments

    Returns

    No return value

    Example

    To blank Define staged construction part scp:

    scp.Blank();


    BlankAll(Model[Model], redraw (optional)[boolean]) [static]

    Description

    Blanks all of the Define staged construction parts in the model.

    Arguments

  • Model (Model)

    Model that all Define staged construction parts will be blanked in

  • redraw (optional) (boolean)

    If model should be redrawn or not. If omitted redraw is false. If you want to do several (un)blanks and only redraw after the last one then use false for all redraws apart from the last one. Alternatively you can redraw using View.Redraw().

    Returns

    No return value

    Example

    To blank all of the Define staged construction parts in model m:

    StagedConstructionPart.BlankAll(m);


    BlankFlagged(Model[Model], flag[Flag], redraw (optional)[boolean]) [static]

    Description

    Blanks all of the flagged Define staged construction parts in the model.

    Arguments

  • Model (Model)

    Model that all the flagged Define staged construction parts will be blanked in

  • flag (Flag)

    Flag set on the Define staged construction parts that you want to blank

  • redraw (optional) (boolean)

    If model should be redrawn or not. If omitted redraw is false. If you want to do several (un)blanks and only redraw after the last one then use false for all redraws apart from the last one. Alternatively you can redraw using View.Redraw().

    Returns

    No return value

    Example

    To blank all of the Define staged construction parts in model m flagged with f:

    StagedConstructionPart.BlankFlagged(m, f);


    Blanked()

    Description

    Checks if the Define staged construction part is blanked or not.

    Arguments

    No arguments

    Returns

    true if blanked, false if not.

    Return type

    Boolean

    Example

    To check if Define staged construction part scp is blanked:

    if (scp.Blanked() ) do_something...


    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 Define staged construction part scp:

    scp.Browse();


    ClearFlag(flag[Flag])

    Description

    Clears a flag on the Define staged construction part.

    Arguments

  • flag (Flag)

    Flag to clear on the Define staged construction part

    Returns

    No return value

    Example

    To clear flag f for Define staged construction part scp:

    scp.ClearFlag(f);


    Copy(range (optional)[boolean])

    Description

    Copies the Define staged construction part. The target include of the copied Define staged construction part 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

    StagedConstructionPart object

    Return type

    StagedConstructionPart

    Example

    To copy Define staged construction part scp into Define staged construction part z:

    var z = scp.Copy();


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

    Description

    Starts an interactive editing panel to create a Define staged construction part

    Arguments

  • Model (Model)

    Model that the Define staged construction part 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

    StagedConstructionPart object (or null if not made).

    Return type

    StagedConstructionPart

    Example

    To start creating a Define staged construction part in model m:

    var scp = StagedConstructionPart.Create(m);


    DetachComment(Comment[Comment])

    Description

    Detaches a comment from a Define staged construction part.

    Arguments

  • Comment (Comment)

    Comment that will be detached from the Define staged construction part

    Returns

    No return value

    Example

    To detach comment c from the Define staged construction part scp:

    scp.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 Define staged construction part scp:

    scp.Edit();


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

    Description

    Adds an error for Define staged construction part. 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 Define staged construction part scp:

    scp.Error("My custom error");


    First(Model[Model]) [static]

    Description

    Returns the first Define staged construction part in the model.

    Arguments

  • Model (Model)

    Model to get first Define staged construction part in

    Returns

    StagedConstructionPart object (or null if there are no Define staged construction parts in the model).

    Return type

    StagedConstructionPart

    Example

    To get the first Define staged construction part in model m:

    var scp = StagedConstructionPart.First(m);


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

    Description

    Flags all of the Define staged construction parts in the model with a defined flag.

    Arguments

  • Model (Model)

    Model that all Define staged construction parts will be flagged in

  • flag (Flag)

    Flag to set on the Define staged construction parts

    Returns

    No return value

    Example

    To flag all of the Define staged construction parts with flag f in model m:

    StagedConstructionPart.FlagAll(m, f);


    Flagged(flag[Flag])

    Description

    Checks if the Define staged construction part is flagged or not.

    Arguments

  • flag (Flag)

    Flag to test on the Define staged construction part

    Returns

    true if flagged, false if not.

    Return type

    Boolean

    Example

    To check if Define staged construction part scp has flag f set on it:

    if (scp.Flagged(f) ) do_something...


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

    Description

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

    Arguments

  • Model (Model)

    Model that all Define staged construction parts are in

  • func (function)

    Function to call for each Define staged construction part

  • 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 Define staged construction parts in model m:

    StagedConstructionPart.ForEach(m, test);
    function test(scp)
    {
    // scp is StagedConstructionPart object
    }

    To call function test for all of the Define staged construction parts in model m with optional object:

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


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

    Description

    Returns an array of StagedConstructionPart objects or properties for all of the Define staged construction parts in a model in PRIMER. If the optional property argument is not given then an array of StagedConstructionPart objects is returned. If the property argument is given, that property value for each Define staged construction part is returned in the array instead of a StagedConstructionPart object

    Arguments

  • Model (Model)

    Model to get Define staged construction parts from

  • property (optional) (string)

    Name for property to get for all Define staged construction parts in the model

    Returns

    Array of StagedConstructionPart objects or properties

    Return type

    Array

    Example

    To make an array of StagedConstructionPart objects for all of the Define staged construction parts in model m:

    var a = StagedConstructionPart.GetAll(m);

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

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


    GetComments()

    Description

    Extracts the comments associated to a Define staged construction part.

    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 Define staged construction part scp:

    var comm_array = scp.GetComments();


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

    Description

    Returns an array of StagedConstructionPart objects for all of the flagged Define staged construction parts in a model in PRIMER If the optional property argument is not given then an array of StagedConstructionPart objects is returned. If the property argument is given, then that property value for each Define staged construction part is returned in the array instead of a StagedConstructionPart object

    Arguments

  • Model (Model)

    Model to get Define staged construction parts from

  • flag (Flag)

    Flag set on the Define staged construction parts that you want to retrieve

  • property (optional) (string)

    Name for property to get for all flagged Define staged construction parts in the model

    Returns

    Array of StagedConstructionPart objects or properties

    Return type

    Array

    Example

    To make an array of StagedConstructionPart objects for all of the Define staged construction parts in model m flagged with f:

    var scp = StagedConstructionPart.GetFlagged(m, f);

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

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


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

    Description

    Returns the StagedConstructionPart object for a Define staged construction part ID.

    Arguments

  • Model (Model)

    Model to find the Define staged construction part in

  • number (integer)

    number of the Define staged construction part you want the StagedConstructionPart object for

    Returns

    StagedConstructionPart object (or null if Define staged construction part does not exist).

    Return type

    StagedConstructionPart

    Example

    To get the StagedConstructionPart object for Define staged construction part 100 in model m

    var scp = StagedConstructionPart.GetFromID(m, 100);


    GetParameter(prop[string])

    Description

    Checks if a StagedConstructionPart 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 StagedConstructionPart.ViewParameters() method and 'method chaining' (see the examples below).

    Arguments

  • prop (string)

    Define staged construction part property to get parameter for

    Returns

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

    Return type

    Parameter

    Example

    To check if StagedConstructionPart property scp.example is a parameter:

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

    To check if StagedConstructionPart property scp.example is a parameter by using the GetParameter method:

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


    Keyword()

    Description

    Returns the keyword for this Define staged construction parts (*Define_staged_construction_part). Note that a carriage return is not added. See also StagedConstructionPart.KeywordCards()

    Arguments

    No arguments

    Returns

    string containing the keyword.

    Return type

    String

    Example

    To get the keyword for Define staged construction parts scp:

    var key = scp.Keyword();


    KeywordCards()

    Description

    Returns the keyword cards for the Define staged construction parts. Note that a carriage return is not added. See also StagedConstructionPart.Keyword()

    Arguments

    No arguments

    Returns

    string containing the cards.

    Return type

    String

    Example

    To get the cards for Define staged construction parts scp:

    var cards = scp.KeywordCards();


    Last(Model[Model]) [static]

    Description

    Returns the last Define staged construction part in the model.

    Arguments

  • Model (Model)

    Model to get last Define staged construction part in

    Returns

    StagedConstructionPart object (or null if there are no Define staged construction parts in the model).

    Return type

    StagedConstructionPart

    Example

    To get the last Define staged construction part in model m:

    var scp = StagedConstructionPart.Last(m);


    Next()

    Description

    Returns the next Define staged construction part in the model.

    Arguments

    No arguments

    Returns

    StagedConstructionPart object (or null if there are no more Define staged construction parts in the model).

    Return type

    StagedConstructionPart

    Example

    To get the Define staged construction part in model m after Define staged construction part scp:

    var scp = scp.Next();


    Pick(prompt[string], limit (optional)[Model or Flag], modal (optional)[boolean], button text (optional)[string]) [static]

    Description

    Allows the user to pick a Define staged construction part.

    Arguments

  • prompt (string)

    Text to display as a prompt to the user

  • limit (optional) (Model or Flag)

    If the argument is a Model then only Define staged construction parts from that model can be picked. If the argument is a Flag then only Define staged construction parts that are flagged with limit can be selected. If omitted, or null, any Define staged construction parts from any model can be selected. from any model.

  • modal (optional) (boolean)

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

  • button text (optional) (string)

    By default the window with the prompt will have a button labelled 'Cancel' which if pressed will cancel the pick and return null. If you want to change the text on the button use this argument. If omitted 'Cancel' will be used.

    Returns

    StagedConstructionPart object (or null if not picked)

    Return type

    StagedConstructionPart

    Example

    To pick a Define staged construction part from model m giving the prompt 'Pick Define staged construction part from screen':

    var scp = StagedConstructionPart.Pick('Pick Define staged construction part from screen', m);


    Previous()

    Description

    Returns the previous Define staged construction part in the model.

    Arguments

    No arguments

    Returns

    StagedConstructionPart object (or null if there are no more Define staged construction parts in the model).

    Return type

    StagedConstructionPart

    Example

    To get the Define staged construction part in model m before Define staged construction part scp:

    var scp = scp.Previous();


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

    Description

    Allows the user to select Define staged construction parts using standard PRIMER object menus.

    Arguments

  • flag (Flag)

    Flag to use when selecting Define staged construction parts

  • prompt (string)

    Text to display as a prompt to the user

  • limit (optional) (Model or Flag)

    If the argument is a Model then only Define staged construction parts from that model can be selected. If the argument is a Flag then only Define staged construction parts that are flagged with limit can be selected (limit should be different to flag). If omitted, or null, any Define staged construction parts 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 Define staged construction parts selected or null if menu cancelled

    Return type

    Number

    Example

    To select Define staged construction parts from model m, flagging those selected with flag f, giving the prompt 'Select Define staged construction parts':

    StagedConstructionPart.Select(f, 'Select Define staged construction parts', m);

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

    StagedConstructionPart.Select(f, 'Select Define staged construction parts', l);


    SetFlag(flag[Flag])

    Description

    Sets a flag on the Define staged construction part.

    Arguments

  • flag (Flag)

    Flag to set on the Define staged construction part

    Returns

    No return value

    Example

    To set flag f for Define staged construction part scp:

    scp.SetFlag(f);


    Sketch(redraw (optional)[boolean])

    Description

    Sketches the Define staged construction part. The Define staged construction part will be sketched until you either call StagedConstructionPart.Unsketch(), StagedConstructionPart.UnsketchAll(), Model.UnsketchAll(), or delete the model

    Arguments

  • redraw (optional) (boolean)

    If model should be redrawn or not after the Define staged construction part is sketched. If omitted redraw is true. If you want to sketch several Define staged construction parts and only redraw after the last one then use false for redraw and call View.Redraw().

    Returns

    No return value

    Example

    To sketch Define staged construction part scp:

    scp.Sketch();


    SketchFlagged(Model[Model], flag[Flag], redraw (optional)[boolean]) [static]

    Description

    Sketches all of the flagged Define staged construction parts in the model. The Define staged construction parts will be sketched until you either call StagedConstructionPart.Unsketch(), StagedConstructionPart.UnsketchFlagged(), Model.UnsketchAll(), or delete the model

    Arguments

  • Model (Model)

    Model that all the flagged Define staged construction parts will be sketched in

  • flag (Flag)

    Flag set on the Define staged construction parts that you want to sketch

  • redraw (optional) (boolean)

    If model should be redrawn or not after the Define staged construction parts are sketched. If omitted redraw is true. If you want to sketch flagged Define staged construction parts several times and only redraw after the last one then use false for redraw and call View.Redraw().

    Returns

    No return value

    Example

    To sketch all Define staged construction parts flagged with flag in model m:

    StagedConstructionPart.SketchFlagged(m, flag);


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

    Description

    Returns the total number of Define staged construction parts in the model.

    Arguments

  • Model (Model)

    Model to get total for

  • exists (optional) (boolean)

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

    Returns

    number of Define staged construction parts

    Return type

    Number

    Example

    To get the total number of Define staged construction parts in model m:

    var total = StagedConstructionPart.Total(m);


    Unblank()

    Description

    Unblanks the Define staged construction part

    Arguments

    No arguments

    Returns

    No return value

    Example

    To unblank Define staged construction part scp:

    scp.Unblank();


    UnblankAll(Model[Model], redraw (optional)[boolean]) [static]

    Description

    Unblanks all of the Define staged construction parts in the model.

    Arguments

  • Model (Model)

    Model that all Define staged construction parts will be unblanked in

  • redraw (optional) (boolean)

    If model should be redrawn or not. If omitted redraw is false. If you want to do several (un)blanks and only redraw after the last one then use false for all redraws apart from the last one. Alternatively you can redraw using View.Redraw().

    Returns

    No return value

    Example

    To unblank all of the Define staged construction parts in model m:

    StagedConstructionPart.UnblankAll(m);


    UnblankFlagged(Model[Model], flag[Flag], redraw (optional)[boolean]) [static]

    Description

    Unblanks all of the flagged Define staged construction parts in the model.

    Arguments

  • Model (Model)

    Model that the flagged Define staged construction parts will be unblanked in

  • flag (Flag)

    Flag set on the Define staged construction parts that you want to unblank

  • redraw (optional) (boolean)

    If model should be redrawn or not. If omitted redraw is false. If you want to do several (un)blanks and only redraw after the last one then use false for all redraws apart from the last one. Alternatively you can redraw using View.Redraw().

    Returns

    No return value

    Example

    To unblank all of the Define staged construction parts in model m flagged with f:

    StagedConstructionPart.UnblankFlagged(m, f);


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

    Description

    Unsets a defined flag on all of the Define staged construction parts in the model.

    Arguments

  • Model (Model)

    Model that the defined flag for all Define staged construction parts will be unset in

  • flag (Flag)

    Flag to unset on the Define staged construction parts

    Returns

    No return value

    Example

    To unset the flag f on all the Define staged construction parts in model m:

    StagedConstructionPart.UnflagAll(m, f);


    Unsketch(redraw (optional)[boolean])

    Description

    Unsketches the Define staged construction part.

    Arguments

  • redraw (optional) (boolean)

    If model should be redrawn or not after the Define staged construction part is unsketched. If omitted redraw is true. If you want to unsketch several Define staged construction parts and only redraw after the last one then use false for redraw and call View.Redraw().

    Returns

    No return value

    Example

    To unsketch Define staged construction part scp:

    scp.Unsketch();


    UnsketchAll(Model[Model], redraw (optional)[boolean]) [static]

    Description

    Unsketches all Define staged construction parts.

    Arguments

  • Model (Model)

    Model that all Define staged construction parts will be unblanked in

  • redraw (optional) (boolean)

    If model should be redrawn or not after the Define staged construction parts are unsketched. If omitted redraw is true. If you want to unsketch several things and only redraw after the last one then use false for redraw and call View.Redraw().

    Returns

    No return value

    Example

    To unsketch all Define staged construction parts in model m:

    StagedConstructionPart.UnsketchAll(m);


    UnsketchFlagged(Model[Model], flag[Flag], redraw (optional)[boolean]) [static]

    Description

    Unsketches all flagged Define staged construction parts in the model.

    Arguments

  • Model (Model)

    Model that all Define staged construction parts will be unsketched in

  • flag (Flag)

    Flag set on the Define staged construction parts that you want to unsketch

  • redraw (optional) (boolean)

    If model should be redrawn or not after the Define staged construction parts are unsketched. If omitted redraw is true. If you want to unsketch several things and only redraw after the last one then use false for redraw and call View.Redraw().

    Returns

    No return value

    Example

    To unsketch all Define staged construction parts flagged with flag in model m:

    StagedConstructionPart.UnsketchAll(m, flag);


    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

    StagedConstructionPart object.

    Return type

    StagedConstructionPart

    Example

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

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


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

    Description

    Adds a warning for Define staged construction part. 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 Define staged construction part scp:

    scp.Warning("My custom warning");


    Xrefs()

    Description

    Returns the cross references for this Define staged construction part.

    Arguments

    No arguments

    Returns

    Xrefs object.

    Return type

    Xrefs

    Example

    To get the cross references for Define staged construction part scp:

    var xrefs = scp.Xrefs();


    toString()

    Description

    Creates a string containing the Define staged construction parts data in keyword format. Note that this contains the keyword header and the keyword cards. See also StagedConstructionPart.Keyword() and StagedConstructionPart.KeywordCards().

    Arguments

    No arguments

    Returns

    string

    Return type

    String

    Example

    To get data for Define staged construction parts scp in keyword format

    var s = scp.toString();