Version Control Folders - Alphabetical Groupings

In development of the version control folder listing of the definition of IFC from IfcDoc, I trialed grouping of entities into alphabetical folders. This resulted in something like this:

I’m worried about this approach though, as it requires either a predetermination of some number of entities at which to group into subfolders (and when a list is at a threshold an undesireable momental change), or a bespoke attribute decorator (at the moment the serializer has no dependency on the ifc definition data structure and vice versa). This isn’t ideal, as now on github you get the effect of listing truncation.

It might be a single letter might get 1000 files at some point in time, you can still access the entity by predetermined URL.

Any thoughts and opinions?

@jonm Is it necessary to flatten the original IFC hierarchy for such development?

Note that not all concepts are globalized. Most remain structured into sections and schemas. The concepts that are globalized are constants, property constants, property enumerations, properties and quantities. This is to facilitate and encourage greater reuse, and maintain consistency for the repository when schema changes occur. Maintenance of duplicate concepts is a burden, in particular with respect to translations and the like.

In answer to my original questions, I’m implementing nesting control as the dotnet decorator [XmlArrayItem(NestingLevel = 2)] to control sub folder nesting. It’s not pure but it will function and we can swap it for a bespoke attribute if consensus prefers that.