Q:

Predefined and custom items

I have the following piece of my DB:
project (id, name, color, ...)
unit (id, name, width, height, ...)

each project consists of one or more units
Each unit belongs to one project (1:N relationship with project)

And now comes the hard part:
There are predefined units saved which we can simply select (with fixed name/width/height):

A predefined unit can be in several projects 
A project can have several predefined units (M:N relationship with projects)
A predefined unit is a subtype of a unit (generalization)
Remark: if a project already exists and has some default units, I don't want to change any values in the unit settings in case I edited the default properties of a default unit in future. 

I am not able to find a suitable and working way to design the DB only because of the last part. 
Thanks in advance 

A:

I think you need to have a separate structure to hold predefined units, called templates.   With this approach a predefined units is assigned to a project by copying the data into units.   
By all means have a flag or something on units which identifies it as Predefined and therefore cannot be altered.