Skip to content

Updates IfcSectionedSolidHorizontal documentation - #1163

Open
RickBrice wants to merge 1 commit into
buildingSMART:ifc4.3-mainfrom
RickBrice:RickBrice_IfcSectionedSolidHorizontal
Open

Updates IfcSectionedSolidHorizontal documentation#1163
RickBrice wants to merge 1 commit into
buildingSMART:ifc4.3-mainfrom
RickBrice:RickBrice_IfcSectionedSolidHorizontal

Conversation

@RickBrice

Copy link
Copy Markdown
Contributor

Issues buildingSMART/IFC4.x-IF#147 and #1010 indicate that the orientation of the swept cross section for IfcSectionedSolidHorizontal is improperly specified. This PR aligns the cross section orientation description with IfcSectionedSurface.

@evandroAlfieri please add this to sprint Iteration 7

@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

PR Validation -- schema generators

Checks:

  • ✓ EXPRESS schema valid
  • ✓ New entities present in structure.json
  • ✓ MD docs for new entities
  • ✓ PEnum convention
  • ✓ New UML Psets/Qtos emitted
  • ✓ Modified psets emitted
  • ✓ Schema SHACL validation

Detected:

  • New entities: (none)
  • New PEnums: (none)
  • New UML Psets/Qtos: (none)
  • UML files changed: (none)
  • MD docs changed (1): IfcSectionedSolidHorizontal.md
📋 EXPRESS schema diff (baseline vs PR head)

Express schema differences

0 items

Missing data

🎉 No issues 🎉

Type definitions

🎉 No issues 🎉

Entity definitions

🎉 No issues 🎉

Constraints

🎉 No issues 🎉

SHACL validation report

DefinitionForEnumLiteral

  • The resource 'IfcBridgePartTypeEnum.SURFACESTRUCTURE' has no definition
  • The resource 'IfcRailwayPartTypeEnum.DILATIONTRACK' has no definition

DefinitionForPropertyOrQuantity

  • The Property 'Pset_AirSideSystemInformation.AirFlowSensible' has no definition
  • The Property 'Pset_AirSideSystemInformation.TotalAirFlow' has no definition
  • The Property 'Pset_AirTerminalBoxPHistory.AirFlowCurve' has no definition
  • The Property 'Pset_AirTerminalOccurrence.AirFlowType' has no definition
  • The Property 'Pset_AirToAirHeatRecoveryTypeCommon.PrimaryAirFlowRateRange' has no definition
  • The Property 'Pset_AirToAirHeatRecoveryTypeCommon.SecondaryAirFlowRateRange' has no definition
  • The Property 'Pset_SpaceThermalPHistory.ExhaustAirFlowRate' has no definition
  • The Property 'Qto_WallBaseQuantities.GrossFootPrintArea' has no definition
  • The Property 'Qto_WallBaseQuantities.NetFootPrintArea' has no definition

DefinitionForResource

  • The resource 'IfcSurfaceFeature' has no definition
  • The resource 'IfcURIReference' has no definition

LeafEntityHasPredefinedType

  • Leaf IfcObject 'IfcAlignmentCant' has no PredefinedType attribute
  • Leaf IfcObject 'IfcAlignmentHorizontal' has no PredefinedType attribute
  • Leaf IfcObject 'IfcAlignmentSegment' has no PredefinedType attribute
  • Leaf IfcObject 'IfcAlignmentVertical' has no PredefinedType attribute
  • Leaf IfcObject 'IfcAsset' has no PredefinedType attribute
  • Leaf IfcObject 'IfcBorehole' has no PredefinedType attribute
  • Leaf IfcObject 'IfcBuilding' has no PredefinedType attribute
  • Leaf IfcObject 'IfcBuildingStorey' has no PredefinedType attribute
  • Leaf IfcObject 'IfcCivilElement' has no PredefinedType attribute
  • Leaf IfcObject 'IfcDistributionCircuit' has no PredefinedType attribute
  • Leaf IfcObject 'IfcGeomodel' has no PredefinedType attribute
  • Leaf IfcObject 'IfcGeoslice' has no PredefinedType attribute
  • Leaf IfcObject 'IfcSite' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralCurveConnection' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralCurveMemberVarying' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralLinearAction' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralLoadCase' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralPlanarAction' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralPointAction' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralPointConnection' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralPointReaction' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralResultGroup' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralSurfaceConnection' has no PredefinedType attribute
  • Leaf IfcObject 'IfcStructuralSurfaceMemberVarying' has no PredefinedType attribute
  • Leaf IfcObject 'IfcWallStandardCase' has no PredefinedType attribute
  • Leaf IfcObject 'IfcZone' has no PredefinedType attribute

PropertyForDefinition

  • For document 'AcidityConcentration.md/a/properties/docs' a property cannot be found
  • For document 'ActualWork.md/a/properties/docs' a property cannot be found
  • For document 'AdjustmentRange.md/a/properties/docs' a property cannot be found
  • For document 'AdjustmentRangeStepValue.md/a/properties/docs' a property cannot be found
  • For document 'AdjustmentValues.md/a/properties/docs' a property cannot be found
  • For document 'AdmixturesDescription.md/a/properties/docs' a property cannot be found
  • For document 'AffectsSurroundings.md/a/properties/docs' a property cannot be found
  • For document 'Aggregation.md/a/properties/docs' a property cannot be found
  • For document 'AirflowCurve.md/a/properties/docs' a property cannot be found
  • For document 'AirflowSensible.md/a/properties/docs' a property cannot be found
  • For document 'AirflowType.md/a/properties/docs' a property cannot be found
  • For document 'AlkalinityConcentration.md/a/properties/docs' a property cannot be found
  • For document 'AppearanceGrade.md/a/properties/docs' a property cannot be found
  • For document 'ApplicableStructuralDesignMethod.md/a/properties/docs' a property cannot be found
  • For document 'Area.md/a/properties/docs' a property cannot be found
  • For document 'Arrangement.md/a/properties/docs' a property cannot be found
  • For document 'AssessmentOfRisk.md/a/properties/docs' a property cannot be found
  • For document 'BaseChamfer.md/b/properties/docs' a property cannot be found
  • For document 'BearingStrength.md/b/properties/docs' a property cannot be found
  • For document 'BerthMode.md/b/properties/docs/README.md/domain/schemas' a property cannot be found
  • For document 'BoilingPoint.md/b/properties/docs' a property cannot be found
  • For document 'BottomCover.md/b/properties/docs' a property cannot be found
  • For document 'CO2Content.md/c/properties/docs' a property cannot be found
  • For document 'COContent.md/c/properties/docs' a property cannot be found
  • For document 'CarbonContent.md/c/properties/docs' a property cannot be found
  • For document 'CenterCoreBaseHeight.md/c/properties/docs' a property cannot be found
  • For document 'CenterCoreBaseWidth.md/c/properties/docs' a property cannot be found
  • For document 'CenterCoreMiddleHeight.md/c/properties/docs' a property cannot be found
  • For document 'CenterCoreSpacing.md/c/properties/docs' a property cannot be found
  • For document 'CenterCoreTopHeight.md/c/properties/docs' a property cannot be found
  • For document 'CenterCoreTopWidth.md/c/properties/docs' a property cannot be found
  • For document 'CentreOfGravityInX.md/c/properties/docs' a property cannot be found
  • For document 'CentreOfGravityInY.md/c/properties/docs' a property cannot be found
  • For document 'CombustionTemperature.md/c/properties/docs' a property cannot be found
  • For document 'CompStrength.md/c/properties/docs' a property cannot be found
  • For document 'CompStrengthPerp.md/c/properties/docs' a property cannot be found
  • For document 'CompactedVolume.md/c/properties/docs' a property cannot be found
  • For document 'CompressiveStrength.md/c/properties/docs' a property cannot be found
  • For document 'Condition.md/c/properties/docs' a property cannot be found
  • For document 'CoreBaseHeight.md/c/properties/docs' a property cannot be found
  • For document 'CoreBaseWidth.md/c/properties/docs' a property cannot be found
  • For document 'CoreMiddleHeight.md/c/properties/docs' a property cannot be found
  • For document 'CoreSpacing.md/c/properties/docs' a property cannot be found
  • For document 'CoreTopHeight.md/c/properties/docs' a property cannot be found
  • For document 'CoreTopWidth.md/c/properties/docs' a property cannot be found
  • For document 'Count.md/c/properties/docs' a property cannot be found
  • For document 'CrossSectionArea.md/c/properties/docs' a property cannot be found
  • For document 'CurrentCarryingCapasity.md/c/properties/docs' a property cannot be found
  • For document 'DefinitionType.md/d/properties/docs' a property cannot be found
  • For document 'DimensionalChangeCoefficient.md/d/properties/docs' a property cannot be found
  • For document 'DissolvedSolidsContent.md/d/properties/docs' a property cannot be found
  • For document 'DraftBaseOffset.md/d/properties/docs' a property cannot be found
  • For document 'DraftSideOffset.md/d/properties/docs' a property cannot be found
  • For document 'DynamicViscosity.md/d/properties/docs' a property cannot be found
  • For document 'EavesHeight.md/e/properties/docs' a property cannot be found
  • For document 'EdgeDraft.md/e/properties/docs' a property cannot be found
  • For document 'ExhaustAirFlowRate.md/e/properties/docs' a property cannot be found
  • For document 'Exponent.md/e/properties/docs' a property cannot be found
  • For document 'FinishCeilingHeight.md/f/properties/docs' a property cannot be found
  • For document 'FinishFloorHeight.md/f/properties/docs' a property cannot be found
  • For document 'FlangeBaseFillet.md/f/properties/docs' a property cannot be found
  • For docum

SHACL report truncated -- full report in the workflow artifact bundle.

See workflow run for failure details.

@civilx64 civilx64 moved this from RESOLVING to SOLUTION | PUBLIC REVIEW in IFC4x-IF | 4.4 update Aug 4, 2026
@civilx64 civilx64 added IF To be checked with IFC Implementers Forum before-NWI Issue to be resolved before the IFC NWI (New Work Item) submission to the next ISO cycle. labels Aug 4, 2026

@civilx64 civilx64 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks - this addresses the error in the documentation.

You had a nice graphic illustrating how the previous description was incorrect. It would be nice to include here in the documentation as well (picture worth 1000 words).

Image

<!-- end of short definition -->

The solid is generated by sweeping the _CrossSections_ between _CrossSectionPositions_ with linear interpolation between profile points with the same tag along the directrix. The profile normal is derived from the associated _IfcAxis2PlacementLinear_, not necessarily the tangent of the _Directrix_. The profile X axis is the direction of _RefDirection_ from _IfcAxis2PlacementLinear_, and the profile Y axis is the direction of _Axis_.
The solid is generated by sweeping the _CrossSections_ between _CrossSectionPositions_ with linear interpolation between profile points with the same tag along the directrix. The profile normal is derived from the associated _IfcAxis2PlacementLinear_, not necessarily the tangent of the _Directrix_. The profile Y axis is oriented according to Axis attribute of IfcAxis2PlacementLinear and the X is derived from the cross product of Directrix and the Axis attribute of IfcAxis2PlacementLinear.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The solid is generated by sweeping the _CrossSections_ between _CrossSectionPositions_ with linear interpolation between profile points with the same tag along the directrix. The profile normal is derived from the associated _IfcAxis2PlacementLinear_, not necessarily the tangent of the _Directrix_. The profile Y axis is oriented according to Axis attribute of IfcAxis2PlacementLinear and the X is derived from the cross product of Directrix and the Axis attribute of IfcAxis2PlacementLinear.
The solid is generated by sweeping the _CrossSections_ between _CrossSectionPositions_ with linear interpolation between profile points with the same tag along the directrix. The profile normal is derived from the associated _IfcAxis2PlacementLinear_, not necessarily the tangent of the _Directrix_. The profile Y axis is oriented according to the _Axis_ attribute of _IfcAxis2PlacementLinear_ and the X is derived from the cross product of Directrix and the _Axis_ attribute of _IfcAxis2PlacementLinear_.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...cross product of Directrix

shouldn't this be cross product of the _RefDirection_ and _Axis_ attributes of _IfcAxis2PlacementLinear_.? Directrix is a curve, not a direction.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't this be cross product of the RefDirection and Axis attributes of IfcAxis2PlacementLinear.?

  1. This sentence is taken verbatim from IfcSectionedSurface so changes are needed in both locations.
  2. You are right that Directrix is a curve, not a direction. I would read this as the section X is derived from the cross product of the Directrix tangent and the Axis attribute of IfcAxis2PlacementLinear - but this is stated in reverse - it should be the cross product of the Axis attribute of the IfcAxis2PlacementLinear and the Directrix tangent.
  3. I think the correct wording is "cross product of the Axis and RefDirection attributes of IfcAxis2PlacementLinear".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

before-NWI Issue to be resolved before the IFC NWI (New Work Item) submission to the next ISO cycle. IF To be checked with IFC Implementers Forum

Projects

Status: SOLUTION | PUBLIC REVIEW

Development

Successfully merging this pull request may close these issues.

2 participants