Altair EEvision™

Home

Reserved Attributes


This document is a specification for certain EDB attributes that are stored in the EDB. The EDB Creator API describes how to store (general purpose) attributes (like other objects) into the EDB, but here, we define the meaning of some reserved attributes for the EEvision™ application.

List of Attributes

All special "reserved" Attributes start with a leading space character in their names. 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).

special
attribute
supported at
object type
used
by
attribute value
description
attribute value
example
 color Wire EEV 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 in the same attribute (actually one color, a pair or a triplet of colors).   pink #ffa500 blue
 color Component EEV defines the component's or connector's background color, or background and foreground color (if the value is a pair of colors).   #8080ff
 color Connector EEV   #8080ff red
 imagedsp ECU or UNDEF Component EEV   defines the image to be displayed inside the component body. May have comma-separated fields. See imagedsp syntax below.   sensor.svg
 symdef SVG Component EEV   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. Formatted as Tcl list. See symdef syntax below.   DEF fpath 0 0 0 80 97 80 97 0 0 0 linewidth 0 imagedsp Relais.svg -ul 0 0 97 80 attrdsp @name -lc 74 -2 12
SVG Cavity 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.   pin 12 left -loc 18 62 18 62
pinattrdsp @name -ul 13 68 10
 symbol SVG Component EEV defines the symbol shape by name, referring to a symbol definition by name in an external symbol file (obsolete, use “ symdef” instead)   Relais
 ecfile Cavity end
circuit
  defines the end-circuit file to be optionally displayed related to a certain Cavity. Formatted as comma-separated fields. See ecfile syntax below.   G51,1,IN1,left
 index Edb root file
select
  defines the names of root attributes that are optionally displayed in the fileselect.html page. Formatted as tab-separated fields. See index syntax below.   desc author vers
 href any EEV
info
  defines an HTML hyperlink to be displayed in the info window for the object. As an exception to EDB standards, multiple (duplicate) " href" attribute are supported. Formatted as comma-separated fields. See href syntax below. Link, https://www.altair.com, Altair
 image any EEV
info
  defines an HTML image to be displayed in the info window for the object. Formatted as comma-separated fields. See image syntax below. Image, ecu.png, 320, 240
 video any EEV
info
  defines an HTML video to be displayed in the info window for the object. Formatted as comma-separated fields. See video syntax below. Video, ecu.mp4 ,320, 240
 srcref any EEV
info
  defines references to the original source file as automatically created by an EDB converter tool (currently only created by edml2edb). See srcref syntax below. at118m.edml:5,10
more.edml:3
 expr CONFIG Module 100% filtering defines a Boolean expression to be evaluated at EEvision startup with 100% filtering (defined by URL parameters fv). See expr syntax below.   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 "smart" argument is 1 or 2.  
 diff
 length
 weight
internally created and used by the diff and docgen plugins. 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, 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 half-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. E.g. "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:
A=A, B=B, C=C, D=D, E=E, F=F, G=G, H=H, I=I, J=J, K=K, L=L, M=M, N=N, O=O, P=P, Q=Q, R=R, S=S, T=T, U=U, V=V, W=W, X=X, Y=Y, Z=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 data-set 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
Balloon Window for the component FZM, showing its attributes. 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.,
"␣href" = "Webpage,https://www.altair.com,Altair Engineering Inc.".
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.

The Figure on the right side displays 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".

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:
  1. Name of the entry in the attribute table
  2. File name of the image file (including extension, relative to the directory of the EDB file)
  3. Width of the image in pixels or “auto” if the width should be determined automatically.
  4. 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 view-port.
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 and 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 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:
input variables Boolean expression
A12 & B7 | !A3
      ⇒ true
    fv=A3 ⇒ false
  fv=B7   ⇒ true
  fv=B7 fv=A3 ⇒ false
fv=A12     ⇒ true
fv=A12   fv=A3 ⇒ false
fv=A12 fv=B7   ⇒ true
fv=A12 fv=B7 fv=A3 ⇒ true
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:
input variables Boolean expression
A12 & B7 < 42 | !A3
fv=A12 fv=B7=150 fv=A3 ⇒ false (true & false | !true)
fv=A12 fv=B7=40 fv=A3 ⇒ true (true & true | !true)
fv=A12   fv=A3 ⇒ ditto, B7 is not set (ergo 0)
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).