Entity Database¶
The EntityDB
is a simple key/value database to store
DXFEntity
objects by it’s handle,
every Drawing
has its own EntityDB
, stored in
the Drawing
attribute entitydb
.
Every DXF entity/object, except tables and sections, are represented as
DXFEntity
or inherited types, this entities are stored in the
EntityDB
, database-key is the dxf.handle
as plain hex
string.
All iterators like keys()
, values()
, items()
and __iter__()
do not yield destroyed entities.
Warning
The get()
method and the index operator []
, return destroyed
entities and entities from the trashcan.
-
class
ezdxf.entitydb.
EntityDB
¶ -
__getitem__
(handle: str) → DXFEntity¶ Get entity by handle, does not filter destroyed entities nor entities in the trashcan.
-
__setitem__
(handle: str, entity: DXFEntity) → None¶ Set entity for handle.
-
__delitem__
(handle: str) → None¶ Delete entity by handle. Removes entity only from database, does not destroy the entity.
-
__contains__
(item: Union[str, DXFEntity]) → bool¶ True
if database contains handle.
-
__len__
() → int¶ Count of database items.
-
__iter__
() → Iterator[str]¶ Iterable of all handles, does filter destroyed entities but not entities in the trashcan.
-
get
(handle: str) → Optional[DXFEntity]¶ Returns entity for handle or
None
if no entry exist, does not filter destroyed entities.
-
next_handle
() → str¶ Returns next unique handle.
-
keys
() → Iterable[str]¶ Iterable of all handles, does filter destroyed entities.
-
values
() → Iterable[DXFEntity]¶ Iterable of all entities, does filter destroyed entities.
-
items
() → Iterable[Tuple[str, DXFEntity]]¶ Iterable of all (handle, entities) pairs, does filter destroyed entities.
-
add
(entity: DXFEntity) → None¶ Add entity to database, assigns a new handle to the entity if
entity.dxf.handle
isNone
. Adding the same entity multiple times is possible and creates only a single database entry.
-
new_trashcan
() → ezdxf.entitydb.EntityDB.Trashcan¶ Returns a new trashcan, empty trashcan manually by: : func:Trashcan.clear().
-
trashcan
() → ezdxf.entitydb.EntityDB.Trashcan¶ Returns a new trashcan in context manager mode, trashcan will be emptied when leaving context.
-
purge
() → None¶ Remove all destroyed entities from database, but does not empty the trashcan.
-
query
(query: str = '*') → ezdxf.query.EntityQuery¶ Entity query over all entities in the DXF document.
Parameters: query – query string See also
-
Entity Space¶
-
class
ezdxf.entitydb.
EntitySpace
(entities: Iterable[ezdxf.entities.dxfentity.DXFEntity] = None)¶ An
EntitySpace
is a collection ofDXFEntity
objects, that stores only references toDXFEntity
objects.The
Modelspace
, anyPaperspace
layout andBlockLayout
objects have anEntitySpace
container to store their entities.-
__iter__
() → Iterable[DXFEntity]¶ Iterable of all entities, filters destroyed entities.
-
__getitem__
(index) → DXFEntity¶ Get entity at index item
EntitySpace
has a standard Python list like interface, therefore index can be any valid list indexing or slicing term, like a single indexlayout[-1]
to get the last entity, or an index slicelayout[:10]
to get the first 10 or less entities asList[DXFEntity]
. Does not filter destroyed entities.
-
__len__
() → int¶ Count of entities including destroyed entities.
-
has_handle
(handle: str) → bool¶ True
if handle is present, does filter destroyed entities.
-
purge
()¶ Remove all destroyed entities from entity space.
-
add
(entity: DXFEntity) → None¶ Add entity.
-
extend
(entities: Iterable[DXFEntity]) → None¶ Add multiple entities.
-
remove
(entity: DXFEntity) → None¶ Remove entity.
-
clear
() → None¶ Remove all entities.
-