GeometrySurface class

The GeometrySurface class gives you access to surfaces 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

GeometrySurface properties

Name Type Description
exists (read only) logical true if surface exists, false if referred to but not defined.
id (read only) integer GeometrySurface number. Also see the label property which is an alternative name for this.
include integer The Include file number that the surface is in.
label (read only) integer GeometrySurface number. Also see the id property which is an alternative name for this.
model (read only) integer The Model number that the surface is in.

Detailed Description

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

Details of functions

AssociateComment(Comment[Comment])

Description

Associates a comment with a surface.

Arguments

  • Comment (Comment)

    Comment that will be attached to the surface

    Returns

    No return value

    Example

    To associate comment c to the surface s:

    s.AssociateComment(c);


    Blank()

    Description

    Blanks the surface

    Arguments

    No arguments

    Returns

    No return value

    Example

    To blank surface s:

    s.Blank();


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

    Description

    Blanks all of the surfaces in the model.

    Arguments

  • Model (Model)

    Model that all surfaces 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 surfaces in model m:

    GeometrySurface.BlankAll(m);


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

    Description

    Blanks all of the flagged surfaces in the model.

    Arguments

  • Model (Model)

    Model that all the flagged surfaces will be blanked in

  • flag (Flag)

    Flag set on the surfaces 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 surfaces in model m flagged with f:

    GeometrySurface.BlankFlagged(m, f);


    Blanked()

    Description

    Checks if the surface is blanked or not.

    Arguments

    No arguments

    Returns

    true if blanked, false if not.

    Return type

    Boolean

    Example

    To check if surface s is blanked:

    if (s.Blanked() ) do_something...


    CalculateNormal(u[real], y[real])

    Description

    Calculate the normal vector for a parametric point on a surface.

    Arguments

  • u (real)

    u parametric coordinate

  • y (real)

    v parametric coordinate

    Returns

    Array containing x, y and z values.

    Return type

    Array

    Example

    To obtain the surface normal at parametric point (0.2, 0.3) on surface s:

    var coords = s.CalculateNormal(0.2, 0.3);


    CalculatePoint(u[real], v[real])

    Description

    Calculate the X, Y and Z coordinates for a parametric point on a surface.

    Arguments

  • u (real)

    u parametric coordinate

  • v (real)

    v parametric coordinate

    Returns

    Array containing x, y and z values.

    Return type

    Array

    Example

    To obtain the coordinates of parametric point (0.2, 0.3) on surface s:

    var coords = s.CalculatePoint(0.2, 0.3);


    ClearFlag(flag[Flag])

    Description

    Clears a flag on the surface.

    Arguments

  • flag (Flag)

    Flag to clear on the surface

    Returns

    No return value

    Example

    To clear flag f for surface s:

    s.ClearFlag(f);


    Copy(range (optional)[boolean])

    Description

    Copies the surface. The target include of the copied surface 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

    GeometrySurface object

    Return type

    GeometrySurface

    Example

    To copy surface s into surface z:

    var z = s.Copy();


    DetachComment(Comment[Comment])

    Description

    Detaches a comment from a surface.

    Arguments

  • Comment (Comment)

    Comment that will be detached from the surface

    Returns

    No return value

    Example

    To detach comment c from the surface s:

    s.DetachComment(c);


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

    Description

    Adds an error for surface. 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 surface s:

    s.Error("My custom error");


    First(Model[Model]) [static]

    Description

    Returns the first surface in the model.

    Arguments

  • Model (Model)

    Model to get first surface in

    Returns

    GeometrySurface object (or null if there are no surfaces in the model).

    Return type

    GeometrySurface

    Example

    To get the first surface in model m:

    var s = GeometrySurface.First(m);


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

    Description

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

    Arguments

  • Model (Model)

    Model to get first free surface 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

    GeometrySurface label.

    Return type

    Number

    Example

    To get the first free surface label in model m:

    var label = GeometrySurface.FirstFreeLabel(m);


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

    Description

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

    Arguments

  • Model (Model)

    Model that all surfaces will be flagged in

  • flag (Flag)

    Flag to set on the surfaces

    Returns

    No return value

    Example

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

    GeometrySurface.FlagAll(m, f);


    Flagged(flag[Flag])

    Description

    Checks if the surface is flagged or not.

    Arguments

  • flag (Flag)

    Flag to test on the surface

    Returns

    true if flagged, false if not.

    Return type

    Boolean

    Example

    To check if surface s has flag f set on it:

    if (s.Flagged(f) ) do_something...


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

    Description

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

    Arguments

  • Model (Model)

    Model that all surfaces are in

  • func (function)

    Function to call for each surface

  • 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 surfaces in model m:

    GeometrySurface.ForEach(m, test);
    function test(s)
    {
    // s is GeometrySurface object
    }

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

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


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

    Description

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

    Arguments

  • Model (Model)

    Model to get surfaces from

  • property (optional) (string)

    Name for property to get for all surfaces in the model

    Returns

    Array of GeometrySurface objects or properties

    Return type

    Array

    Example

    To make an array of GeometrySurface objects for all of the surfaces in model m:

    var a = GeometrySurface.GetAll(m);

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

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


    GetComments()

    Description

    Extracts the comments associated to a surface.

    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 surface s:

    var comm_array = s.GetComments();


    GetEdgeIndices()

    Description

    Return an array of all the edge indices for a surface (in pairs).

    Arguments

    No arguments

    Returns

    Array of indices

    Return type

    Array

    Example

    To get edge indices for surface s

    var edges = s.GetEdgeIndices();


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

    Description

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

    Arguments

  • Model (Model)

    Model to get surfaces from

  • flag (Flag)

    Flag set on the surfaces that you want to retrieve

  • property (optional) (string)

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

    Returns

    Array of GeometrySurface objects or properties

    Return type

    Array

    Example

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

    var s = GeometrySurface.GetFlagged(m, f);

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

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


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

    Description

    Returns the GeometrySurface object for a surface ID.

    Arguments

  • Model (Model)

    Model to find the surface in

  • number (integer)

    number of the surface you want the GeometrySurface object for

    Returns

    GeometrySurface object (or null if surface does not exist).

    Return type

    GeometrySurface

    Example

    To get the GeometrySurface object for surface 100 in model m

    var s = GeometrySurface.GetFromID(m, 100);


    GetParameter(prop[string])

    Description

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

    Arguments

  • prop (string)

    surface property to get parameter for

    Returns

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

    Return type

    Parameter

    Example

    To check if GeometrySurface property s.example is a parameter:

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

    To check if GeometrySurface property s.example is a parameter by using the GetParameter method:

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


    GetTriaIndices()

    Description

    Return an array of all the tria indices for a surface (in triplets).

    Arguments

    No arguments

    Returns

    Array of indices

    Return type

    Array

    Example

    To get tria indices for surface s

    var trias = s.GetTriaIndices();


    GetVertices()

    Description

    Return an array of all the vertex coordinates for a surface (in triplets).

    Arguments

    No arguments

    Returns

    Array of indices

    Return type

    Array

    Example

    To get vertex coordinates for surface s

    var vertices = s.GetVertices();


    Last(Model[Model]) [static]

    Description

    Returns the last surface in the model.

    Arguments

  • Model (Model)

    Model to get last surface in

    Returns

    GeometrySurface object (or null if there are no surfaces in the model).

    Return type

    GeometrySurface

    Example

    To get the last surface in model m:

    var s = GeometrySurface.Last(m);


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

    Description

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

    Arguments

  • Model (Model)

    Model to get last free surface 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

    GeometrySurface label.

    Return type

    Number

    Example

    To get the last free surface label in model m:

    var label = GeometrySurface.LastFreeLabel(m);


    Next()

    Description

    Returns the next surface in the model.

    Arguments

    No arguments

    Returns

    GeometrySurface object (or null if there are no more surfaces in the model).

    Return type

    GeometrySurface

    Example

    To get the surface in model m after surface s:

    var s = s.Next();


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

    Description

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

    Arguments

  • Model (Model)

    Model to get next free surface 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

    GeometrySurface label.

    Return type

    Number

    Example

    To get the next free surface label in model m:

    var label = GeometrySurface.NextFreeLabel(m);


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

    Description

    Allows the user to pick a surface.

    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 surfaces from that model can be picked. If the argument is a Flag then only surfaces that are flagged with limit can be selected. If omitted, or null, any surfaces 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

    GeometrySurface object (or null if not picked)

    Return type

    GeometrySurface

    Example

    To pick a surface from model m giving the prompt 'Pick surface from screen':

    var s = GeometrySurface.Pick('Pick surface from screen', m);


    Previous()

    Description

    Returns the previous surface in the model.

    Arguments

    No arguments

    Returns

    GeometrySurface object (or null if there are no more surfaces in the model).

    Return type

    GeometrySurface

    Example

    To get the surface in model m before surface s:

    var s = s.Previous();


    ProjectPoint(x[real], y[real], z[real])

    Description

    Project a point onto the surface.

    Arguments

  • x (real)

    X coordinate of point to project

  • y (real)

    Y coordinate of point to project

  • z (real)

    Z coordinate of point to project

    Returns

    Array containing u and v values.

    Return type

    Array

    Example

    To obtain the projection of point (1, 2, 3) on to surface s:

    var projection = s.ProjectPoint(1, 2, 3);


    RenumberAll(Model[Model], start[integer]) [static]

    Description

    Renumbers all of the surfaces in the model.

    Arguments

  • Model (Model)

    Model that all surfaces will be renumbered in

  • start (integer)

    Start point for renumbering

    Returns

    No return value

    Example

    To renumber all of the surfaces in model m, from 1000000:

    GeometrySurface.RenumberAll(m, 1000000);


    RenumberFlagged(Model[Model], flag[Flag], start[integer]) [static]

    Description

    Renumbers all of the flagged surfaces in the model.

    Arguments

  • Model (Model)

    Model that all the flagged surfaces will be renumbered in

  • flag (Flag)

    Flag set on the surfaces that you want to renumber

  • start (integer)

    Start point for renumbering

    Returns

    No return value

    Example

    To renumber all of the surfaces in model m flagged with f, from 1000000:

    GeometrySurface.RenumberFlagged(m, f, 1000000);


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

    Description

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

    Arguments

  • flag (Flag)

    Flag to use when selecting surfaces

  • prompt (string)

    Text to display as a prompt to the user

  • limit (optional) (Model or Flag)

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

    Return type

    Number

    Example

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

    GeometrySurface.Select(f, 'Select surfaces', m);

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

    GeometrySurface.Select(f, 'Select surfaces', l);


    SetFlag(flag[Flag])

    Description

    Sets a flag on the surface.

    Arguments

  • flag (Flag)

    Flag to set on the surface

    Returns

    No return value

    Example

    To set flag f for surface s:

    s.SetFlag(f);


    Sketch(redraw (optional)[boolean])

    Description

    Sketches the surface. The surface will be sketched until you either call GeometrySurface.Unsketch(), GeometrySurface.UnsketchAll(), Model.UnsketchAll(), or delete the model

    Arguments

  • redraw (optional) (boolean)

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

    Returns

    No return value

    Example

    To sketch surface s:

    s.Sketch();


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

    Description

    Sketches all of the flagged surfaces in the model. The surfaces will be sketched until you either call GeometrySurface.Unsketch(), GeometrySurface.UnsketchFlagged(), Model.UnsketchAll(), or delete the model

    Arguments

  • Model (Model)

    Model that all the flagged surfaces will be sketched in

  • flag (Flag)

    Flag set on the surfaces that you want to sketch

  • redraw (optional) (boolean)

    If model should be redrawn or not after the surfaces are sketched. If omitted redraw is true. If you want to sketch flagged surfaces 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 surfaces flagged with flag in model m:

    GeometrySurface.SketchFlagged(m, flag);


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

    Description

    Returns the total number of surfaces in the model.

    Arguments

  • Model (Model)

    Model to get total for

  • exists (optional) (boolean)

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

    Returns

    number of surfaces

    Return type

    Number

    Example

    To get the total number of surfaces in model m:

    var total = GeometrySurface.Total(m);


    Unblank()

    Description

    Unblanks the surface

    Arguments

    No arguments

    Returns

    No return value

    Example

    To unblank surface s:

    s.Unblank();


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

    Description

    Unblanks all of the surfaces in the model.

    Arguments

  • Model (Model)

    Model that all surfaces 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 surfaces in model m:

    GeometrySurface.UnblankAll(m);


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

    Description

    Unblanks all of the flagged surfaces in the model.

    Arguments

  • Model (Model)

    Model that the flagged surfaces will be unblanked in

  • flag (Flag)

    Flag set on the surfaces 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 surfaces in model m flagged with f:

    GeometrySurface.UnblankFlagged(m, f);


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

    Description

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

    Arguments

  • Model (Model)

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

  • flag (Flag)

    Flag to unset on the surfaces

    Returns

    No return value

    Example

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

    GeometrySurface.UnflagAll(m, f);


    Unsketch(redraw (optional)[boolean])

    Description

    Unsketches the surface.

    Arguments

  • redraw (optional) (boolean)

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

    Returns

    No return value

    Example

    To unsketch surface s:

    s.Unsketch();


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

    Description

    Unsketches all surfaces.

    Arguments

  • Model (Model)

    Model that all surfaces will be unblanked in

  • redraw (optional) (boolean)

    If model should be redrawn or not after the surfaces 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 surfaces in model m:

    GeometrySurface.UnsketchAll(m);


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

    Description

    Unsketches all flagged surfaces in the model.

    Arguments

  • Model (Model)

    Model that all surfaces will be unsketched in

  • flag (Flag)

    Flag set on the surfaces that you want to unsketch

  • redraw (optional) (boolean)

    If model should be redrawn or not after the surfaces 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 surfaces flagged with flag in model m:

    GeometrySurface.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

    GeometrySurface object.

    Return type

    GeometrySurface

    Example

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

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


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

    Description

    Adds a warning for surface. 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 surface s:

    s.Warning("My custom warning");


    Xrefs()

    Description

    Returns the cross references for this surface.

    Arguments

    No arguments

    Returns

    Xrefs object.

    Return type

    Xrefs

    Example

    To get the cross references for surface s:

    var xrefs = s.Xrefs();