buildingSMART / IFC4.3.x-development

Repository to collect updates to the IFC4.3 Specification
Other
154 stars 81 forks source link

Generating an "ISO" mode of the document #257

Open Moult opened 2 years ago

Moult commented 2 years ago

As mentioned by @TLiebich @berlotti there are some specific requirements to an ISO submission. I propose to add an "enable ISO mode" switch which will allow us to generate an ISO compatible doc. I'm happy to tackle this one, but need a bit of feedback:

berlotti commented 2 years ago

All HTML5 is allowed.

We need to deliver the HTML package to be uploaded to the ISO system. The HTML package should be able to run offline. So all recourses need to in on the same domain/package. This means linked resources and search box are not possible. Links to outside domains also need to be avoided as much as possible.

The copyright and license in the cover and footer should change for ISO.

Moult commented 2 years ago

Can offline linked resources (CSS / JS) be allowed?

berlotti commented 2 years ago

yes

Moult commented 2 years ago

I ran some tests and it seems to work, however the dir tree potentially doesn't look very "pleasant" although functionally it works fine.

In particular, we still have assets outside our domain, here's the list:

-Draw.githubusercontent.com,unpkg.com,polyfill.io,cdn.jsdelivr.net,cdnjs.cloudflare.com,i.creativecommons.org

Are we OK with this? This creates a directory tree like this (note the localhost:5000 dir is our domain):

$ tree -L 5
.
├── cdnjs.cloudflare.com
│   └── ajax
│       └── libs
│           ├── highlight.js
│           │   └── 11.4.0
│           └── highlightjs-line-numbers.js
│               └── 2.8.0
├── cdn.jsdelivr.net
│   └── npm
│       └── mathjax@3
│           └── es5
│               └── tex-mml-chtml.js
├── i.creativecommons.org
│   └── l
│       └── by-nc-nd
│           └── 4.0
│               └── 88x31.png
├── localhost:5000
│   ├── IFC
│   │   └── RELEASE
│   │       └── IFC4x3
│   │           └── HTML
│   └── index.html
├── polyfill.io
│   ├── robots.txt
│   └── v3
│       └── polyfill.min.js?features=es6
├── raw.githubusercontent.com
│   └── buildingSMART
│       └── IFC4.3.x-development
│           ├── b3911e98eaf9adc5287c41d2e55beda1688be5d6
│           │   └── content
│           └── master
│               └── docs
└── unpkg.com
    ├── feather-icons
    └── robots.txt

If you feel it necessary, I can work through moving all of those assets to be locally hosted.

Moult commented 2 years ago

So a super fun side effect of publishing a static HTML is that in the process of spidering we can also discover any dead links.

After spidering, here's a quick way to investigate:

$ grep -ir "http://localhost" ./ > borked_links
$ vim borked_links
# This regex isolates the occuring file and the borked link
:%s/\(.\{-}\):.*"\(http:.\{-}\)".*/\1:\2
:sort u

Current results. Can we go through these? I suspect they should be quite easy. (note original list was ~400 lines long but 300 are all due to Pset_ElementKinematics)

./IFC/RELEASE/IFC4x3/HTML/annex-b2.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
# Note: actually a lot more for Pset_ElementKinematics but I cropped it
./IFC/RELEASE/IFC4x3/HTML/toc.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_ElementKinematics.htm
# Note: actually a lot more for ProjectSetup_1 but I cropped it
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcUnitAssignment.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/examples/ProjectSetup_1/thumb.png
./IFC/RELEASE/IFC4x3/HTML/annex_e/SpatialStructure_3.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/201%20-%20situation.png
./IFC/RELEASE/IFC4x3/HTML/annex_e/SpatialStructure_3.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/202%20-%20result.png
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_DrainageSystem_1.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/nageSystem_1_3.JPG
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_DrainageSystem_1.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/nageSystem_1_4.JPG
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_DrainageSystem_2.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/nageSystem_2_3.JPG
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_DrainageSystem_2.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/nageSystem_2_4.JPG
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_DrainageSystem_2.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/nageSystem_2_5.JPG
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_SpatialStructure_4.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/201%20-%20Situation.PNG
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_SpatialStructure_4.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/202%20-%20Toivola_area_borders.JPG
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_SpatialStructure_4.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/203%20-%20Toivola_area_borders2.JPG
./IFC/RELEASE/IFC4x3/HTML/annex_e/UT_SpatialStructure_4.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/annex_e/204%20-%20result.png
./IFC/RELEASE/IFC4x3/HTML/concepts/Object_Assignment/content.html:<p>Objects may provide services to other objects, where the "assigned from" object acts upon or observes requirements of the "assigned to" object. There is a general cycle of assignments where <a href="http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/concepts/chapter-3.htm#actor">actors</a> (people) issue <a href="http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/concepts/chapter-3.htm#control">controls</a> (such as work orders or schedules), which may result in <a href="http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/concepts/chapter-3.htm#group">groups</a> (such as building systems) comprised of <a href="http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/concepts/chapter-3.htm#product">products</a> (such as building elements) operated upon by <a href="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/concepts/chapter-3.htm#resource
./IFC/RELEASE/IFC4x3/HTML/concepts/Object_Definition/Property_Sets/Property_Sets_for_Objects/content.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/ifcactorresource/content.html:<aside class="aside-note"><mark>NOTE</mark>  The schema <em>IfcActorResource</em> has been developed with reference to the schema <span class="ext-ref">person_organization</span> within <a href="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-10303-41
./IFC/RELEASE/IFC4x3/HTML/ifcdatetimeresource/content.html:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-8601
./IFC/RELEASE/IFC4x3/HTML/ifcgeometricmodelresource/content.html:<aside class="aside-note"><mark>NOTE</mark>  Many definitions of this schema are adapted from definitions defined within <a href="http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-10303-42">ISO 10303-42</a>{ .int-ref}. The <em>IfcGeometricModelResource</em> refers to the clause 6, "Geometric Model" of <a href="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-10303-42
./IFC/RELEASE/IFC4x3/HTML/ifcgeometryresource/content.html:<aside class="aside-note"><mark>NOTE</mark>  Many definitions of this schema are adapted from definitions defined within <a href="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-10303-42
./IFC/RELEASE/IFC4x3/HTML/ifcmeasureresource/content.html:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-1000
./IFC/RELEASE/IFC4x3/HTML/ifcmeasureresource/content.html:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-10303-41
./IFC/RELEASE/IFC4x3/HTML/ifcpresentationappearanceresource/content.html:<aside class="aside-note"><mark>NOTE</mark>  Some definitions of this resource schema have been adopted from <a href="http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-10303-46">ISO 10303-46</a>{ .int-ref}. The <em>IfcPresentationOrganizationResource</em> refers to the clause 6, "Presentation appearance" of the standard. The definitions, when quoted from ISO 10303-46, are explicitly excluded from the copyright of this specification.</aside><aside class="aside-note"><mark>NOTE</mark>  Some definitions of this resource schema have also been adopted from <a href="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#IEC-19775-1
./IFC/RELEASE/IFC4x3/HTML/ifcpresentationdefinitionresource/content.html:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-10303-46
./IFC/RELEASE/IFC4x3/HTML/ifcpresentationorganizationresource/content.html:<aside class="aside-note"><mark>NOTE</mark>  Some definitions of this resource schema have been adopted from <a href="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#IEC-14772-1
./IFC/RELEASE/IFC4x3/HTML/ifcsharedbldgelements/content.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/ifctopologyresource/content.html:http://localhost:5000/IFC/RELEASE/IFC4x3/bibliography.htm#iso-10303-42
./IFC/RELEASE/IFC4x3/HTML/index.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/listing-figures.html
./IFC/RELEASE/IFC4x3/HTML/index.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/listing-references.html
./IFC/RELEASE/IFC4x3/HTML/index.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/listing-tables.html
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-blosscurve.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-circulararc.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-clothoid.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-cosinecurve.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-cubic.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-cubic_general.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-curvature2coord.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-helmertcurve.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-line.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-sinecurve.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentHorizontalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmenthorizontalsegmenttypeenum-viennesebend.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentVerticalSegmentTypeEnum.htm:<br/></p><p><strong>general equation of the parabolic arc segment</strong></p><figure><a id="Figure-8.7.2.3.2.A-general-equation-of-the-parabolic-arc-segment"></a><img alt="Vertical parabolic arc segment" src="http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmentverticalsegmenttypeenum-parabola1.png" title="Figure 8.7.2.3.2.A — general equation of the parabolic arc segment"/><figcaption>Figure 8.7.2.3.2.A — general equation of the parabolic arc segment<a href="IfcAlignmentVerticalSegmentTypeEnum.htm#Figure-8.7.2.3.2.A-general-equation-of-the-parabolic-arc-segment"><i data-feather="link"></i></a></figcaption></figure><p><strong>gradient (slope) of this curve at any point (first derivative)</strong></p><figure><a id="Figure-8.7.2.3.2.D-gradient-slope-of-the-parabolic-arc-segment-at-any-point"></a><img alt="Vertical parabolic arc segment" src="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmentverticalsegmenttypeenum-parabola3.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentVerticalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmentverticalsegmenttypeenum-arc_curvature.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentVerticalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmentverticalsegmenttypeenum-arc_length.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentVerticalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmentverticalsegmenttypeenum-arc_z_s.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAlignmentVerticalSegmentTypeEnum.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/ures/ifcalignmentverticalsegmenttypeenum-clothoid_curvature.png
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcAsset.htm:<p>There are a number of actors that can be associated with an asset, each actor having a role. Actors within the scope of the project are indicated using the <a href="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/ifcactorresource/lexical/ifcactorrole.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcBuildingElementProxy.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcFontStyle.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#CSS1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcFontVariant.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#CSS1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcFontWeight.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#CSS1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcInventory.htm:<p>There are a number of actors that can be associated with an inventory, each actor having a role. Actors within the scope of the project are indicated using the <a href="http://localhost:http://localhost:5000/IFC/RELEASE/IFC4x3/ifcactorresource/lexical/ifcactorrole.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcLanguageId.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#RFC-5646
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcSectionedSurface.htm:<img alt="sectioned surfacequot;" src='http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/figures/IfcSectionedSurface_1.png&#32;Figure&#32;1&#32;—&#32;Sectioned&#32;surface&#32;using&#32;_IfcOpenCrossProfileDef_&quot;'/><figcaption>Figure 8.8.3.36.1.A<a href="IfcSectionedSurface.htm#Figure-8.8.3.36.1.A"><i data-feather="link"></i></a></figcaption></figure>
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcSectionedSurface.htm:<img alt="sectioned surfacequot;" src='http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/figures/IfcSectionedSurface_2.png&#32;Figure&#32;1&#32;—&#32;Sectioned&#32;surface&#32;with&#32;branching&#32;longitudinal&#32;breaklines&quot;'/><figcaption>Figure 8.8.3.36.1.B<a href="IfcSectionedSurface.htm#Figure-8.8.3.36.1.B"><i data-feather="link"></i></a></figcaption></figure>
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcSpecularRoughness.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#IEC-14772-1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcTextAlignment.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#CSS1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcTextDecoration.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#CSS1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcTextFontName.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#CSS1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcTextStyle.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#CSS1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcTextTransformation.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#CSS1
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcURIReference.htm:http://localhost:5000/IFC/RELEASE/bibliography.htm#RFC-3986
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkPlan.htm:<g id="a_node1"><a xlink:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/IfcProject.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkPlan.htm:<g id="a_node2"><a xlink:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRelDeclares.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkPlan.htm:<g id="a_node3"><a xlink:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkPlan.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkPlan.htm:<g id="a_node4"><a xlink:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRelAggregates.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkPlan.htm:<g id="a_node5"><a xlink:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/IfcRelAssignsToControl.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkPlan.htm:<g id="a_node6"><a xlink:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkSchedule.htm
./IFC/RELEASE/IFC4x3/HTML/lexical/IfcWorkPlan.htm:<g id="a_node7"><a xlink:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/IfcTask.htm
./IFC/RELEASE/IFC4x3/HTML/property/FireRating.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/property/IsExternal.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/property/LoadBearing.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/property/Reference.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/property/Status.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/property/ThermalTransmittance.htm:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
./IFC/RELEASE/IFC4x3/HTML/toc.html:http://localhost:5000/IFC/RELEASE/IFC4x3/HTML/lexical/Pset_BuiltElementProxyCommon.htm
Moult commented 2 years ago

Is this something I need to resolve for the Sunday deadline? Should we organise a meeting to do this together and do a final check before the HTML pack gets sent out?