buildingSMART / buildingSMART/IFC4.x-development
Settle georeferencing
- Dominant language
- Python
- Stars
- 234
- Forks
- 123
- Avg merge
- 15h 4m
- Merged PRs (30d)
- 5
Description
There has been a meeting (myself excluded) about some adjustments georeferencing. The changes (with some light modifications) discussed are:

```diff
--- IFC.exp 2022-09-13 14:05:16.062397000 +0200
+++ IFC.exp 2022-09-30 21:11:54.409712800 +0200
@@ -435,20 +435,23 @@
TYPE IfcVolumetricFlowRateMeasure = REAL;
END_TYPE;
TYPE IfcWarpingConstantMeasure = REAL;
END_TYPE;
TYPE IfcWarpingMomentMeasure = REAL;
END_TYPE;
+TYPE IfcWellKnownTextLiteral = STRING;
+END_TYPE;
+
TYPE IfcActionRequestTypeEnum = ENUMERATION OF
(EMAIL
,FAX
,PHONE
,POST
,VERBAL
,USERDEFINED
,NOTDEFINED);
END_TYPE;
@@ -5398,34 +5401,37 @@
ENTITY IfcCoolingTowerType
SUBTYPE OF (IfcEnergyConversionDeviceType);
PredefinedType : IfcCoolingTowerTypeEnum;
WHERE
CorrectPredefinedType : (PredefinedType <> IfcCoolingTowerTypeEnum.USERDEFINED) OR
((PredefinedType = IfcCoolingTowerTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcElementType.ElementType));
END_ENTITY;
ENTITY IfcCoordinateOperation
ABSTRACT SUPERTYPE OF (ONEOF
- (IfcMapConversion));
+ (IfcMapConversion
+ ,IfcRigidOperation));
SourceCRS : IfcCoordinateReferenceSystemSelect;
TargetCRS : IfcCoordinateReferenceSystem;
END_ENTITY;
ENTITY IfcCoordinateReferenceSystem
ABSTRACT SUPERTYPE OF (ONEOF
- (IfcProjectedCRS));
- Name : IfcLabel;
+ (IfcGeographicCRS
+ ,IfcProjectedCRS));
+ Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
- GeodeticDatum : OPTIONAL IfcIdentifier;
- VerticalDatum : OPTIONAL IfcIdentifier;
INVERSE
HasCoordinateOperation : SET [0:1] OF IfcCoordinateOperation FOR SourceCRS;
+ WellKnownText : SET [0:1] OF IfcWellKnownText FOR CoordinateReferenceSystem;
+ WHERE
+ NameOrWKT : (HIINDEX(WellKnownText) = 1) OR EXISTS(Name);
END_ENTITY;
ENTITY IfcCosineSpiral
SUBTYPE OF (IfcSpiral);
CosineTerm : IfcLengthMeasure;
ConstantTerm : OPTIONAL IfcLengthMeasure;
END_ENTITY;
ENTITY IfcCostItem
SUBTYPE OF (IfcControl);
@@ -7072,20 +7078,29 @@
ENTITY IfcFurnitureType
SUBTYPE OF (IfcFurnishingElementType);
AssemblyPlace : IfcAssemblyPlaceEnum;
PredefinedType : OPTIONAL IfcFurnitureTypeEnum;
WHERE
CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
(PredefinedType <> IfcFurnitureTypeEnum.USERDEFINED) OR
((PredefinedType = IfcFurnitureTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcElementType.ElementType));
END_ENTITY;
+ENTITY IfcGeographicCRS
+ SUBTYPE OF (IfcCoordinateReferenceSystem);
+ GeodeticDatum : OPTIONAL IfcIdentifier;
+ PrimeMeridian : OPTIONAL IfcIdentifier;
+ Unit : OPTIONAL IfcNamedUnit;
+ WHERE
+ IsPlaneAngleUnit : NOT(EXISTS(Unit)) OR (Unit.UnitType=IfcUnitEnum.PLANEANGLEUNIT);
+END_ENTITY;
+
ENTITY IfcGeographicElement
SUBTYPE OF (IfcElement);
PredefinedType : OPTIONAL IfcGeographicElementTypeEnum;
WHERE
CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
(PredefinedType <> IfcGeographicElementTypeEnum.USERDEFINED) OR
((PredefinedType = IfcGeographicElementTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
('IFC4X3_DEV.IFCGEOGRAPHICELEMENTTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
END_ENTITY;
@@ -7707,29 +7722,36 @@
ENTITY IfcManifoldSolidBrep
ABSTRACT SUPERTYPE OF (ONEOF
(IfcAdvancedBrep
,IfcFacetedBrep))
SUBTYPE OF (IfcSolidModel);
Outer : IfcClosedShell;
END_ENTITY;
ENTITY IfcMapConversion
+ SUPERTYPE OF (ONEOF
+ (IfcMapConversionScaled))
SUBTYPE OF (IfcCoordinateOperation);
Eastings : IfcLengthMeasure;
Northings : IfcLengthMeasure;
OrthogonalHeight : IfcLengthMeasure;
XAxisAbscissa : OPTIONAL IfcReal;
XAxisOrdinate : OPTIONAL IfcReal;
Scale : OPTIONAL IfcReal;
- ScaleY : OPTIONAL IfcReal;
- ScaleZ : OPTIONAL IfcReal;
+END_ENTITY;
+
+ENTITY IfcMapConversionScaled
+ SUBTYPE OF (IfcMapConversion);
+ ScaleX : IfcReal;
+ ScaleY : IfcReal;
+ ScaleZ : IfcReal;
END_ENTITY;
ENTITY IfcMappedItem
SUBTYPE OF (IfcRepresentationItem);
MappingSource : IfcRepresentationMap;
MappingTarget : IfcCartesianTransformationOperator;
END_ENTITY;
ENTITY IfcMarineFacility
SUBTYPE OF (IfcFacility);
@@ -8881,20 +8903,22 @@
ENTITY IfcProjectOrder
SUBTYPE OF (IfcControl);
PredefinedType : OPTIONAL IfcProjectOrderTypeEnum;
Status : OPTIONAL IfcLabel;
LongDescription : OPTIONAL IfcText;
END_ENTITY;
ENTITY IfcProjectedCRS
SUBTYPE OF (IfcCoordinateReferenceSystem);
+ GeodeticDatum : OPTIONAL IfcIdentifier;
+ VerticalDatum : OPTIONAL IfcIdentifier;
MapProjection : OPTIONAL IfcIdentifier;
MapZone : OPTIONAL IfcIdentifier;
MapUnit : OPTIONAL IfcNamedUnit;
WHERE
IsLengthUnit : NOT(EXISTS(MapUnit)) OR (MapUnit.UnitType = IfcUnitEnum.LENGTHUNIT);
END_ENTITY;
ENTITY IfcProjectionElement
SUBTYPE OF (IfcFeatureElementAddition);
PredefinedType : OPTIONAL IfcProjectionElementTypeEnum;
@@ -10085,20 +10109,29 @@
Height : IfcPositiveLengthMeasure;
BottomRadius : IfcPositiveLengthMeasure;
END_ENTITY;
ENTITY IfcRightCircularCylinder
SUBTYPE OF (IfcCsgPrimitive3D);
Height : IfcPositiveLengthMeasure;
Radius : IfcPositiveLengthMeasure;
END_ENTITY;
+ENTITY IfcRigidOperation
+ SUBTYPE OF (IfcCoordinateOperation);
+ FirstCoordinate : IfcMeasureValue;
+ SecondCoordinate : IfcMeasureValue;
+ Height : IfcLengthMeasure;
+ WHERE
+ SameCoordinateType : (('IFC4X3_DEV.IFCLENGTHMEASURE' IN TYPEOF(FirstCoordinate)) AND ('IFC4X3_DEV.IFCLENGTHMEASURE' IN TYPEOF(SecondCoordinate))) OR (('IFC4X3_DEV.IFCPLANEANGLEMEASURE' IN TYPEOF(FirstCoordinate)) AND ('IFC4X3_DEV.IFCPLANEANGLEMEASURE' IN TYPEOF(SecondCoordinate)));
+END_ENTITY;
+
ENTITY IfcRoad
SUBTYPE OF (IfcFacility);
PredefinedType : OPTIONAL IfcRoadTypeEnum;
WHERE
CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
(PredefinedType <> IfcRoadTypeEnum.USERDEFINED) OR
((PredefinedType = IfcRoadTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
END_ENTITY;
ENTITY IfcRoadPart
@@ -12116,20 +12149,25 @@
END_ENTITY;
ENTITY IfcWasteTerminalType
SUBTYPE OF (IfcFlowTerminalType);
PredefinedType : IfcWasteTerminalTypeEnum;
WHERE
CorrectPredefinedType : (PredefinedType <> IfcWasteTerminalTypeEnum.USERDEFINED) OR
((PredefinedType = IfcWasteTerminalTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcElementType.ElementType));
END_ENTITY;
+ENTITY IfcWellKnownText;
+ WellKnownText : IfcWellKnownTextLiteral;
+ CoordinateReferenceSystem : IfcCoordinateReferenceSystem;
+END_ENTITY;
+
ENTITY IfcWindow
SUBTYPE OF (IfcBuiltElement);
OverallHeight : OPTIONAL IfcPositiveLengthMeasure;
OverallWidth : OPTIONAL IfcPositiveLengthMeasure;
PredefinedType : OPTIONAL IfcWindowTypeEnum;
PartitioningType : OPTIONAL IfcWindowTypePartitioningEnum;
UserDefinedPartitioningType : OPTIONAL IfcLabel;
WHERE
CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
(PredefinedType <> IfcWindowTypeEnum.USERDEFINED) OR
```
@evandroAlfieri @SergejMuhic @pjanck please review carefully whether this is according to what has been discussed
@Moult @TLiebich please review
Contributor guide
Assessment
This issue has not been assessed yet.