Coming in late, I saw good ideas, e.g. from @nn1, @DrShawnOKeeffe, @sergej and @Helland. On the other hand the topic is complex and multifaceted, therefore there is a danger to mix up the different topics, like modularization vs. mvd vs. certification vs. base modelling languages (UML, SysML, etc.). Here is my view:
Modularization: (of a schema) - to me it means mainly that I cluster the overall IFC schema into certain parts in order to manage it (rather) independently from other parts (by different persons, etc.). To some degree that was always the case in IFC development (see the architecture diagram, born back in late 1990’ies). But when it came to package all for implementation in software, all was combined into a single, first EXPRESS, later also XSD schema file.
Model view definitions: from a software perspective - obviously no software can support data against the complete schema. In order to avoid that the sender and the receiver uses / expects data written against different parts of the schema, there was the need to limit the scope of the schema (creating a subschema) that more comprehensively describe the common subset of the expected exchange. This is what an MVD is - a subset of the total IFC schema, plus additional constraints imposed on that subset, that restricts the scope of the data exchange for a set of exchange scenarios (e.g. all exchanges, that rely of linking of discipline models - ako Reference View).
Exchange requirements: from a user perspective, the IDM method was born (early 2000) in order to describe the data exchange needs between different processes or disciplines in terms of expected data deliveries. Later something similar came up as part of the LOD (D for definition, not detail) discussions - the LOI (level of information) - [side note: to me, someone should at one time define the commonalities and differences between these two IDM and LOIN (which is the new term in ISO 19650) - right now it is a big confusion]. Unfortunately the terms “Model View Definition” and “Exchange Requirements” are continuously mixed up confusing all.
E.g. there are 100++ different exchange requirements dealing with different attributes assigned to model elements - whereas in IFC this is one concept called “property set”. So in principle, it requires only one MVD (containing property sets) to satisfy 100++ exchange requirements.
mvdXML - the specification was created for three (separate) reasons:
- to make MVD subsetting computer readible and executable (before it was a spreadsheet with x behind classes)
- to guide the documentation process - i.e. to generate the IFC specification (see the differences between IFC2x3 and IFC4)
- to add constraints and check rules
Modularization and MVD is not the same, MVD and Exchange requirments are not the same, and by chosing UML as the main language to define the schema (and some tool to actually handling the UML diagrams, like enterprise architect) those questions are not answered either.
Still I see the need to move away from ISO/EXPRESS to more mainstream language/tool such as UML. And the need to use standard tools for modeling. This is aroute to go (and yes, as @jwouellette said, there a many discussion, whether to use straight UMLor sysML - e.g. the STEP community decided to move to sysML).
I am not so sure about Modularization versus MVD - going by (large) packages to subdivide the total IFC schema and use those as subsets for implementation/certification lacks in my view the fexibility of the MVD approach (in particular the use of concept templates). And as @nn1 said, there is hardly any domain specific class. For me, it should not be differentiated by domain, but rather by:
- fundamental type of geometry to be supported (simple triangulation, nurbs, CSG solids, procedural geometry) - and geometry is not domain specific
- fundamental types of model representations (volumetric models, surface based models (e.g. thermal boundaries for energy calculations), idealized geometry (e.g. for structural analysis), 4D (adding work schedules, tasks, etc. connected to model elements), 5D (adding cost schedules), etc.