Creates a new AcDbLayerTable instance.
This constructor automatically creates a default layer named '0' with white color and continuous linetype.
The database this layer table belongs to
Protected_recordsMap of records indexed by object ID
Protected_recordsMap of records indexed by name
Gets the attributes object for this AcDbObject.
The AcCmObject instance containing all attributes
Gets the database in which this object is resident.
When an object isn't added to a database, this property returns the current working database. After it is added to a database, it will be set automatically. You should never set this value manually.
The database this object belongs to
Sets the database for this object.
This is typically set automatically when the object is added to a database. Manual setting should be avoided unless you know what you're doing.
The database to associate with this object
Gets the objectId of the extension dictionary owned by this object.
If the object does not have an extension dictionary, this returns undefined.
In ObjectARX terms, this is equivalent to AcDbObject::extensionDictionary().
The extension dictionary objectId, or undefined
Sets the objectId of the extension dictionary owned by this object.
This does not create or delete the dictionary object itself — it only establishes or clears the ownership relationship.
Passing undefined removes the association.
The extension dictionary objectId, or undefined
Gets the number of entries in the table.
The number of entries in the table
Gets the object ID.
AutoCAD uses 64-bit integers to represent handles, which exceed the maximum integer value of JavaScript. Therefore, strings are used to represent object handles.
The object ID as a string
Sets the object ID.
The new object ID
Gets the object ID of the owner of this object.
The owner object ID
Sets the object ID of the owner of this object.
The new owner object ID
Adds a layer table record to this layer table.
This method overrides the base class method to dispatch a layerAppended event when a new layer is added to the table.
The layer table record to add
Creates the extension dictionary for this object if it does not already exist.
This method closely mirrors the behavior of
AcDbObject::createExtensionDictionary() in ObjectARX.
The objectId of the extension dictionary
Searches the table for a record with the specified name.
The name to search for
The record with the specified name, or undefined if not found
Gets the value of the specified attribute.
This method will throw an exception if the specified attribute doesn't exist. Use getAttrWithoutException() if you want to handle missing attributes gracefully.
The name of the attribute to retrieve
The value of the specified attribute
Gets the value of the specified attribute without throwing an exception.
This method returns undefined if the specified attribute doesn't exist, making it safer for optional attributes.
The name of the attribute to retrieve
The value of the specified attribute, or undefined if it doesn't exist
Searches the table for a record with the specified ID.
The ID to search for
The record with the specified ID, or undefined if not found
Gets the owner ID of a record with the specified ID.
The ID to search for
The record with the specified ID, or undefined if not found
Retrieves the XData associated with this object for a given application ID.
Extended Entity Data (XData) allows applications to attach arbitrary, application-specific data to an AcDbObject. Each XData entry is identified by a registered application name (AppId) and stored as an AcDbResultBuffer.
This method is conceptually equivalent to AcDbObject::xData() in ObjectARX,
but simplified to return the entire result buffer for the specified AppId.
The application ID (registered AppId name) that owns the XData
The AcDbResultBuffer associated with the AppId, or undefined
if no XData exists for that AppId
Creates an iterator object that can be used to iterate over the records in the table.
An iterator object that can be used to iterate over the records
ProtectednormalizeNormalizes the name of a symbol table record.
Some symbol table records require name normalization. For example, the
model space block table record may appear as either *Model_Space or
*MODEL_SPACE, and should be standardized to a consistent form.
Subclasses should override this method to implement record-specific normalization rules.
The raw name of the symbol table record.
The normalized symbol table record name.
Removes the XData associated with the specified application ID.
After removal, calls to getXData() for the same AppId will return undefined.
If no XData exists for the given AppId, this method has no effect.
This mirrors the behavior of clearing XData for a specific application in ObjectARX rather than removing all XData from the object.
The application ID whose XData should be removed
Sets the value of an attribute.
The name of the attribute to set
Optionalval: AcDbObjectAttrs[A]The value to assign to the attribute
Attaches or replaces XData for this object.
If XData already exists for the given AppId, it is replaced by the provided AcDbResultBuffer. The caller is responsible for ensuring that:
This method is conceptually similar to AcDbObject::setXData() in ObjectARX.
The result buffer containing the XData to attach
Symbol table for layer table records.
This class manages layer table records which represent layers within a drawing database. Layers are used to organize and control the display of entities in the drawing. Each layer can have its own color, linetype, visibility settings, and other properties.
Example