Three.js: threejs용 IFC μž„ν¬ν„°

에 λ§Œλ“  2016λ…„ 09μ›” 24일  Β·  62μ½”λ©˜νŠΈ  Β·  좜처: mrdoob/three.js

threejs용 ifc 2x3 importerλ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 맀우 μ‹€ν—˜μ μ΄μ§€λ§Œ λŒ€λΆ€λΆ„μ˜ κ°œμ²΄κ°€ λ Œλ”λ§λ©λ‹ˆλ‹€.

이것이 λ°°ν¬νŒμ— 포함될 수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚΄ 희망은 λˆ„κ΅°κ°€κ°€ 더 κ°œλ°œν•˜κ³  κ²°κ΅­ ifc4에 λŒ€ν•œ 지원을 μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

κ°€μ Έμ˜¨ ifc의 예:
ifc-imported

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

PR에 νˆ¬ν‘œν•©λ‹ˆλ‹€πŸ˜Š . THREE.IFCLoader λŠ” 큰 κΈ°μ—¬κ°€ 될 κ²ƒμž…λ‹ˆλ‹€!

λͺ¨λ“  62 λŒ“κΈ€

ThreeCSG에 μ˜μ‘΄ν•œλ‹€λŠ” 것을 μžŠμ—ˆμŠ΅λ‹ˆλ‹€.

이 ν˜•μ‹μ— λŒ€ν•΄ λ“€μ–΄λ³Έ 적이 μ—†μŠ΅λ‹ˆλ‹€. 일반적으둜 어디에 μ‚¬μš©λ©λ‹ˆκΉŒ?

μ œκ°€ μ•ŒκΈ°λ‘œλŠ” 주둜 건섀업, λΉŒλ”© λͺ¨λΈλ§μ— μ‚¬μš©λ©λ‹ˆλ‹€. λͺ‡ 가지λ₯Ό μ–ΈκΈ‰ν•˜μžλ©΄ Autocad, Revit, Tekla 및 Solibriμ—μ„œ μ§€μ›λ©λ‹ˆλ‹€.

μ•Œμ•˜μ–΄, μ•Œμ•˜μ–΄!
ThreeCSGκ°€ ν•„μš”ν•œ μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

예λ₯Ό λ“€μ–΄; Wall 객체(threejs의 돌좜된 λͺ¨μ–‘)μ—λŠ” κ°œκ΅¬λΆ€κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 μ œκ°€ 찾은 κ°€μž₯ μ‰¬μš΄ 해결책은 ThreeCSGλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. IfcBooleanResult와 같은 λ‹€λ₯Έ κ²½μš°μ—λ„ μ‚¬μš©λ©λ‹ˆλ‹€.

IfcOpeningElement 사양에 λŒ€ν•œ 링크:
http://www.buildingsmart-tech.org/ifc/IFC2x3/TC1/html/ifcproductextension/lexical/ifcopeningelement.htm

μ—μ„œ μ°Έμ‘°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
http://www.ifcquery.com

@mrdoob , IFCλŠ” Industry Foundation Classes의 μ•½μžμ΄λ©° BIM(λΉŒλ”© 정보 λͺ¨λΈ/관리) ν”„λ‘œμ νŠΈμ˜ ν‘œμ€€ κ΅ν™˜ ν˜•μ‹μž…λ‹ˆλ‹€. 일반적으둜 이와 κ΄€λ ¨λœ μ†Œν”„νŠΈμ›¨μ–΄ νŒ¨ν‚€μ§€λŠ” Revit , ArchiCAD , VisualARQ 및 기타 λͺ‡ κ°€μ§€μž…λ‹ˆλ‹€. μΌλ°˜ν™”ν•˜λŠ” λ™μ•ˆ BIM μ†Œν”„νŠΈμ›¨μ–΄λŠ” μž‘μ—…μžκ°€ 객체에 λŒ€ν•œ λ§€κ°œλ³€μˆ˜λ₯Ό μ •μ˜ν•˜λŠ” νŒ¨λ°€λ¦¬/μŠ€νƒ€μΌ μ •μ˜μ— μ˜ν•΄ κ΅¬λ™λ˜λŠ” λ²½, 슬래브, 지뢕, 계단, μ°½ λ“±κ³Ό 같은 ν‘œμ€€ 객체 μœ ν˜•μ„ μ œκ³΅ν•©λ‹ˆλ‹€. λ”°λΌμ„œ CMU, μ„κ³ λ³΄λ“œ 및 타일 λ ˆμ΄μ–΄κ°€ μžˆλŠ” 벽이 μžˆλŠ” 경우 λͺ¨λ“  λ ˆμ΄μ–΄μ˜ λ‘κ»˜λ₯Ό μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ λ­”κ°€λ₯Ό λ³€κ²½ν•˜κ³  νŒ¨λ°€λ¦¬/μŠ€νƒ€μΌ μ •μ˜λ₯Ό λ³€κ²½ν•˜λ©΄ λͺ¨λ“  것이 μžλ™μœΌλ‘œ μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€! ν˜„μ‹€μ€ κ·Έλ ‡κ²Œ λ§ˆμˆ μ μ΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€! 각 μ†Œν”„νŠΈμ›¨μ–΄ κ³΅κΈ‰μ—…μ²΄λŠ” μˆ˜μž…/수좜 http://buildingsmart.org/compliance/certified-software/ μ—μ„œ 벽이 무엇을 ꡬ성할 수 μžˆλŠ”μ§€μ— λŒ€ν•œ μ •μ˜λ₯Ό 자유둭게 가지고 놀 수 있기 λ•Œλ¬Έμ— λ…ΌμŸμ˜ 여지가 μžˆλŠ” ν˜•μ‹
μ§€μ›ν•˜κΈ°μ— 쒋은 ν˜•μ‹μ΄λ©° μ„€μ •ν•΄ μ£Όμ‹  @kdilayer μ—κ²Œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. @johnney88 κ·Έ λ·°μ–΄κ°€ threejsλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

예, The ViewerλŠ” Threejsλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
μ €μž₯된 파일 'ifcquery.min.js'λŠ” Three.jsμ—μ„œ μž‘μ„±ν–ˆμ§€λ§Œ μΈμ½”λ”©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

ConSciμ—μ„œ ifcκ°€ μ‚¬μš©λ˜λŠ” 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. μ‹€μ œλ‘œ ifc λ³€ν™˜κΈ° 앱을 μ‚¬μš©ν•˜μ—¬ νšŒμ‚¬ νŒŒμΌμ„ .mtl 파일이 μžˆλŠ” .objs둜 λ³€ν™˜ν–ˆλŠ”λ° 정말 잘 μ½νž™λ‹ˆλ‹€. 고객이 μ–΄μ¨Œλ“  ifc νŒŒμΌμ„ μ—…λ‘œλ“œν•˜λŠ” κ²½ν–₯이 있기 λ•Œλ¬Έμ— 쀑간 μ‚¬λžŒμ„ λΉΌλ©΄ 정말 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

@rhairston ifc λ³€ν™˜κΈ° μ•±μΈκ°€μš”? ifc νŒŒμΌμ„ obj 파일둜 λ³€ν™˜ν•˜μ—¬ Threejsκ°€ 잘 λ‘œλ“œν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.
λ‚΄ 말이 λ§žμ•„?

μ—¬κΈ° ifc λ³€ν™˜κΈ° 앱이 μžˆμŠ΅λ‹ˆκΉŒ?

μ°Έμ—¬ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

@kdilayer PR은 ν›Œλ₯­ν•  κ²ƒμž…λ‹ˆλ‹€. ThreeCSG도 λ„£μ–΄μ£Όμ„Έμš” 😊

여기에 진전이 μžˆμŠ΅λ‹ˆκΉŒ? μš°λ¦¬λŠ” ν˜„μž¬ three.js와 ν•¨κ»˜ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ IFCλ₯Ό DAE둜 λ³€ν™˜ν•˜κ³  있으며 three.jsκ°€ IFCλ₯Ό 직접 μ§€μ›ν•œλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” kdilayerλ‹˜,

λ‚˜λŠ” 그것을보고 더 λ‚˜μ•„κ°€λŠ” 것에 맀우 관심이 μžˆμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,

λ‚˜λ„ λ΄€λ‹€ https://www.npmjs.com/package/ifc-convert
이λ₯Ό 톡해 IFCλ₯Ό DAE, OBJ, STP 및 IGS둜 λ³€ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@kdilayer μ–΄λ–€ 진전이 μžˆμŠ΅λ‹ˆκΉŒ?

@kdilayer 여기에 μ–΄λ–€ 진전이 μžˆμŠ΅λ‹ˆκΉŒ? three.jsκ°€ IFC ν˜•μ‹μ„ 직접 지원할 수 μžˆλ‹€λ©΄ λ§Žμ€ 것을 μ ˆμ•½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

아무도 μ†Œμ‹μ΄ μ—†μŠ΅λ‹ˆκΉŒ?

ifc νŒŒμΌμ„ μ§€μ›ν•˜λ„λ‘ νŽΈμ§‘κΈ°λ₯Ό μ‘°μ •ν–ˆμŠ΅λ‹ˆλ‹€.
μŠ€ν¬λ¦°μƒ· λͺ‡ μž₯을 μ²¨λΆ€ν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” κ½€ μ˜€λž«λ™μ•ˆ 이 μž‘μ—…μ„ ν•΄μ™”μŠ΅λ‹ˆλ‹€... ν˜„μž¬ λ Œλ”λ§ν•  수 μ—†λŠ” IFC 2x3 νŒŒμΌμ„ λ³Έ 적이 μ—†μŠ΅λ‹ˆλ‹€... λ‚΄κ°€ μ‹œλ„ν•œ κ°€μž₯ 큰 νŒŒμΌμ€ 180MBμž…λ‹ˆλ‹€...
μ—„μ²­λ‚œ.
screen shot 2017-11-15 at 19 19 31
screen shot 2017-11-15 at 19 19 20
screen shot 2017-11-15 at 19 19 08
screen shot 2017-11-15 at 19 18 45

이봐, 멋진 μž‘ν’ˆ!
λ§ˆμŠ€ν„° λΈŒλžœμΉ˜μ—μ„œ 직접 μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ IFC 지원을 μœ„ν•΄ μ‘°μ •λœ μ½”λ“œκ°€ λ‹€λ₯Έ 곳에 μžˆμŠ΅λ‹ˆκΉŒ?

예! ꡉμž₯ν•΄! 이 λ‘œλ” μ½”λ“œμ— μ–΄λ–»κ²Œ μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? :μ˜ν˜•

PR에 νˆ¬ν‘œν•©λ‹ˆλ‹€πŸ˜Š . THREE.IFCLoader λŠ” 큰 κΈ°μ—¬κ°€ 될 κ²ƒμž…λ‹ˆλ‹€!

μš°λ¦¬λŠ” 이 κΈ°λŠ₯도 μ’‹μ•„ν•  κ²ƒμž…λ‹ˆλ‹€. μ§€κΈˆμ€ https://github.com/IfcOpenShell/IfcOpenShell 을 μ‚¬μš©ν•˜μ—¬ IFC νŒŒμΌμ„ obj둜 λ³€ν™˜ν•˜κ³  μžˆμ§€λ§Œ 일뢀 더 λ³΅μž‘ν•œ κΈ°ν•˜ λ„ν˜•μ€ μ—¬μ „νžˆ ​​ꡬ문 λΆ„μ„λ˜μ§€ μ•ŠμœΌλ―€λ‘œ λ•Œλ‘œλŠ” κ°œμ²΄κ°€ 100이 μ•„λ‹Œ 100이 μ•„λ‹™λ‹ˆλ‹€. % μ™„λ²½ν•œ.

μ•ˆλ…•ν•˜μ„Έμš”, λ·°μ–΄ 및 λ‘œλ”μ—μ„œ 창을 λ‘œλ“œν•˜λŠ” λ¬Έ 및 투λͺ… 필름과 같은 λ³΅μž‘ν•œ ν•­λͺ©μ„ 얻을 수 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. μ§€κΈˆκΉŒμ§€ ꡉμž₯ν•΄ 보인닀! κ°€κΉŒμš΄ μž₯λž˜μ— 이 버전을 내놓을 κ³„νšμ΄ μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

ν–‰μš΄μ„ λΉ•λ‹ˆλ‹€! μ—…λ°μ΄νŠΈν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

@kdilayer λ‹˜ μ•ˆλ…•ν•˜μ„Έμš”, κ·€ν•˜μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

.ifc와 three.js ν˜•μ‹ κ°„μ˜ 파일 크기 차이λ₯Ό 보고 μ‹ΆμŠ΅λ‹ˆλ‹€.

감사 ν•΄μš”!

@Foosballfan IFCλŠ” 맀우 μž₯ν™©ν•˜κΈ° λ•Œλ¬Έμ— 크기에 λŒ€ν•΄ ν₯미둜운 ν˜•μ‹μ΄ μ•„λ‹ˆλΌκ³  μƒκ°ν•©λ‹ˆλ‹€. AutoDesk와 같은 μ•„ν‚€ν…μ²˜ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μœ„ν•œ κ΅ν™˜ ν˜•μ‹μΌ λΏμž…λ‹ˆλ‹€.
BIM의 ν‘œμ€€μž…λ‹ˆλ‹€. (이런 μ’…λ₯˜μ˜ μ§μ—…μ—μ„œ 유λͺ…ν•œ 이 μš©μ–΄λ₯Ό Google에 μš”μ²­)

@jean-noelp λ‹΅λ³€ κ°μ‚¬ν•©λ‹ˆλ‹€.

34MB의 건물에 λŒ€ν•œ ifc 파일이 있고 이 데이터λ₯Ό κ°€λŠ₯ν•œ κ°€μž₯ μž‘μ€ λ‹€μš΄λ‘œλ“œ 크기둜 웹에 ν‘œμ‹œν•˜λ €κ³  ν•©λ‹ˆλ‹€.

Unity WebGL을 μ‚¬μš©ν•˜λ©΄ μ•½ 11MB둜 쀄일 수 μžˆμ§€λ§Œ Three.jsλ₯Ό μ‚¬μš©ν•˜μ—¬ 보닀 μˆœμˆ˜ν•œ WebGL둜 κ°€λŠ₯ν•œμ§€ μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 더 μž‘μ€ λ‹€μš΄λ‘œλ“œ 크기λ₯Ό 얻을 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

λΉ„μŠ·ν•œ 상황에 λŒ€ν•œ κ²½ν—˜μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

@Foosballfan 파일 크기λ₯Ό μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ μ‹œλ„ν•  λ‹¨κ³„λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  1. OBJ둜 λ³€ν™˜
  2. obj-simplifyλ₯Ό 톡해 μ‹€ν–‰
  3. Draco둜 OBJ μ••μΆ•
  4. THREE.DRACOLoader둜 λ‘œλ“œ

νŒŒμΌμ„ OBJ λ˜λŠ” λ‹€λ₯Έ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•  수 μ—†λŠ” 경우 λͺ¨λΈμ„ λ‹¨μˆœν™”ν•˜κ±°λ‚˜ gzip을 μ‚¬μš©ν•˜λŠ” 것 μ™Έμ—λŠ” ν•  수 μžˆλŠ” 일이 λ§Žμ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. "3.jsλ₯Ό μ‚¬μš©ν•˜λŠ” μˆœμˆ˜ν•œ WebGL"은 νŒŒμΌμ„ λ Œλ”λ§ν•˜λŠ” λ°©λ²•μ΄μ§€λ§Œ νŒŒμΌμ„ λ¨Όμ € λ‘œλ“œν•˜λ €λ©΄ μ—¬μ „νžˆ μ–΄λ–€ ν˜•μ‹μ΄λ‚˜ λ‹€λ₯Έ ν˜•μ‹μ„ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

@donmccurdy λ©‹μ§€λ„€μš” κ°μ‚¬ν•©λ‹ˆλ‹€!

해보고 μ–΄λ–»κ²Œ λ˜λŠ”μ§€ λ΄μ•Όκ² μŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ λ§Œλ“  것이 34MB νŒŒμΌμ—μ„œ 220MB이기 λ•Œλ¬Έμ— μ›λž˜ objλ₯Ό ν¬κΈ°ν–ˆμŠ΅λ‹ˆλ‹€.

@kdilayer 이후 문제λ₯Ό λ‹«λŠ” 것은 λΆ„λͺ…νžˆ 그의 κ΅¬ν˜„μ„ κ³΅μœ ν•  μ˜μ‚¬κ°€ μ—†μŠ΅λ‹ˆλ‹€. #5524의 λ‘œλ” μœ„μ‹œλ¦¬μŠ€νŠΈμ— IFCLoader 을 μž‘μ—…μœΌλ‘œ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

IFCLoader κ°€ μ—†λŠ” ν•œ IFC νŒŒμΌμ„ OBJ 와 같은 λ‹€λ₯Έ ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•΄ λ³΄μ‹­μ‹œμ˜€. λ‹€μŒ 도ꡬ가 이 λ³€ν™˜μ„ μˆ˜ν–‰ν•  수 μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. http://ifcopenshell.org/ifcobj.html

https://github.com/IfcOpenShell/IfcOpenShell 도 μ°Έμ‘°

@Foosballfan : IFCλŠ” μ§€μ˜€λ©”νŠΈλ¦¬λ₯Ό μ••μΆ•ν•˜λŠ” κ°€μž₯ 효율적인 λ°©λ²•μž…λ‹ˆλ‹€. λ¬Έμ œλŠ” λ Œλ”λ§μ— ν•„μš”ν•œ 절차적 μ ‘κ·Ό 방식이 μ‚Όκ°ν˜•κ³Ό μ‹€μ œλ‘œ ν˜Έν™˜λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 34MB IFCλŠ” 4GB의 μ‚Όκ°ν˜• 슀트림으둜 μ‰½κ²Œ μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. IFCλŠ” 정점이 4개인 μ—˜λ³΄μš° νŒŒμ΄ν”„λ₯Ό μ„€λͺ…ν•˜μ§€λ§Œ λ Œλ”λ§ν•˜λŠ” 데 수백 개의 μ‚Όκ°ν˜•μ΄ ν•„μš”ν•©λ‹ˆλ‹€. OP의 λ Œλ”λ§μ„ ν•œ 번 보면 μˆŸκ°€λ½μ΄ μ—†λ‹€λŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. λ¬Όλ‘ , κ·ΈλŠ” 직선과 ν•œ μΆ•μ˜ ν† λ‘œμ΄λ“œ λͺ¨μ–‘을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ IFC μ‚¬μ–‘μ—λŠ” 두 개의 베지어 μŠ€ν”ŒλΌμΈμœΌλ‘œ μŠ€μœ•λœ ν‘œλ©΄μ˜ μ •μ˜κ°€ ν¬ν•¨λ©λ‹ˆλ‹€. λ”°λΌμ„œ μ‹€μ œλ‘œ λ¬΄ν•œν•œ μ‚Όκ°ν˜• 집합을 μ •μ˜ν•˜λŠ” 8개의 3D κΌ­μ§“μ μž…λ‹ˆλ‹€. κ±΄μΆ•κ°€λŠ” 이 도ꡬλ₯Ό μ’‹μ•„ν•˜μ§€λ§Œ 곡식이 f(x) = y 접근을 ν—ˆμš©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μ»΄ν“¨ν„°μ—μ„œ 2D ν‘œν˜„μ„ λ Œλ”λ§ν•˜λŠ” 것쑰차 λ¬Έμ œκ°€ λ©λ‹ˆλ‹€.
μ—¬κΈ°μ—μ„œ 곡식 IFC 사양을 μ‚΄νŽ΄λ³΄μ‹­μ‹œμ˜€. http://www.buildingsmart-tech.org/ifc/IFC4/final/html/schema/ifcgeometryresource/lexical/ifcbsplinesurface.htm

@kdilayer 아직도 githubμ—μ„œ ν™œλ™ν•˜μ‹œλ‚˜μš”? κ΅¬ν˜„μ„ κ³΅μœ ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ? :ok_hand: κ°μ‚¬ν•©λ‹ˆλ‹€!

λ‚΄κ°€ κ²°μ •ν•œ μ ‘κ·Ό 방식은 BimServerλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°”μ΄λ„ˆλ¦¬ IFC 데이터λ₯Ό μŠ€νŠΈλ¦¬λ°ν•œ λ‹€μŒ ThreeJSμ—μ„œ κ΅¬μ„±ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. μ›Ή μ†ŒμΌ“μ„ ν†΅ν•œ λ‹€μš΄λ‘œλ“œ ν¬κΈ°λŠ” 만쑱슀럽고 Threeμ—μ„œ λͺ¨λΈμ„ μ™„μ „νžˆ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

BimViewerκ°€ μ‹œμž‘μ μœΌλ‘œ μž‘λ™ν•˜λŠ” 방식을 μ‚΄νŽ΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

μ–΄λ–€ λŒ€λ‹΅?

@Joao-b4 μ–΄λ•Œμš”?

κ°€λŠ₯ν•œ IFC λ‘œλ”μ— λŒ€ν•΄

μ•„, @kdilayer의 λͺ«μΈκ°€ λ΄…λ‹ˆλ‹€...

@kdilayer λŠ” 좜판된 지 3년이 없을 것이라고 λ―ΏμŠ΅λ‹ˆλ‹€.
λ‘œλ” 생성이 μž‘λ™ν•˜λŠ” 방식을 μ΄ν•΄ν•˜μ§€ λͺ»ν•˜κ³  λΌμ΄λΈŒλŸ¬λ¦¬μ— μ•½κ°„μ˜ 지식이 μžˆμŠ΅λ‹ˆλ‹€. 쑰금 전에 μž‘μ—…ν–ˆμŠ΅λ‹ˆλ‹€. λ‘œλ”λ₯Ό 생성할 수 μžˆλŠ” 링크가 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. μΆ©λΆ„ν•œ μ„±ν–₯κ³Ό 지식을 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. 미래.

μ—¬κΈ° 에 THREE.IFCLoader 의 κΈ°λ³Έ μŠ€μΊν΄λ“œλ₯Ό μ„€λͺ… ν–ˆμŠ΅λ‹ˆλ‹€ . λ‘œλ”λ₯Ό μž‘μ„±ν•  λ•Œ κ°€μž₯ μ–΄λ €μš΄ 뢀뢄은 ν•΄λ‹Ή 3D ν˜•μ‹μ„ μ‹€μ œλ‘œ μ΄ν•΄ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κ·Έλž˜μ•Όλ§Œ ν˜•μ‹μ„ ꡬ문 λΆ„μ„ν•˜κ³  μ§€μ˜€λ©”νŠΈλ¦¬ 및/λ˜λŠ” 재료 데이터λ₯Ό three.js μ—”ν‹°ν‹°(예: THREE.BufferGeometry )둜 λ³€ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ΄ν•΄ν•˜λ €λ©΄ THREE.PLYLoader 와 같은 λ‹€μ†Œ κ°„λ‹¨ν•œ λ‘œλ”λ₯Ό κ³΅λΆ€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. λ¬Όλ‘  IFC ν‘œμ€€(https://www.iso.org/standard/51622.html)

κ°μ‚¬ν•©λ‹ˆλ‹€, ifc λ‘œλ”κ°€ 정말 μœ μš©ν•  것이고 μ§€κΈˆ λ‹Ήμž₯ ν•„μš”ν•©λ‹ˆλ‹€. μœ„μ—μ„œ μ–ΈκΈ‰ν•œ 것을 μ‚¬μš©ν•˜μ—¬ OBJ둜 λ³€ν™˜ν•˜κ³  μžˆμ§€λ§Œ 이것이 μ΅œμ„ μ˜ 방법은 μ•„λ‹ˆλΌκ³  μƒκ°ν•©λ‹ˆλ‹€

이것은 1.5λ…„ μ „μ˜ μΌμ΄λ―€λ‘œ λ‚΄ 기얡이 λ…ΉμŠ¬μ—ˆμ§€λ§Œ 우리 μ†”λ£¨μ…˜μ€ bim μ„œλ²„λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλ²„μ—μ„œ μ§€μ˜€λ©”νŠΈλ¦¬λ₯Ό μ „λ‹¬ν•œ λ‹€μŒ ν”„λŸ°νŠΈ μ—”λ“œμ—μ„œ Threeλ₯Ό μ‚¬μš©ν•˜μ—¬ λ Œλ”λ§μ„ μ²˜λ¦¬ν•˜λŠ” 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

μ•½κ°„μ˜ ν˜Όλž€μ΄ μžˆμ—ˆμ§€λ§Œ κ²°κ΅­ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

IfcConvert λŠ” Node.js용 IfcConverterμž…λ‹ˆλ‹€. .ifcμ—μ„œ .dae, .obj, .stp 및 .igs둜 λ³€ν™˜λ©λ‹ˆλ‹€. 아직 μ‹œλ„ν•˜μ§€λŠ” μ•Šμ•˜μ§€λ§Œ μ„€λͺ…λœ λŒ€λ‘œ μž‘λ™ν•œλ‹€λ©΄ Three.js에 .ifc λ‘œλ”κ°€ 더 이상 ν•„μš”ν•˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. λ§žμŠ΅λ‹ˆκΉŒ?
.ifcμ—λŠ” 3D λͺ¨λΈλ³΄λ‹€ 훨씬 λ§Žμ€ 정보가 ν¬ν•¨λ˜μ–΄ μžˆμ§€λ§Œ Three.js에 κ΄€ν•œ ν•œ 3D λͺ¨λΈλ§Œ 가져와야 ν•©λ‹ˆλ‹€.
μˆ˜μΆœμ—…μžμ˜ 경우 μ‹€μ œ 내보낸 3D λͺ¨λΈκ³Ό ν•¨κ»˜ μžμ‹ μ˜ BIM 라이브러리λ₯Ό .ifc 파일둜 내보낼 수 있기 λ•Œλ¬Έμ— λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
말이 λ©λ‹ˆκΉŒ?

λ³„λ„μ˜ λ³€ν™˜ 도ꡬ 없이 IFC λ₯Ό λΈŒλΌμš°μ €μ— 직접 λ‘œλ“œν•˜λŠ” 것은 μ—¬μ „νžˆ ​​ν₯미둜울 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ–ΈκΈ‰λœ node.js λ„κ΅¬λŠ” IfcOpenShell을 λ‘˜λŸ¬μ‹Ό 래퍼일

IfcConverterλ₯Ό ν†΅ν•œ κ°€μ Έμ˜€κΈ° μ›Œν¬ν”Œλ‘œκ°€ 쒋을 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€!

λ°˜λŒ€λ‘œ, Ifc λ‚΄λ³΄λ‚΄κΈ°λŠ” λ‚˜μ—κ²Œ μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€. Three.js둜 Ifc νŽΈμ§‘κΈ°λ₯Ό λΉŒλ“œν•˜μ§€ μ•ŠλŠ” ν•œ λžŒλ‹€ Three.js λ·°μ–΄μ—μ„œ λͺ¨λ“  κ΄€λ ¨ ifc 데이터(건좕 ꡬ성 μš”μ†Œ, BIM 이해 κ΄€κ³„μž...)λ₯Ό μžƒμ–΄λ²„λ¦¬κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. .

@Mugen87 κΈ€μŽ„μš”, μ œκ°€ μ•„λŠ” λ°”λ‘œλŠ” IfcOpenShell은 온라인 CLI 도ꡬ인 Node νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€.

@jean-noelp λ§žμŠ΅λ‹ˆλ‹€. "λ§ˆμŠ€ν„° .ifc 파일"을 λ‚΄λ³΄λ‚΄λŠ” 것이 μ•„λ‹ˆλΌ "라이브러리 .ifc 파일" BIM 이해 κ΄€κ³„μžκ°€ μžμ‹ μ˜ "λ§ˆμŠ€ν„° .ifc 파일"μ—μ„œ κ°€μ Έμ˜¬ 수 μžˆμŒμ„ μ˜λ―Έν–ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μ°¨κ³  λ¬Έ μ œμ‘°μ—…μ²΄μΈ 경우 Three.jsλ₯Ό μ‚¬μš©ν•˜μ—¬ ν΄λΌμ΄μ–ΈνŠΈ(예: 건좕가)λ₯Ό μœ„ν•œ μ„€μΉ˜λ₯Ό κ³„νšν•˜κ³  BIM 개체(일반적으둜 μ°¨κ³  λ¬Έ)κ°€ ν¬ν•¨λœ BIM 라이브러리λ₯Ό λ‚΄λ³΄λƒ…λ‹ˆλ‹€. 무슨 말인지 μ•Œκ² μ–΄? κ·ΈλŸ¬λ‚˜ μ–΄μ¨Œλ“  각각의 νŠΉμ • μ‚¬μš© 사둀가 λ„ˆλ¬΄ ꡬ체적이기 λ•Œλ¬Έμ— 이 내보내기 도ꡬλ₯Ό Three.js에 ꡬ좕할 방법은 μ—†μŠ΅λ‹ˆλ‹€.

도ꡬλ₯Ό μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. IFCλ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
그것은 λ¬΄λ£Œκ°€ μ•„λ‹™λ‹ˆλ‹€ ,
κ·ΈλŸ¬λ‚˜ IFC ꡬ쑰λ₯Ό νŒŒμ‹±ν•˜λŠ” 것은 무료이며 μ˜€ν”ˆ μ†ŒμŠ€μž…λ‹ˆλ‹€.
http://www.apstex.com/

μ•ˆλ…•ν•˜μ„Έμš” @kdilayerλ‹˜ μ†Œμ‹μ΄ μ—†μœΌμ‹œμ£  ? κ·ΈλŠ” μ†ŒμŠ€ μ½”λ“œλ₯Ό κ³΅κ°œν•˜μ§€ μ•Šμ•˜λ‹€?

?

------------------ 원본 λ©”μ‹œμ§€ ------------------
보낸 μ‚¬λžŒ: "Daniel Ramos"< [email protected]>;
배솑 μ‹œκ°„: 2020λ…„ 5μ›” 28일(λͺ©) μ˜€ν›„ 10μ‹œ 08λΆ„
λ°›λŠ” μ‚¬λžŒ: "mrdoob/three.js"[email protected]>;
μ°Έμ‘°: "λ¬Όκ³ κΈ° 그물을 λ‚¨κ²¨μ£Όμ„Έμš” "< [email protected]>;
제λͺ©: Re: [mrdoob/three.js] threejs용 IFC κ°€μ Έμ˜€κΈ°(#9764)

μ•ˆλ…•ν•˜μ„Έμš” @kdilayerλ‹˜ μ†Œμ‹μ€ μ—†λ‚˜μš”?? μ†ŒμŠ€μ½”λ“œ 곡개

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ λ³΄κ±°λ‚˜ ꡬ독을 μ·¨μ†Œν•˜μ„Έμš”.

이것에 λŒ€ν•œ μ†Œμ‹μ΄ μžˆμŠ΅λ‹ˆκΉŒ?

μ•Ό! λ©°μΉ  μ „ μ €λŠ” Three.js에 IFC νŒŒμ„œλ₯Ό μ μš©ν•  μƒκ°μœΌλ‘œ JSμ—μ„œ IFC νŒŒμ„œλ₯Ό κ΅¬ν˜„ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬κ°€ μ‹œκ°„μ— ν•˜λŠ” 개인 ν”„λ‘œμ νŠΈμ΄κΈ° λ•Œλ¬Έμ— μ‹œκ°„μ΄ μ–Όλ§ˆλ‚˜ 걸릴지 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 였늘 이 μŠ€λ ˆλ“œλ₯Ό 보고 관심을 κ°€μ§ˆ 수 μžˆλ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 찾을 수

@agviegasλŠ” 당신이 κ·Έκ²ƒμœΌλ‘œ 무엇을 할지 κΈ°λŒ€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€! PR은 정말 ν™˜μ˜λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€

λ¬Όλ‘ ! @agviegas ν™λ³΄ν•΄μ£Όμ‹œλ©΄ 더 λ§Žμ€ 뢄듀이 λ„μ™€λ“œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€ 😍

λΆˆν–‰νžˆλ„ λ‚˜λŠ” ifcimporterμ—μ„œ λ‚΄ μž‘μ—…μ„ κ³΅κ°œν•  수 μ—†μ—ˆμ§€λ§Œ @agviegasλ₯Ό λ„μšΈ 수 μžˆμŠ΅λ‹ˆλ‹€.

@mrdoob λŒ€λ‹¨ν•˜λ„€μš” . μ €λŠ” μ—¬μ „νžˆ νŒŒμ„œμ˜ 핡심 κΈ°λŠ₯에 λŒ€ν•΄ μž‘μ—…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이미 λͺ¨λ“  곡간 ꡬ쑰 μš”μ†Œλ₯Ό λ‘œλ“œν•  수 있으며 곧 μ§€μ˜€λ©”νŠΈλ¦¬ ꡬ좕을 μ‹œμž‘ν•  κ²ƒμž…λ‹ˆλ‹€. λ‚˜λŠ” μ½”λ“œλ„μ— 적용 ν•  ν•„μš”κ°€ μžˆλ‹€λŠ” 생각 이 홍보λ₯Όν•˜κΈ° 전에. PR을 μœ„ν•œ μ½”λ“œλ₯Ό μ€€λΉ„ν•˜κΈ° μœ„ν•΄ 확인할 μ°Έμ‘°κ°€ μžˆμŠ΅λ‹ˆκΉŒ? μš°λ¦¬λŠ” 당신이 원할 λ•Œλ§ˆλ‹€ 이것을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이에 κ΄€ν•œ λͺ¨λ“  도움을 ν™˜μ˜ν•©λ‹ˆλ‹€.

λ°˜λ©΄μ— IFC ν˜•μ‹μ€ κ΅¬ν˜„ν•˜κΈ°κ°€ 맀우 μ‰½μ§€λ§Œ 곡식 λ¬Έμ„œμ˜ κ°€ν˜Ήν•¨ λ•Œλ¬Έμ— λ‹€μ†Œ μœ„ν˜‘μ μΌ 수 μžˆμŠ΅λ‹ˆλ‹€. IFC ν˜•μ‹μ„ 비ꡐ적 잘 μ•Œκ³  μžˆλŠ” 것 κ°™μ•„μ„œ 관심 μžˆλŠ” 뢄듀이 μ°Έμ—¬ν•΄ μ£Όμ‹œλ©΄ 더 빨리 μ€€λΉ„ν•  수 μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€. πŸ™‚

Captura

λ‚˜λŠ” μ½”λ“œλ„μ— 적용 ν•  ν•„μš”κ°€ μžˆλ‹€λŠ” 생각 이 홍보λ₯Όν•˜κΈ° 전에.

예, λ‹€λ₯Έ λ‘œλ”κ°€ μ‚¬μš©ν•˜λŠ” 것과 λ™μΌν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ MD2Loader κ°€ μ§€κΈˆμ€ 더 κ°„λ‹¨ν•œ 참쑰일 κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“  것이 PR에 μ™„λ²½ν•˜λ‹€κ³  κ±±μ •ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. 가지고 μžˆλŠ” 것을 μ΄ˆμ•ˆμœΌλ‘œ μ œμΆœν•˜λ©΄ λ‚˜λ¨Έμ§€ μ½”λ“œμ— λ§žλŠ”μ§€ ν™•μΈν•˜λŠ” 데 도움을 λ“œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.

ν˜•μ‹μ— λŒ€ν•œ λͺ‡ 번의 λΉ„ν‹€κ±°λ¦Όκ³Ό κ³ κ΅°λΆ„νˆ¬ 끝에 이미 λͺ‡ 가지 κ²°κ³Όκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” νŒŒμ„œμ˜ 첫 번째 버전과 일뢀 κΈ°ν•˜ν•™μ  μ—”ν‹°ν‹°(μ••μΆœ 및 b-rep 포함)λ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. 아직 ν•΄μ•Ό ν•  일이 많이 남아 μžˆμ§€λ§Œ μ§€κΈˆκΉŒμ§€μ˜ 결과에 λ§Œμ‘±ν•©λ‹ˆλ‹€. μ•„λž˜ μ΄λ―Έμ§€λŠ” Chromeμ—μ„œ μ›ν™œν•˜κ²Œ μ‹€ν–‰λ˜λŠ” Revit에 μ˜ν•΄ μƒμ„±λœ μž‘μ€ IFCλ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. 각 κΈ°ν•˜ν•™μ  μΈμŠ€ν„΄μŠ€μ—λŠ” ꡬ문 λΆ„μ„λœ IFC 정보가 μ—°κ²°λ˜μ–΄ μžˆμœΌλ―€λ‘œ(사싀 μ•„λž˜ μž₯λ©΄μ—μ„œ 각 μΈμŠ€ν„΄μŠ€λŠ” ν•΄λ‹Ή μΉ΄ν…Œκ³ λ¦¬/ifcclass에 따라 재질이 있음) 속성 κ°’(Psets 및 Qsets)을 μ‚¬μš©ν•˜μ—¬ ν•„ν„°λ₯Ό λ§Œλ“œλŠ” 것은 이 μ‹œμ μ—μ„œ λ³΄κ΄€ν•˜κΈ° 어렡지 μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€. . μ–΄λ–€ μ•„μ΄λ””μ–΄λ‚˜ μ œμ•ˆλ„ ν™˜μ˜ν•©λ‹ˆλ‹€. πŸ™‚

20201124_screenshot

@agviegas ν›Œλ₯­ν•©λ‹ˆλ‹€!

@agviegas μ•„μ£Ό μž˜ν–ˆμ–΄μš”!

μž¬μ‚° 관리에 λŒ€ν•œ 아이디어에 κ΄€ν•΄μ„œ. μ§€κΈˆ 이것듀을 μ–΄λ–»κ²Œ λ³΄κ΄€ν•˜κ³  κ³„μ‹ κ°€μš”? λ©”μ‰¬λ‚˜ μ§€μ˜€λ©”νŠΈλ¦¬μ˜ userData μ²˜λŸΌμš”?

λŒ€λΆ€λΆ„μ˜ 고객은 λͺ¨λΈλ§μ„ μœ„ν•΄ HiCad λ˜λŠ” ArchiCAD와 같은 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‚¬μš©ν•˜λ©° 건섀 μž‘μ—…μžμ—κ²Œ 맀우 μ€‘μš”ν•œ μˆ˜λ§Žμ€ 정보(μ—΄ 밀도, λ°”λžŒ μ €ν•­, μΈ‘μ •, 무게 λ“±)λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

νŒŒμ‹±/λ‘œλ”© 속도도 맀우 κΆκΈˆν•©λ‹ˆλ‹€. κ΅¬ν˜„μ„ ν…ŒμŠ€νŠΈν•œ λͺ¨λΈμ€ ꡬ문 λΆ„μ„ν•˜λŠ” 데 μ•½ 5μ΄ˆκ°€ κ±Έλ¦¬μ§€λ§Œ μ§€μ˜€λ©”νŠΈλ¦¬λ₯Ό μƒμ„±ν•˜λŠ” λ°λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ DAE λͺ¨λΈλ‘œ λ³€ν™˜ν•˜λŠ” 데 거의 2뢄이 κ±Έλ¦½λ‹ˆλ‹€. (μ €λŠ” μ‹œκ°„κ³Ό κ²½ν—˜μ΄ λΆ€μ‘±ν•˜μ—¬ μ„œλ²„ μΈ‘μ—μ„œ λ³€ν™˜ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. :sweat_smile:, 이것이 이 λ‘œλ”κ°€ '기본적으둜' μž‘λ™ν•˜κ²Œ λ˜μ–΄ 맀우 κΈ°μ©λ‹ˆλ‹€)

@haroldiedema 아직 속성 집합을 κ΅¬ν˜„ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ ν˜„μž¬ 데이터 κ΅¬μ‘°λŠ” JS 개체둜 κ΅¬μ„±λ˜μ–΄ 있으며 μ—¬κΈ°μ„œ ν‚€λŠ” μ΅μŠ€ν”„λ ˆμŠ€ ID이고 값은 λ©”λͺ¨λ¦¬μ— λ‘œλ“œλœ ꡬ문 λΆ„μ„λœ κ°œμ²΄μž…λ‹ˆλ‹€. μ΅μŠ€ν”„λ ˆμŠ€ IDμ˜€λ˜ 각 속성은 ν•΄λ‹Ή IDλ₯Ό 가진 κ°œμ²΄μ— λŒ€ν•œ 참쑰둜 λŒ€μ²΄λ©λ‹ˆλ‹€. ν˜„μž¬ κ΅¬ν˜„μ—μ„œ ν•˜λ‚˜ μ΄μƒμ˜ κΈ°ν•˜ν•™μ  ν‘œν˜„μ΄ μžˆλŠ” _IfcProduct_의 각 μΈμŠ€ν„΄μŠ€μ—λŠ” μž₯면의 κΈ°ν•˜ν•™μ  ꡬ쑰에 λŒ€ν•œ μ°Έμ‘° 배열인 _Geometry_λΌλŠ” μΆ”κ°€ 속성이 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 각 _IfcWallStandardCase_μ—λŠ” _Path_(a Line )μ—μ„œ _Body_(a Mesh )에 λŒ€ν•œ μ°Έμ‘°κ°€ μžˆλŠ” _Geometry_ 속성이 μžˆμŠ΅λ‹ˆλ‹€.

μ•„λ§ˆλ„ Three.js의 각 κΈ°ν•˜ν•™μ  μΈμŠ€ν„΄μŠ€μ—λŠ” μ΅μŠ€ν”„λ ˆμŠ€ IDκ°€ ν¬ν•¨λœ 속성이 μžˆμœΌλ―€λ‘œ λ©”λͺ¨λ¦¬μ— λ‘œλ“œλœ ifc μ—”ν„°ν‹°(및 κ΄€λ ¨ 정보)λ₯Ό μ°ΎλŠ” 것이 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€(μ”¬μ—μ„œ λ©”μ‹œλ₯Ό 클릭할 λ•Œ fe).

μ‚¬μš©μž μ •μ˜ μ†μ„±μ˜ 경우 λͺ¨λ“  것을 ν•¨κ»˜ λ¬ΆλŠ” ν•˜λ‚˜ μ΄μƒμ˜ _IfcRelDefinesByProperties_(λ˜λŠ” λ‹€λ₯Έ κ°„μ ‘ 관계 개체)κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ IfcProduct의 각 μΈμŠ€ν„΄μŠ€λŠ” κ΄€λ ¨ ꡬ문 λΆ„μ„λœ 속성 μ§‘ν•©μ˜ 배열을 ν¬ν•¨ν•˜λŠ” _hasPropertySets_ 속성을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€(λ‹€λ₯Έ IFC λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 이 νŒ¨ν„΄μ„ λ³΄μ•˜κ³  이것이 _IfcRelAggregates_와 같은 λ‹€λ₯Έ κ°„μ ‘ κ΄€κ³„μ—μ„œ μˆ˜ν–‰ν•˜λŠ” μž‘μ—…μž…λ‹ˆλ‹€). λ‚˜λŠ” 그듀이 IFC에 따라 ꡬ쑰화될 것이기 λ•Œλ¬Έμ— μž¬μ‚°μ˜ 양에 λŒ€ν•΄ κ±±μ •ν•˜μ§€ μ•Šμ§€λ§Œ λ‚΄κ°€ 거기에 λ„μ°©ν–ˆμ„ λ•Œ μ–΄λ–»κ²Œ λ˜λŠ”μ§€ λ΄…μ‹œλ‹€. πŸ˜‚

λ‚˜λŠ” λͺ¨λ“  것을 ν΄λΌμ΄μ–ΈνŠΈ 츑으둜 λ§Œλ“€κ³  있으며 ν˜„μž¬ ꡬ문 뢄석은 1초 미만이 걸리고 λ§ˆμ§€λ§‰ μž₯면의 κΈ°ν•˜ν•™μ  생성은 μ•½ 4μ΄ˆκ°€ μ†Œμš”λ©λ‹ˆλ‹€. 더 큰 νŒŒμΌμ„ μ‚¬μš©ν•˜λ©΄ 이 μ‹œκ°„μ΄ λŠ˜μ–΄λ‚  κ²ƒμž„μ„ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 더 λ§Žμ€ IFC μ—”ν„°ν‹°λ₯Ό λ‹€λ£¨μ—ˆκ³  μ‹€μ œ ν”„λ‘œμ νŠΈμ—μ„œ IFCλ₯Ό λ‘œλ“œν•  수 있게 되면 μ‹œμŠ€ν…œμ„ μ΅œμ ν™”ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€. πŸ™‚ λ‚˜λŠ” λˆ„κ΅°κ°€κ°€ 이것에 λŒ€ν•΄ 파고 μ‹Άμ–΄ν•˜λŠ” 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ _CONTRIBUTING_ λ¬Έμ„œλ₯Ό ν™•μž₯ν•  κ²ƒμž…λ‹ˆλ‹€.

@agviegas ꡉμž₯ν•΄!

일뢀 고객 λͺ¨λΈμ„ ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•΄ λ¦¬ν¬μ§€ν† λ¦¬μ˜ κΈ°λ³Έ λΆ„κΈ°λ₯Ό λ³΅μ œν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ λΆˆν–‰νžˆλ„ λͺ¨λ“  λͺ¨λΈμ΄ μ½˜μ†”μ—μ„œ _ExpressId is undefined에 λŒ€ν•œ 였λ₯˜λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€(λͺ¨λ“  λͺ¨λΈμ΄ μ°Έμ‘° λ ˆμ½”λ“œμ™€ κ΄€λ ¨ν•˜μ—¬ 100% 일관성이 μžˆλŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. μ‹€μ œλ‘œ μ‘΄μž¬ν•¨). 일뢀 CAD μ†Œν”„νŠΈμ›¨μ–΄λŠ” 제거된 속성에 λŒ€ν•œ μ°Έμ‘°λ₯Ό κΉ”λ”ν•˜κ²Œ μ •λ¦¬ν•˜μ§€ λͺ»ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

이 λͺ¨λΈ 쀑 일뢀λ₯Ό μ—¬λŸ¬λΆ„κ³Ό κ³΅μœ ν•  수 μžˆμ§€λ§Œ λΉ„κ³΅κ°œλ‘œ ν•΄μ•Ό ν•©λ‹ˆλ‹€. ArchiCAD λ˜λŠ” HiCAD둜 내보낸 λͺ¨λΈμ˜ 더 λ§Žμ€ ν…ŒμŠ€νŠΈ 사둀에 관심이 μžˆμœΌμ‹œλ©΄ [email protected]둜 μ €μ—κ²Œ 연락할 수 μžˆμŠ΅λ‹ˆλ‹€.

@haroldiedema 아직 속성 집합을 κ΅¬ν˜„ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ ν˜„μž¬ 데이터 κ΅¬μ‘°λŠ” JS 개체둜 κ΅¬μ„±λ˜μ–΄ 있으며 μ—¬κΈ°μ„œ ν‚€λŠ” μ΅μŠ€ν”„λ ˆμŠ€ ID이고 값은 λ©”λͺ¨λ¦¬μ— λ‘œλ“œλœ ꡬ문 λΆ„μ„λœ κ°œμ²΄μž…λ‹ˆλ‹€. μ΅μŠ€ν”„λ ˆμŠ€ IDμ˜€λ˜ 각 속성은 ν•΄λ‹Ή IDλ₯Ό 가진 κ°œμ²΄μ— λŒ€ν•œ 참쑰둜 λŒ€μ²΄λ©λ‹ˆλ‹€. ν˜„μž¬ κ΅¬ν˜„μ—μ„œ ν•˜λ‚˜ μ΄μƒμ˜ κΈ°ν•˜ν•™μ  ν‘œν˜„μ΄ μžˆλŠ” _IfcProduct_의 각 μΈμŠ€ν„΄μŠ€μ—λŠ” μž₯면의 κΈ°ν•˜ν•™μ  ꡬ쑰에 λŒ€ν•œ μ°Έμ‘° 배열인 _Geometry_λΌλŠ” μΆ”κ°€ 속성이 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 각 _IfcWallStandardCase_μ—λŠ” _Path_(a Line )μ—μ„œ _Body_(a Mesh )에 λŒ€ν•œ μ°Έμ‘°κ°€ μžˆλŠ” _Geometry_ 속성이 μžˆμŠ΅λ‹ˆλ‹€.

μ•„λ§ˆλ„ Three.js의 각 κΈ°ν•˜ν•™μ  μΈμŠ€ν„΄μŠ€μ—λŠ” μ΅μŠ€ν”„λ ˆμŠ€ IDκ°€ ν¬ν•¨λœ 속성이 μžˆμœΌλ―€λ‘œ λ©”λͺ¨λ¦¬μ— λ‘œλ“œλœ ifc μ—”ν„°ν‹°(및 κ΄€λ ¨ 정보)λ₯Ό μ°ΎλŠ” 것이 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€(μ”¬μ—μ„œ λ©”μ‹œλ₯Ό 클릭할 λ•Œ fe).

μ‚¬μš©μž μ •μ˜ μ†μ„±μ˜ 경우 λͺ¨λ“  것을 ν•¨κ»˜ λ¬ΆλŠ” ν•˜λ‚˜ μ΄μƒμ˜ _IfcRelDefinesByProperties_(λ˜λŠ” λ‹€λ₯Έ κ°„μ ‘ 관계 개체)κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ IfcProduct의 각 μΈμŠ€ν„΄μŠ€λŠ” κ΄€λ ¨ ꡬ문 λΆ„μ„λœ 속성 μ§‘ν•©μ˜ 배열을 ν¬ν•¨ν•˜λŠ” _hasPropertySets_ 속성을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€(λ‹€λ₯Έ IFC λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 이 νŒ¨ν„΄μ„ λ³΄μ•˜κ³  이것이 _IfcRelAggregates_와 같은 λ‹€λ₯Έ κ°„μ ‘ κ΄€κ³„μ—μ„œ μˆ˜ν–‰ν•˜λŠ” μž‘μ—…μž…λ‹ˆλ‹€). λ‚˜λŠ” 그듀이 IFC에 따라 ꡬ쑰화될 것이기 λ•Œλ¬Έμ— μž¬μ‚°μ˜ 양에 λŒ€ν•΄ κ±±μ •ν•˜μ§€ μ•Šμ§€λ§Œ λ‚΄κ°€ 거기에 λ„μ°©ν–ˆμ„ λ•Œ μ–΄λ–»κ²Œ λ˜λŠ”μ§€ λ΄…μ‹œλ‹€. πŸ˜‚

λ‚˜λŠ” λͺ¨λ“  것을 ν΄λΌμ΄μ–ΈνŠΈ 츑으둜 λ§Œλ“€κ³  있으며 ν˜„μž¬ ꡬ문 뢄석은 1초 미만이 걸리고 λ§ˆμ§€λ§‰ μž₯면의 κΈ°ν•˜ν•™μ  생성은 μ•½ 4μ΄ˆκ°€ μ†Œμš”λ©λ‹ˆλ‹€. 더 큰 νŒŒμΌμ„ μ‚¬μš©ν•˜λ©΄ 이 μ‹œκ°„μ΄ λŠ˜μ–΄λ‚  κ²ƒμž„μ„ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 더 λ§Žμ€ IFC μ—”ν„°ν‹°λ₯Ό λ‹€λ£¨μ—ˆκ³  μ‹€μ œ ν”„λ‘œμ νŠΈμ—μ„œ IFCλ₯Ό λ‘œλ“œν•  수 있게 되면 μ‹œμŠ€ν…œμ„ μ΅œμ ν™”ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€. πŸ™‚ λ‚˜λŠ” λˆ„κ΅°κ°€κ°€ 이것에 λŒ€ν•΄ 파고 μ‹Άμ–΄ν•˜λŠ” 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ _CONTRIBUTING_ λ¬Έμ„œλ₯Ό ν™•μž₯ν•  κ²ƒμž…λ‹ˆλ‹€.

User Defined IFC Property Sets ꡬ문 뢄석은 맀우 μ‰½μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” κ·Έκ²ƒμ„ν•˜λŠ” repo κ°€ μžˆμŠ΅λ‹ˆλ‹€. λ‚΄ νŒŒμ„œλŠ” λ‹Ήμ‹ λ§ŒνΌ μ •κ΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 일뢀 속성은 νŒŒμ„œλ₯Ό μ€‘λ‹¨ν•˜λŠ” κ²½ν–₯이 μžˆμŒμ„ μ•Œμ•˜μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” chevrotain을 μ‚¬μš©ν•˜μ§€ μ•Šμ•˜μœΌλ―€λ‘œ κ·€ν•˜μ˜ μ½”λ“œκ°€ μ–΄λ–»κ²Œ μœ μ§€λ˜λŠ”μ§€ 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μ—¬κΈ° 에 μ΄λŸ¬ν•œ 문제 에 λŒ€ν•΄ 더 많이 μΌμŠ΅λ‹ˆλ‹€ . 그것이 λ‹Ήμ‹ μ—κ²Œ μ•½κ°„μ˜ 도움이 될 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

μ–΄μ¨Œλ“  μ§€κΈˆκΉŒμ§€ μ•„μ£Ό μž˜ν–ˆμŠ΅λ‹ˆλ‹€! πŸ‘

μ—…λ°μ΄νŠΈ: 개발 μ „λ°˜μ— 걸쳐 보닀 μ‰¬μš΄ μ‚¬μš©μž ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ Github νŽ˜μ΄μ§€ 에 앱을 λ°°ν¬ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—λŠ” λͺ¨λ°”일 및 νƒœλΈ”λ¦Ώ 지원을 μœ„ν•œ λ°˜μ‘ν˜• 탐색이 ν¬ν•¨λ©λ‹ˆλ‹€. λ˜ν•œ μ—¬κΈ° μ—μ„œ μ‹œμž‘ μ‹œ IFC λͺ¨λΈμ„ λ‘œλ“œν•˜λŠ” λŒ€μ²΄ 배포λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€. μž₯면을 μ§€μš°κ³  μ—¬λŸ¬ IFCλ₯Ό μΆ”κ°€ν•˜λŠ” λ…Όλ¦¬λŠ” 아직 κ΅¬ν˜„λ˜μ§€ μ•Šμ•˜μ§€λ§Œ μ΅œμ†Œν•œ 탐색이 μ–΄λ–»κ²Œ λ³΄μ΄λŠ”μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. ꡬ문 뢄석은 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μˆ˜ν–‰ν•˜λ―€λ‘œ λ‘œλ“œ μ‹œκ°„μ€ μ‚¬μš©λœ μž₯μΉ˜μ— 따라 λ‹€λ¦…λ‹ˆλ‹€. λ‚΄ λ…ΈνŠΈλΆμ€ μ•½ 5초 λ§Œμ— μ™„λ£Œλ˜λŠ” 반면 Moto G5 PlusλŠ” 이 μž₯λ©΄μ—μ„œ μ•½ 50μ΄ˆκ°€ κ±Έλ¦½λ‹ˆλ‹€. 전체 ν”„λ‘œμ νŠΈλ₯Ό λ‘œλ“œν•˜κΈ° 전에 아직 κ΅¬ν˜„ν•΄μ•Ό ν•  ν΄λž˜μŠ€κ°€ μžˆμ§€λ§Œ ν…ŒμŠ€νŠΈ νŒŒμΌμ— μΆ”κ°€ν•  IFCλ₯Ό μ–Έμ œλ“ μ§€ μ €μ—κ²Œ λ³΄λ‚΄μ£Όμ‹­μ‹œμ˜€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰