Repository navigation
feat(elements): conduits, conduit fittings and gutters from their element records (#1261) (RE-319) - #1306
Conversation
…n every release, scored against Revit's Tags (#1261) (RE-319)
…xport gives each instance set (#1261) (RE-319)
…ment records (#1261) (RE-319)
…r that no export measures (#1261) (RE-319)
…status for conduits, conduit fittings and gutters (#1261) (RE-319)
… and what the census's written column is (#1261) (RE-319)
…s export gives each instance set (#1261) (RE-319)
…ypes it by (#1261) (RE-319)
… records the held-out Project's counts (#1261) (RE-319)
…gutters as IfcPipeSegment (#1261) (RE-319)
…conduits, and RE-319 corrects its missing-value arithmetic and states the type objects, bodies, Snowdon and systems it leaves unmeasured (#1261) (RE-319)
|
Automated Claude Code review (the maintainer's review agent; it read the code and the Measure runs): one blocking item, fixed in c223c47. The support matrix's two older Vitoria entries still said 1,136 of 1,321, with the 185 missing being conduits, conduit fittings and gutters. They now give 1,314 / 1,305 / 1,251, with the 7 left being 4 panel walls and 3 assemblies, and cite RE-319. In the same commit, RE-319 also: corrects its missing-value arithmetic (176 + 104 + 2); says Revit types all 178 instances where rvt-rs writes no type object; notes that the bodies on 2024 and later include turned boxes; and says that Snowdon's MEP model and the system memberships are not measured. Verified from the artifacts: |
Summary
Conduits, conduit fittings and gutters are exported from their element records, on every release the exporter reads (RE-319). On the one file with a Revit export that holds any of them, BIM-Speed Vitoria
ALD26 Before(Revit 2018, IFC2X3), all 178 instances the RE-21 rule selects are elements of Revit's export byTag, none outside it: 1,136 to 1,314 of its 1,321 elements written. Cable trays and cable tray fittings are not recovered (no file with a Revit export holds one), and neither are the conduit centerline categories Revit's export leaves out.Motivation
#1261: RE-315 left 178 conduits, conduit fittings and gutters of
ALD26 Beforeas "the next category census". This is that census, on every development file and every release the exporter reads, and the categories it shows Revit's export holds.Changes
partition_element_records.rs:OST_CONDUITS(-2008132),OST_CONDUIT_FITTING(-2008128) andOST_GUTTER(-2001391), Autodesk's publishedBuiltInCategoryvalues, inPRODUCT_RECORD_CATEGORIES(42) andRECOVERED_CATEGORIES(49).category_map.rs: conduits asIfcCableCarrierSegment, conduit fittings asIfcCableCarrierFitting, gutters asIfcPipeSegment, the entities Revit's own type objects name in that export (102 of 102, 74 of 74, 2 of 2);PredefinedTypeunset.partition_schema_mvp/fields.rs:Gutterplaced by elevation (ELEVATION_PLACED_CLASSES).export_content.rs: noConstraintsLevel parameter for the three classes (no export measures its name).rvt_ifc.rs,viewer/src/main.ts: display names.probes/examples/probe_re319_category_census.rs,tools/re/category_census_vs_ifc.py: the census and its scorer.reports/element-framing/RE-319-conduits-conduit-fittings-gutters.md,changelog.d/added/1261-conduits-gutters.md,docs/status.md,docs/support-matrix.json,docs/supported-profile.md,docs/evidence.md,docs/reference-models.md,docs/release-1.0-criteria.md.Testing
Unit tests are banned in this repository: none added. No local build (the Mac does not compute here); everything ran on GitHub's hosted runners through Measure.
tools/check-local.shpasses: not run locally (no builds on this Mac); CI runs it on this PRMeasure run 41741114199 (
-f base=main -f holdout=true -f samples=true -f nordic=true -f r2025=true -f bimcollab=true, every scorer; main's side4ad28023, head46da221f; later commits change documents only): 112 models exported on both sides, 97 byte for byte main's IFC, 15 moved:ALD26 Before(Revit 2018, spent)TagThe 7 still missing are 4 curtain-panel walls and 3 assemblies. The 15 models that moved:
ALD26 Before, the held-outALD26 Project(counts only: 1,336 to 1,514 of Revit's 1,520 elements and spaces,IfcFlowSegmentandIfcFlowFittingabsent 104 and 74 to 0, no element Revit lacks, values Revit does not write 18 to 18), Autodeskrme_advancedandrme_basicof 2015, 2019 and 2024 to 2027 (19 or 20 conduits and 14 fittings each), and Snowdon Towers Electrical (530 and 322). The samples have no Revit export: counted, not scored. Every other model is byte for byte main's, among them Core Interior, RE1, the BIM4LCA files, the 24 R2025 models, BIMcollab and the 17 other held-out pairs.Census (run 41726416015, probe
probe_re319_category_census): the only file with a Revit export that holds any of the five categories isALD26 Before; RE1 Electrical, Mechanical and Plumbing, Core Interior, the four BIM4LCA files, the 24 R2025 models and Einhoven hold none, and every element of those exports is among the instances the probe selects.Reproduce:
gh workflow run measure.yml --ref main -f ref=3a81189c6dde0783004c41d3d2e4daf27930e1e8 -f base=none -f holdout=true -f samples=true -f nordic=true -f r2025=true -f bimcollab=true -f models="spent-* core-interior einhoven re1-* nordic-office-* r2025-* bimcollab-*" -f scorers=none -f probe=probe_re319_category_census -f probe_scorer=category_census_vs_ifc gh workflow run measure.yml --ref main -f ref=46da221fc89f259d7dd535e06e8f49a7ac0286a3 -f base=main -f holdout=true -f samples=true -f nordic=true -f r2025=true -f bimcollab=trueAudit-honesty checklist
changelog.d/added/1261-conduits-gutters.mdReferenceare not read on Revit 2018 (Name differs, as for pipes); noConstraintsLevel parameter for the three classes; noPredefinedType(Revit's gutter type objects carryGUTTER, 2 of 2; left unset, a decision); bodies are boxes; no conduit fitting portsprobes/examples/(probe_re319_category_census.rs) and the dated report RE-319 are includedLegal and contribution hygiene
Clean-room declaration (CLEANROOM.md): the changes in this PR are based on public byte observations of Revit files (BIM-Speed's CC BY 4.0 Vitoria pair, MIT-licensed RE1 models, Autodesk's published sample projects) and of Revit's own IFC exports of them (accepted source 1), Autodesk's published
BuiltInCategoryconstants (source 2, the public API enumeration), the buildingSMART IFC4 specification (source 4), and Autodesk's open-source exporterrevit-ifc, read for what Revit's export writes and cited by file and class (IFCCompatibilityType.cs,ElementFilteringUtil.cs,FamilyInstanceExporter.cs,IFC4Enums.cs; source 5). I have not used Autodesk SDK source, ODA SDK source, leaked internal documentation, NDA material, or decompiled internal Revit implementation code beyond public symbol exports, and I have not copied or translated code from revit-ifc.Breaking changes
None.
PRODUCT_RECORD_CATEGORIESandRECOVERED_CATEGORIESareunstable-researchconstants whose array lengths change (39 to 42, 46 to 49).Screenshots or output samples
IFC output changed: a conduit is
IFCCABLECARRIERSEGMENT('...',#5,'Conduit-745533',$,$,#...,#...,'745533',$), a fittingIFCCABLECARRIERFITTING('...',#5,'M_Codo de tubo - Aluminio:Est\X2\00E1\X0\ndar:745566',$,'M_Codo de tubo - Aluminio:Est\X2\00E1\X0\ndar',#...,#...,'745566',$), a gutter anIFCPIPESEGMENTwith$for itsPredefinedType.Related issues
Refs #1261. Follows #1286 (RE-315).