Dynamo
Primer for v2.0
한국어
한국어
  • 정보
  • 소개
    • Dynamo의 정의 및 작동 방식
    • Primer 사용자 안내서, Dynamo Community 및 플랫폼
  • Dynamo 설정
  • 사용자 인터페이스
    • 작업공간
    • 라이브러리
  • 노드 및 와이어
  • 필수 노드 및 개념
    • 노드의 색인
    • 계산 방식 설계를 위한 형상
      • 형상 개요
      • 벡터, 평면 및 좌표계
      • 점
      • 곡선
      • 표면
      • 솔리드
      • 메쉬
    • 프로그램의 빌딩 블록
      • 데이터
      • 수학
      • 논리
      • 문자열
      • 색상
    • 리스트로 설계
      • 리스트란 무엇입니까?
      • 리스트 작업
      • 리스트의 리스트
      • n차원 리스트
    • Dynamo의 사전
      • 사전이란
      • 사전 노드
      • 코드 블록의 사전
      • Revit 사용 사례
  • 사용자 노드 및 패키지
    • 사용자 노드
      • 사용자 노드 소개
      • 사용자 노드 작성
      • 라이브러리에 게시
    • 패키지
      • 패키지 소개
      • 패키지 성공 사례 - Mesh Toolkit
      • 패키지 개발
      • 패키지 게시하기
      • Zero-Touch 가져오기
  • Revit용 Dynamo
    • Revit 연결
    • 선택
    • 편집
    • 작성
    • 사용자화
    • 문서화
  • Dynamo for Civil 3D
    • Civil 3D 연결
    • 시작하기
    • 노드 라이브러리
    • 샘플 워크플로우
      • 도로
        • 등주 배치
      • 토지
        • 서비스 배치
      • 유틸리티
        • 구조물 이름 바꾸기
      • 레일
        • 클리어런스 엔벨로프
      • 측량
        • 점 그룹 관리
    • 고급 항목
      • 객체 바인딩
      • Python 및 Civil 3D
    • Dynamo 플레이어
    • 유용한 패키지
    • 리소스
  • Forma 베타의 Dynamo
    • Forma에서 Dynamo Player 설정
    • Dynamo Player에서 그래프 추가 및 공유
    • Dynamo Player에서 그래프 실행
    • Dynamo 컴퓨팅 서비스와 Desktop Dynamo의 차이점
  • Dynamo의 코딩
    • 코드 블록과 DesignScript
      • Code Block이란
      • DesignScript 구문
      • 축약형
      • 함수
    • DesignScript를 사용한 형상
      • DesignScript 형상 기본 사항
      • 기하학적 원형
      • 벡터 수학
      • 곡선: 보간 및 제어점
      • 전환, 회전 및 기타 변환
      • 표면: 보간, 제어점, 로프트, 회전
      • 기하학적 매개변수화
      • 교차 및 자르기
      • 기하학적 부울
      • Python 점 생성기
    • Python
      • Python 노드
      • Python 및 Revit
      • 자체 Python 템플릿 설정
    • 언어 변경 사항
  • 모범 사례
    • 그래프 전략
    • 스크립팅 전략
    • 스크립팅 참조
    • 프로그램 관리
    • Dynamo에서 대규모 데이터 세트로 효율적으로 작업
  • 샘플 워크플로우
    • 시작하기 워크플로우
      • 파라메트릭 꽃병
      • 어트랙터 점
    • 개념 색인
  • 개발자 입문서
    • 소스에서 Dynamo 빌드하기
      • 소스에서 DynamoRevit 빌드하기
      • Dynamo의 종속성 관리 및 업데이트
    • Dynamo를 위한 개발
      • 시작하기
      • Zero-Touch 사례 연구 - 그리드 노드
      • Zero-Touch 노드에서 Python 스크립트 실행하기(C#)
      • Zero-Touch로 한 단계 더 나아가기
      • 고급 Dynamo 노드 사용자 정의
      • Dynamo 패키지에서 COM(interop) 유형 사용
      • NodeModel 사례 연구 - 사용자 지정 UI
      • Dynamo 2.x용 패키지 및 Dynamo 라이브러리 업데이트하기
      • Dynamo 3.x용 패키지 및 Dynamo 라이브러리 업데이트하기
      • 확장
      • Dynamo 2.0+에 대한 사용자 패키지 구성 정의
      • Dynamo 명령행 인터페이스
      • Dynamo 통합
      • Dynamo For Revit을 위한 개발
      • 패키지 게시하기
      • Visual Studio에서 패키지 빌드하기
      • 패키지로 제공되는 확장
    • 끌어오기 요청
    • 테스트 기대치
    • 예제
  • 부록
    • 질문과 대답(FAQ)
    • 시각적 프로그래밍 및 Dynamo
    • 리소스
    • 릴리즈 정보
    • 유용한 패키지
    • 예제 파일
    • 호스트 통합 맵
    • PDF 다운로드
    • Dynamo 키보드 바로 가기
Powered by GitBook
On this page
  • 목표
  • 주요 개념
  • 버전 호환성
  • 데이터세트
  • 해결 방법
  • 구조물 선택
  • 구조물 위치 가져오기
  • 필터 및 정렬
  • 새 이름 생성
  • 구조물 이름 바꾸기
  • 결과
  • 보너스: Dynamo에서 시각화
  • 아이디어
Edit on GitHub
Export as PDF
  1. Dynamo for Civil 3D
  2. 샘플 워크플로우
  3. 유틸리티

구조물 이름 바꾸기

Previous유틸리티Next레일

Last updated 1 month ago

파이프 및 구조물을 관망에 추가할 때 Civil 3D는 템플릿을 사용하여 자동으로 이름을 지정합니다. 일반적으로 초기 배치 시에는 이 정도면 충분하지만 향후 설계가 진행됨에 따라 불가피하게 이름을 변경해야 할 수도 있습니다. 또한 가장 먼 다운스트림 구조물에서 시작하여 관로 내에서 순차적으로 구조물의 이름을 지정하거나 로컬 에이전시의 데이터 스키마에 맞는 이름 지정 패턴을 따르는 등 다양한 이름 지정 패턴이 필요할 수 있습니다. 이 예에서는 Dynamo를 사용하여 모든 유형의 이름 지정 전략을 정의하고 일관되게 적용하는 방법을 보여 줍니다.

목표

주요 개념

  • 경계 상자 작업

  • List.FilterByBoolMask 노드를 사용하여 데이터 필터링

  • List.SortByKey 노드를 사용하여 데이터 정렬

  • 문자열 생성 및 수정

버전 호환성

이 그래프는 Civil 3D 2020 이상 버전에서 실행됩니다.

데이터세트

먼저 아래의 샘플 파일을 다운로드한 다음 DWG 파일과 Dynamo 그래프를 엽니다.

해결 방법

이 그래프의 논리에 대한 개요는 다음과 같습니다.

  1. 도면층별 구조물 선택

  2. 구조물 위치 가져오기

  3. 간격띄우기를 기준으로 구조물을 필터링한 다음 측점을 기준으로 정렬

  4. 새 이름 생성

  5. 구조물 이름 바꾸기

그럼 시작하겠습니다!

구조물 선택

가장 먼저 해야 할 일은 작업할 모든 구조물을 선택하는 것입니다. 특정 도면층에서 모든 객체를 선택하기만 하면 되므로, 다른 관망에서 구조물을 선택할 수 있습니다(동일한 도면층을 공유한다고 가정할 때).

  1. 이 노드를 사용하면 구조물과 동일한 도면층을 공유할 수 있는, 원하지 않는 객체 유형을 실수로 검색하지 않을 수 있습니다.

구조물 위치 가져오기

이제 구조물이 준비되었으므로 공간에서 구조물의 위치를 파악하여 위치에 따라 구조물을 정렬해야 합니다. 이를 위해 각 객체의 경계 상자를 활용하겠습니다. 객체의 경계 상자 는 객체의 기하학적 범위를 완전히 포함하는 최소 크기의 상자입니다. 경계 상자의 중심을 계산하면 구조물 삽입점에 대한 근사치를 꽤 정확하게 구할 수 있습니다.

이러한 점을 사용하여 선택한 선형을 기준으로 구조물의 측점 및 간격띄우기를 구할 것입니다.

필터 및 정렬

여기서부터 작업이 조금 까다로워지기 시작합니다. 이 단계에서는 도면층에 지정한 모든 구조물의 큰 리스트가 있고 이를 정렬할 선형을 선택했습니다. 문제는 리스트에 이름을 바꾸고 싶지 않은 구조물이 있을 수 있다는 것입니다. 예를 들어, 그러한 구조물은 관심 있는 특정 실행의 일부가 아닐 수 있습니다.

  1. 선택한 선형

  2. 이름을 바꾸려는 구조물

  3. 무시해야 하는 구조물

따라서 선형에서 특정 간격띄우기보다 큰 구조물은 고려하지 않도록 구조물 리스트를 필터링해야 합니다. 이 작업은 List.FilterByBoolMask 노드를 사용하여 수행하는 것이 가장 좋습니다. 구조물 리스트를 필터링한 후 List.SortByKey 노드를 사용하여 측점 값을 기준으로 구조물을 정렬합니다.

리스트 작업을 처음 해보는 경우 리스트 작업 섹션을 참조하십시오.

  1. 구조물의 간격띄우기가 임계값보다 작은지 확인

  2. Null 값을 false 로 대치

  3. 구조물 및 측점 리스트 필터링

  4. 측점별로 구조물 정렬

새 이름 생성

마지막으로 해야 할 작업은 구조물의 이름을 새로 생성하는 것입니다. 사용할 형식은 <alignment name>-STRC-<number> 입니다. 원하는 경우 숫자를 0으로 채울 수 있는 몇 가지 추가 노드가 있습니다(예: "1" 대신 "01").

구조물 이름 바꾸기

마지막으로, 구조물 이름을 바꾸겠습니다.

결과

다음은 Dynamo 플레이어 를 사용하여 그래프를 실행하는 예입니다.

Dynamo 플레이어를 처음 사용하는 경우 Dynamo 플레이어 섹션을 참조하십시오.

보너스: Dynamo에서 시각화

최종 결과 대신 그래프의 중간 출력을 시각화하기 위해 Dynamo의 3D 배경 미리보기를 활용하는 것이 도움이 될 수 있습니다. 한 가지 쉬운 방법은 구조물의 경계 상자를 보여주는 것입니다. 또한 이 특정 데이터세트에는 문서에 코리더가 있으므로 코리더 형상선 형상을 Dynamo로 가져와서 구조물이 공간에서 어디에 위치하는지에 대한 컨텍스트를 제공할 수 있습니다. 코리더가 없는 데이터세트에서 그래프를 사용하는 경우 이러한 노드는 아무 작업도 수행하지 않습니다.

이제 간격띄우기를 기준으로 구조를 필터링하는 프로세스가 작동하는 방식을 더 잘 이해할 수 있습니다.

아이디어

다음은 이 그래프의 기능을 확장하는 방법에 대한 몇 가지 아이디어입니다.

특정 선형을 선택하는 대신 가장 가까운 선형 을 기준으로 구조물의 이름을 바꿉니다.

구조물 외에 파이프의 이름을 바꿉니다.

해당 실행을 기준으로 구조물의 도면층을 설정 합니다.

선형의 측점 표시를 기반으로 관망 구조물의 이름을 순서대로 바꿉니다.

작업을 완료했습니다!

🎯
🎉
139KB
Utilities_RenameStructures.dyn
6MB
Utilities_RenameStructures.dwg
지정된 도면층에서 구조물 선택
경계 상자를 사용하여 각 구조물의 대략적인 삽입점 가져오기
구조 필터링 및 정렬
새 구조물 이름 생성
구조물의 이름 설정
Dynamo 플레이어를 사용하여 그래프를 실행하고 Civil 3D에서 결과 확인
구조물 및 코리더 형상선에 대한 형상 시각화
Dynamo에서 선형 간격띄우기 임계값을 조정하고 영향을 받는 구조물 시각화