buildingSMART / buildingSMART/IFC4.x-development

Settle georeferencing

Open
#533 38 comments 0 reactions 0 assignees View on GitHub
ifc-update-out
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:

![afbeelding](https://user-images.githubusercontent.com/1096535/191454954-a99c65d1-8865-4333-ac16-e80bdef87a70.png)

```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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.