RS.Transmeet
버전 기록
1.4.7 — 2026-10-14–16 — 형상 패밀리: 평면도 선, 하위 카테고리와 유형 매개변수
패밀리의 형상으로 전송한 요소에 평면도 기호 표현을 추가했습니다. 문 열림 선, 중심선과 기호가 평면도와 천장 평면도에 표시되며 입면도에는 표시되지 않습니다.
각 솔리드에 소스 패밀리의 하위 카테고리를 부여합니다. 문에는 “프레임/멀리언”, “유리”, “문짝” 등을 사용하므로 프로젝트 객체 스타일에서 하위 카테고리별 선 두께와 가시성을 제어할 수 있습니다.
소스 패밀리의 유형 매개변수인 유형 표시, 모델, 제조업체, 키노트, 비용, 문과 창의 너비 및 높이 등을 같은 값으로 대상 패밀리에 전송합니다. 공유 매개변수는 같은 GUID를 유지하며 패밀리 유형 이름도 소스와 같습니다.
“항상 수직”과 “룸 계산 점” 설정을 전송하므로 문과 창이 룸 일람표에 올바르게 포함됩니다.
이 데이터는 소스 측의 업데이트된 플러그인만 전송하므로 양쪽 모두 업데이트하십시오.
제품군의 다른 플러그인과 마찬가지로 이 플러그인에도 Revit 뷰 탭 색상 지정 기능을 추가했습니다. “설정” 창의 “Revit 탭” 영역에서 활성화 여부, “채우기” 또는 “띠” 스타일, 프로젝트별 또는 파일별 색상을 설정합니다. 기본값은 탭 전체를 채우는 방식이며 띠를 다시 선택할 수도 있습니다. 활성 탭은 다른 탭보다 밝게 표시하지 않고 위쪽의 색상 띠로 구분합니다.
RS.BIMManager 애플리케이션의 명령으로 플러그인 창을 열 수 있습니다. 리본 버튼과 동일하게 라이선스를 확인합니다.
사용 데이터: 누적 작업 시간(분) 외에는 “플러그인 실행 중”이라는 상태만 전송합니다. PC, 사용자, 파일 식별자는 이전과 같이 전송하지 않습니다.
1.4.6 — 2026-10-14 — 정적 형상을 같은 카테고리의 패밀리로 전송
소스 패밀리로 전송할 수 없는 요소는 DirectShape 형상 대신 같은 카테고리의 로드할 수 있는 패밀리로 가져옵니다. DirectShape는 대체 경로로 남으며 사용 이유를 보고서에 표시합니다.
벽, 바닥, 천장 또는 지붕에 호스트된 요소는 전송된 같은 호스트에 같은 방향으로 배치하고 개구부를 뚫습니다. 벽에서는 요소의 솔리드에 따라 벽 전체 두께를 관통하며, 바닥, 천장과 지붕에서는 평면도 경계 크기를 사용합니다. 호스트를 전송하지 못하면 패밀리를 호스트 없이 배치합니다.
계단, 난간, 덕트 등 로드할 수 있는 패밀리에 지정할 수 없는 카테고리는 “일반 모델”로 전송하고 보고서에 설명을 남깁니다.
같은 유형이며 수직축 주위로만 회전한 인스턴스에는 소스 유형별로 하나의 패밀리인 “패밀리 - 유형”을 사용합니다. 프로젝트의 기존 패밀리와 이름이 겹치지 않도록 하며 다른 패밀리를 덮어쓰지 않습니다.
재실행 시 변경되지 않은 패밀리와 인스턴스는 그대로 두고 변경된 항목은 다시 배치합니다. 이전 버전의 DirectShape는 패밀리로 교체하며 소스에서 삭제된 항목은 삭제합니다.
1.4.1–1.4.3 — 2026-10-12–13 — 라이선스, 업데이트와 이름
라이선스와 업데이트(RS-Systems 제품군 공통): 코드로 시험 사용 기간을 연장하고, PC용 라이선스를 인터넷 없이 활성화하며, RS-XXXX-XXXX-XXXX 형식의 짧은 사이트 코드를 지원합니다. Suite 라이선스를 수정하고 라이선스 보호를 강화했습니다. 설치된 모든 RS-Systems 도구의 업데이트를 하나의 창에 표시하며 Revit 종료 후 한꺼번에 설치합니다. 수동 확인은 “설정” → “모든 RS-Systems 도구 업데이트…”에서 합니다.
이름을 통일했습니다. 창과 메시지에는 rs.Transmeet, “프로그램 추가/제거”와 설치 프로그램 이름에는 RS.RVT.Transmeet를 사용합니다. 새 설치 프로그램은 기존 버전 위에 업데이트하므로 라이선스와 시험 사용 기간이 유지됩니다.
오류 수정 및 안정성 개선.
1.4.0 — 2026-10-12 — .rstm 패키지와 설명 데이터 기반의 로드할 수 있는 패밀리
.rstm 패키지: “모델 보내기” 측의 “패키지로 내보내기…” 버튼으로 모델을 파일에 내보낸 뒤, 소스를 열지 않고 “모델 받기” 측의 “패키지에서…” 버튼으로 Revit 2021–2027의 모든 버전에서 다시 만들 수 있습니다. 이후에는 실시간 연결과 같이 레이어 확인란, 보고서, 재실행과 Ctrl+Z를 통한 단계별 실행 취소를 사용할 수 있습니다.
새 “로드할 수 있는 패밀리” 레이어는 기본적으로 켜져 있습니다. 인스턴스가 있는 각 패밀리를 소스에서 설명 데이터로 기록한 뒤 이전 버전에서 .rft 템플릿을 사용하여 다시 구성합니다. 카테고리와 설정, 매개변수와 수식, 패밀리 유형, 참조 평면, 솔리드인 돌출/혼합/회전/스윕, 선, 하위 카테고리, 최대 세 수준의 내포된 패밀리와 치수 레이블을 포함합니다. 인스턴스는 레벨, 호스트, 두 레벨, 곡선 또는 작업 기준면 등 배치 유형에 맞게 배치합니다.
스윕 혼합, 자유형, 커넥터, 문자와 레이블 등 설명 데이터가 지원하지 않는 항목은 경고에 나열합니다. 다시 구성하지 못한 패밀리나 인스턴스는 “패밀리를 형상으로” 레이어로 전송합니다.
패밀리, 패밀리 유형, 참조 평면과 하위 카테고리의 이름에도 다른 이름과 같은 금지 문자 대체를 적용합니다.
1.3.0 — 2026-10-12 — 패밀리를 형상으로 전송; 한 단계의 오류로 전송이 중단되지 않음
새 “패밀리를 형상으로” 레이어는 기본적으로 켜져 있습니다. 로드할 수 있는 패밀리, 내부편집 패밀리, DirectShape와 솔리드가 있는 기타 모델 요소를 같은 카테고리의 형상으로 전송합니다. 기록할 수 있는 매개변수 값은 수신 모델의 같은 이름 매개변수에 넣고, 인스턴스와 유형 매개변수의 전체 목록은 “RS.Transmeet Params”와 “RS.Transmeet Type Params”에 기록하므로 이를 사용하여 일람표를 만들 수 있습니다.
한 단계나 레이어의 오류로 전송이 중단되지 않습니다. 보고서에 “오류” 행을 추가하고 전송을 계속합니다. 소스에서 읽지 못한 요소는 이유와 함께 “건너뜀”으로 표시합니다.
Revit에서 금지된 문자(\ : { } [ ] | ; < > ? ` ~)가 포함된 이름은 비슷한 허용 문자로 바꿉니다. 요소 자체와 해당 요소를 가리키는 모든 참조에 적용하며, 각 대체 내역을 보고서의 “주의” 행으로 기록합니다.
“시트”처럼 Revit이 복사하지 않는 뷰 유형은 오류 대신 설명과 함께 “건너뜀”으로 표시합니다. “모델” 레이어 보고서에는 그룹, Revit 링크, CAD 가져오기, 모델 선 등 어떤 레이어에서도 전송하지 않는 항목만 나열합니다.
1.2.7 — 2026-10-09 — 공통 리본: Descriptor 버튼 제거
이유: 제작자가 RS.Descriptor를 RS.Exporter의 “Export Model” 탭으로 통합하고 Descriptor를 별도 도구에서 제외했습니다. 공통 리본 카탈로그는 제품군의 모든 플러그인에서 같으므로 모두 변경됩니다.
공통 표준 SRC/SuiteRibbon/RsSuiteRibbon.cs는 제품군의 모든 도구에서 바이트 단위로 동일합니다. Tools 패널의 RS.Descriptor / RS_Descriptor_Btn / “Descriptor” 카탈로그 행을 제거했습니다. 플러그인 자체 버튼은 변경되지 않습니다.
확인: RsSuiteRibbon.cs 구문(tree-sitter), 모든 도구에서 표준 파일의 md5 일치. 이번 실행에서는 .NET 빌드를 수행하지 않았습니다. SDK와 Revit API는 빌드 머신에만 있습니다.
파일: SRC/SuiteRibbon/RsSuiteRibbon.cs, SRC/Installer/version.txt, CHANGELOG.md.
1.2.6 — 2026-10-09 — 공통 리본: RS.DxfExport를 RS.Exporter로 교체
이유: 작성자가 RS.DxfExport와 RS.ScheduleExport를 RS.Exporter라는 하나의 도구로 통합했습니다(RS-Systems 탭, Tools 패널의 “Export” 버튼). 공통 리본 카탈로그는 제품군의 모든 플러그인에서 동일하므로 모두 변경됩니다.
공통 표준 SRC/SuiteRibbon/RsSuiteRibbon.cs는 15개 도구 모두에서 바이트 단위로 동일합니다. Tools 패널의 같은 위치에서 RS.DxfExport / RsDxfExport / “DFX” 카탈로그 행을 RS.Exporter / RsExporter / “Export”로 교체했습니다. 플러그인 자체 버튼은 변경되지 않습니다.
확인: RsSuiteRibbon.cs 구문(tree-sitter), 모든 도구에서 표준 파일의 md5 일치. 이번 실행에서는 .NET 빌드를 수행하지 않았습니다. SDK와 Revit API는 빌드 머신에만 있습니다.
파일: SRC/SuiteRibbon/RsSuiteRibbon.cs, SRC/Installer/version.txt, CHANGELOG.md.
1.2.5 — 2026-10-09 — 원격 분석 v3: “현재 작업 중인지”와 작업 시간만 전송
이유: 작성자가 모든 플러그인의 텔레메트리를 수정해 달라고 요청했습니다. 플러그인을 현재 사용하는지와 얼마나 오래 사용하는지만 필요하며, 설치 정보나 구체적인 작업 내용은 필요하지 않습니다. 시간은 시간제 과금과 마찬가지로 실제 플러그인 작업을 기준으로 계산합니다.
표준 Telemetry\ 폴더(rs-systems-telemetry-v3 형식, 전체 15개 플러그인에서 바이트 단위로 동일): 제품, 무작위 세션 id(Revit을 실행할 때마다 새로 만들며 저장하지 않음), 세션 중 누적 작업 시간(분), 세션 종료 표시만 전송합니다. 설치 식별자(머신 지문), 버전, 라이선스와 시험 사용 상태, 작업 횟수는 제거했습니다. 첫 작업 분은 즉시 전송하고, 이후에는 2분에 한 번 이하로 값이 증가했을 때만 전송하며,…
작업 시간은 라이선스 하위 시스템에서 시간제 과금과 같은 기준으로 모든 라이선스 모드에서 계산합니다. 플러그인 창과 패널의 입력(활성화/결제 창 제외), 허용된 명령 실행, LicenseGate.Busy(), 백그라운드 작업(TryBackgroundUse)이 대상입니다. 활동이 있는 분은 전체를 작업 시간으로 계산하고, 아무 작업 없이 열린 창은 작업으로 보지 않습니다. 표준 Licensing\: WalletMeter.cs(MarkWork, WorkMinutes), LicenseGate.cs(허용된 동…
원격 분석을 처음 연결했습니다. 표준 Telemetry\ 폴더(4개 파일), 상용 빌드의 RS_TELEMETRY 심볼(SRC/Directory.Build.props), OnStartup의 Telemetry.Launch와 OnShutdown의 Telemetry.Shutdown을 사용합니다. Personal은 원격 분석을 컴파일하지 않습니다.
1.2.4 — 2026-10-09 — MSI: 웹사이트용 Product key와 Product ID
이유: 작성자가 사이트의 도구 상세 페이지에서 배포 파일을 선택할 때 MSI 자체에서 Product key를 읽어 자동으로 입력하도록 요청했습니다. 이전 MSI에는 카탈로그 키와 라이선스 식별자가 모두 없어 사이트에서 읽을 수 없었고, 상세 페이지에 다른 제품의 배포 파일을 지정할 수 있었습니다.
SRC/Installer/Product.wxs: Property 테이블에 RS_PRODUCT_KEY(사이트 카탈로그 키)와 RS_PRODUCT_ID(라이선스 식별자)를 기록합니다. 값이 전달되지 않으면 WiX가 명확한 오류를 표시하고 빌드를 중지합니다.
msi.bat: 값을 수동으로 입력하지 않고 UpdateProduct.cs(SiteProductKey, LicenseProductId)에서 가져옵니다. 읽지 못하면 msi.bat는 키 없는 MSI를 만들지 않고 오류로 중지합니다. 빌드 출력에 [RS] Product key: … Product ID: … 행을 표시합니다.
사이트는 MSI를 선택할 때 RS_PRODUCT_KEY를 읽어 새 상세 페이지에 입력하고, 다른 키를 가진 MSI는 거부합니다.
1.2.3 — 2026-10-09 — 제품군 라이선스 표준: 오프라인은 시험 사용 또는 라이선스, 온라인은 시간제 과금; 취약점 해결과 보호 강화
이유: 작성자가 제품군의 라이선스를 표준화하도록 요청했습니다. 오프라인에서는 시험 사용 기간 중이거나 정식 라이선스가 있을 때만 작동하고, 시간제 과금은 온라인에서만 허용합니다. 알려진 취약점을 확인해 수정하고, 신뢰성을 높이며, 무단 해제를 최대한 어렵게 하도록 요청했습니다. 표준 Licensing\ 폴더를 전체 15개 도구에서 바이트 단위로 동일하게 업데이트했습니다(29개 파일: LicenseVault.cs 추가). 이 폴더와 .csproj의 가져오기 한 줄만 변경합니다.
발견하여 해결한 취약점:
지갑 스냅샷 state.dat가 보호되지 않은 JSON으로 저장되어 있었습니다. 서버를 차단한 상태에서 ("p":"2099…", "r":1)로 위조하면 오프라인에서 무기한 시간제 과금을 사용할 수 있었습니다. 이제 스냅샷을 봉인하고(LicenseVault.Seal: HMAC-SHA256 + MachineGuid/볼륨 바인딩), 다음 조건에서만 허용합니다. 미래 시점이 아니고, 10분보다 오래되지 않았으며, 결제한 분은 응답 수신 시점부터 ≤ 61초여야 합니다.
시계를 과거로 돌리면 시간제 이용 권한이 연장되던 문제를 수정했습니다. 계량기(WalletMeter)의 모든 시간 제한을 프로세스의 단조 시계(Stopwatch)로 바꿨습니다. 결제한 분과 서버 응답의 최신 여부는 시스템 시간에 의존하지 않습니다.
1.2.2 — 2026-10-06 — 경고 없는 빌드
이유: 빌드 1.2.1에서 연도별로 CS0649 경고가 4개 발생했습니다(각각 2개씩 —
주 프로젝트와 임시 WPF 프로젝트에서).
전송 계약(Transfer\Dto2.cs)에서 어디에서도 값을 채우지 않는 필드를
제거했습니다: CompoundDto.EndCapInterior, CompoundDto.EndCapExterior,
1.2.1 — 2026-10-06 — 시간제 과금 라이선스(28개 파일로 구성된 표준 Licensing\)
이유: 제작자가 최신 활성화 하위 시스템 표준을 포함한 참조 도구 RS.SmartSelect를
보냈습니다. 계정 잔액(RS-WALLET)을 지원합니다.
Licensing\ — RS.SmartSelect의 28개 파일과 바이트 단위로 동일하며 다음 자체 파일만 예외입니다:
LicensingConstants.cs(ProductId revittransmeet, “RS Transmeet”). 새 항목:
1.2.0 — 2026-10-06 — 로드할 수 있는 패밀리를 제외한 전체 전송; 비교, XLSX 보고서와 새 아이콘
이유: 제작자는 라이선스, 아이콘과 모든 보조 기능을 완성하고
가장 복잡하고 시간이 오래 걸리는 로드할 수 있는 패밀리는 다음 단계로
남겨 달라고 요청했습니다. 제작자와 합의한 범위는 “패밀리를 제외한 모든 것” — 시스템
유형과 요소, 룸, 뷰, 템플릿, 필터, 일람표, 시트,
1.1.0 — 2026-10-06 — 모델을 이전 Revit 버전으로 전송(단계 1) 및 제품군 표준 적용
이유: 제작자는 Revit 2025에서 작업 중인 모델을
Revit 2023에서 다시 만들어 설계를 온전히 계속하되 수동으로
다시 모델링하지 않도록 요청했습니다. 제작자의 결정과 작업 계획은 프로젝트 문서
claude/RS-TRANSMEET.md에 있습니다. 이번은 그 문서에 따른 첫 제공분으로 단계 1과 도구의 전환을
제공된 소스 아카이브의 CHANGELOG.md를 바탕으로 작성한 기록입니다. 최근 12개 항목을 표시합니다.