Namespaces
A namespace is a declarative region that provides a scope to the ThingWorx entities through their grouping via Projects.
Namespaces are hierarchical in nature and a dot separated nomenclature is used to display the hierarchy.
A namespace is associated to a ThingWorx Project starting ThingWorx 9.5.
Namespace is mandatory for the project type Building Block and optional for the project type Component. It is not supported for the project type Solution.
One namespace can be assigned to multiple projects. All entities that belong to that project inherit that namespace. The project is a leaf node of the namespace hierarchy.
A namespace cannot be edited, updated, or deleted.
Once all projects referring to a specific namespace are deleted, then the namespace is deleted automatically. There are no services to delete a namespace.
* 
If a parent namespace has child namespaces that are not referred to in used by any project, but the project with the parent that namespace is deleted, then the parent namespace is not deleted.
Requirements for Creating a Namespace
A namespace must include only letters (capital or lowercase), digits (0-9), periods, hyphens, and underscores. The first character must be a lowercase letter, and the last character cannot be a special character (period, hyphen or underscore). Each name must be between 2 and 100 characters long and the entire namespace should not exceed 200 characters.
Few examples of namespaces are:
PTC reserved namespaces
Other namespaces
ptc.solution
solutions.dpm.job_order
ptc.solution.sco
dpm.ptc.job-order1
ptc.solution.scp
solUTions.dPM.sCo
* 
Only PTC-licensed instances can create namespaces starting with ptc. All namespaces under it, for example, ptc.solution, ptc.solution.sco, or ptc.solution.scp, are PTC reserved namespaces.
Non-PTC-licensed instances can create any other namespaces. ptc can be used except for the root namespace. For example, dpm.ptc.joborder1.
Creating a Namespace
You can create a namespace using one of these methods:
By executing Create Service under NamespaceServices resource.
By importing an extension project that already contains a namespace, which is not present in the database.
* 
Non-PTC licensed customers can import namespaces starting with ptc, but these namespaces cannot be assigned to a new project.
At the time of creating a project via the Composer.
Was this helpful?