파라미터 자동화
Description Autofill (4종)
타입 이름에 적힌 치수(W300xH200 등)를 자동으로 읽어 Description 파라미터에 규격값 일괄 입력
🖱 쓰는 법
- 대상 요소(거터 · 섬핏 · 트렌치 · 파이프)가 있는 문서를 엽니다
- YoonDream 탭 → Coco 패널 → 해당 Desc Autofill 버튼 클릭
- Gutter Desc — 거터용
- Sumpit Desc — 섬핏용
- Trench Desc — 트렌치용
- Pipe Desc — 파이프용
- 도구가 자동으로 타입명 → 파라미터 입력 실행
💡 이럴 때 쓰세요
- 타입 이름은 이미 치수로 잘 적혀 있는데 Description 파라미터가 비어 있을 때 — 수백 개 타입 수동 입력 필요 없음
- 시트 일람표에 Description 컬럼이 들어가야 하는데 값이 없어 비어 있을 때
- 인치/피트 · 분수/소수 혼재된 타입 이름도 자동으로 읽어냄 (
6 1/2",300,5"모두 대응)
4종으로 나뉘어 있는 이유
거터·섬핏·트렌치는 치수 형식(W×H, W×D, W 단일)이 다르고, 파이프는 아예 파라미터 값을 직접 읽어 씁니다. 대상에 맞는 버튼을 고르면 됩니다.
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Coco.panel/Gutter.stack/— 거터용Coco.panel/Pipe.stack/— 파이프용- (기타 스택)
공통 원리
타입 이름 (예: "GTR_W300xH200")
↓ 정규식 파싱
치수 추출 (W=300, H=200)
↓ 포맷팅
Description = "300x200" 자동 입력
4종 Autofill 상세
| 도구 | 대상 | 파싱 규칙 | 정규식 |
|---|---|---|---|
| Gutter Desc | 거터 (시스템) | W×H 추출 | (\d+)"?\s*x\s*(\d+)"? |
| Sumpit Desc | 섬핏 (제네릭 모델) | W×D 추출 | W/D 패턴 |
| Trench Desc | 트렌치 (제네릭 모델) | W 추출 | 단일 치수 |
| Pipe Desc | 파이프 | radius_inside 값 기반 | 파라미터 직접 읽기 |
치수 파싱 엔진
정수, 소수, 분수, 인치/피트 단위 모두 인식:
5"→ 5 inch6 1/2"→ 6.5 inch300→ 300 (단위 없음, mm 가정)
타입파라미터 복사
같은 패밀리 안 소스 타입 하나 → 나머지 모든 타입에 파라미터 값 한 방에 복사
🖱 쓰는 법
- 복사의 기준이 될 타입을 Revit에서 요소 선택
- 또는 마지막 선택을 JSON으로 저장해뒀다면 그걸 불러올 수 있음
- YoonDream 탭 → Coco 패널 → 타입파라미터 복사 버튼 클릭
- 도구가 같은 패밀리 내 나머지 모든 타입에 파라미터 값 복사
💡 이럴 때 쓰세요
- 한 타입에서 잘 맞춘 파라미터 10개를 같은 패밀리의 50개 타입에 동일하게 적용해야 할 때
- 타입 50개 × 파라미터 10개 = 500건의 수동 입력을 한 방에 해결
- 공용 재질·마감·분류 등 공통 속성을 모든 타입에 일괄 적용할 때
같은 패밀리 내 복사 전용
이 도구는 동일 패밀리 안의 타입끼리만 복사합니다. 다른 패밀리로 보내고 싶다면 철골타입 임포터 또는 프로젝트간 복사를 사용하세요.
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Coco.panel/ParamCopy.stack/type_param_copy.pushbutton/
동작 방식
- 사용자가 Revit에서 요소 선택 (또는 마지막 선택 JSON 로드)
- 선택된 요소의
FamilySymbol추출 - 같은
Family내 다른 모든FamilySymbol수집 - 소스의 파라미터 값을 전부 복사
StorageType별 처리
| StorageType | 읽기 | 쓰기 |
|---|---|---|
| String | AsString() |
Set(string) |
| Integer | AsInteger() |
Set(int) |
| Double | AsDouble() |
Set(double) |
| ElementId | AsElementId() |
Set(ElementId) |
크로스 프로젝트 전송
프로젝트와 프로젝트 사이에 파라미터를 주고받는 두 가지 도구입니다.
프로젝트파라미터 일괄전송
공유 파라미터의 정의(이름·카테고리·바인딩)를 여러 RVT에 한 번에 전송
🖱 쓰는 법
- YoonDream 탭 → Coco 패널 → 프로젝트파라미터 일괄전송 버튼 클릭
- 소스 문서의 공유 파라미터 목록에서 전송할 항목 체크
- 타겟 문서 추가 → 실행
💡 이럴 때 쓰세요
- 사내 공용 공유 파라미터 세트를 신규 프로젝트 파일들에 일괄 세팅할 때
- Revit Transfer Project Standards에서 "Project Parameters"만 따로 뽑아 쓰고 싶을 때
- Revit 구/신 버전 섞여 있어도 호환 — 자동으로 양쪽 API 처리
🔍 UI 미리보기
타입파라미터 프로젝트간 복사
소스 프로젝트 → 타겟 프로젝트에 타입 파라미터 값을 동일 이름 타입끼리 자동 매칭해 복사
🖱 쓰는 법
- YoonDream 탭 → Coco 패널 → 프로젝트간 복사 버튼 클릭
- 소스 프로젝트 선택
- 타겟 프로젝트 추가
- 옵션 선택 (인스턴스 Comments도 같이 전송할지 등)
- 실행 클릭 → 같은 이름 타입끼리 값 복사
💡 이럴 때 쓰세요
- 테스트 파일에서 조정한 파라미터 값을 실제 프로젝트에 복사할 때
- 두 프로젝트 사이 동일 타입의 값이 다를 때 한 쪽 기준으로 통일할 때
🔍 UI 미리보기
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Coco.panel/ParamCopy.stack/batch_param_transfer.pushbutton/— 프로젝트파라미터 전송Coco.panel/ParamCopy.stack/cross_type_param_copy.pushbutton/— 프로젝트간 복사
공유 파라미터 전송 메커니즘
SharedParameterElement수집- 바인딩 정보:
CategorySet,InstanceBinding/TypeBinding - Revit 버전 호환:
GetGroupTypeId()(신버전) +ParameterGroup(레거시) 양쪽 지원 WarningSwallower로 경고 자동 처리
프로젝트간 복사
FamilySymbol이름으로 소스↔타겟 자동 매칭- StorageType별 값 복사 (String/Integer/Double/ElementId)
- 선택적 인스턴스 Comments 전송도 가능
Ceiling Height 관리
천장 높이 공유 파라미터를 여러 문서에서 자동으로 업데이트
🖱 쓰는 법
- YoonDream 탭 → Coco 패널 → Ceiling Height 버튼 클릭
- 대상 문서들을 추가
- 실행 클릭 → 각 파일의
Ceiling Height_sche파라미터가 자동 갱신
💡 이럴 때 쓰세요
- 일람표와 모델 상의 천장 높이가 어긋나지 않도록 동기화할 때
- 천장 높이가 바뀌어 프로젝트 수십 개를 일괄 업데이트해야 할 때
- 천장 높이가 스케줄과 연결된 구조에서 일관성 유지가 필요할 때
🔍 UI 미리보기
Ceiling Height_sche (공유 파라미터) · 스케줄 연동용🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Coco.panel/mig_ceiling_height.pushbutton/
처리 대상
- 대상 파라미터:
Ceiling Height_sche(공유 파라미터) - 스케줄 연동 파라미터의 일관성 유지 목적
- 다중 문서 배치 처리
철골타입 임포터
공식 철골 패밀리의 타입을 우리 회사 커스텀 패밀리로 그대로 복제 + 파라미터 자동 복사
🖱 쓰는 법
- YoonDream 탭 → Coco 패널 → 철골타입 임포터 버튼 클릭
- 소스 패밀리 드롭다운에서 공식 패밀리 선택 (예: H_Beam_Official)
- 타겟 패밀리 드롭다운에서 커스텀 패밀리 선택 (예: H_Beam_Custom)
- 복제할 타입 체크 + 우측 입력란에 저장될 타입명 편집 가능
- 임포트 클릭 → 타겟 패밀리에 새 타입 생성 + 파라미터 자동 매칭 복사
💡 이럴 때 쓰세요
- 공식 철골 라이브러리(예: 한국/일본/미국 표준)에서 필요한 단면만 회사 패밀리로 가져올 때 — 파라미터 손으로 채울 필요 없음
- 두 패밀리가 이름은 다르지만 파라미터 구조가 비슷할 때 — 이름 기반 자동 매칭
- 수십 개 단면 일괄 임포트해야 할 때
이름이 일치하는 파라미터만 자동 복사됩니다
소스와 타겟 패밀리 양쪽에 같은 이름으로 파라미터가 정의되어 있어야 값이 넘어갑니다. 타입명(Type Name), 패밀리명(Family Name) 등 시스템 식별자는 자동 제외.
🔍 UI 미리보기
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Coco.panel/steeltypeimporter.pushbutton/— script.py, ui.xaml, bundle.yaml
워크플로우
- 소스 패밀리 선택 (공식 철골 패밀리)
- 타겟 패밀리 선택 (커스텀 패밀리)
- 소스에서 복제할 타입 체크박스 선택
FamilySymbol.Duplicate()→ 타겟 패밀리에 새 타입 생성copy_matching_params()— 이름 기반 파라미터 매칭 및 복사
스킵 파라미터
시스템 식별자 파라미터는 복사 제외:
- Type Name, Family Name, Type IfcGUID, Family Id
타입 이름 해석 (다중 폴백)
SYMBOL_NAME_PARAMALL_MODEL_TYPE_NAME.NETproperty- 기본
Nameproperty
패밀리 스왑
패밀리 A의 인스턴스들을 패밀리 B 타입으로 한꺼번에 교체 + 기존 인스턴스 파라미터 값 선택적 보존
🖱 쓰는 법
- YoonDream 탭 → Coco 패널 → 패밀리 스왑 버튼 클릭
- 소스 패밀리 드롭다운에서 교체할 현재 패밀리 선택
- 타겟 패밀리 드롭다운에서 교체할 새 패밀리 선택
- 자동으로 같은 카테고리만 표시됨
- 타입 1:1 매핑 — 소스의 타입마다 대응하는 타겟 타입을 ComboBox로 지정
- 보존할 인스턴스 파라미터 체크박스로 선택 (Mark, Comments, Base Offset 등)
- 교체 실행 클릭 → 단일 Transaction으로 전체 교체
💡 이럴 때 쓰세요
- 구버전 패밀리를 신버전으로 교체하면서 기존 인스턴스의 태그 · 주석 · 오프셋 값은 유지하고 싶을 때
- 다른 회사에서 받아온 패밀리를 사내 표준 패밀리로 치환할 때
- 같은 형태의 패밀리지만 이름만 바꿔야 할 때 — 수백 개 인스턴스 한 번에 이관
되돌리기는 Ctrl+Z 한 번
전체 교체가 단일 Transaction 으로 실행되므로 잘못됐을 때 Ctrl+Z 한 방으로 전체가 롤백됩니다. 안심하고 실행 가능.
파라미터 이름이 똑같아야 값이 넘어갑니다
소스 패밀리와 타겟 패밀리의 인스턴스 파라미터 이름이 같을 때만 값이 보존됩니다. 이름이 다르면 새 패밀리 기본값으로 시작.
🔍 UI 미리보기
🔧 개발자 정보 (API · 경로 · 내부 로직)
파일 위치
Coco.panel/familyswapper.pushbutton/— script.py, ui.xaml, bundle.yaml
핵심 동작
| 항목 | 동작 |
|---|---|
| 교체 범위 | 체크된 타입의 모든 인스턴스 (프로젝트 전체) |
| 파라미터 보존 | 체크 = 값 유지, 해제 = 새 패밀리 기본값 |
| 카테고리 필터 | 소스 선택 시 같은 카테고리만 타겟에 표시 |
| 되돌리기 | 단일 Transaction → Ctrl+Z 한 번으로 전체 롤백 |
파라미터 구분
FamilyInstance.Parameters는 타입 파라미터도 포함하므로, 내부적으로 FamilySymbol.Parameters에 있는 이름을 제외하여 인스턴스 전용 파라미터만 수집합니다. 사용자는 체크박스로 보존 여부를 선택합니다.
안전장치
- 스냅샷→교체→복원 3단계 방어 패턴 (ChangeTypeId 자동 보존 여부와 무관하게 확실히 복원)
WarningSwallower로 비치명적 경고 자동 처리- 실패한 인스턴스/파라미터는 리포트에 상세 기록