In a sub-site I have a number of Lists and a Custom Content Type, which is of Document Set. I want to add to the Document Set columns from the Lists within the same sub-site.

However, when editing the custom Document Set I cannot see:

add from existing site or list columns

Instead, I see the following [image right]:

add from existing site columns

add new column

enter image description here

All the guidance I've followed for using Document Sets has the 'or list columns' option. I'd assumed there's a setting somewhere I haven't enabled but I cannot see one. Any advice on this would be much appreciated.

  • Are you editing the Document Set content type from the list, or from Site Settings -> Site Content Types? May 30 '18 at 17:41
  • Hi -- Editing via Site Settings > Content Types > MyCustomDocSet
    – dhcodes
    May 30 '18 at 18:05
  • That is why, you would need to edit the list level copy of the content type to see the list columns option. I will post a longer explanation as an answer a little later. May 30 '18 at 18:08

In SharePoint, content types (and columns) exist in a hierarchy. Usually, you want to create content types and columns at the site level (in Site Columns and Site Content Types, which you get to through Site Settings), because then they are available to add to any lists in that site, and available in sub-sites. When you add a site content type to a list, SharePoint creates local copies of all of the columns and the content type definition at the list level.

What this allows you to do is make a change to the site level content type, maybe add a new column, and push that change down to all of the lists that are using that content type.

What it also allows you to do is customize a content type for a certain list. If you edit the content type at the list level, and add a column, that change is unique to that list. List level content types can never push their changes up to the parent site content type.

So in your case, the reason you do not see the option to add "existing list columns" is because you are not in a list. You are working with the site level content type, so of course the only columns available to work with are site columns. You would only see the option to add list columns if you had added the content type to a list, then gone into list settings for that list, and edit the list level content type definition there.

Please see this MSDN article for more detailed information on the difference between site and list content types.

It is possible to create columns and content types directly at the list level, but that is usually considered a bad practive, because they will only be available in that particular list. There is no way to re-use them in another list or in a sub-site. And there is no way to promote a list level content type or column up to be a site content type or column.

  • Thanks for this. I hadn't appreciated the the class/ instance mechanic. Makes much more sense now!
    – dhcodes
    Aug 29 '18 at 7:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.