This document is a specification for certain reserved EDB attributes
that are stored in the EDB. The
EDB Creator API
describes how to store (general purpose) attributes (like other
objects) in the EDB; here, we define the meaning of these reserved
attributes for the Altair EEvision™ application.
List of Attributes
Reserved attributes all start with a
leading space character in their names. To make that space
character visible, we write it, e.g., as follows: "␣color"
for an attribute whose name is a space followed by the string color.
In contrast to normal,
general-purpose attributes, whose string values are usually displayed in
the GUI or made available to other parts of the application through the
GUI API, the reserved attributes may
change the rendering of its object. Some may depend on the current
EEvision settings
(initialized by eev.conf).
Defines one, two, or three colors to be displayed in a small
rectangular box at the wire – depending on the value of
config.wireMark
in the Settings. The color values are stored as space-separated
fields as the value of the attribute (actually one color, a pair,
or a triplet of colors).
Defines the symbol shape to be displayed as component body. This
symbol shape defines label locations, body size and usually includes
a centered SVG image. It must be formatted as Tcl list.
Defines the pin-related parts of the symbol shape, which is the pin
location and any pin label location. For backward compatibility this
is optional; if this attribute is not given, then all data is
expected to be stored in the SVG component's symdef attribute.
Technically, EEvision will concatenate the body's symdef and all
cavities' symdef into one description; however, the pinnames (the
second word in the symdef values) will be replaced by any internal
name needed to solve potential name conflict issues gracefully.
Defines the symbol shape by name, referring to a symbol definition
by name in an external symbol file. This attribute is deprecated.
Future versions of EEvision will not support it. Please use
"␣symdef" instead.
Defines an HTML hyperlink to be displayed in the info window and
balloon window for the object. As an exception to EDB standards,
multiple (duplicate) "␣href" attribute are supported.
Formatted as comma-separated fields.
Defines an HTML image to be displayed in the info and balloon window for the
object. Formatted as comma-separated fields. Multiple
"␣image" attributes are supported.
Defines an HTML video to be displayed in the info and balloon window for the
object. Formatted as comma-separated fields. Multiple
"␣video" attributes are supported.
Defines references to the original source file. These attributes
are automatically created by an EDB converter tool (currently
only created by
edml2edb).
Defines a Boolean expression to be evaluated at EEvision
startup
with 100% filtering (defined by URL parameters
fv).
K12 & (S33P | TK > 12)
␣smartstop
Cavity, Connector, Component
EEV extract
Defines stop objects for the smart extraction by the Extract button
or by the
ExtractOne
API function if the
options.smart
argument is not set to "off". The value of the attribute
is an arbitrary string; it only matters whether the object has a
"␣smartstop" attribute or not.
Internally created and used by the edbdiff, docgen, and details
plugins as well as EDB transformations for logical and block mode.
They are considered as experimental.
⧉
The Attribute Value Syntax
␣color
A color is defined either in hex format or by a color name, optionally
followed by a slash and the transparency of the color. Without the
slash-separated transparency, the color is opaque. The hex format is
prefixed with a # character, followed by 6 hex digits,
e.g., #ffa500 for orange color
– with the first two hex-digits representing red, the next two
green, and the final two blue, each in a range from
0x00 (dark) to 0xff (bright). For
half-transparent colors, the hex format can be appended by a slash and
two more hex digits, defining the transparency in a range from 0x00
(opaque) to 0xff (full transparent). For example:
#ffa500/7f defines a
50% transparent orange color.
Alternatively to the hex format, one of the following predefined color
names can be used:
aliceblue
antiquewhite
aqua
aquamarine
azure
beige
bisque
black
blanchedalmond
blue
blueviolet
brown
burlywood
cadetblue
chartreuse
chocolate
coral
cornflowerblue
cornsilk
crimson
cyan
darkblue
darkcyan
darkgoldenrod
darkgray
darkgreen
darkgrey
darkkhaki
darkmagenta
darkolivegreen
darkorange
darkorchid
darkred
darksalmon
darkseagreen
darkslateblue
darkslategray
darkslategrey
darkturquoise
darkviolet
deeppink
deepskyblue
dimgray
dimgrey
dodgerblue
firebrick
floralwhite
forestgreen
fuchsia
gainsboro
ghostwhite
gold
goldenrod
gray
green
greenyellow
grey
honeydew
hotpink
indianred
indigo
ivory
khaki
lavender
lavenderblush
lawngreen
lemonchiffon
lightblue
lightcoral
lightcyan
lightgoldenrodyellow
lightgray
lightgreen
lightgrey
lightpink
lightsalmon
lightseagreen
lightskyblue
lightslategray
lightslategrey
lightsteelblue
lightyellow
lime
limegreen
linen
magenta
maroon
mediumaquamarine
mediumblue
mediumorchid
mediumpurple
mediumseagreen
mediumslateblue
mediumspringgreen
mediumturquoise
mediumvioletred
midnightblue
mintcream
mistyrose
moccasin
navajowhite
navy
oldlace
olive
olivedrab
orange
orangered
orchid
palegoldenrod
palegreen
paleturquoise
palevioletred
papayawhip
peachpuff
peru
pink
plum
powderblue
purple
red
rosybrown
royalblue
saddlebrown
salmon
sandybrown
seagreen
seashell
sienna
silver
skyblue
slateblue
slategray
slategrey
snow
springgreen
steelblue
tan
teal
thistle
tomato
turquoise
violet
wheat
white
whitesmoke
yellow
yellowgreen .
For semi-transparent colors, the color name above can be appended by a
slash and a decimal number in a range from 0 (opaque) to 100 (full
transparent) and a percent character. For example:
gray/50% defines a
50% transparent gray color. As an exception the name
? is supported for no/unknown color (same
meaning as not defining the color at all) and can be used to define only
some colors in a pair or triplet, like:
? ? steelblue.
Validate color in the EDB Creator API by
calling
EdbValidateAttr("␣color", value)
or set the
EdbStrictFValidAttr
flag in the EDB, before calling
EdbNewAttr("␣color", value).
␣imagedsp
This attribute defines an image to be displayed inside a Component. The
attribute value is the image name plus optional comma-separated width
and height of the displayed image. For instance,
"sensor.svg,40,50" (with width=40 and
height=50) or "sensor.svg" (with default
width 100 and default height 100). If the image name includes a suffix
(here .svg), then the image is loaded from a location
relative to the location of the .edb file. If the
image name includes no suffix, like in
"A,40,50" or
"A", then the corresponding EEvision
built-in image is loaded.
Built-in Images: There is a built-in image for each upper-case
character from A to Z as listed here (some are empty):
A =
B =
C =
D =
E =
F =
G =
H =
I =
J =
K =
L =
M =
N =
O =
P =
Q =
R =
S =
T =
U =
V =
W =
X =
Y =
Z =
Validate imagedsp: TODO
␣symdef
The string value of the “␣symdef” attribute (as well
as the syntax of the symlib file, referred to by the
“ symbol” attribute) is a space-separated list of items
– actually following the syntax of Tcl lists (if there are spaces
or other special characters in an item). Each item is either a keyword
or a string value representing a name or a number.
Validate symdef: TODO
␣ecfile
The "␣ecfile" attribute is used by the endcircuit
plugin to display the inner circuitry of a component. A detailed
description of the syntax of the "␣ecfile"
attribute can be found in the
documentation of the
endcircuit plugin.
Validate ecfile: TODO
␣index
This attribute at the EDB database root node is evaluated by the
default EEvision landing page eevision.html. For the
currently selected dataset and when “Show details” is
activated, the values of those root attributes are shown whose names
are listed in the value string of the "␣index"
attribute.
The list of attribute names needs to be separated by
tab characters, not spaces!
Validate index: TODO
␣href
EEvision's balloon window showing – apart from the
normal attributes Alias, CompID,
Description, Harness, and
PartNumber – an image, a video, and a link.
They were created using the reserved attributes
"␣image", "␣video",
and "␣href".
The "␣href" attribute is used by the EEvision GUI
to display links to other web pages in the info and balloon window
(see Figure 1).
For this, the value of the attribute needs to be a list of three
comma-separated entries, e.g.,
This attribute generates a line in the attribute table of the info
and balloon window. The value in the “Name” column is
“Webpage”; the entry in the “Value” column
is a link with the name “Altair Engineering Inc.” that points
to the given URL. If multiple links should be generated, several
attributes with the same name "␣href" can be
created.
Validate href: TODO
␣image
The "␣image" attribute is used to display images
in the info and balloon window (see Figure 1).
The value of the "␣image" attribute is a
comma-separated list of four entries:
Name of the entry in the attribute table
File name of the image file (including extension, relative
to the directory of the EDB file)
Width of the image in pixels or “auto”
if the width should be determined automatically.
Height of the image in pixels or “auto”
if the height should be determined automatically.
If either width or height is specified as “auto”,
the image is scaled preserving its aspect ratio. If both dimensions
are “auto” the natural size of the image
is used as long as its width does not exceed half of the width
of viewport.
Example:
"␣image" = "FZM,fzm_plug.png,300,auto"
Validate image: TODO
␣video
We can use the "␣video" attribute to insert a
video into the attribute table of an object's info or balloon window
(see Figure 1). The syntax of the
"␣video" attribute is the same as the syntax of the
"␣image" attribute.
Example:
"␣video" = "FZM,fzm_video.mp4,300,auto"
Validate video: TODO
␣srcref
The string value of the "␣srcref" attribute is a file
name, followed by a colon (:), followed by a comma separated list
of line numbers or line number ranges (indicated by a dash (-)).
For example
at118m.edml:5,10,102-108,210
defines references to the source file
at118m.edml at lines 5, 10, 102 to 108, and
210.
␣expr
The string value of the CONFIG Module's "␣expr"
attribute defines a Boolean expression based on operators and
input variables. The operators are
| (or), & (and),
! (prefix not), ' (postfix not)
and (…) (braces). The
operator precedence is | <
& < ! <
'. The input variable names consist of alpha and
numeric characters and “_”, but the first character must be an alpha or
“_”. The variable names are case-sensitive.
The input variables are given as true (if set by the
URL parameter fv) or given as
false (if not set). For the 100% filtering, each CONFIG
Module's Boolean expression is evaluated to true or false. True means,
this CONFIG Module is added to the filtering result. False means, this
CONFIG Module is not added. Here is an example truth table:
If the Boolean expression has a syntax error, then the evaluation
returns false unless a special variable _debug_ is set by “fv=_debug_”. If so, then processing stops and the syntax error will be reported
at start-up time.
As mentioned above, the
input variables are normally only
0=false (if not set) or 1=true (if set by the
fv
URL parameter). But there is an
integer extension allowing each input variable to be set to any
positive integer, e.g.,
fv=B7=100. Then, it may be useful to check for integer ranges in the Boolean
expression, using additional operators: <,
> and
=
plus constant integer numbers, as shown in the following incomplete
example truth table:
The precedence of the operators
<, >,
= is higher than
&
but lower than
!.
There is an additional general purpose operator
? … : … to combine sub-expressions like: “subexpr0 ? subexpr1
: subexpr2” with the same meaning as in common programming languages. This
operator has the lowest precedence (lower than |).
As common in programming languages, all operators are left associative,
except for the operator ' (postfix not), which is
right associative.
Validate expr in the
EDB Creator API
by calling
EdbValidateAttr(mod, "␣expr", value)
or set the
EdbStrictFValidAttr
flag in the EDB, before calling
EdbNewAttr(mod, "␣expr", value).
If it succeeds, the
EdbValidateAttr(mod, "␣expr", value)
additionally returns a list of variables that occur in the Boolean
expression (as an extra service to the caller).