I can't set a data value using rule on a custom entity
In the provided hook, You need to add the setter callback.

So it will be like:

function project_entity_property_info() {
  // .... rest of code removed for brevity.    

  $info['project']['properties']['name'] = array(
    'label' =&gt; t('Project name'),
    'description' =&gt; t('Name of the project.'),
    'type' =&gt; 'text',
    'schema field' =&gt; 'name',
    'setter callback' =&gt; 'entity_property_verbatim_set', // -&gt; this is it!
  );


Now rules knows how to set the value on entity.

More information about the hook_entity_property_info can be found here. If name requires a complex workflow to be set, you can write your own setter similar to entity_property_verbatim_set (for validating purposes, or ...).

If you are benefiting from the power of Entity API you may declare it in your EntityMetadataController class. There is a default class called EntityDefaultMetadataController you can extend it and introduce it as your entity type's metadata controller.

Another option is to use entityspice to declare your entity type which takes care of it all.