Python: Difference between revisions

From Vectorworks Developer
Jump to navigation Jump to search
(Added remark around exact python version.)
 
(18 intermediate revisions by 6 users not shown)
Line 16: Line 16:


Vectorworks uses Python 3 language. This is very important when learning about the language and when writing code.
Vectorworks uses Python 3 language. This is very important when learning about the language and when writing code.
! Vectorworks uses Python 3.3 at the moment, which is for VW2015. Keep this in mind, as python adds new stuff in minor releases like enums in 3.4.


== How to start with Python ==
== How to start with Python ==
Line 22: Line 24:


The fastest way to learn the language is to read through Python Tutorial pages: http://docs.python.org/3/tutorial/
The fastest way to learn the language is to read through Python Tutorial pages: http://docs.python.org/3/tutorial/
A very good guide at writing good code and perform common tasks can be found at [http://docs.python-guide.org/en/latest/ The Hitchhiker’s Guide to Python!]


== Python 3 and Vectorworks ==
== Python 3 and Vectorworks ==


Scripting in Vectorworks with Python is very similar to the way [[VectorScript]] works in the software. All the existing APIs are available i n the Python scripts inside the 'vs' namespace.
Scripting in Vectorworks with Python is very similar to the way [[VectorScript]] works in the software. All the existing APIs are available in the Python scripts inside the 'vs' namespace. Of course, all of the power of the Python engine is available, so that Python style type inference, classes, iterators, libraries, dictionaries, modules, packages sequence types like lists, tuples and ranges are available in the Vectorworks environment.


For example a simple script in Python that show an alert dialog looks like that:
To get started, here is a simple script in Python that displays an alert dialog looks like this:


[[Image:SimplePythonInVectorworks.jpg]]
[[Image:SimplePythonInVectorworks.jpg]]
Line 35: Line 39:
# Type the script
# Type the script


When executed with double click on the script in the resource browser, the alert dialog will be displayed.
When executed with a double-click on the script label in the resource browser, the alert dialog will be displayed.


== Python API ==
== Python API ==
Line 43: Line 47:
== Samples ==
== Samples ==


These are some introductory samples that that demonstrate plug-ins for Vectorworks written in Python. They are with increasing difficulty and demonstrate different aspects in the plug-in development under Vectorworks:
These are some introductory samples that demonstrate plug-ins for Vectorworks written in Python. They are with increasing difficulty and demonstrate different aspects in the plug-in development under Vectorworks:


* Sample menu command: [[Python Sample Menu Command]]
* Sample menu command: [[Python Sample Menu Command]]
* Sample point object: [[Python Sample Point Object]]
* Sample point object: [[Python Sample Point Object]]
* Sample more complex point object: [[Python Sample Point Object (complex]]
* Sample more complex point object: [[Python Sample Point Object (complex)]]
* Sample 2D path object: [[Python Sample 2D Path Object]]
* Sample 2D path object: [[Python Sample 2D Path Object]]
* An object that display an image from the web: [[Python Sample WebLinkImage]]
* An object that display an image from the web: [[Python Sample WebLinkImage]]
* Sample of a menu and two objects: [[Python Sample Menu with Two Objects]]
* Sample that imports a folder of .png images as symbols: [[Python Sample Import Images as Symbols]]
* Sample scripts to elevation information of VW objects: [[Python sample to Import elevation]]
== IDE and Debugging Python Scripts ==
Often users would use external IDE to edit the Python scripts that Vectorworks executes. Modern IDEs provide intelli-sense information (information about the semantics of the code while typing). To help intelli-sense for Vectorworks Python script APIs, you can point your IDE to the file [[File:vs.zip|vs.py (python file)]] (download, unzip, and place it appropriately so the IDE could find it). This way the IDE will know all Vectorworks Python functions and it would provide some information on the parameters and the behavior of the function. Note that those functions are empty and will not do anything if executed.
It is possible to debug Python scripts in Vectorworks using a third-party application.
See [[Python Debugging]] for more information.
List of some good IDE's:
* [http://www.aptana.com/products/studio3/download.html Aptana Studio 3] (Free)
* [http://www.jetbrains.com/pycharm/ PyCharm] (Free community edition, Paid full version)
== See Also ==
* [[Vectorworks Scripting#Common Tasks|Scripting Common Tasks]]
* [[Vectorworks Scripting#Installing Scripts|Installing Scripts]]
* [https://wiki.python.org/moin/BeginnersGuide/NonProgrammers List of Python tutorials for non-programmers]
* [https://wiki.python.org/moin/BeginnersGuide/Programmers List of Python tutorials for programmers]
== Notes ==


==Notes==
<references />
<references />

Latest revision as of 19:19, 20 July 2015

.Python|Python ..VS:Function Reference|Function Reference ..VS:Function_Reference_Appendix|Appendix ..Python Debugging|Debugging with Python

What is Python

Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs.[1]

Also, here is the article about Python in wikipedia: http://en.wikipedia.org/wiki/Python_(programming_language)

More about Python can be found on the http://www.python.org/ website.

Python Version

Python has two public versions Python 2.7 and Python 3.x.

Vectorworks uses Python 3 language. This is very important when learning about the language and when writing code.

! Vectorworks uses Python 3.3 at the moment, which is for VW2015. Keep this in mind, as python adds new stuff in minor releases like enums in 3.4.

How to start with Python

First of all you must learn the Python 3 language. The best place to start is the Python documentation page(http://www.python.org/doc/).

The fastest way to learn the language is to read through Python Tutorial pages: http://docs.python.org/3/tutorial/

A very good guide at writing good code and perform common tasks can be found at The Hitchhiker’s Guide to Python!

Python 3 and Vectorworks

Scripting in Vectorworks with Python is very similar to the way VectorScript works in the software. All the existing APIs are available in the Python scripts inside the 'vs' namespace. Of course, all of the power of the Python engine is available, so that Python style type inference, classes, iterators, libraries, dictionaries, modules, packages sequence types like lists, tuples and ranges are available in the Vectorworks environment.

To get started, here is a simple script in Python that displays an alert dialog looks like this:

  1. Right-click on the resource browser and create a new script
  2. Choose language for the script to be 'Python'
  3. Type the script

When executed with a double-click on the script label in the resource browser, the alert dialog will be displayed.

Python API

Full functional reference to the Python Vectorworks API can be found on this page VS:Function_Reference.

Samples

These are some introductory samples that demonstrate plug-ins for Vectorworks written in Python. They are with increasing difficulty and demonstrate different aspects in the plug-in development under Vectorworks:

IDE and Debugging Python Scripts

Often users would use external IDE to edit the Python scripts that Vectorworks executes. Modern IDEs provide intelli-sense information (information about the semantics of the code while typing). To help intelli-sense for Vectorworks Python script APIs, you can point your IDE to the file File:Vs.zip (download, unzip, and place it appropriately so the IDE could find it). This way the IDE will know all Vectorworks Python functions and it would provide some information on the parameters and the behavior of the function. Note that those functions are empty and will not do anything if executed.

It is possible to debug Python scripts in Vectorworks using a third-party application.

See Python Debugging for more information.

List of some good IDE's:

See Also

Notes

  1. As described on the Python official website: http://www.python.org