TechDraw PageTemplate

From FreeCAD Documentation
(Redirected from TechDraw New Pick)

TechDraw PageTemplate

Menu location
TechDraw → Page → Insert Page using Template
Default shortcut
Introduced in version
See also
TechDraw PageDefault, TechDraw Templates


The TechDraw PageTemplate tool creates a new Page object using the template file selected from a dialog.

The starting directory for the dialog can be specified in the TechDraw Preferences.

One of the templates that comes with TechDraw: A4_Landscape_ISO7200_Pep.svg


  1. An active document must exist.
  2. There are several ways to invoke the tool:


See TechDraw PageDefault.


See also: Autogenerated API documentation and FreeCAD Scripting Basics.

A Page based on a selected template can be created with macros and from the Python console by using the following functions:

import FreeCAD as App
from PySide import QtGui

doc = App.ActiveDocument
default_dir = App.getResourceDir() + "Mod/TechDraw/Templates"
param = App.ParamGet("User parameter:BaseApp/Preferences/Mod/TechDraw/Files")
template_dir = param.GetString("TemplateDir", default_dir)

template_file = QtGui.QFileDialog.getOpenFileName(QtGui.QApplication.activeWindow(),
                                                  "Select a Template File", 
                                                  "Template (*.svg)")
page = doc.addObject("TechDraw::DrawPage", "Page")
template = doc.addObject("TechDraw::DrawSVGTemplate", "Template")
template.Template = template_file[0]
page.Template = template


Editable text fields

See also: TechDraw Templates for more information on creating templates.

Once a new page has been created, its Template attribute holds an EditableTexts dictionary with the name of the editable fields (keys) and their textual values. Copy this dictionary to a variable, make changes, and then re-assign the dictionary to the EditableTexts attribute to see the changes.

page = FreeCAD.ActiveDocument.Page
texts = page.Template.EditableTexts

for key, value in texts.items():
    print("{0} = {1}".format(key, value))

texts["FC-Title"] = "The title of my page"
page.Template.EditableTexts = texts