Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
05 ArchiCAD 11 GDL Reference Guide.pdf
Скачиваний:
58
Добавлен:
11.03.2015
Размер:
3.22 Mб
Скачать

Miscellaneous

9GetAttribute: return the data of an attribute of an element node recordID: "GetAttribute attrname attrnumber" fieldID: position descriptor (must refer to an element node) optional parameters:

attrname: give the name of the attribute. The * and ? are considered wildcard characters. Default value: *

attrnumber: If several attribute matches attrname, attrnumber chooses the attribute in the sequence of matching attributes. (Counting starts from 1.) Default value: 1

return values:

var1: value of the attribute var2: name of the attribute

10 Validate: check the validity of the document.

The validity is not checked during a document modification instruction. It is checked during writing back the file to disk if the 'v' flag was set in the open-mode string. A validity check can be forced any time by the Validate instruction, however it can consume considerable amount of time and memory so it is not advisable to do so after every modification.

recordID: "Validate" fieldID: ignored

Modifying XML Document

OUTPUT (ch, recordID, fieldID, var1, var2...)

ch: channel returned by the OPEN command recordID: instruction name plus parameters fieldID: usually a position descriptor

var1, var2,...: additional input data OUTPUT instructions:

Most of the OUTPUT instructions are invalid for files opened in read-only mode.

1CreateDocument:

recordID: "CreateDocument" fieldID: ignored

var1: name of the document. This will be the tagname of the root element, as well.

CreateDocument is allowed only if the file was opened in new-file or overwrite mode. In these modes this instruction must be the first to be executed in order to create the XML document.

316

ArchiCAD 11 GDL Reference Guide

Miscellaneous

2NewElement: insert a new element type node in the document recordID: "NewElement insertpos"

fieldID: a position descriptor relative to which the new node is inserted var1: name of the new element (element tag-name)

insertpos can be:

AsNextSibling: new element is inserted after the position given in fieldID AsPrevSibling: new element is inserted before the position given in fieldID

AsFirstChild: new element is inserted as the first child of the node given in fieldID (which must be an element node) AsLastChild: new element is inserted as the last child of the node given in fieldID (which must be an element node)

3NewText: insert a new text node in the document

recordID: "NewText insertpos" fieldID: position descriptor

var1: text to be inserted

See also the NewElement instruction.

4NewComment: insert a new comment node in the document recordID: "NewComment insertpos"

fieldID: position descriptor

var1: text of the comment to be inserted

See also the NewElement instruction.

5NewCDATASection: insert a new CDATA section node in the document recordID: "NewCDATASection insertpos"

fieldID: position descriptor

var1: text of the CDATA section to be inserted

See also the NewElement instruction.

6Copy: make a copy of a subtree of the document under some node recordID: "Copy insertpos"

fieldID: position descriptor relative to which the subtree is inserted var1: position descriptor giving the node of the subtree to be copied

insertpos: same as in the NewElement instruction

The copied subtree remains unchanged. Position descriptors pointing to some node in the copied subtree will point to the same node after the copy.

ArchiCAD 11 GDL Reference Guide

317

Miscellaneous

7Move: replace some subtree in the document to some other location recordID: "Move insertpos"

fieldID: position descriptor relative to which the subtree is inserted var1: position descriptor giving the node of the subtree to be moved

insertpos: same as in the NewElement instruction

The original subtree is deleted. Position descriptors pointing to some node in the moved subtree will point to the same node in the new position of the subtree.

8Delete: delete a node and its subtree from the document recordID: "Delete"

fieldID: position descriptor giving the node to delete

All position descriptors pointing to some node in the deleted subtree become invalid.

9SetNodeValue: change the value of a node recordID: "SetNodeValue"

fieldID: position descriptor, it must refer to either a text, a comment or a CDATA section type node var1: new text value of the node

10SetAttribute: change an attribute of an element node or create a new one recordID: "SetAttribute"

fieldID: position descriptor, it must refer to an element type node var1: name of the attribute

var2: text value of the attribute

If the element already has an attribute with this name then its value is changed, otherwise a new attribute is added to the element's list of attributes.

11RemoveAttribute: removes an attribute of an element node recordID: "RemoveAttribute"

fieldID: position descriptor, it must refer to an element type node var1: name of the attribute to remove

12Flush: write the current document back to file recordID: "Flush"

fieldID: ignored

If the file was opened in validate mode, then only a valid document is saved. 13 ChangeFileName: associate another file with the current document

recordID: "ChangeFileName" fieldID: new file path

318

ArchiCAD 11 GDL Reference Guide

Miscellaneous

var1: gives how fieldID should be interpreted. If var1 is an empty string, fieldID contains a path relative to the user's documents folder. 'd' means the file's location is obtained from the user from a file dialog box (see the command open-mode flags “OPEN” on page 307). 'l' means the file is taken from the loaded libraries. 'f' means fieldID contains a full path.

This instruction can be called even if the file was opened in read-only mode. In this case after the execution the document loses the read-only attribute, so it can be modified and saved to the new file location.

Error codes and messages:

0:"Ok"

-1: "Add-on Initialization Failed" -2: "Not Enough Memory"

-3: "Wrong Parameter String" -4: "File Dialog Error"

-5: "File Does Not Exist"

-6: "XML Parse Error" -7: "File Operation Error" -8: "File Already Exists"

-9: "This channel is not open" -10: "Syntax Error"

-11: "Open Error"

-12: "Invalid Position Descriptor"

-13: "Invalid Node Type for this Operation" -14: "No Such Node Found"

-15: "Internal Error"

-16: "Parameter Error"

-17: "No Such Attribute Found"

-18: "Invalid XML Document"

-19: "Unhandled Exception"

-20: "Read-Only Document"

-21: "CreateDocument Not Allowed" -22: "Document Creation Failed" -23: "Setting NodeValue Failed"

-24: "Move Not Allowed"

-25: "Delete Not Allowed"

-26: "SetAttribute Not Allowed" -27: "Format File Error"

-28: "Insertion (or Copy) Not Allowed" -29: "Node Creation Failed"

-30: "Bad String" -31: "Invalid Name"

ArchiCAD 11 GDL Reference Guide

319

Miscellaneous

320

ArchiCAD 11 GDL Reference Guide