# File lib/dm-core/model.rb, line 222
    def properties_with_subclasses(repository_name = default_repository_name)
      properties = PropertySet.new
      ([ self ].to_set + (respond_to?(:descendants) ? descendants : [])).each do |model|
        model.relationships(repository_name).each_value { |relationship| relationship.child_key }
        model.many_to_one_relationships.each do |relationship| relationship.child_key end
        model.properties(repository_name).each do |property|
          properties << property unless properties.has_property?(property.name)
        end
      end
      properties
    end