All parametric 3D CAD systems have one thing in common: features. First introduced to the commercial MCAD space by PTC as part of Pro/Engineer in the 80’s, “features” are the building blocks by which engineers and designers create parametric 3D CAD models.

This commonly used Onshape slide illustrates that all 3D models in parametric CAD systems are based on building blocks called “features.”

Despite being adopted by nearly every other commercial MCAD vendor since, the way that engineers and designers interact with and have control over features has remained largely unchanged since the 30+ years that they were introduced.

We at Onshape saw this as an opportunity to put you, the engineer, in control.

Features in Old CAD Systems Have One Major Flaw

In old CAD systems, features are written and developed solely by the CAD vendor. This flaw leads to a number of drawbacks and a variety of downstream frustrations:

  • Old CAD companies typically have very long development cycles - missing even one development stage gate could result in gestation periods measured in years.
  • You have no visibility into how the features work.
  • You have little say towards what features the vendor works on next.
  • You cannot modify a vendor’s feature to work the way you want.
  • You cannot create your own features.

Onshape is different. We made the architectural decision very early on to invent a new programming language that defined both the UI (user interface) and the operational logic of the native features within Onshape. This programming language is called “FeatureScript” and is the language that our in-house developers use to create the features that you use in Onshape every day.

“Why is FeatureScript Important and How Can I Take Advantage?”

With FeatureScript, you can create your own custom features or easily make use of custom feature previously created by others. Here’s how it’s possible:

  1. Onshape provides an integrated development environment (IDE) that enables external developers to create custom Onshape features that look, work, and behave exactly like native Onshape features.
  2. Onshape has published the source code for its native features. Going “open source” is almost unheard of in the professional 3D CAD space. The source code is published in an Onshape “public document” and a link to it can be found on (For the developers out there - the source code is available for redistribution under the MIT license)
  3. Many developers in the community and in private companies have adapted native Onshape features or have created their own from scratch, specific to their needs, often combining multiple repetitive steps into a single feature for massive productivity gains.
  4. Custom features are treated as “first class citizens.” Have you ever had a macro written for a CAD system just stop working from one release to another? This simply doesn't happen with Onshape custom features. In the same way that an Extrude feature will always work from version to another, so will any custom feature.
  5. Custom features run in all supported browsers, as well as on the iOS and Android mobile platforms - no additional coding necessary. If it runs on one platform, it runs on all supported platforms.
  6. Perhaps most importantly, custom features can be shared and made public and easily added to your Onshape toolbar. This means that without writing a single line of code, you can use any public custom feature created by the Onshape community.

Security of Custom Features

Many of our customers ask about the security of custom features.

The Onshape environment is inherently secure - there are no files to email and sharing permissions control exactly what users can and cannot do. Using custom features is also very secure - custom features cannot:

  • Modify anything except the geometry and metadata in the Part Studio in which its used.
  • “Infect” your account in any way.
  • Communicate any data back to its author.
  • Affect your Part Studio after it has been removed (i.e. deleted from the feature list).
  • Modify any feature above or below it in the feature list.

“How Do I Start Using a Custom Feature?”

The Custom Feature Library is a great source of pre-created custom features that are publicly available and easy to add to your Onshape feature toolbar.

The best thing about custom features is that you don’t have to write a single line of code to use them. Hundreds of custom features have already been written and made publicly available by the Onshape community and adding a custom feature created by somebody else is extremely straightforward and secure!

Last week we held a very-highly demanded webinar covering custom features, where to find them, and how to use them. You can watch the recording here.

For more information about custom features, a library of publicly available custom features, and information on how to write your own, visit our Custom Features webpage.