Syntax
Code Block |
---|
EXPRESS_EXTENSION_SCHEMA ExtensionSchemaName FOR IFC2X3; ENTITY_EXTENSION extToifcxx1extToIfcxx1 FOR ifcxx1 ; (* Attribute name must be unique within the extended entity (ifcxx1), may be same as attribute names in super type Entity. When so, this extended attribute must be accessed by name using "full qualified attribute name". The attribute domains can be any domain in the actual schema or domain (instance type) defined in the current extension schema *) extendedExplicitAttr1 : STRING; -- any simple data type can be used, not defined types extendedExplicitAttr2 : GENERIC_ENTITY; --sdaiINSTANCE of any type. can be used as link to instance in any other model. extendedExplicitAttr3 : SET OF GENERIC_ENTITY; INVERSE _ALL_CROSS_MODEL_REFERENCES_TO_ME : SET OF GENERIC_ENTITY; -- reserved name, keeps all references from other models extendedInverseAttr : SET OF GENERIC_ENTITY FOR (entityx.explicitAttr1, entityx.explicitAttr2, ...entityz.explicitAttr5); END_ENTITY_EXTENSION; ENTITY_EXTENSION extToifcxx2 FOR SUBTYPE(S)SUBTYPES ifcxx2; (* supplying SUBTYPES enablessame as ENTITY_EXTENSION except that all extensions will be valid for all subtypes of the extended entity, i.e., all subtypes of ifcxx2 *) extendedExplicitAttr1 : STRING; -- any simple data type can be used, not defined types extendedExplicitAttr2 : GENERIC_ENTITY; --sdaiINSTANCE of any type. can be used as link to instance in any other model. extendedExplicitAttr3 : SET OF GENERIC_ENTITY; INVERSE _ALL_CROSS_MODEL_REFERENCES_TO_ME : SET OF GENERIC_ENTITY; -- reserved name, keeps all references from other models extendedInverseAttr : SET OF GENERIC_ENTITY FOR (entityx.explicitAttr1, entityx.explicitAttr2, ...entityz.explicitAttr5); END_ENTITY_EXTENSION; ENTITY_EXTENSION name; -- lackingno FOR partclause means it is a "new" entity explicitAttr1 : INTEGER; explicitAttr2 : GENERIC_ENTITY; -- ........ INVERSE -- ....... _ALL_CROSS_MODEL_REFERENCES_TO_ME : SET OF GENERIC_ENTITY; -- reserved name, keeps all references from other models END_ENTITY_EXTENSION; ENTITY_EXTENSION name SUBTYPE OF (FOR entity1, extendedentity2entity2, ... entityN); -- subtype of any entity in main schema (FOR xxxx) or "extended entity" in schema explicitAttr1 : INTEGER; explicitAttr2 : GENERIC_ENTITY; -- ........ INVERSE -- ....... _ALL_CROSS_MODEL_REFERENCES_TO_ME : SET OF GENERIC_ENTITY; -- reserved name, keeps all references from other models END_ENTITY_EXTENSION; END_EXPRESS_EXTENSION_SCHEMA; |
Historical:
Expand | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
Arnes adjusted proposal out of Hans Karsten initial spec:
I think this approach also allows for using only "ENTITY" in stead of "ENTITY_EXTENSION", but that is maybe going too far? Or maybe not, ref RULE_SCHEMA. |
...