VS:GetRField

From Vectorworks Developer
Revision as of 14:25, 14 January 2016 by CBM-c- (talk | contribs) (warning about GetRecord(h, NumRecords(h)))
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

.VectorScript|VectorScript ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix

Description

Returns string description of a value in the specified record field.

FUNCTION GetRField(
h :HANDLE;
record :STRING;
field :STRING) : DYNARRAY[] of CHAR;
def vs.GetRField(h, record, field):
    return DYNARRAY[] of CHAR

Parameters

h HANDLE Handle to object.
record STRING Name of record format.
field STRING Name of field to be queried.

Return Value

Returns the field value as a variable length string.

Remarks

(Orso, 2015.02.24):

Please note that since the introduction of ifc data, the usual praxis of fetching plug-in records using

GetRecord(h, NumRecords(h))

can bring you perhaps unexpectedly the ifc record. Use VS:GetParametricRecord instead, introduced from VW 2011.

(Others): Returns a string interpretation of the field from the specified record

[CLC 2001/11/12]: Note that when using this to access parameter fields in a PIO, you get the values of the instance of the plug-in, not the default values, as set in the plug-in editor. If you want the default values, you have to use the handle to the PIO record format.

[CLC 2004/11/8]: This returns values rounded to the nearest display accuracy, whereas pFieldName returns the actual number.

Example

VectorScript

PROCEDURE Example;

FUNCTION WriteFieldValues(h :HANDLE) :BOOLEAN;
VAR
cnt     :INTEGER;
recHand :HANDLE;
recName :STRING;
fldName :STRING;
BEGIN
recName := GetName(GetRecord(h, NumRecords(h)));
recHand := GetObject(recName);
FOR cnt := 1 TO NumFields(recHand) DO BEGIN
fldName := GetFldName(recHand, cnt);
WriteLn(fldName, ': ', GetRField(h, recName, fldName));
END;
END;

BEGIN
ForEachObjectInLayer(WriteFieldValues, 2, 0, 4);
END;
RUN(Example);

Python


Version

Availability: from VectorWorks 8.5