     rect = @_element.getBoundingClientRect()
     @_project.editingElement.zoomViewMatrixToRegionOfInterest(
       regionOfInterest, rect.width, rect.height)
+
+    if @options.symbol?
+      @switchToSymbol(@options.symbol)
 
     @options.onLoad?.apply(this)
 

#       (This rectangle will be fit snuggly into the DOM node provided.)
#
#   You may provide...
#     onLoad: [function]
#       Callback to be run once the diagram is loaded (before any rendering),
#       with `this` taking the value of the ApparatusViewer.

    if foundMultiple
      throw "Found multiple attributes with label #{label}"
    return new Attribute(attribute, this)

  # Switches the viewer to the symbol with label `label`, provided this label is
  # unique.
  switchToSymbol: (label) ->
    matchingSymbols =
      @_project.createPanelElements.filter (symbol) -> symbol.label == label
    if matchingSymbols.length == 1
      @_project.setEditing(matchingSymbols[0])
    else if matchingSymbols.length < 1
      throw "Found no symbols with label #{label}"
    else
      throw "Found multiple symbols with label #{label}"

  # ADVANCED USAGE: Returns a reference to the internal `Project` object being
  # displayed in the viewer. You can read and write to this object, but beware:
