RS.Transmeet
Version history
1.4.7 — 2026-10-14–16 — Geometry-based families: plan lines, subcategories, type parameters
Elements transferred as geometry in families receive a symbolic plan representation: door swing lines, axes, and symbols are visible in floor plans and reflected ceiling plans (but not elevations).
Each solid receives the original family’s subcategory (for doors, “Frame/Mullion”, “Glazing”, “Panel”, etc.), so line weights and visibility by subcategory follow the project’s object styles.
The original family’s type parameters (type mark, model, manufacturer, keynote, cost, door and window width and height, etc.) are transferred into the family with the same values, and shared parameters retain the same GUID; the family type has the same name as in the source.
The “Always Vertical” and “Room Calculation Point” flags are transferred, so doors and windows are correctly included in room schedules.
Only the updated source-side plugin sends these data—update the plugin on both sides.
Revit view-tab coloring is now available in this plugin, as in all plugins in the product line: enable it, choose “Fill” or “Stripe”, and set color by project or file in the “Revit Tabs” section of “Settings”. By default, the entire tab is filled with the color (the stripe can be selected again); the active tab is no brighter than the others—it is marked by a colored stripe at the top.
The plugin window can be opened using a command in the RS.BIMManager application, with the same license check as the ribbon button.
Usage data: in addition to accumulated working minutes, only an indication that the plugin has been launched is transmitted; computer, user, and file identifiers are still not transmitted.
1.4.6 — 2026-10-14 — Static geometry as families of the same category
Elements that cannot be transferred using their original family are transferred as a loadable family of the same category rather than a DirectShape. DirectShape remains a fallback, with the reason stated in the report.
Elements hosted by a wall, floor, ceiling, or roof are placed on the same transferred host with the same orientation and cut an opening: through the full thickness of a wall following the element’s solid, or according to its plan extents in a floor, ceiling, or roof. If the host is not transferred, the family is placed without a host.
Categories that cannot be assigned to a loadable family (stairs, railings, ducts…) are transferred as “Generic Models”, with a note in the report.
Instances of the same type rotated only around the vertical axis receive one family per source type (“Family - Type”). Names do not conflict with families already in the project, and other families are not overwritten.
Rerun: unchanged families and instances are left untouched, changed ones are placed again; DirectShape elements from previous versions are replaced with families; anything deleted in the source is deleted.
1.4.1–1.4.3 — 2026-10-12–13 — Licensing, updates, naming
Licensing and updates (shared across the RS-Systems product line): the trial period can be extended with a code, a license issued for your PC activates without an internet connection, short website codes in the form RS-XXXX-XXXX-XXXX are accepted, the Suite license has been fixed, and license protection has been strengthened. Updates for all installed RS-Systems solutions appear in one window and are installed as a single batch after exiting Revit; to open it manually, use “Settings” → “Updates for All RS-Systems Solutions…”.
Consistent naming: the solution is called rs.Transmeet in windows and messages, and RS.RVT.Transmeet in “Add or Remove Programs” and in the installer name. The new installer updates the installed version in place: licenses and the trial period are retained.
Fixes and stability improvements.
1.4.0 — 2026-10-12 — The .rstm package and loadable families rebuilt from definitions
The .rstm package: export a model to a file using “Export to Package…” on the “Sending Model” side and recreate it in any Revit version from 2021–2027 without the source being open, using “From Package…” on the “Receiving Model” side. Everything then works as with a live channel: layer checkboxes, report, rerun, and step-by-step undo with Ctrl+Z.
New “Loadable Families” layer (enabled by default): each family with instances is described in the source and rebuilt in the earlier version from an .rft template—category and flags, parameters and formulas, family types, reference planes, solids (extrusion, blend, revolve, sweep), lines, subcategories, nested families up to three levels deep, and labeled dimensions. Instances are placed according to their placement type: level-based, hosted, two-level-based, curve-based, or work-plane-based.
Items unsupported by the definition (swept blends, free forms, connectors, text and labels, etc.) are listed in warnings; a family or instance that cannot be rebuilt is transferred using the “Families as Geometry” layer.
Names of families, family types, reference planes, and subcategories undergo the same prohibited-character replacement as other names.
1.3.0 — 2026-10-12 — Families as geometry; a single failed step no longer interrupts the transfer
New “Families as Geometry” layer (enabled by default): loadable families, in-place families, DirectShape elements, and other model elements containing a solid are transferred as a shape of the same category. Writable parameter values go into identically named parameters in the receiving model, while the full list of instance and type parameters goes into “RS.Transmeet Params” and “RS.Transmeet Type Params”, which can be used to create a schedule.
The transfer is no longer interrupted by an error in a single step or layer: an “Error” row is added to the report, and the transfer continues; an element that the source could not read is marked “skipped” with the reason.
Names containing characters prohibited in Revit (\ : { } [ ] | ; < > ? ` ~) are corrected by replacing them with similar permitted characters—both on the element itself and in every reference to it; each replacement produces a “Warning” row in the report.
A view type that Revit cannot copy (for example, “Sheet”) is marked “skipped” with an explanation instead of an error. The “Model” layer’s report lists only items that no layer transfers: groups, Revit links, CAD imports, and model lines.
1.2.7 — 2026-10-09 — Shared ribbon: the Descriptor button has been removed
Reason: the author incorporated RS.Descriptor into RS.Exporter as the “Export Model” tab and removed Descriptor as a standalone solution. The shared ribbon catalog is identical across all plugins in the product line, so it changes for all of them.
Canonical SRC/SuiteRibbon/RsSuiteRibbon.cs (byte-for-byte identical across all solutions in the product line): the RS.Descriptor / RS_Descriptor_Btn / “Descriptor” catalog entry in the Tools panel has been removed. This does not change the plugin’s own buttons.
Verified: RsSuiteRibbon.cs syntax (tree-sitter); the canonical file's md5 matches across all solutions. No .NET build was performed in this run: the SDK and Revit API are available only on the build machine.
Files: SRC/SuiteRibbon/RsSuiteRibbon.cs, SRC/Installer/version.txt, CHANGELOG.md.
1.2.6 — 2026-10-09 — Shared ribbon: RS.Exporter replaces RS.DxfExport
Reason: the author merged RS.DxfExport and RS.ScheduleExport into a single RS.Exporter solution (the “Export” button on the RS-Systems tab, Tools panel). The shared ribbon catalog is identical in all plugins in the range, so it changes in all of them.
Canonical SRC/SuiteRibbon/RsSuiteRibbon.cs (byte-for-byte identical across all 15 solutions): the RS.DxfExport / RsDxfExport / “DFX” catalog entry has been replaced with RS.Exporter / RsExporter / “Export” in the same position in the Tools panel. This does not change the plugin’s own buttons.
Verified: RsSuiteRibbon.cs syntax (tree-sitter); the canonical file's md5 matches across all solutions. No .NET build was performed in this run: the SDK and Revit API are available only on the build machine.
Files: SRC/SuiteRibbon/RsSuiteRibbon.cs, SRC/Installer/version.txt, CHANGELOG.md.
1.2.5 — 2026-10-09 — Telemetry v3: only whether the plugin is currently in use and active usage time
Reason: the author asked to redesign telemetry across all plugins: only whether a plugin is currently being used and how much time is spent using it are needed; installations and specific actions are not of interest. Time is based on actual plugin use, as in time-based billing.
The canonical Telemetry\ folder (rs-systems-telemetry-v3 format, byte-for-byte identical across all 15 plugins): only the product, a random session id (new for each Revit launch and never stored), working minutes accumulated during the session, and an end-of-session flag are sent. The installation identifier (machine fingerprint), versions, license and trial status, and action counters have been removed. The first working minute is sent immediately; subsequent updates are sent at most once every 2 minutes and only when the total increases,…
Working time is counted by the licensing subsystem using the same activity criteria as time-based billing, but in every license mode: input in plugin windows and panels (activation/payment windows do not count), an allowed command launch, LicenseGate.Busy(), and background work (TryBackgroundUse). A minute containing activity counts as a full working minute; an idle window does not count as work. Canonical Licensing\: WalletMeter.cs (MarkWork, WorkMinutes), LicenseGate.cs (a mark on an allowed a…
Telemetry has been integrated for the first time: the canonical Telemetry\ folder (4 files), the RS_TELEMETRY symbol in the commercial build (SRC/Directory.Build.props), Telemetry.Launch in OnStartup, and Telemetry.Shutdown in OnShutdown. Personal does not compile telemetry.
1.2.4 — 2026-10-09 — MSI: Product key and Product ID for the website
Reason: the author asked for the Product key to be read from the MSI itself and filled in automatically when selecting a distribution package in a solution card on the website. Previously, the MSI contained neither the catalog key nor the licensing identifier: the website had nothing to read, and a distribution package belonging to another product could be assigned to the card.
SRC/Installer/Product.wxs: RS_PRODUCT_KEY (the website catalog key) and RS_PRODUCT_ID (the licensing identifier) are written to the Property table. If the values are not supplied, WiX stops the build with a clear error.
msi.bat: values are read from UpdateProduct.cs (SiteProductKey, LicenseProductId), not entered manually; if they cannot be read, msi.bat stops with an error instead of building an MSI without a key; the line [RS] Product key: … Product ID: … appears in the build output.
The website reads RS_PRODUCT_KEY when an MSI is selected, fills it into a new card, and rejects an MSI with a different key.
1.2.3 — 2026-10-09 — Canonical product-line licensing: offline—trial or license only; online—pay-per-use; vulnerabilities fixed and protection strengthened
Reason: the author asked to standardize licensing across the range—offline operation only during the trial or with a full license, time-based billing only online—to check and fix known vulnerabilities, improve reliability, and make cracking as difficult as possible. The canonical Licensing\ folder has been updated byte-for-byte across all 15 solutions (29 files: LicenseVault.cs added); only this folder and one import line in the .csproj change.
Vulnerabilities found and fixed:
The wallet snapshot state.dat was stored as plain JSON. Tampering with it ("p":"2099…", "r":1) while blocking the server allowed indefinite offline time-based access. The snapshot is now sealed (LicenseVault.Seal: HMAC-SHA256 + binding to MachineGuid/volume) and accepted only within these limits: not from the future, no older than 10 minutes, and the paid minute ≤ 61 s from receipt.
Setting the clock back extended time-based access. All WalletMeter deadlines now use the process's monotonic clock (Stopwatch); the paid minute and the freshness of the server response no longer depend on system time.
1.2.2 — 2026-10-06 — Build without warnings
Reason: build 1.2.1 produced 4 CS0649 warnings (2 times each—in the
main and temporary WPF projects) for each year.
The transfer contract (Transfer\Dto2.cs) no longer contains fields that were never
populated: CompoundDto.EndCapInterior, CompoundDto.EndCapExterior,
1.2.1 — 2026-10-06 — License with pay-per-use billing (canonical Licensing\ with 28 files)
Reason: the author provided the donor solution RS.SmartSelect with the current canonical
activation subsystem, including an account wallet (RS-WALLET).
Licensing\—28 files copied byte for byte from RS.SmartSelect, except for its own
LicensingConstants.cs (ProductId revittransmeet, “RS Transmeet”). New:
1.2.0 — 2026-10-06 — Transfer of everything except loadable families; verification, XLSX report, new icons
Reason: the author asked to complete the licensing, icons, and all supporting
functionality, leaving loadable families for the next stage as the most
complex and time-consuming part. The scope agreed with the author: “everything except families”—system
types and elements, rooms, views, templates, filters, schedules, sheets,
1.1.0 — 2026-10-06 — Model transfer to an earlier Revit version (stage 1) and alignment with the product-line standard
Reason: the author asked for a model maintained in Revit 2025 to be recreated
in Revit 2023 so that full design work could continue—without manual
rebuilding. The author’s decisions and work plan are in the project document
claude/RS-TRANSMEET.md. This is the first delivery under it: stage 1 plus migration of the solution
This history was compiled from CHANGELOG.md in the supplied source archive. The latest 12 entries are shown.