Save 15% On All Single Licences! Loading... GET OFFER

How to Edit Data Extraction Definition DXD Files in BricsCAD BIM

Quick answer: DXD (Data Extraction Definition) files are plain text files, created by DATAEXTRACTION and editable in any text editor like Notepad, used in the Creating Schedules procedure of the Project Browser, resolving the DXD reference on this hub’s Project Browser page. Since V22, DXD files use syntax version 2.0: a Paths section was added, and logical operations use infix notation ((EntityType=="3D Solid") and (Type=="BIM_COLUMN")) instead of the old prefix notation (AND (EntityType=="3D Solid") (Type=="BIM_COLUMN")).

File Structure

Lines starting with a semicolon (;) are comments and ignored when parsing; empty lines are ignored too. Section names are written in square brackets and are English case-insensitive (ECI) strings. Worth flagging: the source states a DXD file “can contain 4 sections,” but actually lists five section names: Paths, Settings, Entity Types, Properties, and Filter.

The [Paths] Section

Lists the paths to search for drawing files:

The [Settings] Section

Controls behaviour via these parameters (ECI names, format ParameterName=value, value either 1 or 0, no spaces around the =):

The [Entity Types] Section

Lists entity types to process, one of four line formats per line:

The [Properties] Section

Lists properties to include in the output, one of five line formats per line. Property names generally contain no spaces, except coordinate properties, where the coordinate letter (X, Y, or Z) is separated from the general property name by a single space.

  1. EntityPropertyName | DisplayEntityPropertyName | ValueOutputFormat: EntityPropertyName is the ECI property name (Lineweight, Color, “Center Y,” and so on), mandatory; DisplayEntityPropertyName is an optional custom name (defaults to EntityPropertyName); ValueOutputFormat formats the output, using the same syntax as field formatting.
  2. Attribute | AttributeTagName | DisplayAttributeTagName | ValueOutputFormat: Attribute is the predefined keyword; AttributeTagName is the ECI attribute tag name as stored in the drawing; the remaining fields work the same as above.
  3. Drawing | DrawingPropertyName | DisplayPropertyName | ValueOutputFormat: Drawing is the predefined keyword; DrawingPropertyName must be one of: Comments, DrawingRevisionNumber, FileAccessed, FileCreated, FileLastSavedBy, FileLocation, FileModified, FileName, FileSize, HyperlinkBase, Keywords, Subject, Title, or TotalEditingTime.
  4. Formula | EntityPropertyName | DisplayEntityPropertyName=FormulaExpression | ValueOutputFormat: Formula is the predefined keyword; EntityPropertyName is a unique name for this formula item; DisplayEntityPropertyName is optional (the = sign is mandatory regardless, even with it omitted); FormulaExpression uses the same syntax as \AcExpr formula fields, with constants like PI and functions like SIN, referencing properties as <DisplayPropertyName> in angle brackets. For example, =2 * PI * <Radius> calculates a circle’s circumference.
  5. BlockView | BlockViewPropertyName | DisplayBlockViewPropertyName | BlockViewOptions: BlockView is the predefined keyword; BlockViewPropertyName is a unique name; DisplayBlockViewPropertyName, unlike the other formats above, cannot be omitted here. BlockViewOptions follows the format ViewType;DwgPath;SectionName: ViewType is Front, Top, Left, or Right (mandatory); DwgPath is a path to a DWG file, optionally relative to the DXD file (can be omitted); SectionName names the section to pull section settings from for the block view (can be omitted). If DwgPath or SectionName are omitted or not found, default settings apply. Example: BlockView|BlockViewProperty1|Elevation symbol|Front;../Sections/_SectionSettings.dwg;_BlockViewSettingsSection.

* on its own includes every entity property; all other lines in the section are ignored except Drawing and Formula lines.

An empty field search uses a literal space character (" ").

The [Filter] Section

Relational operators:

Operator Meaning
== Equal to
!= Not equal to
< Less than
> Greater than
<= Less than or equal to
>= Greater than or equal to

Relational expressions are enclosed in (); AND/OR logical operators are case-insensitive and use infix notation. Tokens can be separated by any number of spaces (including zero), except right at the start of a logical expression, for example: ( Layer == "MyLayer" ) and (Thickness<=3). Expressions can split across multiple lines without breaking individual tokens. Use the EntityPropertyName, not the DisplayEntityPropertyName, to refer to properties. Comment lines with ;, and enclose string values in double quotation marks.

For example, (Type == BIM_WINDOW) or (Type == BIM_DOOR) extracts only BIM entities classified as windows or doors (see BIMCLASSIFY for more on BIM entity types).

A filter expression can be a single relational expression, or several grouped by logical operators, for example: ((0) and ((1) or (2))) or ((3) and (4) and (5)) or (6), where (0) through (6) are relational expressions like (Radius >= 3).

Frequently Asked Questions

What changed in DXD file syntax starting with BricsCAD V22? The Paths section was added, and logical operations switched from prefix notation to infix notation.

How do I reference a property inside a Filter section expression? Use its EntityPropertyName, not its DisplayEntityPropertyName.

What’s mandatory in a Formula line’s DisplayEntityPropertyName field, even if I omit the name itself? The = sign must still be present, even when DisplayEntityPropertyName is left out.

Can I include entities from nested blocks and external references in a data extraction? Yes, control this with ExtractFromBlocks (all nesting levels) and ExtractFromXrefs in the Settings section.

Powered by Full Pelt Ltd