From 544a77a93fc3b4f15447638d95480fe663dd988f Mon Sep 17 00:00:00 2001 From: Silversupplier Date: Sun, 3 May 2026 15:24:36 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[Chore]=20Curate=20Sprint=201=20=EC=8B=9C?= =?UTF-8?q?=EC=97=B0=EC=9A=A9=20=ED=8F=89=EB=A9=B4=20=EC=9E=90=EC=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - assets/demo-layouts/ 신설: bottleneck_hall, multi_exit_concourse, branched_corridor_office DXF 3종과 결정적 재생성 스크립트 추가. 세 평면은 결과 지표(피크 밀도, t90/t95, ExitUsage, ZoneCompletion)가 서로 다르게 나오도록 의도적으로 토폴로지를 구성. - docs/demo/시연 평면 가이드.md 추가: 평면별 시연 메시지와 강조 지표 정리. - tests/dxf/ 정리: 미활용 home_plan / apartment_floor_plan / evacuation_complex_large 와 cad-portfolio 라이선스 파일 제거. generate_building_samples.py 는 office_suite 만 생성하도록 트림. - tests/DxfImportServiceTests.cpp 에 신규 시연 DXF 3종의 임포트 회귀 가드 추가. - tests/ImportContractsTests.cpp 의 문자열 경로를 office_suite.dxf 로 교체. Refs: #168 --- assets/demo-layouts/README.md | 43 + assets/demo-layouts/bottleneck_hall.dxf | 3564 ++++++++++ .../demo-layouts/branched_corridor_office.dxf | 2060 ++---- assets/demo-layouts/generate_demo_layouts.py | 272 + .../demo-layouts/multi_exit_concourse.dxf | 754 +-- docs/README.md | 2 + ...4 \352\260\200\354\235\264\353\223\234.md" | 58 + tests/DxfImportServiceTests.cpp | 48 + tests/ImportContractsTests.cpp | 4 +- tests/dxf/LICENSE.cad-portfolio.txt | 21 - tests/dxf/README.md | 31 +- tests/dxf/apartment_floor_plan.dxf | 6024 ----------------- tests/dxf/generate_building_samples.py | 132 +- 13 files changed, 4743 insertions(+), 8270 deletions(-) create mode 100644 assets/demo-layouts/README.md create mode 100644 assets/demo-layouts/bottleneck_hall.dxf rename tests/dxf/evacuation_complex_large.dxf => assets/demo-layouts/branched_corridor_office.dxf (77%) create mode 100644 assets/demo-layouts/generate_demo_layouts.py rename tests/dxf/home_plan.dxf => assets/demo-layouts/multi_exit_concourse.dxf (87%) create mode 100644 "docs/demo/\354\213\234\354\227\260 \355\217\211\353\251\264 \352\260\200\354\235\264\353\223\234.md" delete mode 100644 tests/dxf/LICENSE.cad-portfolio.txt delete mode 100644 tests/dxf/apartment_floor_plan.dxf diff --git a/assets/demo-layouts/README.md b/assets/demo-layouts/README.md new file mode 100644 index 0000000..fcb92e2 --- /dev/null +++ b/assets/demo-layouts/README.md @@ -0,0 +1,43 @@ +# 시연용 평면 자산 (Demo Layouts) + +Sprint 1 시연 흐름(임포트 → 리뷰 → 시뮬레이션 → 결과)에서 결과 지표가 서로 다르게 나오도록 의도적으로 설계된 DXF 도면 모음입니다. + +테스트 픽스처가 아니라 **시연 시 직접 임포트해서 보여주기 위한 자산**입니다. 단위 테스트가 참조하는 도면은 `tests/dxf/` 에서 따로 관리합니다. + +## 평면 목록 + +| 파일 | 크기 | 의도 | 시연 강조 결과 지표 | +| --- | --- | --- | --- | +| `bottleneck_hall.dxf` | 30 × 20 m | 큰 단일 홀 + 1.0 m 단일 출구 | `DensitySummary.peakDensity` ↑↑, `highDensityDurationSeconds` ↑, `EvacuationTimingSummary.t90/t95` 길어짐, `ExitUsage` 단일 100 % | +| `multi_exit_concourse.dxf` | 30 × 20 m | 동일 홀 + 1.0 m 출구 3개 (E/N/S) | 동일 군중 시나리오 비교 시 t90·피크 밀도·고밀도 지속 시간 모두 감소, `ExitUsage` 가 3 출구로 분산 | +| `branched_corridor_office.dxf` | 36 × 20 m | 사무실: 6 룸 + 중앙 복도 + 비대칭 2 출구 | `ZoneCompletionMetric` 존별 차등 (원거리 룸 지연), `ExitUsage` 비대칭, 복도 셀의 `peakField` 시각화 임팩트 | + +## 시연 시나리오 가이드 + +`bottleneck_hall ↔ multi_exit_concourse` 는 **같은 홀 크기 · 같은 컬럼 배치**로 설계되어 있어, 동일 군중·동일 시나리오를 양쪽에 적용하면 출구 수만으로 결과가 어떻게 달라지는지 직접 비교할 수 있습니다. + +`branched_corridor_office` 는 **현실 평면**에서 어떤 셀이 위험 지점이 되는지 (밀도 필드 시각화) 를 보여주는 역할입니다. + +자세한 시연 흐름은 [docs/demo/시연 평면 가이드.md](../../docs/demo/시연%20평면%20가이드.md) 를 참고하세요. + +## 재생성 + +```bash +python assets/demo-layouts/generate_demo_layouts.py +``` + +DXF 는 결정적으로 재생성됩니다. 디퍼런셜 노이즈가 발생하면 `ezdxf` 버전 차이일 수 있습니다. + +## DXF 레이어 규약 + +생성기는 SafeCrowd DXF 임포터의 레이어 규약을 따릅니다. + +| 레이어 | 의미 | +| --- | --- | +| `WALLS` | 벽 라인 → Wall | +| `DOORS` | 내부 도어 라인 → Opening | +| `EXIT` | 외부 출구 라인 → Exit | +| `WINDOWS` | 창문 라인 (참고용) | +| `OBSTACLE` | 장애물 폴리곤 → Obstacle | +| `SPACE_*` | 닫힌 폴리라인 → Walkable Zone | +| `TEXT` | 라벨/타이틀 | diff --git a/assets/demo-layouts/bottleneck_hall.dxf b/assets/demo-layouts/bottleneck_hall.dxf new file mode 100644 index 0000000..ad35135 --- /dev/null +++ b/assets/demo-layouts/bottleneck_hall.dxf @@ -0,0 +1,3564 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1024 + 9 +$ACADMAINTVER + 70 +6 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$LASTSAVEDBY + 1 +ezdxf + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$EXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +420.0 + 20 +297.0 + 9 +$ORTHOMODE + 70 +0 + 9 +$REGENMODE + 70 +1 + 9 +$FILLMODE + 70 +1 + 9 +$QTEXTMODE + 70 +0 + 9 +$MIRRTEXT + 70 +1 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 +1 + 9 +$TEXTSIZE + 40 +2.5 + 9 +$TRACEWID + 40 +1.0 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 +256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 +0 + 9 +$DIMSCALE + 40 +1.0 + 9 +$DIMASZ + 40 +2.5 + 9 +$DIMEXO + 40 +0.625 + 9 +$DIMDLI + 40 +3.75 + 9 +$DIMRND + 40 +0.0 + 9 +$DIMDLE + 40 +0.0 + 9 +$DIMEXE + 40 +1.25 + 9 +$DIMTP + 40 +0.0 + 9 +$DIMTM + 40 +0.0 + 9 +$DIMTXT + 40 +2.5 + 9 +$DIMCEN + 40 +2.5 + 9 +$DIMTSZ + 40 +0.0 + 9 +$DIMTOL + 70 +0 + 9 +$DIMLIM + 70 +0 + 9 +$DIMTIH + 70 +0 + 9 +$DIMTOH + 70 +0 + 9 +$DIMSE1 + 70 +0 + 9 +$DIMSE2 + 70 +0 + 9 +$DIMTAD + 70 +1 + 9 +$DIMZIN + 70 +8 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 +1 + 9 +$DIMSHO + 70 +1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 +0 + 9 +$DIMALTD + 70 +3 + 9 +$DIMALTF + 40 +0.03937007874 + 9 +$DIMLFAC + 40 +1.0 + 9 +$DIMTOFL + 70 +1 + 9 +$DIMTVP + 40 +0.0 + 9 +$DIMTIX + 70 +0 + 9 +$DIMSOXD + 70 +0 + 9 +$DIMSAH + 70 +0 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 + + 9 +$DIMSTYLE + 2 +ISO-25 + 9 +$DIMCLRD + 70 +0 + 9 +$DIMCLRE + 70 +0 + 9 +$DIMCLRT + 70 +0 + 9 +$DIMTFAC + 40 +1.0 + 9 +$DIMGAP + 40 +0.625 + 9 +$DIMJUST + 70 +0 + 9 +$DIMSD1 + 70 +0 + 9 +$DIMSD2 + 70 +0 + 9 +$DIMTOLJ + 70 +0 + 9 +$DIMTZIN + 70 +8 + 9 +$DIMALTZ + 70 +0 + 9 +$DIMALTTZ + 70 +0 + 9 +$DIMUPT + 70 +0 + 9 +$DIMDEC + 70 +2 + 9 +$DIMTDEC + 70 +2 + 9 +$DIMALTU + 70 +2 + 9 +$DIMALTTD + 70 +3 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 +0 + 9 +$DIMADEC + 70 +0 + 9 +$DIMALTRND + 40 +0.0 + 9 +$DIMAZIN + 70 +0 + 9 +$DIMDSEP + 70 +44 + 9 +$DIMATFIT + 70 +3 + 9 +$DIMFRAC + 70 +0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 +2 + 9 +$DIMLWD + 70 +-2 + 9 +$DIMLWE + 70 +-2 + 9 +$DIMTMOVE + 70 +0 + 9 +$DIMFXL + 40 +1.0 + 9 +$DIMFXLON + 70 +0 + 9 +$DIMJOGANG + 40 +0.785398163397 + 9 +$DIMTFILL + 70 +0 + 9 +$DIMTFILLCLR + 70 +0 + 9 +$DIMARCSYM + 70 +0 + 9 +$DIMLTYPE + 6 + + 9 +$DIMLTEX1 + 6 + + 9 +$DIMLTEX2 + 6 + + 9 +$DIMTXTDIRECTION + 70 +0 + 9 +$LUNITS + 70 +2 + 9 +$LUPREC + 70 +4 + 9 +$SKETCHINC + 40 +1.0 + 9 +$FILLETRAD + 40 +10.0 + 9 +$AUNITS + 70 +0 + 9 +$AUPREC + 70 +2 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 +0 + 9 +$CHAMFERA + 40 +0.0 + 9 +$CHAMFERB + 40 +0.0 + 9 +$CHAMFERC + 40 +0.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 +0 + 9 +$TDCREATE + 40 +2461164.6288888888 + 9 +$TDUCREATE + 40 +2458532.153996898 + 9 +$TDUPDATE + 40 +2461164.6288888888 + 9 +$TDUUPDATE + 40 +2458532.1544311 + 9 +$TDINDWG + 40 +0.0 + 9 +$TDUSRTIMER + 40 +0.0 + 9 +$USRTIMER + 70 +1 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 +0 + 9 +$PDMODE + 70 +0 + 9 +$PDSIZE + 40 +0.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 +0 + 9 +$SPLINETYPE + 70 +6 + 9 +$SPLINESEGS + 70 +8 + 9 +$HANDSEED + 5 +46 + 9 +$SURFTAB1 + 70 +6 + 9 +$SURFTAB2 + 70 +6 + 9 +$SURFTYPE + 70 +6 + 9 +$SURFU + 70 +6 + 9 +$SURFV + 70 +6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 +0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 +0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$USERI1 + 70 +0 + 9 +$USERI2 + 70 +0 + 9 +$USERI3 + 70 +0 + 9 +$USERI4 + 70 +0 + 9 +$USERI5 + 70 +0 + 9 +$USERR1 + 40 +0.0 + 9 +$USERR2 + 40 +0.0 + 9 +$USERR3 + 40 +0.0 + 9 +$USERR4 + 40 +0.0 + 9 +$USERR5 + 40 +0.0 + 9 +$WORLDVIEW + 70 +1 + 9 +$SHADEDGE + 70 +3 + 9 +$SHADEDIF + 70 +70 + 9 +$TILEMODE + 70 +1 + 9 +$MAXACTVP + 70 +64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 +0 + 9 +$PEXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$PEXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +420.0 + 20 +297.0 + 9 +$UNITMODE + 70 +0 + 9 +$VISRETAIN + 70 +1 + 9 +$PLINEGEN + 70 +0 + 9 +$PSLTSCALE + 70 +1 + 9 +$TREEDEPTH + 70 +3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 +0 + 9 +$CMLSCALE + 40 +20.0 + 9 +$PROXYGRAPHICS + 70 +1 + 9 +$MEASUREMENT + 70 +1 + 9 +$CELWEIGHT +370 +-1 + 9 +$ENDCAPS +280 +0 + 9 +$JOINSTYLE +280 +0 + 9 +$LWDISPLAY +290 +0 + 9 +$INSUNITS + 70 +6 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 +1 + 9 +$CEPSNTYPE +380 +0 + 9 +$PSTYLEMODE +290 +1 + 9 +$FINGERPRINTGUID + 2 +{1A006C35-3BC2-4FF8-A7F7-77D267D4CE2C} + 9 +$VERSIONGUID + 2 +{88E53264-57ED-4EE5-8CEF-E47D01815AD0} + 9 +$EXTNAMES +290 +1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 +0 + 9 +$SORTENTS +280 +127 + 9 +$INDEXCTL +280 +0 + 9 +$HIDETEXT +280 +1 + 9 +$XCLIPFRAME +280 +1 + 9 +$HALOGAP +280 +0 + 9 +$OBSCOLOR + 70 +257 + 9 +$OBSLTYPE +280 +0 + 9 +$INTERSECTIONDISPLAY +280 +0 + 9 +$INTERSECTIONCOLOR + 70 +257 + 9 +$DIMASSOC +280 +2 + 9 +$PROJECTNAME + 1 + + 9 +$CAMERADISPLAY +290 +0 + 9 +$LENSLENGTH + 40 +50.0 + 9 +$CAMERAHEIGHT + 40 +0.0 + 9 +$STEPSPERSEC + 40 +24.0 + 9 +$STEPSIZE + 40 +100.0 + 9 +$3DDWFPREC + 40 +2.0 + 9 +$PSOLWIDTH + 40 +0.005 + 9 +$PSOLHEIGHT + 40 +0.08 + 9 +$LOFTANG1 + 40 +1.570796326795 + 9 +$LOFTANG2 + 40 +1.570796326795 + 9 +$LOFTMAG1 + 40 +0.0 + 9 +$LOFTMAG2 + 40 +0.0 + 9 +$LOFTPARAM + 70 +7 + 9 +$LOFTNORMALS +280 +1 + 9 +$LATITUDE + 40 +37.795 + 9 +$LONGITUDE + 40 +-122.394 + 9 +$NORTHDIRECTION + 40 +0.0 + 9 +$TIMEZONE + 70 +-8000 + 9 +$LIGHTGLYPHDISPLAY +280 +1 + 9 +$TILEMODELIGHTSYNCH +280 +1 + 9 +$CMATERIAL +347 +20 + 9 +$SOLIDHIST +280 +0 + 9 +$SHOWHIST +280 +1 + 9 +$DWFFRAME +280 +2 + 9 +$DGNFRAME +280 +2 + 9 +$REALWORLDSCALE +290 +1 + 9 +$INTERFERECOLOR + 62 +256 + 9 +$CSHADOW +280 +0 + 9 +$SHADOWPLANELOCATION + 40 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +SUN + 2 +AcDbSun + 3 +SCENEOE + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +VISUALSTYLE + 2 +AcDbVisualStyle + 3 +ObjectDBX Classes + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MATERIAL + 2 +AcDbMaterial + 3 +ObjectDBX Classes + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +SCALE + 2 +AcDbScale + 3 +ObjectDBX Classes + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +TABLESTYLE + 2 +AcDbTableStyle + 3 +ObjectDBX Classes + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MLEADERSTYLE + 2 +AcDbMLeaderStyle + 3 +ACDB_MLEADERSTYLE_CLASS + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +DICTIONARYVAR + 2 +AcDbDictionaryVar + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +CELLSTYLEMAP + 2 +AcDbCellStyleMap + 3 +ObjectDBX Classes + 90 +1152 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MENTALRAYRENDERSETTINGS + 2 +AcDbMentalRayRenderSettings + 3 +SCENEOE + 90 +1024 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBDETAILVIEWSTYLE + 2 +AcDbDetailViewStyle + 3 +ObjectDBX Classes + 90 +1025 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBSECTIONVIEWSTYLE + 2 +AcDbSectionViewStyle + 3 +ObjectDBX Classes + 90 +1025 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +RASTERVARIABLES + 2 +AcDbRasterVariables + 3 +ISM + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +LAYOUT + 2 +AcDbLayout + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBPLACEHOLDER + 2 +AcDbPlaceHolder + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 +1 + 0 +VPORT + 5 +23 +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 +0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +0.0 + 22 +0.0 + 13 +0.0 + 23 +0.0 + 14 +0.5 + 24 +0.5 + 15 +0.5 + 25 +0.5 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +1000.0 + 41 +1.34 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 +0 + 72 +1000 + 73 +1 + 74 +3 + 75 +0 + 76 +0 + 77 +0 + 78 +0 +281 +0 + 65 +0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 +3 + 0 +LTYPE + 5 +24 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +25 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +26 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 +9 + 0 +LAYER + 5 +27 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 62 +7 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +28 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Defpoints + 70 +0 + 62 +7 + 6 +Continuous +290 +0 +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +2F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WALLS + 70 +0 + 62 +7 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +30 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +DOORS + 70 +0 + 62 +3 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +31 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +EXIT + 70 +0 + 62 +1 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +32 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WINDOWS + 70 +0 + 62 +5 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +33 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TEXT + 70 +0 + 62 +2 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +34 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +OBSTACLE + 70 +0 + 62 +6 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +36 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_MAIN_HALL + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 +1 + 0 +STYLE + 5 +29 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 +0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 +0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 +3 + 0 +APPID + 5 +2A +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 +0 + 0 +APPID + 5 +43 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +HATCHBACKGROUNDCOLOR + 70 +0 + 0 +APPID + 5 +44 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +EZDXF + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +4 +330 +0 +100 +AcDbSymbolTable + 70 +1 +100 +AcDbDimStyleTable + 0 +DIMSTYLE +105 +2B +330 +4 +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 +0 + 40 +1.0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +2.5 +140 +2.5 +141 +2.5 +142 +0.0 +143 +0.03937007874 +144 +1.0 +145 +0.0 +146 +1.0 +147 +0.625 +148 +0.0 + 69 +0 + 70 +0 + 71 +0 + 72 +0 + 73 +0 + 74 +0 + 75 +0 + 76 +0 + 77 +1 + 78 +8 + 79 +3 +170 +0 +171 +3 +172 +1 +173 +0 +174 +0 +175 +0 +176 +0 +177 +0 +178 +0 +179 +2 +271 +2 +272 +2 +273 +2 +274 +3 +275 +0 +276 +0 +277 +2 +278 +44 +279 +0 +280 +0 +281 +0 +282 +0 +283 +0 +284 +8 +285 +0 +286 +0 +288 +0 +289 +3 +290 +0 +371 +-2 +372 +-2 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 +2 + 0 +BLOCK_RECORD + 5 +17 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +1A + 70 +0 +280 +1 +281 +0 + 0 +BLOCK_RECORD + 5 +1B +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 70 +0 +280 +1 +281 +0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +18 +330 +17 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +19 +330 +17 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +MTEXT + 5 +35 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +0.2 + 20 +-1.6 + 30 +0.0 + 40 +0.34 + 71 +1 + 1 +BOTTLENECK HALL\P30x20m 단일 홀 / 1.0m 단일 출구 - 병목 시연 + 0 +LWPOLYLINE + 5 +37 +330 +17 +100 +AcDbEntity + 8 +SPACE_MAIN_HALL +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +0.05 + 20 +0.05 + 10 +29.95 + 20 +0.05 + 10 +29.95 + 20 +19.95 + 10 +0.05 + 20 +19.95 + 0 +MTEXT + 5 +38 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +13.6 + 20 +10.2 + 30 +0.0 + 40 +0.28 + 71 +1 + 1 +MAIN HALL\P600.0 m^2 + 0 +LINE + 5 +39 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +0.0 + 30 +0.0 + 11 +30.0 + 21 +0.0 + 31 +0.0 + 0 +LINE + 5 +3A +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +20.0 + 30 +0.0 + 11 +30.0 + 21 +20.0 + 31 +0.0 + 0 +LINE + 5 +3B +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +0.0 + 30 +0.0 + 11 +0.0 + 21 +20.0 + 31 +0.0 + 0 +LINE + 5 +3C +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +30.0 + 20 +0.0 + 30 +0.0 + 11 +30.0 + 21 +9.5 + 31 +0.0 + 0 +LINE + 5 +3D +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +30.0 + 20 +10.5 + 30 +0.0 + 11 +30.0 + 21 +20.0 + 31 +0.0 + 0 +LINE + 5 +3E +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +30.0 + 20 +9.5 + 30 +0.0 + 11 +30.0 + 21 +10.5 + 31 +0.0 + 0 +LWPOLYLINE + 5 +3F +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +9.0 + 20 +9.0 + 10 +10.0 + 20 +9.0 + 10 +10.0 + 20 +11.0 + 10 +9.0 + 20 +11.0 + 0 +LWPOLYLINE + 5 +40 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +19.0 + 20 +9.0 + 10 +20.0 + 20 +9.0 + 10 +20.0 + 20 +11.0 + 10 +19.0 + 20 +11.0 + 0 +LWPOLYLINE + 5 +41 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +14.0 + 20 +4.0 + 10 +15.0 + 20 +4.0 + 10 +15.0 + 20 +6.0 + 10 +14.0 + 20 +6.0 + 0 +LWPOLYLINE + 5 +42 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +14.0 + 20 +14.0 + 10 +15.0 + 20 +14.0 + 10 +15.0 + 20 +16.0 + 10 +14.0 + 20 +16.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +A +330 +0 +100 +AcDbDictionary +281 +1 + 3 +ACAD_COLOR +350 +B + 3 +ACAD_GROUP +350 +C + 3 +ACAD_LAYOUT +350 +D + 3 +ACAD_MATERIAL +350 +E + 3 +ACAD_MLEADERSTYLE +350 +F + 3 +ACAD_MLINESTYLE +350 +10 + 3 +ACAD_PLOTSETTINGS +350 +11 + 3 +ACAD_PLOTSTYLENAME +350 +12 + 3 +ACAD_SCALELIST +350 +14 + 3 +ACAD_TABLESTYLE +350 +15 + 3 +ACAD_VISUALSTYLE +350 +16 + 3 +EZDXF_META +350 +2D + 0 +DICTIONARY + 5 +B +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +C +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +D +330 +A +100 +AcDbDictionary +281 +1 + 3 +Model +350 +1A + 3 +Layout1 +350 +1E + 0 +DICTIONARY + 5 +E +330 +A +100 +AcDbDictionary +281 +1 + 3 +ByBlock +350 +1F + 3 +ByLayer +350 +20 + 3 +Global +350 +21 + 0 +DICTIONARY + 5 +F +330 +A +100 +AcDbDictionary +281 +1 + 3 +Standard +350 +2C + 0 +DICTIONARY + 5 +10 +330 +A +100 +AcDbDictionary +281 +1 + 3 +Standard +350 +22 + 0 +DICTIONARY + 5 +11 +330 +A +100 +AcDbDictionary +281 +1 + 0 +ACDBDICTIONARYWDFLT + 5 +12 +330 +A +100 +AcDbDictionary +281 +1 + 3 +Normal +350 +13 +100 +AcDbDictionaryWithDefault +340 +13 + 0 +ACDBPLACEHOLDER + 5 +13 +330 +12 + 0 +DICTIONARY + 5 +14 +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +15 +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +16 +330 +A +100 +AcDbDictionary +281 +1 + 0 +LAYOUT + 5 +1A +330 +D +100 +AcDbPlotSettings + 1 + + 4 +A3 + 6 + + 40 +7.5 + 41 +20.0 + 42 +7.5 + 43 +20.0 + 44 +420.0 + 45 +297.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +1024 + 72 +1 + 73 +0 + 74 +5 + 7 + + 75 +16 + 76 +0 + 77 +2 + 78 +300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 +1 + 71 +0 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1e+20 + 24 +1e+20 + 34 +1e+20 + 15 +-1e+20 + 25 +-1e+20 + 35 +-1e+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +1 +330 +17 + 0 +LAYOUT + 5 +1E +330 +D +100 +AcDbPlotSettings + 1 + + 4 +A3 + 6 + + 40 +7.5 + 41 +20.0 + 42 +7.5 + 43 +20.0 + 44 +420.0 + 45 +297.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +0 + 72 +1 + 73 +0 + 74 +5 + 7 + + 75 +16 + 76 +0 + 77 +2 + 78 +300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 +1 + 71 +1 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1e+20 + 24 +1e+20 + 34 +1e+20 + 15 +-1e+20 + 25 +-1e+20 + 35 +-1e+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +1 +330 +1B + 0 +MATERIAL + 5 +1F +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +ByBlock + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MATERIAL + 5 +20 +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +ByLayer + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MATERIAL + 5 +21 +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +Global + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MLINESTYLE + 5 +22 +102 +{ACAD_REACTORS +330 +10 +102 +} +330 +10 +100 +AcDbMlineStyle + 2 +Standard + 70 +0 + 3 + + 62 +256 + 51 +90.0 + 52 +90.0 + 71 +2 + 49 +0.5 + 62 +256 + 6 +BYLAYER + 49 +-0.5 + 62 +256 + 6 +BYLAYER + 0 +MLEADERSTYLE + 5 +2C +102 +{ACAD_REACTORS +330 +F +102 +} +330 +F +100 +AcDbMLeaderStyle +179 +2 +170 +2 +171 +1 +172 +0 + 90 +2 + 40 +0.0 + 41 +0.0 +173 +1 + 91 +-1056964608 + 92 +-2 +290 +1 + 42 +2.0 +291 +1 + 43 +8.0 + 3 +Standard + 44 +4.0 +300 + +342 +29 +174 +1 +175 +1 +176 +0 +178 +1 + 93 +-1056964608 + 45 +4.0 +292 +0 +297 +0 + 46 +4.0 + 94 +-1056964608 + 47 +1.0 + 49 +1.0 +140 +1.0 +294 +1 +141 +0.0 +177 +0 +142 +1.0 +295 +0 +296 +0 +143 +3.75 +271 +0 +272 +9 +273 +9 + 0 +DICTIONARY + 5 +2D +330 +A +100 +AcDbDictionary +280 +1 +281 +1 + 3 +CREATED_BY_EZDXF +350 +2E + 3 +WRITTEN_BY_EZDXF +350 +45 + 0 +DICTIONARYVAR + 5 +2E +330 +2D +100 +DictionaryVariables +280 +0 + 1 +1.4.3 @ 2026-05-03T06:05:36.026588+00:00 + 0 +DICTIONARYVAR + 5 +45 +330 +2D +100 +DictionaryVariables +280 +0 + 1 +1.4.3 @ 2026-05-03T06:05:36.028068+00:00 + 0 +ENDSEC + 0 +EOF diff --git a/tests/dxf/evacuation_complex_large.dxf b/assets/demo-layouts/branched_corridor_office.dxf similarity index 77% rename from tests/dxf/evacuation_complex_large.dxf rename to assets/demo-layouts/branched_corridor_office.dxf index d5542b5..a6d3df5 100644 --- a/tests/dxf/evacuation_complex_large.dxf +++ b/assets/demo-layouts/branched_corridor_office.dxf @@ -489,7 +489,7 @@ $SKPOLY 9 $TDCREATE 40 -2461138.6350115743 +2461164.6288888888 9 $TDUCREATE 40 @@ -497,7 +497,7 @@ $TDUCREATE 9 $TDUPDATE 40 -2461138.6350115743 +2461164.6288888888 9 $TDUUPDATE 40 @@ -549,7 +549,7 @@ $SPLINESEGS 9 $HANDSEED 5 -9C +78 9 $SURFTAB1 70 @@ -929,11 +929,11 @@ $PSTYLEMODE 9 $FINGERPRINTGUID 2 -{EA4EDBD7-1C5F-4C92-AE42-ABFA8F771DB4} +{A84E9255-9B09-4199-AC19-FAA4150E4D05} 9 $VERSIONGUID 2 -{C4992EE5-E95B-40AD-8708-DD50D7009CF4} +{0202422D-BEE3-487D-A012-1D4C95FBFC69} 9 $EXTNAMES 290 @@ -1549,7 +1549,7 @@ LAYER 100 AcDbSymbolTable 70 -20 +17 0 LAYER 5 @@ -1747,7 +1747,7 @@ Continuous 0 LAYER 5 -45 +36 330 1 100 @@ -1771,79 +1771,7 @@ Continuous 0 LAYER 5 -48 -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -SPACE_CENTRAL_CONCOURSE - 70 -0 - 62 -4 - 6 -Continuous -370 --3 -390 -13 -347 -21 - 0 -LAYER - 5 -4B -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -SPACE_EAST_LOBBY - 70 -0 - 62 -4 - 6 -Continuous -370 --3 -390 -13 -347 -21 - 0 -LAYER - 5 -4E -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -SPACE_AUDITORIUM - 70 -0 - 62 -4 - 6 -Continuous -370 --3 -390 -13 -347 -21 - 0 -LAYER - 5 -51 +39 330 1 100 @@ -1851,7 +1779,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_CAFETERIA +SPACE_CORRIDOR 70 0 62 @@ -1867,7 +1795,7 @@ Continuous 0 LAYER 5 -54 +3C 330 1 100 @@ -1875,7 +1803,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_TRAINING_A +SPACE_OFFICE_A 70 0 62 @@ -1891,7 +1819,7 @@ Continuous 0 LAYER 5 -57 +3F 330 1 100 @@ -1899,7 +1827,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_TRAINING_B +SPACE_OFFICE_B 70 0 62 @@ -1915,7 +1843,7 @@ Continuous 0 LAYER 5 -5A +42 330 1 100 @@ -1923,7 +1851,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_COMMAND_CENTER +SPACE_MEETING_ROOM 70 0 62 @@ -1939,7 +1867,7 @@ Continuous 0 LAYER 5 -5D +45 330 1 100 @@ -1947,7 +1875,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_WEST_SERVICE +SPACE_OFFICE_C 70 0 62 @@ -1963,7 +1891,7 @@ Continuous 0 LAYER 5 -60 +48 330 1 100 @@ -1971,7 +1899,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_WEST_BREAKOUT +SPACE_OFFICE_D 70 0 62 @@ -1987,7 +1915,7 @@ Continuous 0 LAYER 5 -63 +4B 330 1 100 @@ -1995,7 +1923,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_EAST_STORAGE +SPACE_OFFICE_E 70 0 62 @@ -2011,7 +1939,7 @@ Continuous 0 LAYER 5 -66 +4E 330 1 100 @@ -2019,7 +1947,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_EAST_OPERATIONS +SPACE_EAST_BAY 70 0 62 @@ -2133,7 +2061,7 @@ ACAD 0 APPID 5 -99 +75 330 3 100 @@ -2147,7 +2075,7 @@ HATCHBACKGROUNDCOLOR 0 APPID 5 -9A +76 330 3 100 @@ -2469,833 +2397,249 @@ AcDbMText 10 0.2 20 --1.2 +-1.6 30 0.0 40 -0.28 +0.34 71 1 1 -LARGE EVACUATION COMPLEX\PMulti-wing civic center floor with wide concourse, large assembly spaces, service wings, and multiple exits +BRANCHED CORRIDOR OFFICE\P36x20m 사무실 / 6 룸 + 중앙 복도 / 비대칭 2 출구 - 현실 시연 0 -LINE +LWPOLYLINE 5 -36 +37 330 17 100 AcDbEntity 8 -WALLS +SPACE_WEST_LOBBY 100 -AcDbLine +AcDbPolyline + 90 +4 + 70 +1 10 -0.0 +0.05 20 -0.0 - 30 -0.0 - 11 -64.0 - 21 -0.0 - 31 -0.0 +0.05 + 10 +7.95 + 20 +0.05 + 10 +7.95 + 20 +19.95 + 10 +0.05 + 20 +19.95 0 -LINE +MTEXT 5 -37 +38 330 17 100 AcDbEntity 8 -WALLS +TEXT 100 -AcDbLine +AcDbMText 10 -64.0 +2.6 20 -0.0 +10.2 30 0.0 - 11 -64.0 - 21 -42.0 - 31 -0.0 + 40 +0.28 + 71 +1 + 1 +WEST LOBBY\P160.0 m^2 0 -LINE +LWPOLYLINE 5 -38 +3A 330 17 100 AcDbEntity 8 -WALLS +SPACE_CORRIDOR 100 -AcDbLine +AcDbPolyline + 90 +4 + 70 +1 10 -64.0 +8.05 20 -42.0 - 30 -0.0 - 11 -0.0 - 21 -42.0 - 31 -0.0 +9.05 + 10 +27.95 + 20 +9.05 + 10 +27.95 + 20 +10.95 + 10 +8.05 + 20 +10.95 0 -LINE +MTEXT 5 -39 +3B 330 17 100 AcDbEntity 8 -WALLS +TEXT 100 -AcDbLine +AcDbMText 10 -0.0 +16.6 20 -42.0 +10.2 30 0.0 - 11 -0.0 - 21 -0.0 - 31 -0.0 + 40 +0.28 + 71 +1 + 1 +CORRIDOR\P40.0 m^2 0 -LINE +LWPOLYLINE 5 -3A +3D 330 17 100 AcDbEntity 8 -WALLS +SPACE_OFFICE_A 100 -AcDbLine +AcDbPolyline + 90 +4 + 70 +1 10 -12.0 +8.05 20 -0.0 - 30 -0.0 - 11 -12.0 - 21 -42.0 - 31 -0.0 +11.05 + 10 +13.95 + 20 +11.05 + 10 +13.95 + 20 +19.95 + 10 +8.05 + 20 +19.95 0 -LINE +MTEXT 5 -3B +3E 330 17 100 AcDbEntity 8 -WALLS +TEXT 100 -AcDbLine +AcDbMText 10 -52.0 +9.6 20 -0.0 +15.7 30 0.0 - 11 -52.0 - 21 -42.0 - 31 -0.0 + 40 +0.28 + 71 +1 + 1 +OFFICE A\P54.0 m^2 0 -LINE +LWPOLYLINE 5 -3C +40 330 17 100 AcDbEntity 8 -WALLS +SPACE_OFFICE_B 100 -AcDbLine +AcDbPolyline + 90 +4 + 70 +1 10 -12.0 +14.05 20 -16.0 - 30 -0.0 - 11 -52.0 - 21 -16.0 - 31 -0.0 +11.05 + 10 +20.95 + 20 +11.05 + 10 +20.95 + 20 +19.95 + 10 +14.05 + 20 +19.95 0 -LINE +MTEXT 5 -3D +41 330 17 100 AcDbEntity 8 -WALLS -100 -AcDbLine - 10 -12.0 - 20 -26.0 - 30 -0.0 - 11 -52.0 - 21 -26.0 - 31 -0.0 - 0 -LINE - 5 -3E -330 -17 -100 -AcDbEntity - 8 -WALLS -100 -AcDbLine - 10 -34.0 - 20 -26.0 - 30 -0.0 - 11 -34.0 - 21 -42.0 - 31 -0.0 - 0 -LINE - 5 -3F -330 -17 -100 -AcDbEntity - 8 -WALLS -100 -AcDbLine - 10 -26.0 - 20 -0.0 - 30 -0.0 - 11 -26.0 - 21 -16.0 - 31 -0.0 - 0 -LINE - 5 -40 -330 -17 -100 -AcDbEntity - 8 -WALLS -100 -AcDbLine - 10 -40.0 - 20 -0.0 - 30 -0.0 - 11 -40.0 - 21 -16.0 - 31 -0.0 - 0 -LINE - 5 -41 -330 -17 -100 -AcDbEntity - 8 -WALLS -100 -AcDbLine - 10 -52.0 - 20 -12.0 - 30 -0.0 - 11 -64.0 - 21 -12.0 - 31 -0.0 - 0 -LINE - 5 -42 -330 -17 -100 -AcDbEntity - 8 -WALLS -100 -AcDbLine - 10 -52.0 - 20 -30.0 - 30 -0.0 - 11 -64.0 - 21 -30.0 - 31 -0.0 - 0 -LINE - 5 -43 -330 -17 -100 -AcDbEntity - 8 -WALLS -100 -AcDbLine - 10 -0.0 - 20 -12.0 - 30 -0.0 - 11 -12.0 - 21 -12.0 - 31 -0.0 - 0 -LINE - 5 -44 -330 -17 -100 -AcDbEntity - 8 -WALLS -100 -AcDbLine - 10 -0.0 - 20 -30.0 - 30 -0.0 - 11 -12.0 - 21 -30.0 - 31 -0.0 - 0 -LWPOLYLINE - 5 -46 -330 -17 -100 -AcDbEntity - 8 -SPACE_WEST_LOBBY -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -0.1 - 20 -12.1 - 10 -11.9 - 20 -12.1 - 10 -11.9 - 20 -29.9 - 10 -0.1 - 20 -29.9 - 0 -MTEXT - 5 -47 -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -5.2 - 20 -21.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -WEST LOBBY\P210.0 m^2 - 0 -LWPOLYLINE - 5 -49 -330 -17 -100 -AcDbEntity - 8 -SPACE_CENTRAL_CONCOURSE -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -12.1 - 20 -16.1 - 10 -51.9 - 20 -16.1 - 10 -51.9 - 20 -25.9 - 10 -12.1 - 20 -25.9 - 0 -MTEXT - 5 -4A -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -31.2 - 20 -21.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -CENTRAL CONCOURSE\P390.0 m^2 - 0 -LWPOLYLINE - 5 -4C -330 -17 -100 -AcDbEntity - 8 -SPACE_EAST_LOBBY -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -52.1 - 20 -12.1 - 10 -63.9 - 20 -12.1 - 10 -63.9 - 20 -29.9 - 10 -52.1 - 20 -29.9 - 0 -MTEXT - 5 -4D -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -57.2 - 20 -21.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -EAST LOBBY\P210.0 m^2 - 0 -LWPOLYLINE - 5 -4F -330 -17 -100 -AcDbEntity - 8 -SPACE_AUDITORIUM -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -12.1 - 20 -26.1 - 10 -33.9 - 20 -26.1 - 10 -33.9 - 20 -41.9 - 10 -12.1 - 20 -41.9 - 0 -MTEXT - 5 -50 -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -22.2 - 20 -34.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -AUDITORIUM\P344.4 m^2 - 0 -LWPOLYLINE - 5 -52 -330 -17 -100 -AcDbEntity - 8 -SPACE_CAFETERIA -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -34.1 - 20 -26.1 - 10 -51.9 - 20 -26.1 - 10 -51.9 - 20 -41.9 - 10 -34.1 - 20 -41.9 - 0 -MTEXT - 5 -53 -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -42.2 - 20 -34.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -CAFETERIA\P281.2 m^2 - 0 -LWPOLYLINE - 5 -55 -330 -17 -100 -AcDbEntity - 8 -SPACE_TRAINING_A -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -12.1 - 20 -0.1 - 10 -25.9 - 20 -0.1 - 10 -25.9 - 20 -15.9 - 10 -12.1 - 20 -15.9 - 0 -MTEXT - 5 -56 -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -18.2 - 20 -8.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -TRAINING A\P218.0 m^2 - 0 -LWPOLYLINE - 5 -58 -330 -17 -100 -AcDbEntity - 8 -SPACE_TRAINING_B -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -26.1 - 20 -0.1 - 10 -39.9 - 20 -0.1 - 10 -39.9 - 20 -15.9 - 10 -26.1 - 20 -15.9 - 0 -MTEXT - 5 -59 -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -32.2 - 20 -8.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -TRAINING B\P218.0 m^2 - 0 -LWPOLYLINE - 5 -5B -330 -17 -100 -AcDbEntity - 8 -SPACE_COMMAND_CENTER -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -40.1 - 20 -0.1 - 10 -51.9 - 20 -0.1 - 10 -51.9 - 20 -15.9 - 10 -40.1 - 20 -15.9 - 0 -MTEXT - 5 -5C -330 -17 -100 -AcDbEntity - 8 -TEXT +TEXT 100 AcDbMText 10 -45.2 +16.1 20 -8.1 +15.7 30 0.0 40 -0.24 +0.28 71 1 1 -COMMAND CENTER\P186.4 m^2 +OFFICE B\P63.0 m^2 0 LWPOLYLINE 5 -5E +43 330 17 100 AcDbEntity 8 -SPACE_WEST_SERVICE +SPACE_MEETING_ROOM 100 AcDbPolyline 90 @@ -3303,25 +2647,25 @@ AcDbPolyline 70 1 10 -0.1 +21.05 20 -0.1 +11.05 10 -11.9 +27.95 20 -0.1 +11.05 10 -11.9 +27.95 20 -11.9 +19.95 10 -0.1 +21.05 20 -11.9 +19.95 0 MTEXT 5 -5F +44 330 17 100 @@ -3331,27 +2675,27 @@ TEXT 100 AcDbMText 10 -5.2 +23.1 20 -6.1 +15.7 30 0.0 40 -0.24 +0.28 71 1 1 -WEST SERVICE\P139.2 m^2 +MEETING ROOM\P63.0 m^2 0 LWPOLYLINE 5 -61 +46 330 17 100 AcDbEntity 8 -SPACE_WEST_BREAKOUT +SPACE_OFFICE_C 100 AcDbPolyline 90 @@ -3359,25 +2703,25 @@ AcDbPolyline 70 1 10 -0.1 +8.05 20 -30.1 +0.05 10 -11.9 +13.95 20 -30.1 +0.05 10 -11.9 +13.95 20 -41.9 +8.95 10 -0.1 +8.05 20 -41.9 +8.95 0 MTEXT 5 -62 +47 330 17 100 @@ -3387,27 +2731,27 @@ TEXT 100 AcDbMText 10 -5.2 +9.6 20 -36.1 +4.7 30 0.0 40 -0.24 +0.28 71 1 1 -WEST BREAKOUT\P139.2 m^2 +OFFICE C\P54.0 m^2 0 LWPOLYLINE 5 -64 +49 330 17 100 AcDbEntity 8 -SPACE_EAST_STORAGE +SPACE_OFFICE_D 100 AcDbPolyline 90 @@ -3415,25 +2759,25 @@ AcDbPolyline 70 1 10 -52.1 +14.05 20 -0.1 +0.05 10 -63.9 +20.95 20 -0.1 +0.05 10 -63.9 +20.95 20 -11.9 +8.95 10 -52.1 +14.05 20 -11.9 +8.95 0 MTEXT 5 -65 +4A 330 17 100 @@ -3443,27 +2787,27 @@ TEXT 100 AcDbMText 10 -57.2 +16.1 20 -6.1 +4.7 30 0.0 40 -0.24 +0.28 71 1 1 -EAST STORAGE\P139.2 m^2 +OFFICE D\P63.0 m^2 0 LWPOLYLINE 5 -67 +4C 330 17 100 AcDbEntity 8 -SPACE_EAST_OPERATIONS +SPACE_OFFICE_E 100 AcDbPolyline 90 @@ -3471,25 +2815,25 @@ AcDbPolyline 70 1 10 -52.1 +21.05 20 -30.1 +0.05 10 -63.9 +27.95 20 -30.1 +0.05 10 -63.9 +27.95 20 -41.9 +8.95 10 -52.1 +21.05 20 -41.9 +8.95 0 MTEXT 5 -68 +4D 330 17 100 @@ -3499,495 +2843,317 @@ TEXT 100 AcDbMText 10 -57.2 - 20 -36.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -EAST OPERATIONS\P139.2 m^2 - 0 -LINE - 5 -69 -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbLine - 10 -12.0 - 20 -19.5 - 30 -0.0 - 11 -12.0 - 21 -22.5 - 31 -0.0 - 0 -ARC - 5 -6A -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbCircle - 10 -12.0 - 20 -19.5 - 30 -0.0 - 40 -1.0 -100 -AcDbArc - 50 -180.0 - 51 -270.0 - 0 -LINE - 5 -6B -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbLine - 10 -52.0 - 20 -19.5 - 30 -0.0 - 11 -52.0 - 21 -22.5 - 31 -0.0 - 0 -ARC - 5 -6C -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbCircle - 10 -52.0 - 20 -19.5 - 30 -0.0 - 40 -1.0 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -LINE - 5 -6D -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbLine - 10 -20.0 - 20 -26.0 - 30 -0.0 - 11 -23.0 - 21 -26.0 - 31 -0.0 - 0 -ARC - 5 -6E -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbCircle - 10 -20.0 +23.1 20 -26.0 +4.7 30 0.0 40 -1.0 -100 -AcDbArc - 50 -0.0 - 51 -90.0 +0.28 + 71 +1 + 1 +OFFICE E\P63.0 m^2 0 -LINE +LWPOLYLINE 5 -6F +4F 330 17 100 AcDbEntity 8 -DOORS +SPACE_EAST_BAY 100 -AcDbLine +AcDbPolyline + 90 +4 + 70 +1 10 -42.0 +28.05 20 -26.0 - 30 -0.0 - 11 -45.0 - 21 -26.0 - 31 -0.0 +0.05 + 10 +35.95 + 20 +0.05 + 10 +35.95 + 20 +19.95 + 10 +28.05 + 20 +19.95 0 -ARC +MTEXT 5 -70 +50 330 17 100 AcDbEntity 8 -DOORS +TEXT 100 -AcDbCircle +AcDbMText 10 -42.0 +30.6 20 -26.0 +10.2 30 0.0 40 -1.0 -100 -AcDbArc - 50 -90.0 - 51 -180.0 +0.28 + 71 +1 + 1 +EAST BAY\P160.0 m^2 0 LINE 5 -71 +51 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 AcDbLine 10 -18.0 +0.0 20 -16.0 +0.0 30 0.0 11 -21.0 +0.0 21 -16.0 +9.0 31 0.0 0 -ARC - 5 -72 -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbCircle - 10 -18.0 - 20 -16.0 - 30 -0.0 - 40 -1.0 -100 -AcDbArc - 50 -270.0 - 51 -360.0 - 0 LINE 5 -73 +52 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 AcDbLine 10 -31.0 +0.0 20 -16.0 +11.0 30 0.0 11 -34.0 +0.0 21 -16.0 +20.0 31 0.0 0 -ARC +LINE 5 -74 +53 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 -AcDbCircle +AcDbLine 10 -31.0 +0.0 20 -16.0 +20.0 30 0.0 - 40 -1.0 -100 -AcDbArc - 50 -270.0 - 51 -360.0 + 11 +36.0 + 21 +20.0 + 31 +0.0 0 LINE 5 -75 +54 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 AcDbLine 10 -45.0 +0.0 20 -16.0 +0.0 30 0.0 11 -48.0 +36.0 21 -16.0 +0.0 31 0.0 0 -ARC +LINE 5 -76 +55 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 -AcDbCircle +AcDbLine 10 -45.0 +36.0 20 -16.0 +0.0 30 0.0 - 40 -1.0 -100 -AcDbArc - 50 -270.0 - 51 -360.0 + 11 +36.0 + 21 +2.0 + 31 +0.0 0 LINE 5 -77 +56 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 AcDbLine 10 -6.0 +36.0 20 -12.0 +4.0 30 0.0 11 -8.5 +36.0 21 -12.0 +20.0 31 0.0 0 -ARC +LINE 5 -78 +57 330 17 100 AcDbEntity 8 -DOORS +EXIT 100 -AcDbCircle +AcDbLine 10 -6.0 +0.0 20 -12.0 +9.0 30 0.0 - 40 -0.9 -100 -AcDbArc - 50 -270.0 - 51 -360.0 + 11 +0.0 + 21 +11.0 + 31 +0.0 0 LINE 5 -79 +58 330 17 100 AcDbEntity 8 -DOORS +EXIT 100 AcDbLine 10 -6.0 +36.0 20 -30.0 +2.0 30 0.0 11 -8.5 +36.0 21 -30.0 +4.0 31 0.0 0 -ARC +LINE 5 -7A +59 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 -AcDbCircle +AcDbLine 10 -6.0 +8.0 20 -30.0 +0.0 30 0.0 - 40 -0.9 -100 -AcDbArc - 50 + 11 +8.0 + 21 +9.0 + 31 0.0 - 51 -90.0 0 LINE 5 -7B +5A 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 AcDbLine 10 -57.0 +8.0 20 -12.0 +11.0 30 0.0 11 -59.5 +8.0 21 -12.0 +20.0 31 0.0 0 -ARC +LINE 5 -7C +5B 330 17 100 @@ -3995,595 +3161,527 @@ AcDbEntity 8 DOORS 100 -AcDbCircle +AcDbLine 10 -57.0 +8.0 20 -12.0 +9.0 30 0.0 - 40 -0.9 -100 -AcDbArc - 50 -270.0 - 51 -360.0 + 11 +8.0 + 21 +11.0 + 31 +0.0 0 LINE 5 -7D +5C 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 AcDbLine 10 -57.0 +14.0 20 -30.0 +11.0 30 0.0 11 -59.5 +14.0 21 -30.0 +20.0 31 0.0 0 -ARC +LINE 5 -7E +5D 330 17 100 AcDbEntity 8 -DOORS +WALLS 100 -AcDbCircle +AcDbLine 10 -57.0 +21.0 20 -30.0 +11.0 30 0.0 - 40 -0.9 -100 -AcDbArc - 50 + 11 +21.0 + 21 +20.0 + 31 0.0 - 51 -90.0 0 LINE 5 -7F +5E 330 17 100 AcDbEntity 8 -EXIT +WALLS 100 AcDbLine 10 -0.0 +14.0 20 -18.0 +0.0 30 0.0 11 -0.0 +14.0 21 -21.0 +9.0 31 0.0 0 LINE 5 -80 +5F 330 17 100 AcDbEntity 8 -EXIT +WALLS 100 AcDbLine 10 -0.0 +21.0 20 -35.0 +0.0 30 0.0 11 -0.0 +21.0 21 -38.0 +9.0 31 0.0 0 LINE 5 -81 +60 330 17 100 AcDbEntity 8 -EXIT +WALLS 100 AcDbLine 10 -18.0 +8.0 20 -42.0 +11.0 30 0.0 11 -21.0 +10.5 21 -42.0 +11.0 31 0.0 0 LINE 5 -82 +61 330 17 100 AcDbEntity 8 -EXIT +DOORS 100 AcDbLine 10 -43.0 +10.5 20 -42.0 +11.0 30 0.0 11 -46.0 +11.5 21 -42.0 +11.0 31 0.0 0 LINE 5 -83 +62 330 17 100 AcDbEntity 8 -EXIT +WALLS 100 AcDbLine 10 -64.0 +11.5 20 -18.0 +11.0 30 0.0 11 -64.0 +17.0 21 -21.0 +11.0 31 0.0 0 LINE 5 -84 +63 330 17 100 AcDbEntity 8 -EXIT +DOORS 100 AcDbLine 10 -64.0 +17.0 20 -34.0 +11.0 30 0.0 11 -64.0 +18.0 21 -37.0 +11.0 31 0.0 0 LINE 5 -85 +64 330 17 100 AcDbEntity 8 -EXIT +WALLS 100 AcDbLine 10 18.0 20 -0.0 +11.0 30 0.0 11 -21.0 +24.0 21 -0.0 +11.0 31 0.0 0 LINE 5 -86 +65 330 17 100 AcDbEntity 8 -EXIT +DOORS 100 AcDbLine 10 -44.0 +24.0 20 -0.0 +11.0 30 0.0 11 -47.0 +25.0 21 -0.0 +11.0 31 0.0 0 LINE 5 -87 +66 330 17 100 AcDbEntity 8 -WINDOWS +WALLS 100 AcDbLine 10 -0.0 +25.0 20 -23.0 +11.0 30 0.0 11 -0.0 +28.0 21 -27.0 +11.0 31 0.0 0 LINE 5 -88 +67 330 17 100 AcDbEntity 8 -WINDOWS +WALLS 100 AcDbLine 10 -14.0 +8.0 20 -42.0 +9.0 30 0.0 11 -17.0 +10.5 21 -42.0 +9.0 31 0.0 0 LINE 5 -89 +68 330 17 100 AcDbEntity 8 -WINDOWS +DOORS 100 AcDbLine 10 -28.0 +10.5 20 -42.0 +9.0 30 0.0 11 -31.0 +11.5 21 -42.0 +9.0 31 0.0 0 LINE 5 -8A +69 330 17 100 AcDbEntity 8 -WINDOWS +WALLS 100 AcDbLine 10 -36.0 +11.5 20 -42.0 +9.0 30 0.0 11 -39.0 +17.0 21 -42.0 +9.0 31 0.0 0 LINE 5 -8B +6A 330 17 100 AcDbEntity 8 -WINDOWS +DOORS 100 AcDbLine 10 -64.0 +17.0 20 -24.0 +9.0 30 0.0 11 -64.0 +18.0 21 -28.0 +9.0 31 0.0 0 LINE 5 -8C +6B 330 17 100 AcDbEntity 8 -WINDOWS +WALLS 100 AcDbLine 10 -24.0 +18.0 20 -0.0 +9.0 30 0.0 11 -27.0 +24.0 21 -0.0 +9.0 31 0.0 0 LINE 5 -8D +6C 330 17 100 AcDbEntity 8 -WINDOWS +DOORS 100 AcDbLine 10 -48.0 +24.0 20 -0.0 +9.0 30 0.0 11 -51.0 +25.0 21 -0.0 +9.0 31 0.0 0 -LWPOLYLINE - 5 -8E -330 -17 -100 -AcDbEntity - 8 -OBSTACLE -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -20.0 - 20 -19.0 - 10 -21.5 - 20 -19.0 - 10 -21.5 - 20 -20.5 - 10 -20.0 - 20 -20.5 - 0 -LWPOLYLINE +LINE 5 -8F +6D 330 17 100 AcDbEntity 8 -OBSTACLE +WALLS 100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -30.0 - 20 -19.0 - 10 -31.5 - 20 -19.0 - 10 -31.5 - 20 -20.5 +AcDbLine 10 -30.0 +25.0 20 -20.5 +9.0 + 30 +0.0 + 11 +28.0 + 21 +9.0 + 31 +0.0 0 -LWPOLYLINE +LINE 5 -90 +6E 330 17 100 AcDbEntity 8 -OBSTACLE +WALLS 100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -40.0 - 20 -19.0 - 10 -41.5 - 20 -19.0 - 10 -41.5 - 20 -20.5 +AcDbLine 10 -40.0 +28.0 20 -20.5 +0.0 + 30 +0.0 + 11 +28.0 + 21 +9.0 + 31 +0.0 0 -LWPOLYLINE +LINE 5 -91 +6F 330 17 100 AcDbEntity 8 -OBSTACLE +WALLS 100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -20.0 - 20 -21.5 - 10 -21.5 - 20 -21.5 +AcDbLine 10 -21.5 +28.0 20 -23.0 - 10 +11.0 + 30 +0.0 + 11 +28.0 + 21 20.0 - 20 -23.0 + 31 +0.0 0 -LWPOLYLINE +LINE 5 -92 +70 330 17 100 AcDbEntity 8 -OBSTACLE +DOORS 100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -30.0 - 20 -21.5 - 10 -31.5 - 20 -21.5 - 10 -31.5 - 20 -23.0 +AcDbLine 10 -30.0 +28.0 20 -23.0 +9.0 + 30 +0.0 + 11 +28.0 + 21 +11.0 + 31 +0.0 0 LWPOLYLINE 5 -93 +71 330 17 100 @@ -4597,25 +3695,25 @@ AcDbPolyline 70 1 10 -40.0 +2.0 20 -21.5 +8.5 10 -41.5 +5.5 20 -21.5 +8.5 10 -41.5 +5.5 20 -23.0 +11.5 10 -40.0 +2.0 20 -23.0 +11.5 0 LWPOLYLINE 5 -94 +72 330 17 100 @@ -4629,25 +3727,25 @@ AcDbPolyline 70 1 10 -17.0 +13.0 20 -31.0 +9.5 10 -18.5 +13.5 20 -31.0 +9.5 10 -18.5 +13.5 20 -32.5 +10.5 10 -17.0 +13.0 20 -32.5 +10.5 0 LWPOLYLINE 5 -95 +73 330 17 100 @@ -4661,25 +3759,25 @@ AcDbPolyline 70 1 10 -24.0 +20.0 20 -31.0 +9.5 10 -25.5 +20.5 20 -31.0 +9.5 10 -25.5 +20.5 20 -32.5 +10.5 10 -24.0 +20.0 20 -32.5 +10.5 0 LWPOLYLINE 5 -96 +74 330 17 100 @@ -4693,85 +3791,21 @@ AcDbPolyline 70 1 10 -38.0 - 20 -32.0 - 10 -40.5 - 20 32.0 - 10 -40.5 - 20 -34.0 - 10 -38.0 - 20 -34.0 - 0 -LWPOLYLINE - 5 -97 -330 -17 -100 -AcDbEntity - 8 -OBSTACLE -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -43.0 - 20 -6.0 - 10 -45.5 - 20 -6.0 - 10 -45.5 20 8.0 10 -43.0 +34.5 20 8.0 - 0 -LWPOLYLINE - 5 -98 -330 -17 -100 -AcDbEntity - 8 -OBSTACLE -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -55.0 - 20 -34.0 - 10 -57.0 - 20 -34.0 10 -57.0 +34.5 20 -36.5 +12.0 10 -55.0 +32.0 20 -36.5 +12.0 0 ENDSEC 0 @@ -5763,7 +4797,7 @@ CREATED_BY_EZDXF 3 WRITTEN_BY_EZDXF 350 -9B +77 0 DICTIONARYVAR 5 @@ -5775,11 +4809,11 @@ DictionaryVariables 280 0 1 -1.4.2 @ 2026-04-07T06:14:25.712109+00:00 +1.4.3 @ 2026-05-03T06:05:36.038377+00:00 0 DICTIONARYVAR 5 -9B +77 330 2D 100 @@ -5787,7 +4821,7 @@ DictionaryVariables 280 0 1 -1.4.2 @ 2026-04-07T06:14:25.715931+00:00 +1.4.3 @ 2026-05-03T06:05:36.040889+00:00 0 ENDSEC 0 diff --git a/assets/demo-layouts/generate_demo_layouts.py b/assets/demo-layouts/generate_demo_layouts.py new file mode 100644 index 0000000..8d7d584 --- /dev/null +++ b/assets/demo-layouts/generate_demo_layouts.py @@ -0,0 +1,272 @@ +"""Generate Sprint 1 시연용 DXF 평면 자산. + +각 평면은 SafeCrowd DXF 임포터의 레이어 규약을 따른다. +- WALLS: 벽 라인 (Wall) +- DOORS: 내부 도어 라인 (Opening) +- EXIT: 외부 출구 라인 (Exit) +- WINDOWS: 창문 라인 (참고용) +- OBSTACLE: 장애물 폴리곤 (Obstacle) +- SPACE_*: 닫힌 폴리라인으로 정의되는 보행 가능 구역 (Walkable) +- TEXT: 라벨/타이틀 + +3종 평면은 시뮬레이션 결과 지표가 서로 다르게 나오도록 의도적으로 설계되었다. +README.md 의 "시연 강조 지표" 섹션을 참고하라. +""" + +from __future__ import annotations + +from pathlib import Path + +import ezdxf +from ezdxf import units + + +OUTPUT_DIR = Path(__file__).resolve().parent + + +def _ensure_layer(doc, name: str, color: int) -> None: + if name not in doc.layers: + doc.layers.add(name, color=color) + + +def _new_document(): + doc = ezdxf.new("R2010") + doc.units = units.M + + _ensure_layer(doc, "WALLS", 7) + _ensure_layer(doc, "DOORS", 3) + _ensure_layer(doc, "EXIT", 1) + _ensure_layer(doc, "WINDOWS", 5) + _ensure_layer(doc, "TEXT", 2) + _ensure_layer(doc, "OBSTACLE", 6) + + return doc, doc.modelspace() + + +def _add_space(doc, msp, name: str, x1: float, y1: float, x2: float, y2: float, color: int = 4) -> None: + layer = f"SPACE_{name.upper().replace(' ', '_')}" + _ensure_layer(doc, layer, color) + # 닫힌 폴리라인. 외부 벽과 미세하게 어긋나도록 안쪽으로 살짝 들여서 그린다. + inset = 0.05 + msp.add_lwpolyline( + [ + (x1 + inset, y1 + inset), + (x2 - inset, y1 + inset), + (x2 - inset, y2 - inset), + (x1 + inset, y2 - inset), + ], + close=True, + dxfattribs={"layer": layer}, + ) + + area = abs((x2 - x1) * (y2 - y1)) + msp.add_mtext( + f"{name.upper()}\\P{area:.1f} m^2", + dxfattribs={ + "layer": "TEXT", + "char_height": 0.28, + "insert": ((x1 + x2) / 2.0 - 1.4, (y1 + y2) / 2.0 + 0.2), + }, + ) + + +def _add_wall(msp, start, end) -> None: + msp.add_line(start, end, dxfattribs={"layer": "WALLS"}) + + +def _add_door(msp, start, end) -> None: + msp.add_line(start, end, dxfattribs={"layer": "DOORS"}) + + +def _add_exit(msp, start, end) -> None: + msp.add_line(start, end, dxfattribs={"layer": "EXIT"}) + + +def _add_obstacle(msp, x1, y1, x2, y2) -> None: + msp.add_lwpolyline( + [(x1, y1), (x2, y1), (x2, y2), (x1, y2)], + close=True, + dxfattribs={"layer": "OBSTACLE"}, + ) + + +def _add_title(msp, title: str, subtitle: str) -> None: + msp.add_mtext( + f"{title}\\P{subtitle}", + dxfattribs={"layer": "TEXT", "char_height": 0.34, "insert": (0.2, -1.6)}, + ) + + +# ---------------------------------------------------------------------------- +# 1. bottleneck_hall.dxf +# ---------------------------------------------------------------------------- +# 의도: 하나의 큰 홀 + 단일 좁은 출구. 출구 폭이 좁아 군중이 정체되며 +# 피크 밀도, 고밀도 지속 시간, t90/t95 가 길어진다. +def build_bottleneck_hall(path: Path) -> None: + doc, msp = _new_document() + + _add_title( + msp, + "BOTTLENECK HALL", + "30x20m 단일 홀 / 1.0m 단일 출구 - 병목 시연", + ) + + # 보행 가능 공간 + _add_space(doc, msp, "Main Hall", 0.0, 0.0, 30.0, 20.0) + + # 외벽 (동쪽 중앙에 1.0m 출구 갭) + _add_wall(msp, (0.0, 0.0), (30.0, 0.0)) # south + _add_wall(msp, (0.0, 20.0), (30.0, 20.0)) # north + _add_wall(msp, (0.0, 0.0), (0.0, 20.0)) # west + _add_wall(msp, (30.0, 0.0), (30.0, 9.5)) # east-south + _add_wall(msp, (30.0, 10.5), (30.0, 20.0)) # east-north + + # 단일 출구 + _add_exit(msp, (30.0, 9.5), (30.0, 10.5)) + + # 내부 컬럼 (군중 흐름에 약간의 분산/우회 효과) + _add_obstacle(msp, 9.0, 9.0, 10.0, 11.0) + _add_obstacle(msp, 19.0, 9.0, 20.0, 11.0) + _add_obstacle(msp, 14.0, 4.0, 15.0, 6.0) + _add_obstacle(msp, 14.0, 14.0, 15.0, 16.0) + + doc.saveas(path) + + +# ---------------------------------------------------------------------------- +# 2. multi_exit_concourse.dxf +# ---------------------------------------------------------------------------- +# 의도: bottleneck_hall 과 동일 크기·동일 컬럼 배치 + 출구 3개 (동/북/남). +# 동일 군중 시나리오로 비교했을 때 t90·피크 밀도·고밀도 지속이 모두 줄고, +# ExitUsage 가 3 출구로 분산된다. +def build_multi_exit_concourse(path: Path) -> None: + doc, msp = _new_document() + + _add_title( + msp, + "MULTI-EXIT CONCOURSE", + "30x20m 단일 홀 / 1.0m 출구 3개 (E/N/S) - 다출구 분산 시연", + ) + + _add_space(doc, msp, "Main Hall", 0.0, 0.0, 30.0, 20.0) + + # 외벽 (출구 갭 3개: 동쪽 중앙, 북쪽 중앙, 남쪽 중앙) + # 남 + _add_wall(msp, (0.0, 0.0), (14.5, 0.0)) + _add_wall(msp, (15.5, 0.0), (30.0, 0.0)) + # 북 + _add_wall(msp, (0.0, 20.0), (14.5, 20.0)) + _add_wall(msp, (15.5, 20.0), (30.0, 20.0)) + # 서 (출구 없음) + _add_wall(msp, (0.0, 0.0), (0.0, 20.0)) + # 동 + _add_wall(msp, (30.0, 0.0), (30.0, 9.5)) + _add_wall(msp, (30.0, 10.5), (30.0, 20.0)) + + # 출구 3개 + _add_exit(msp, (30.0, 9.5), (30.0, 10.5)) # 동쪽 + _add_exit(msp, (14.5, 20.0), (15.5, 20.0)) # 북쪽 + _add_exit(msp, (14.5, 0.0), (15.5, 0.0)) # 남쪽 + + # 동일 컬럼 배치 (병목 평면과 직접 비교가 가능하도록) + _add_obstacle(msp, 9.0, 9.0, 10.0, 11.0) + _add_obstacle(msp, 19.0, 9.0, 20.0, 11.0) + _add_obstacle(msp, 14.0, 4.0, 15.0, 6.0) + _add_obstacle(msp, 14.0, 14.0, 15.0, 16.0) + + doc.saveas(path) + + +# ---------------------------------------------------------------------------- +# 3. branched_corridor_office.dxf +# ---------------------------------------------------------------------------- +# 의도: 사무실 평면. 6개 룸이 중앙 복도에 모이고, 출구 2개가 비대칭으로 배치되어 +# ZoneCompletion 차등 / ExitUsage 비대칭 / 복도 셀 고밀도 지속이 발생한다. +def build_branched_corridor_office(path: Path) -> None: + doc, msp = _new_document() + + _add_title( + msp, + "BRANCHED CORRIDOR OFFICE", + "36x20m 사무실 / 6 룸 + 중앙 복도 / 비대칭 2 출구 - 현실 시연", + ) + + # 보행 가능 구역 + _add_space(doc, msp, "West Lobby", 0.0, 0.0, 8.0, 20.0) + _add_space(doc, msp, "Corridor", 8.0, 9.0, 28.0, 11.0) + _add_space(doc, msp, "Office A", 8.0, 11.0, 14.0, 20.0) + _add_space(doc, msp, "Office B", 14.0, 11.0, 21.0, 20.0) + _add_space(doc, msp, "Meeting Room", 21.0, 11.0, 28.0, 20.0) + _add_space(doc, msp, "Office C", 8.0, 0.0, 14.0, 9.0) + _add_space(doc, msp, "Office D", 14.0, 0.0, 21.0, 9.0) + _add_space(doc, msp, "Office E", 21.0, 0.0, 28.0, 9.0) + _add_space(doc, msp, "East Bay", 28.0, 0.0, 36.0, 20.0) + + # 외벽 (서쪽 중앙 2.0m 출구, 동쪽 남단 2.0m 출구) + # 서 + _add_wall(msp, (0.0, 0.0), (0.0, 9.0)) + _add_wall(msp, (0.0, 11.0), (0.0, 20.0)) + # 북 + _add_wall(msp, (0.0, 20.0), (36.0, 20.0)) + # 남 + _add_wall(msp, (0.0, 0.0), (36.0, 0.0)) + # 동측 외벽: (36,0)-(36,2) 솔리드, (36,2)-(36,4) 출구 갭, (36,4)-(36,20) 솔리드 + _add_wall(msp, (36.0, 0.0), (36.0, 2.0)) + _add_wall(msp, (36.0, 4.0), (36.0, 20.0)) + + # 출구 + _add_exit(msp, (0.0, 9.0), (0.0, 11.0)) # 서측 중앙 + _add_exit(msp, (36.0, 2.0), (36.0, 4.0)) # 동측 남단 + + # 내벽: 로비 ↔ 복도 (도어 (8,9)-(8,11) 개방) + _add_wall(msp, (8.0, 0.0), (8.0, 9.0)) + _add_wall(msp, (8.0, 11.0), (8.0, 20.0)) + _add_door(msp, (8.0, 9.0), (8.0, 11.0)) + + # 북측 룸 분리벽 + _add_wall(msp, (14.0, 11.0), (14.0, 20.0)) + _add_wall(msp, (21.0, 11.0), (21.0, 20.0)) + # 남측 룸 분리벽 + _add_wall(msp, (14.0, 0.0), (14.0, 9.0)) + _add_wall(msp, (21.0, 0.0), (21.0, 9.0)) + + # 복도 ↔ 북측 룸 (각 1m 도어) + _add_wall(msp, (8.0, 11.0), (10.5, 11.0)) + _add_door(msp, (10.5, 11.0), (11.5, 11.0)) + _add_wall(msp, (11.5, 11.0), (17.0, 11.0)) + _add_door(msp, (17.0, 11.0), (18.0, 11.0)) + _add_wall(msp, (18.0, 11.0), (24.0, 11.0)) + _add_door(msp, (24.0, 11.0), (25.0, 11.0)) + _add_wall(msp, (25.0, 11.0), (28.0, 11.0)) + + # 복도 ↔ 남측 룸 (각 1m 도어) + _add_wall(msp, (8.0, 9.0), (10.5, 9.0)) + _add_door(msp, (10.5, 9.0), (11.5, 9.0)) + _add_wall(msp, (11.5, 9.0), (17.0, 9.0)) + _add_door(msp, (17.0, 9.0), (18.0, 9.0)) + _add_wall(msp, (18.0, 9.0), (24.0, 9.0)) + _add_door(msp, (24.0, 9.0), (25.0, 9.0)) + _add_wall(msp, (25.0, 9.0), (28.0, 9.0)) + + # 복도 ↔ 동측 베이 (도어 (28,9)-(28,11) 개방) + _add_wall(msp, (28.0, 0.0), (28.0, 9.0)) + _add_wall(msp, (28.0, 11.0), (28.0, 20.0)) + _add_door(msp, (28.0, 9.0), (28.0, 11.0)) + + # 장애물 (로비 리셉션, 복도 컬럼, 동쪽 베이 가구) + _add_obstacle(msp, 2.0, 8.5, 5.5, 11.5) # 로비 중앙 리셉션 (출구 옆) + _add_obstacle(msp, 13.0, 9.5, 13.5, 10.5) # 복도 컬럼 + _add_obstacle(msp, 20.0, 9.5, 20.5, 10.5) # 복도 컬럼 + _add_obstacle(msp, 32.0, 8.0, 34.5, 12.0) # 동쪽 베이 가구섬 + + doc.saveas(path) + + +def main() -> None: + build_bottleneck_hall(OUTPUT_DIR / "bottleneck_hall.dxf") + build_multi_exit_concourse(OUTPUT_DIR / "multi_exit_concourse.dxf") + build_branched_corridor_office(OUTPUT_DIR / "branched_corridor_office.dxf") + + +if __name__ == "__main__": + main() diff --git a/tests/dxf/home_plan.dxf b/assets/demo-layouts/multi_exit_concourse.dxf similarity index 87% rename from tests/dxf/home_plan.dxf rename to assets/demo-layouts/multi_exit_concourse.dxf index b01554d..e00b9bc 100644 --- a/tests/dxf/home_plan.dxf +++ b/assets/demo-layouts/multi_exit_concourse.dxf @@ -489,7 +489,7 @@ $SKPOLY 9 $TDCREATE 40 -2461138.6350115743 +2461164.6288888888 9 $TDUCREATE 40 @@ -497,7 +497,7 @@ $TDUCREATE 9 $TDUPDATE 40 -2461138.6350115743 +2461164.6288888888 9 $TDUUPDATE 40 @@ -549,7 +549,7 @@ $SPLINESEGS 9 $HANDSEED 5 -59 +4A 9 $SURFTAB1 70 @@ -929,11 +929,11 @@ $PSTYLEMODE 9 $FINGERPRINTGUID 2 -{7F8C12D3-6229-44E2-AADD-C5B2452CBB51} +{5EAD314D-362F-4C95-928E-CEF2584EF955} 9 $VERSIONGUID 2 -{E2D7A65D-E728-43E9-BD0F-CA8B1391CCA9} +{A476D9A2-7A2C-44F8-8FDB-D5FC12008F0B} 9 $EXTNAMES 290 @@ -1549,7 +1549,7 @@ LAYER 100 AcDbSymbolTable 70 -13 +9 0 LAYER 5 @@ -1747,103 +1747,7 @@ Continuous 0 LAYER 5 -3D -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -SPACE_LIVING_ROOM - 70 -0 - 62 -4 - 6 -Continuous -370 --3 -390 -13 -347 -21 - 0 -LAYER - 5 -40 -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -SPACE_KITCHEN - 70 -0 - 62 -4 - 6 -Continuous -370 --3 -390 -13 -347 -21 - 0 -LAYER - 5 -43 -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -SPACE_DINING - 70 -0 - 62 -4 - 6 -Continuous -370 --3 -390 -13 -347 -21 - 0 -LAYER - 5 -46 -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -SPACE_BEDROOM - 70 -0 - 62 -4 - 6 -Continuous -370 --3 -390 -13 -347 -21 - 0 -LAYER - 5 -49 +36 330 1 100 @@ -1851,7 +1755,7 @@ AcDbSymbolTableRecord 100 AcDbLayerTableRecord 2 -SPACE_BATH +SPACE_MAIN_HALL 70 0 62 @@ -1965,7 +1869,7 @@ ACAD 0 APPID 5 -56 +47 330 3 100 @@ -1979,7 +1883,7 @@ HATCHBACKGROUNDCOLOR 0 APPID 5 -57 +48 330 3 100 @@ -2301,7 +2205,63 @@ AcDbMText 10 0.2 20 --1.2 +-1.6 + 30 +0.0 + 40 +0.34 + 71 +1 + 1 +MULTI-EXIT CONCOURSE\P30x20m 단일 홀 / 1.0m 출구 3개 (E/N/S) - 다출구 분산 시연 + 0 +LWPOLYLINE + 5 +37 +330 +17 +100 +AcDbEntity + 8 +SPACE_MAIN_HALL +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +0.05 + 20 +0.05 + 10 +29.95 + 20 +0.05 + 10 +29.95 + 20 +19.95 + 10 +0.05 + 20 +19.95 + 0 +MTEXT + 5 +38 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +13.6 + 20 +10.2 30 0.0 40 @@ -2309,11 +2269,11 @@ AcDbMText 71 1 1 -HOME PLAN SAMPLE\PGenerated from a plan2dxf-style workflow for SafeCrowd tests +MAIN HALL\P600.0 m^2 0 LINE 5 -36 +39 330 17 100 @@ -2329,7 +2289,7 @@ AcDbLine 30 0.0 11 -10.0 +14.5 21 0.0 31 @@ -2337,7 +2297,7 @@ AcDbLine 0 LINE 5 -37 +3A 330 17 100 @@ -2347,21 +2307,21 @@ WALLS 100 AcDbLine 10 -10.0 +15.5 20 0.0 30 0.0 11 -10.0 +30.0 21 -8.0 +0.0 31 0.0 0 LINE 5 -38 +3B 330 17 100 @@ -2371,21 +2331,21 @@ WALLS 100 AcDbLine 10 -10.0 +0.0 20 -8.0 +20.0 30 0.0 11 -0.0 +14.5 21 -8.0 +20.0 31 0.0 0 LINE 5 -39 +3C 330 17 100 @@ -2395,21 +2355,21 @@ WALLS 100 AcDbLine 10 -0.0 +15.5 20 -8.0 +20.0 30 0.0 11 -0.0 +30.0 21 -0.0 +20.0 31 0.0 0 LINE 5 -3A +3D 330 17 100 @@ -2419,21 +2379,21 @@ WALLS 100 AcDbLine 10 -4.8 +0.0 20 0.0 30 0.0 11 -4.8 +0.0 21 -5.0 +20.0 31 0.0 0 LINE 5 -3B +3E 330 17 100 @@ -2443,21 +2403,21 @@ WALLS 100 AcDbLine 10 -0.0 +30.0 20 -5.0 +0.0 30 0.0 11 -10.0 +30.0 21 -5.0 +9.5 31 0.0 0 LINE 5 -3C +3F 330 17 100 @@ -2467,83 +2427,99 @@ WALLS 100 AcDbLine 10 -7.2 +30.0 20 -5.0 +10.5 30 0.0 11 -7.2 +30.0 21 -8.0 +20.0 31 0.0 0 -LWPOLYLINE +LINE 5 -3E +40 330 17 100 AcDbEntity 8 -SPACE_LIVING_ROOM +EXIT 100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -0.1 - 20 -0.1 - 10 -4.7 - 20 -0.1 +AcDbLine 10 -4.7 +30.0 20 -4.9 +9.5 + 30 +0.0 + 11 +30.0 + 21 +10.5 + 31 +0.0 + 0 +LINE + 5 +41 +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine 10 -0.1 +14.5 20 -4.9 +20.0 + 30 +0.0 + 11 +15.5 + 21 +20.0 + 31 +0.0 0 -MTEXT +LINE 5 -3F +42 330 17 100 AcDbEntity 8 -TEXT +EXIT 100 -AcDbMText +AcDbLine 10 -1.5999999999999999 +14.5 20 -2.6 +0.0 30 0.0 - 40 -0.24 - 71 -1 - 1 -LIVING ROOM\P22.1 m^2 + 11 +15.5 + 21 +0.0 + 31 +0.0 0 LWPOLYLINE 5 -41 +43 330 17 100 AcDbEntity 8 -SPACE_KITCHEN +OBSTACLE 100 AcDbPolyline 90 @@ -2551,55 +2527,31 @@ AcDbPolyline 70 1 10 -4.9 +9.0 20 -0.1 +9.0 10 -9.9 +10.0 20 -0.1 +9.0 10 -9.9 +10.0 20 -2.9 +11.0 10 -4.9 +9.0 20 -2.9 +11.0 0 -MTEXT +LWPOLYLINE 5 -42 +44 330 17 100 AcDbEntity 8 -TEXT -100 -AcDbMText - 10 -6.6000000000000005 - 20 -1.6 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -KITCHEN\P14.0 m^2 - 0 -LWPOLYLINE - 5 -44 -330 -17 -100 -AcDbEntity - 8 -SPACE_DINING +OBSTACLE 100 AcDbPolyline 90 @@ -2607,111 +2559,31 @@ AcDbPolyline 70 1 10 -4.9 - 20 -3.1 - 10 -9.9 - 20 -3.1 - 10 -9.9 +19.0 20 -4.9 +9.0 10 -4.9 - 20 -4.9 - 0 -MTEXT - 5 -45 -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -6.6000000000000005 - 20 -4.1 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -DINING\P9.0 m^2 - 0 -LWPOLYLINE - 5 -47 -330 -17 -100 -AcDbEntity - 8 -SPACE_BEDROOM -100 -AcDbPolyline - 90 -4 - 70 -1 - 10 -0.1 - 20 -5.1 - 10 -7.1 - 20 -5.1 - 10 -7.1 +20.0 20 -7.9 +9.0 10 -0.1 +20.0 20 -7.9 - 0 -MTEXT - 5 -48 -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText +11.0 10 -2.8 +19.0 20 -6.6 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -BEDROOM\P19.6 m^2 +11.0 0 LWPOLYLINE 5 -4A +45 330 17 100 AcDbEntity 8 -SPACE_BATH +OBSTACLE 100 AcDbPolyline 90 @@ -2719,271 +2591,25 @@ AcDbPolyline 70 1 10 -7.3 - 20 -5.1 - 10 -9.9 - 20 -5.1 - 10 -9.9 - 20 -7.9 - 10 -7.3 - 20 -7.9 - 0 -MTEXT - 5 -4B -330 -17 -100 -AcDbEntity - 8 -TEXT -100 -AcDbMText - 10 -7.8 - 20 -6.6 - 30 -0.0 - 40 -0.24 - 71 -1 - 1 -BATH\P7.3 m^2 - 0 -LINE - 5 -4C -330 -17 -100 -AcDbEntity - 8 -EXIT -100 -AcDbLine - 10 -2.0 - 20 -0.0 - 30 -0.0 - 11 -2.9 - 21 -0.0 - 31 -0.0 - 0 -ARC - 5 -4D -330 -17 -100 -AcDbEntity - 8 -EXIT -100 -AcDbCircle - 10 -2.0 - 20 -0.0 - 30 -0.0 - 40 -0.9 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -LINE - 5 -4E -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbLine - 10 -4.8 - 20 -2.0 - 30 -0.0 - 11 -4.8 - 21 -2.9 - 31 -0.0 - 0 -ARC - 5 -4F -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbCircle - 10 -4.8 - 20 -2.0 - 30 -0.0 - 40 -0.9 -100 -AcDbArc - 50 -0.0 - 51 -90.0 - 0 -LINE - 5 -50 -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbLine - 10 -7.2 - 20 -6.2 - 30 -0.0 - 11 -7.2 - 21 -7.0 - 31 -0.0 - 0 -ARC - 5 -51 -330 -17 -100 -AcDbEntity - 8 -DOORS -100 -AcDbCircle - 10 -7.2 +14.0 20 -6.2 - 30 -0.0 - 40 -0.8 -100 -AcDbArc - 50 -180.0 - 51 -270.0 - 0 -LINE - 5 -52 -330 -17 -100 -AcDbEntity - 8 -WINDOWS -100 -AcDbLine +4.0 10 -0.0 +15.0 20 -6.1 - 30 -0.0 - 11 -0.0 - 21 -7.2 - 31 -0.0 - 0 -LINE - 5 -53 -330 -17 -100 -AcDbEntity - 8 -WINDOWS -100 -AcDbLine +4.0 10 -8.1 +15.0 20 -8.0 - 30 -0.0 - 11 -9.3 - 21 -8.0 - 31 -0.0 - 0 -LINE - 5 -54 -330 -17 -100 -AcDbEntity - 8 -WINDOWS -100 -AcDbLine +6.0 10 -10.0 +14.0 20 -1.0 - 30 -0.0 - 11 -10.0 - 21 -2.2 - 31 -0.0 +6.0 0 LWPOLYLINE 5 -55 +46 330 17 100 @@ -2997,21 +2623,21 @@ AcDbPolyline 70 1 10 -6.2 +14.0 20 -1.0 +14.0 10 -7.3 +15.0 20 -1.0 +14.0 10 -7.3 +15.0 20 -1.8 +16.0 10 -6.2 +14.0 20 -1.8 +16.0 0 ENDSEC 0 @@ -4003,7 +3629,7 @@ CREATED_BY_EZDXF 3 WRITTEN_BY_EZDXF 350 -58 +49 0 DICTIONARYVAR 5 @@ -4015,11 +3641,11 @@ DictionaryVariables 280 0 1 -1.4.2 @ 2026-04-07T06:14:25.689174+00:00 +1.4.3 @ 2026-05-03T06:05:36.032460+00:00 0 DICTIONARYVAR 5 -58 +49 330 2D 100 @@ -4027,7 +3653,7 @@ DictionaryVariables 280 0 1 -1.4.2 @ 2026-04-07T06:14:25.694151+00:00 +1.4.3 @ 2026-05-03T06:05:36.034367+00:00 0 ENDSEC 0 diff --git a/docs/README.md b/docs/README.md index c2333f3..3354460 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,6 +8,7 @@ - `process/`: GitHub Project, 이슈/PR 규칙 같은 협업 절차 - `product/`: 개요, 사용자 시나리오, 위험 정의, 백로그 같은 제품 요구와 범위 - `references/`: 외부 조사 자료와 튜토리얼. 기준 문서의 보조 근거로만 사용 +- `demo/`: 시연 시 사용하는 평면 자산과 시연 흐름 가이드 - `제출용/`: 학교 제출 산출물. 저장소 운영 기준 문서와 분리해 보관 - `UI.md`: 앱 화면 흐름, 기능 기준, Sprint별 UI 개선 체크리스트 @@ -22,6 +23,7 @@ - [product/고급 위험 모델.md](product/고급 위험 모델.md) - [product/Product Backlog.md](product/Product Backlog.md) - [product/Sprint 시연 계획.md]() +- [demo/시연 평면 가이드.md]() ## 유지 규칙 diff --git "a/docs/demo/\354\213\234\354\227\260 \355\217\211\353\251\264 \352\260\200\354\235\264\353\223\234.md" "b/docs/demo/\354\213\234\354\227\260 \355\217\211\353\251\264 \352\260\200\354\235\264\353\223\234.md" new file mode 100644 index 0000000..d1e71da --- /dev/null +++ "b/docs/demo/\354\213\234\354\227\260 \355\217\211\353\251\264 \352\260\200\354\235\264\353\223\234.md" @@ -0,0 +1,58 @@ +# 시연 평면 가이드 + +Sprint 1 시연에서 사용할 도면 자산과 각 도면이 강조하는 결과 지표를 정리합니다. +도면 파일은 [`assets/demo-layouts/`](../../assets/demo-layouts/) 에 있습니다. + +## 시연 흐름 요약 + +1. 새 프로젝트 생성 → DXF 임포트 +2. 임포트 리뷰 (검증 이슈 확인) +3. 시나리오 작성 (군중 배치 / 목표 시간) +4. 시뮬레이션 실행 +5. 결과 화면에서 지표 확인 (대피 시간, 피크 밀도, 출구 사용, 존 완료, 리플레이) + +각 평면마다 같은 군중 인원·같은 목표 시간을 적용해 시연하면 결과 지표 차이를 비교 가능합니다. + +## 평면별 시연 메시지 + +### 1. `bottleneck_hall.dxf` — 병목 시연 + +- **구조**: 30 × 20 m 단일 홀, 동측 중앙 1.0 m 단일 출구. 내부에 컬럼 4개. +- **메시지**: "출구 폭이 좁으면 동일 인원이라도 대피 시간이 어떻게 늘어나는가." +- **강조 지표**: + - `DensitySummary.peakDensityPeoplePerSquareMeter` 가 매우 높게 측정됨 + - `DensitySummary.highDensityDurationSeconds` 가 길어짐 + - `EvacuationTimingSummary.t90Seconds`, `t95Seconds` 가 길어지고, 목표 시간 대비 `marginSeconds` 가 감소/음수 + - `ExitUsageMetric` 은 단일 출구 100 % + - `peakCell` 위치가 출구 직전 영역에 형성됨 +- **보여줄 화면**: 결과 화면의 밀도 히트맵, 진행률 그래프, 타이밍 카드 + +### 2. `multi_exit_concourse.dxf` — 다출구 분산 시연 + +- **구조**: `bottleneck_hall` 과 동일한 30 × 20 m 홀, 동일한 컬럼 배치. 다만 출구가 동/북/남 3개 (각 1.0 m) 로 분산. +- **메시지**: "출구를 추가했을 때 같은 군중이 어떻게 빠르게 빠지는가." +- **강조 지표** (`bottleneck_hall` 결과와 직접 비교 슬라이드): + - `t90`, `peakDensity`, `highDensityDuration` 모두 감소 + - `marginSeconds` 가 양수 / 더 큰 폭 + - `ExitUsageMetric` 이 3 출구로 분산 (예: 30 / 35 / 35 등) +- **보여줄 화면**: 두 평면의 결과를 나란히 띄워 동일 인원·동일 시나리오에서의 차이 강조 + +### 3. `branched_corridor_office.dxf` — 현실 평면 시연 + +- **구조**: 36 × 20 m 사무실. 서측 로비 → 중앙 복도 → 6개 룸 (북 3 / 남 3) + 동측 베이. 출구 2개 (서측 중앙, 동측 남단) 로 비대칭. +- **메시지**: "현실 평면에서 어디가 위험 지점이고, 어느 출구가 과부하되는가." +- **강조 지표**: + - `ZoneCompletionMetric` 의 `lastCompletionTimeSeconds` 가 룸별로 차등 — 서측에 가까운 룸은 빨리 완료, 원거리 룸 지연 + - `ExitUsageMetric` 이 비대칭 — 서측 출구로 군중 편중, 동측 출구는 동측 베이/원거리 룸 위주 + - `DensitySummary.peakField` 의 피크 셀이 복도 중앙 또는 로비 출구 직전에 형성 +- **보여줄 화면**: 존별 완료 시간 표, 출구 사용 막대그래프, 복도/로비 영역의 밀도 히트맵, 리플레이로 군중이 복도를 통해 모이는 흐름 + +## 시연 셋업 권장값 (참고) + +| 항목 | 권장 | +| --- | --- | +| 군중 배치 | 평면별 보행 가능 면적의 1.0 ~ 1.5 인/m² 정도, 모든 평면 동일 인원 | +| 목표 대피 시간 | bottleneck_hall 기준 마진이 거의 0 이 되도록 잡고 같은 값을 다른 평면에도 사용 | +| 시뮬레이션 시간 | 충분히 끝까지 진행되도록 여유 있게 | + +권장값은 시뮬레이션 파라미터 튜닝 결과에 따라 조정될 수 있습니다. diff --git a/tests/DxfImportServiceTests.cpp b/tests/DxfImportServiceTests.cpp index ced9d8e..1c8f868 100644 --- a/tests/DxfImportServiceTests.cpp +++ b/tests/DxfImportServiceTests.cpp @@ -707,6 +707,54 @@ SC_TEST(DxfImportServiceDoesNotInferConnectionsAcrossWallSeam) { std::filesystem::remove(sourcePath); } +namespace { + +void expectDemoLayoutImports(const char* fileName, std::size_t minWalkableZones, std::size_t minExitConnections) { + const auto sourcePath = std::filesystem::path(__FILE__).parent_path().parent_path() + / "assets" / "demo-layouts" / fileName; + + safecrowd::domain::DxfImportService importer; + safecrowd::domain::ImportRequest request; + request.sourcePath = sourcePath; + request.requestedFormat = safecrowd::domain::ImportedFileFormat::Dxf; + + const auto result = importer.importFile(request); + + SC_EXPECT_TRUE(result.layout.has_value()); + SC_EXPECT_TRUE(!safecrowd::domain::hasBlockingImportIssue(result.issues)); + + if (result.layout.has_value()) { + std::size_t walkableCount = 0; + std::size_t exitConnectionCount = 0; + for (const auto& zone : result.layout->zones) { + if (zone.kind == safecrowd::domain::ZoneKind::Room) { + ++walkableCount; + } + } + for (const auto& connection : result.layout->connections) { + if (connection.kind == safecrowd::domain::ConnectionKind::Exit) { + ++exitConnectionCount; + } + } + SC_EXPECT_TRUE(walkableCount >= minWalkableZones); + SC_EXPECT_TRUE(exitConnectionCount >= minExitConnections); + } +} + +} // namespace + +SC_TEST(DxfImportServiceImportsBottleneckHallDemoLayout) { + expectDemoLayoutImports("bottleneck_hall.dxf", /*minWalkableZones=*/1, /*minExitConnections=*/1); +} + +SC_TEST(DxfImportServiceImportsMultiExitConcourseDemoLayout) { + expectDemoLayoutImports("multi_exit_concourse.dxf", /*minWalkableZones=*/1, /*minExitConnections=*/3); +} + +SC_TEST(DxfImportServiceImportsBranchedCorridorOfficeDemoLayout) { + expectDemoLayoutImports("branched_corridor_office.dxf", /*minWalkableZones=*/7, /*minExitConnections=*/2); +} + SC_TEST(DxfImportServiceReportsBlockingIssuesForReviewDemoFixture) { const auto sourcePath = std::filesystem::path(__FILE__).parent_path() / "dxf" / "blocking_review_demo.dxf"; diff --git a/tests/ImportContractsTests.cpp b/tests/ImportContractsTests.cpp index 2292197..4a8d12b 100644 --- a/tests/ImportContractsTests.cpp +++ b/tests/ImportContractsTests.cpp @@ -221,13 +221,13 @@ SC_TEST(ImportOrchestratorUsesAFileBasedDomainEntryPoint) { FakeImportOrchestrator orchestrator; safecrowd::domain::ImportRequest request; - request.sourcePath = std::filesystem::path("tests/dxf/home_plan.dxf"); + request.sourcePath = std::filesystem::path("tests/dxf/office_suite.dxf"); request.requestedFormat = safecrowd::domain::ImportedFileFormat::Dxf; request.preserveRawModel = false; const auto result = orchestrator.importFile(request); - SC_EXPECT_EQ(orchestrator.lastRequest.sourcePath.generic_string(), std::string("tests/dxf/home_plan.dxf")); + SC_EXPECT_EQ(orchestrator.lastRequest.sourcePath.generic_string(), std::string("tests/dxf/office_suite.dxf")); SC_EXPECT_EQ(orchestrator.lastRequest.requestedFormat, safecrowd::domain::ImportedFileFormat::Dxf); SC_EXPECT_TRUE(!orchestrator.lastRequest.preserveRawModel); SC_EXPECT_TRUE(result.layout.has_value()); diff --git a/tests/dxf/LICENSE.cad-portfolio.txt b/tests/dxf/LICENSE.cad-portfolio.txt deleted file mode 100644 index bd7aa0b..0000000 --- a/tests/dxf/LICENSE.cad-portfolio.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 Yuval Levental - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/tests/dxf/README.md b/tests/dxf/README.md index d3ae3f8..35d7773 100644 --- a/tests/dxf/README.md +++ b/tests/dxf/README.md @@ -1,30 +1,21 @@ -# Building DXF Fixtures +# Test DXF Fixtures -DXF import 테스트용 건물/층 평면 샘플 모음입니다. - -이 폴더에는 성격이 다른 두 종류의 샘플이 있습니다. - -1. 외부 공개 저장소에서 가져온 실제 건물 평면 DXF -2. 테스트 범위를 보강하기 위해 로컬에서 생성한 건물 평면 DXF +DXF 임포트 단위 테스트가 직접 참조하는 픽스처 모음입니다. +시연용 평면 자산은 `assets/demo-layouts/` 에서 별도로 관리합니다. ## Included Files -| File | Type | Notes | Source | -| --- | --- | --- | --- | -| `apartment_floor_plan.dxf` | downloaded | 2-bedroom apartment floor plan with walls, doors, windows, labels, and dimensions | `ylevental/cad-portfolio` `librecad/floor_plan.dxf` | -| `home_plan.dxf` | generated | compact residential floor plan with `SPACE_*`, `WALLS`, `DOORS`, `EXIT`, `WINDOWS`, `OBSTACLE` layers | local generator | -| `office_suite.dxf` | generated | small office suite floor plan with lobby, meeting room, open office, kitchenette, storage, and exits | local generator | -| `evacuation_complex_large.dxf` | generated | large multi-wing building for evacuation simulation with concourse, assembly spaces, service wings, obstacles, and 8 perimeter exits | local generator | +| File | Notes | Used by | +| --- | --- | --- | +| `office_suite.dxf` | 소형 사무실 평면 (로비/회의실/오픈오피스/주방/창고/출구). `SPACE_*`/`WALLS`/`DOORS`/`EXIT`/`OBSTACLE`/`WINDOWS` 레이어 | `tests/DxfImportServiceTests.cpp` (정상 임포트 경로 검증) | +| `blocking_review_demo.dxf` | 의도적으로 차단 이슈를 발생시키는 작은 평면 | `tests/DxfImportServiceTests.cpp` (차단 이슈 검출 검증) | ## Provenance -- Downloaded sample license: [LICENSE.cad-portfolio.txt](./LICENSE.cad-portfolio.txt) -- Downloaded sample upstream repository: https://github.com/ylevental/cad-portfolio -- Downloaded sample upstream file: https://github.com/ylevental/cad-portfolio/blob/main/librecad/floor_plan.dxf -- Local generator: [generate_building_samples.py](./generate_building_samples.py) +- 로컬 생성기: [generate_building_samples.py](./generate_building_samples.py) +- 생성본은 `ezdxf` 로 다시 열어 검증되었습니다. ## Notes -- `apartment_floor_plan.dxf`는 외부 공개 MIT 저장소에서 가져온 실제 건물 평면입니다. -- `home_plan.dxf`, `office_suite.dxf`, `evacuation_complex_large.dxf`는 SafeCrowd import 테스트에 맞게 로컬에서 생성한 건물 평면 샘플입니다. -- 생성본도 `ezdxf`로 다시 열어 검증했습니다. +- 이 폴더의 DXF 는 임포트 동작/이슈 검증을 위한 테스트 픽스처입니다. +- 시연 자산이 필요하면 `assets/demo-layouts/` 를 참조하세요. diff --git a/tests/dxf/apartment_floor_plan.dxf b/tests/dxf/apartment_floor_plan.dxf deleted file mode 100644 index 0adc9ef..0000000 --- a/tests/dxf/apartment_floor_plan.dxf +++ /dev/null @@ -1,6024 +0,0 @@ -999 -dxfrw 0.6.3 - 0 -SECTION - 2 -HEADER - 9 -$ACADVER - 1 -AC1021 - 9 -$DWGCODEPAGE - 3 -ANSI_1252 - 9 -$INSBASE - 10 -0 - 20 -0 - 30 -0 - 9 -$EXTMIN - 10 --125 - 20 --601.25 - 30 -0 - 9 -$EXTMAX - 10 -14394.44444444446 - 20 -9401.25 - 30 -0 - 9 -$LIMMIN - 10 -0 - 20 -0 - 9 -$LIMMAX - 10 -420 - 20 -297 - 9 -$ORTHOMODE - 70 - 0 - 9 -$REGENMODE - 70 - 1 - 9 -$FILLMODE - 70 - 1 - 9 -$QTEXTMODE - 70 - 0 - 9 -$MIRRTEXT - 70 - 1 - 9 -$LTSCALE - 40 -1 - 9 -$ATTMODE - 70 - 1 - 9 -$TEXTSIZE - 40 -2.5 - 9 -$TRACEWID - 40 -1 - 9 -$TEXTSTYLE - 7 -Standard - 9 -$CLAYER - 8 -0 - 9 -$CELTYPE - 6 -ByLayer - 9 -$CECOLOR - 62 - 256 - 9 -$CELTSCALE - 40 -1 - 9 -$DISPSILH - 70 - 0 - 9 -$DIMSCALE - 40 -1 - 9 -$DIMASZ - 40 -2.5 - 9 -$DIMEXO - 40 -0.625 - 9 -$DIMDLI - 40 -3.75 - 9 -$DIMRND - 40 -0 - 9 -$DIMDLE - 40 -0 - 9 -$DIMEXE - 40 -1.25 - 9 -$DIMTP - 40 -0 - 9 -$DIMTM - 40 -0 - 9 -$DIMTXT - 40 -2.5 - 9 -$DIMCEN - 40 -2.5 - 9 -$DIMTSZ - 40 -0 - 9 -$DIMTOL - 70 - 0 - 9 -$DIMLIM - 70 - 0 - 9 -$DIMTIH - 70 - 0 - 9 -$DIMTOH - 70 - 0 - 9 -$DIMSE1 - 70 - 0 - 9 -$DIMSE2 - 70 - 0 - 9 -$DIMTAD - 70 - 1 - 9 -$DIMZIN - 70 - 8 - 9 -$DIMBLK - 1 - - 9 -$DIMASO - 70 - 1 - 9 -$DIMSHO - 70 - 1 - 9 -$DIMPOST - 1 - - 9 -$DIMAPOST - 1 - - 9 -$DIMALT - 70 - 0 - 9 -$DIMALTD - 70 - 3 - 9 -$DIMALTF - 40 -0.03937007874 - 9 -$DIMLFAC - 40 -1 - 9 -$DIMTOFL - 70 - 1 - 9 -$DIMTVP - 40 -0 - 9 -$DIMTIX - 70 - 0 - 9 -$DIMSOXD - 70 - 0 - 9 -$DIMSAH - 70 - 0 - 9 -$DIMBLK1 - 1 - - 9 -$DIMBLK2 - 1 - - 9 -$DIMSTYLE - 2 -ISO-25 - 9 -$DIMCLRD - 70 - 0 - 9 -$DIMCLRE - 70 - 0 - 9 -$DIMCLRT - 70 - 0 - 9 -$DIMTFAC - 40 -1 - 9 -$DIMGAP - 40 -0.625 - 9 -$DIMJUST - 70 - 0 - 9 -$DIMSD1 - 70 - 0 - 9 -$DIMSD2 - 70 - 0 - 9 -$DIMTOLJ - 70 - 0 - 9 -$DIMTZIN - 70 - 8 - 9 -$DIMALTZ - 70 - 0 - 9 -$DIMALTTZ - 70 - 0 - 9 -$DIMUPT - 70 - 0 - 9 -$DIMDEC - 70 - 2 - 9 -$DIMTDEC - 70 - 2 - 9 -$DIMALTU - 70 - 2 - 9 -$DIMALTTD - 70 - 3 - 9 -$DIMTXSTY - 7 -Standard - 9 -$DIMAUNIT - 70 - 0 - 9 -$DIMADEC - 70 - 0 - 9 -$DIMALTRND - 40 -0 - 9 -$DIMAZIN - 70 - 0 - 9 -$DIMDSEP - 70 - 44 - 9 -$DIMATFIT - 70 - 3 - 9 -$DIMFRAC - 70 - 0 - 9 -$DIMLDRBLK - 1 - - 9 -$DIMLUNIT - 70 - 2 - 9 -$DIMLWD - 70 - -2 - 9 -$DIMLWE - 70 - -2 - 9 -$DIMTMOVE - 70 - 0 - 9 -$DIMFXL - 40 -1 - 9 -$DIMFXLON - 70 - 0 - 9 -$DIMJOGANG - 40 -0.785398163397 - 9 -$DIMTFILL - 70 - 0 - 9 -$DIMTFILLCLR - 70 - 0 - 9 -$DIMARCSYM - 70 - 0 - 9 -$DIMLTYPE - 6 - - 9 -$DIMLTEX1 - 6 - - 9 -$DIMLTEX2 - 6 - - 9 -$LUNITS - 70 - 2 - 9 -$LUPREC - 70 - 4 - 9 -$SKETCHINC - 40 -1 - 9 -$FILLETRAD - 40 -10 - 9 -$AUNITS - 70 - 0 - 9 -$AUPREC - 70 - 2 - 9 -$MENU - 1 -. - 9 -$ELEVATION - 40 -0 - 9 -$PELEVATION - 40 -0 - 9 -$THICKNESS - 40 -0 - 9 -$LIMCHECK - 70 - 0 - 9 -$CHAMFERA - 40 -0 - 9 -$CHAMFERB - 40 -0 - 9 -$CHAMFERC - 40 -0 - 9 -$CHAMFERD - 40 -0 - 9 -$SKPOLY - 70 - 0 - 9 -$USRTIMER - 70 - 1 - 9 -$ANGBASE - 50 -0 - 9 -$ANGDIR - 70 - 0 - 9 -$PDMODE - 70 - 0 - 9 -$PDSIZE - 40 -0 - 9 -$PLINEWID - 40 -0 - 9 -$SPLFRAME - 70 - 0 - 9 -$SPLINETYPE - 70 - 6 - 9 -$SPLINESEGS - 70 - 8 - 9 -$HANDSEED - 5 -20000 - 9 -$SURFTAB1 - 70 - 6 - 9 -$SURFTAB2 - 70 - 6 - 9 -$SURFTYPE - 70 - 6 - 9 -$SURFU - 70 - 6 - 9 -$SURFV - 70 - 6 - 9 -$UCSBASE - 2 - - 9 -$UCSNAME - 2 - - 9 -$UCSORG - 10 -0 - 20 -0 - 30 -0 - 9 -$UCSXDIR - 10 -1 - 20 -0 - 30 -0 - 9 -$UCSYDIR - 10 -0 - 20 -1 - 30 -0 - 9 -$UCSORTHOREF - 2 - - 9 -$UCSORTHOVIEW - 70 - 0 - 9 -$UCSORGTOP - 10 -0 - 20 -0 - 30 -0 - 9 -$UCSORGBOTTOM - 10 -0 - 20 -0 - 30 -0 - 9 -$UCSORGLEFT - 10 -0 - 20 -0 - 30 -0 - 9 -$UCSORGRIGHT - 10 -0 - 20 -0 - 30 -0 - 9 -$UCSORGFRONT - 10 -0 - 20 -0 - 30 -0 - 9 -$UCSORGBACK - 10 -0 - 20 -0 - 30 -0 - 9 -$PUCSBASE - 2 - - 9 -$PUCSNAME - 2 - - 9 -$PUCSORG - 10 -0 - 20 -0 - 30 -0 - 9 -$PUCSXDIR - 10 -1 - 20 -0 - 30 -0 - 9 -$PUCSYDIR - 10 -0 - 20 -1 - 30 -0 - 9 -$PUCSORTHOREF - 2 - - 9 -$PUCSORTHOVIEW - 70 - 0 - 9 -$PUCSORGTOP - 10 -0 - 20 -0 - 30 -0 - 9 -$PUCSORGBOTTOM - 10 -0 - 20 -0 - 30 -0 - 9 -$PUCSORGLEFT - 10 -0 - 20 -0 - 30 -0 - 9 -$PUCSORGRIGHT - 10 -0 - 20 -0 - 30 -0 - 9 -$PUCSORGFRONT - 10 -0 - 20 -0 - 30 -0 - 9 -$PUCSORGBACK - 10 -0 - 20 -0 - 30 -0 - 9 -$USERI1 - 70 - 0 - 9 -$USERI2 - 70 - 0 - 9 -$USERI3 - 70 - 0 - 9 -$USERI4 - 70 - 0 - 9 -$USERI5 - 70 - 0 - 9 -$USERR1 - 40 -0 - 9 -$USERR2 - 40 -0 - 9 -$USERR3 - 40 -0 - 9 -$USERR4 - 40 -0 - 9 -$USERR5 - 40 -0 - 9 -$WORLDVIEW - 70 - 1 - 9 -$SHADEDGE - 70 - 3 - 9 -$SHADEDIF - 70 - 70 - 9 -$TILEMODE - 70 - 1 - 9 -$MAXACTVP - 70 - 64 - 9 -$PINSBASE - 10 -0 - 20 -0 - 30 -0 - 9 -$PLIMCHECK - 70 - 0 - 9 -$PEXTMIN - 10 -1e+20 - 20 -1e+20 - 30 -1e+20 - 9 -$PEXTMAX - 10 --1e+20 - 20 --1e+20 - 30 --1e+20 - 9 -$GRIDMODE - 70 - 0 - 9 -$SNAPSTYLE - 70 - 0 - 9 -$PLIMMIN - 10 -0 - 20 -0 - 9 -$PLIMMAX - 10 -420 - 20 -297 - 9 -$UNITMODE - 70 - 0 - 9 -$VISRETAIN - 70 - 1 - 9 -$PLINEGEN - 70 - 0 - 9 -$PSLTSCALE - 70 - 1 - 9 -$TREEDEPTH - 70 - 3020 - 9 -$CMLSTYLE - 2 -Standard - 9 -$CMLJUST - 70 - 0 - 9 -$CMLSCALE - 40 -20 - 9 -$PROXYGRAPHICS - 70 - 1 - 9 -$MEASUREMENT - 70 - 1 - 9 -$CELWEIGHT -370 - -1 - 9 -$ENDCAPS -280 - 0 - 9 -$JOINSTYLE -280 - 0 - 9 -$LWDISPLAY -290 - 1 - 9 -$INSUNITS - 70 - 4 - 9 -$HYPERLINKBASE - 1 - - 9 -$STYLESHEET - 1 - - 9 -$XEDIT -290 - 1 - 9 -$CEPSNTYPE -380 - 0 - 9 -$PSTYLEMODE -290 - 1 - 9 -$EXTNAMES -290 - 1 - 9 -$PSVPSCALE - 40 -0 - 9 -$OLESTARTUP -290 - 0 - 9 -$SORTENTS -280 - 127 - 9 -$INDEXCTL -280 - 0 - 9 -$HIDETEXT -280 - 1 - 9 -$XCLIPFRAME -290 - 1 - 9 -$HALOGAP -280 - 0 - 9 -$OBSCOLOR - 70 - 257 - 9 -$OBSLTYPE -280 - 0 - 9 -$INTERSECTIONDISPLAY -280 - 0 - 9 -$INTERSECTIONCOLOR - 70 - 257 - 9 -$DIMASSOC -280 - 2 - 9 -$PROJECTNAME - 1 - - 9 -$CAMERADISPLAY -290 - 0 - 9 -$LENSLENGTH - 40 -50 - 9 -$CAMERAHEIGHT - 40 -0 - 9 -$STEPSPERSEC - 40 -24 - 9 -$STEPSIZE - 40 -100 - 9 -$3DDWFPREC - 40 -2 - 9 -$PSOLWIDTH - 40 -0.005 - 9 -$PSOLHEIGHT - 40 -0.08 - 9 -$LOFTANG1 - 40 -1.570796326795 - 9 -$LOFTANG2 - 40 -1.570796326795 - 9 -$LOFTMAG1 - 40 -0 - 9 -$LOFTMAG2 - 40 -0 - 9 -$LOFTPARAM - 70 - 7 - 9 -$LOFTNORMALS -280 - 1 - 9 -$LATITUDE - 40 -37.795 - 9 -$LONGITUDE - 40 --122.394 - 9 -$NORTHDIRECTION - 40 -0 - 9 -$TIMEZONE - 70 --8000 - 9 -$LIGHTGLYPHDISPLAY -280 - 1 - 9 -$TILEMODELIGHTSYNCH -280 - 1 - 9 -$SOLIDHIST -280 - 0 - 9 -$SHOWHIST -280 - 1 - 9 -$DWFFRAME -280 - 2 - 9 -$DGNFRAME -280 - 2 - 9 -$REALWORLDSCALE -290 - 1 - 9 -$INTERFERECOLOR - 62 - 256 - 9 -$CSHADOW -280 - 0 - 9 -$SHADOWPLANELOCATION - 40 -0 - 0 -ENDSEC - 0 -SECTION - 2 -CLASSES - 0 -ENDSEC - 0 -SECTION - 2 -TABLES - 0 -TABLE - 2 -VPORT - 5 -8 -330 -0 -100 -AcDbSymbolTable - 70 - 1 - 0 -VPORT - 5 -31 -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbViewportTableRecord - 2 -*ACTIVE - 70 - 0 - 10 -0 - 20 -0 - 11 -1 - 21 -1 - 12 -9817.628176926793 - 22 -5518.064063981903 - 13 -0 - 23 -0 - 14 -10 - 24 -10 - 15 -10 - 25 -10 - 16 -0 - 26 -0 - 36 -1 - 17 -0 - 27 -0 - 37 -0 - 40 -13037.94947609604 - 41 -1.763684913217624 - 42 -50 - 43 -0 - 44 -0 - 50 -0 - 51 -0 - 71 - 0 - 72 - 100 - 73 - 1 - 74 - 3 - 75 - 0 - 76 - 0 - 77 - 0 - 78 - 0 -281 - 0 - 65 - 1 -110 -0 -120 -0 -130 -0 -111 -1 -121 -0 -131 -0 -112 -0 -122 -1 -132 -0 - 79 - 0 -146 -0 -348 -10020 - 60 - 7 - 61 - 5 -292 -1 -282 - 1 -141 -0 -142 -0 - 63 - 250 -421 -3358443 - 0 -ENDTAB - 0 -TABLE - 2 -LTYPE - 5 -5 -330 -0 -100 -AcDbSymbolTable - 70 - 4 - 0 -LTYPE - 5 -14 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByBlock - 70 - 0 - 3 - - 72 - 65 - 73 - 0 - 40 -0 - 0 -LTYPE - 5 -15 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -ByLayer - 70 - 0 - 3 - - 72 - 65 - 73 - 0 - 40 -0 - 0 -LTYPE - 5 -16 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -Continuous - 70 - 0 - 3 -Solid line - 72 - 65 - 73 - 0 - 40 -0 - 0 -LTYPE - 5 -32 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT - 70 - 0 - 3 -Dot . . . . . . . . . . . . . . . . . . . . . . - 72 - 65 - 73 - 2 - 40 -6.35 - 49 -0 - 74 - 0 - 49 --6.35 - 74 - 0 - 0 -LTYPE - 5 -33 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTTINY - 70 - 0 - 3 -Dot (.15x) ..................................... - 72 - 65 - 73 - 2 - 40 -0.9525 - 49 -0 - 74 - 0 - 49 --0.9525 - 74 - 0 - 0 -LTYPE - 5 -34 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOT2 - 70 - 0 - 3 -Dot (.5x) ..................................... - 72 - 65 - 73 - 2 - 40 -3.175 - 49 -0 - 74 - 0 - 49 --3.175 - 74 - 0 - 0 -LTYPE - 5 -35 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DOTX2 - 70 - 0 - 3 -Dot (2x) . . . . . . . . . . . . . - 72 - 65 - 73 - 2 - 40 -12.7 - 49 -0 - 74 - 0 - 49 --12.7 - 74 - 0 - 0 -LTYPE - 5 -36 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED - 70 - 0 - 3 -Dashed _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 - 65 - 73 - 2 - 40 -19.05 - 49 -12.7 - 74 - 0 - 49 --6.35 - 74 - 0 - 0 -LTYPE - 5 -37 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDTINY - 70 - 0 - 3 -Dashed (.15x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 - 65 - 73 - 2 - 40 -2.8575 - 49 -1.905 - 74 - 0 - 49 --0.9525 - 74 - 0 - 0 -LTYPE - 5 -38 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHED2 - 70 - 0 - 3 -Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - 72 - 65 - 73 - 2 - 40 -9.524999999999999 - 49 -6.35 - 74 - 0 - 49 --3.175 - 74 - 0 - 0 -LTYPE - 5 -39 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHEDX2 - 70 - 0 - 3 -Dashed (2x) ____ ____ ____ ____ ____ ___ - 72 - 65 - 73 - 2 - 40 -38.09999999999999 - 49 -25.4 - 74 - 0 - 49 --12.7 - 74 - 0 - 0 -LTYPE - 5 -3A -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT - 70 - 0 - 3 -Dash dot __ . __ . __ . __ . __ . __ . __ . __ - 72 - 65 - 73 - 4 - 40 -25.4 - 49 -12.7 - 74 - 0 - 49 --6.35 - 74 - 0 - 49 -0 - 74 - 0 - 49 --6.35 - 74 - 0 - 0 -LTYPE - 5 -3B -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTTINY - 70 - 0 - 3 -Dash dot (.15x) _._._._._._._._._._._._._._._. - 72 - 65 - 73 - 4 - 40 -3.81 - 49 -1.905 - 74 - 0 - 49 --0.9525 - 74 - 0 - 49 -0 - 74 - 0 - 49 --0.9525 - 74 - 0 - 0 -LTYPE - 5 -3C -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOT2 - 70 - 0 - 3 -Dash dot (.5x) _._._._._._._._._._._._._._._. - 72 - 65 - 73 - 4 - 40 -12.7 - 49 -6.35 - 74 - 0 - 49 --3.175 - 74 - 0 - 49 -0 - 74 - 0 - 49 --3.175 - 74 - 0 - 0 -LTYPE - 5 -3D -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DASHDOTX2 - 70 - 0 - 3 -Dash dot (2x) ____ . ____ . ____ . ___ - 72 - 65 - 73 - 4 - 40 -50.8 - 49 -25.4 - 74 - 0 - 49 --12.7 - 74 - 0 - 49 -0 - 74 - 0 - 49 --12.7 - 74 - 0 - 0 -LTYPE - 5 -3E -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE - 70 - 0 - 3 -Divide ____ . . ____ . . ____ . . ____ . . ____ - 72 - 65 - 73 - 6 - 40 -31.75 - 49 -12.7 - 74 - 0 - 49 --6.35 - 74 - 0 - 49 -0 - 74 - 0 - 49 --6.35 - 74 - 0 - 49 -0 - 74 - 0 - 49 --6.35 - 74 - 0 - 0 -LTYPE - 5 -3F -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDETINY - 70 - 0 - 3 -Divide (.15x) __..__..__..__..__..__..__..__.._ - 72 - 65 - 73 - 6 - 40 -4.7625 - 49 -1.905 - 74 - 0 - 49 --0.9525 - 74 - 0 - 49 -0 - 74 - 0 - 49 --0.9525 - 74 - 0 - 49 -0 - 74 - 0 - 49 --0.9525 - 74 - 0 - 0 -LTYPE - 5 -40 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDE2 - 70 - 0 - 3 -Divide (.5x) __..__..__..__..__..__..__..__.._ - 72 - 65 - 73 - 6 - 40 -15.875 - 49 -6.35 - 74 - 0 - 49 --3.175 - 74 - 0 - 49 -0 - 74 - 0 - 49 --3.175 - 74 - 0 - 49 -0 - 74 - 0 - 49 --3.175 - 74 - 0 - 0 -LTYPE - 5 -41 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -DIVIDEX2 - 70 - 0 - 3 -Divide (2x) ________ . . ________ . . _ - 72 - 65 - 73 - 6 - 40 -63.5 - 49 -25.4 - 74 - 0 - 49 --12.7 - 74 - 0 - 49 -0 - 74 - 0 - 49 --12.7 - 74 - 0 - 49 -0 - 74 - 0 - 49 --12.7 - 74 - 0 - 0 -LTYPE - 5 -42 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER - 70 - 0 - 3 -Border __ __ . __ __ . __ __ . __ __ . __ __ . - 72 - 65 - 73 - 6 - 40 -44.45 - 49 -12.7 - 74 - 0 - 49 --6.35 - 74 - 0 - 49 -12.7 - 74 - 0 - 49 --6.35 - 74 - 0 - 49 -0 - 74 - 0 - 49 --6.35 - 74 - 0 - 0 -LTYPE - 5 -43 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERTINY - 70 - 0 - 3 -Border (.15x) __.__.__.__.__.__.__.__.__.__.__. - 72 - 65 - 73 - 6 - 40 -6.6675 - 49 -1.905 - 74 - 0 - 49 --0.9525 - 74 - 0 - 49 -1.905 - 74 - 0 - 49 --0.9525 - 74 - 0 - 49 -0 - 74 - 0 - 49 --0.9525 - 74 - 0 - 0 -LTYPE - 5 -44 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDER2 - 70 - 0 - 3 -Border (.5x) __.__.__.__.__.__.__.__.__.__.__. - 72 - 65 - 73 - 6 - 40 -22.225 - 49 -6.35 - 74 - 0 - 49 --3.175 - 74 - 0 - 49 -6.35 - 74 - 0 - 49 --3.175 - 74 - 0 - 49 -0 - 74 - 0 - 49 --3.175 - 74 - 0 - 0 -LTYPE - 5 -45 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -BORDERX2 - 70 - 0 - 3 -Border (2x) ____ ____ . ____ ____ . ___ - 72 - 65 - 73 - 6 - 40 -88.89999999999999 - 49 -25.4 - 74 - 0 - 49 --12.7 - 74 - 0 - 49 -25.4 - 74 - 0 - 49 --12.7 - 74 - 0 - 49 -0 - 74 - 0 - 49 --12.7 - 74 - 0 - 0 -LTYPE - 5 -46 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER - 70 - 0 - 3 -Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ - 72 - 65 - 73 - 4 - 40 -50.8 - 49 -31.75 - 74 - 0 - 49 --6.35 - 74 - 0 - 49 -6.35 - 74 - 0 - 49 --6.35 - 74 - 0 - 0 -LTYPE - 5 -47 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERTINY - 70 - 0 - 3 -Center (.15x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 - 65 - 73 - 4 - 40 -7.619999999999999 - 49 -4.7625 - 74 - 0 - 49 --0.9525 - 74 - 0 - 49 -0.9525 - 74 - 0 - 49 --0.9525 - 74 - 0 - 0 -LTYPE - 5 -48 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTER2 - 70 - 0 - 3 -Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ - 72 - 65 - 73 - 4 - 40 -28.575 - 49 -19.05 - 74 - 0 - 49 --3.175 - 74 - 0 - 49 -3.175 - 74 - 0 - 49 --3.175 - 74 - 0 - 0 -LTYPE - 5 -49 -330 -5 -100 -AcDbSymbolTableRecord -100 -AcDbLinetypeTableRecord - 2 -CENTERX2 - 70 - 0 - 3 -Center (2x) ________ __ ________ __ _____ - 72 - 65 - 73 - 4 - 40 -101.6 - 49 -63.5 - 74 - 0 - 49 --12.7 - 74 - 0 - 49 -12.7 - 74 - 0 - 49 --12.7 - 74 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -LAYER - 5 -2 -330 -0 -100 -AcDbSymbolTable - 70 - 1 - 0 -LAYER - 5 -10 -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -0 - 70 - 0 - 62 - 7 - 6 -CONTINUOUS -370 - -3 -390 -F - 0 -LAYER - 5 -4A -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -DIMENSIONS - 70 - 0 - 62 - 1 - 6 -CONTINUOUS -370 - 13 -390 -F - 0 -LAYER - 5 -4B -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -DOORS - 70 - 0 - 62 - 3 - 6 -CONTINUOUS -370 - 25 -390 -F - 0 -LAYER - 5 -4C -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -Defpoints - 70 - 0 - 62 - 7 - 6 -CONTINUOUS -290 -0 -370 - -3 -390 -F - 0 -LAYER - 5 -4D -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -FURNITURE - 70 - 0 - 62 - 8 - 6 -CONTINUOUS -370 - 13 -390 -F - 0 -LAYER - 5 -4E -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -TEXT - 70 - 0 - 62 - 2 - 6 -CONTINUOUS -370 - 18 -390 -F - 0 -LAYER - 5 -4F -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -TITLEBLOCK - 70 - 0 - 62 - 7 - 6 -CONTINUOUS -370 - 18 -390 -F - 0 -LAYER - 5 -50 -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -WALLS - 70 - 0 - 62 - 7 - 6 -CONTINUOUS -370 - 50 -390 -F - 0 -LAYER - 5 -51 -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -WALLS_INT - 70 - 0 - 62 - 7 - 6 -CONTINUOUS -370 - 35 -390 -F - 0 -LAYER - 5 -52 -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbLayerTableRecord - 2 -WINDOWS - 70 - 0 - 62 - 5 - 6 -CONTINUOUS -370 - 25 -390 -F - 0 -ENDTAB - 0 -TABLE - 2 -STYLE - 5 -3 -330 -0 -100 -AcDbSymbolTable - 70 - 3 - 0 -STYLE - 5 -53 -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -OpenSans - 70 - 0 - 40 -0 - 41 -1 - 50 -0 - 71 - 0 - 42 -1 - 3 -OpenSans - 4 - - 0 -STYLE - 5 -54 -330 -2 -100 -AcDbSymbolTableRecord -100 -AcDbTextStyleTableRecord - 2 -STANDARD - 70 - 0 - 40 -0 - 41 -1 - 50 -0 - 71 - 0 - 42 -1 - 3 -STANDARD - 4 - - 0 -ENDTAB - 0 -TABLE - 2 -VIEW - 5 -6 -330 -0 -100 -AcDbSymbolTable - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -UCS - 5 -7 -330 -0 -100 -AcDbSymbolTable - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -APPID - 5 -9 -330 -0 -100 -AcDbSymbolTable - 70 - 1 - 0 -APPID - 5 -12 -330 -9 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -ACAD - 70 - 0 - 0 -APPID - 5 -55 -330 -9 -100 -AcDbSymbolTableRecord -100 -AcDbRegAppTableRecord - 2 -LibreCad - 70 - 0 - 0 -ENDTAB - 0 -TABLE - 2 -DIMSTYLE - 5 -A -330 -0 -100 -AcDbSymbolTable - 70 - 1 -100 -AcDbDimStyleTable - 71 - 1 - 0 -DIMSTYLE -105 -56 -330 -A -100 -AcDbSymbolTableRecord -100 -AcDbDimStyleTableRecord - 2 -Standard - 70 - 0 - 40 -1 - 41 -2.5 - 42 -0.625 - 43 -0.38 - 44 -1.25 - 45 -0 - 46 -0 - 47 -0 - 48 -0 - 49 -1 -140 -2.5 -141 -0.09 -142 -0 -143 -25.4 -144 -1 -145 -0 -146 -1 -147 -0.625 -148 -0 - 71 - 0 - 72 - 0 - 73 - 0 - 74 - 1 - 75 - 0 - 76 - 0 - 77 - 0 - 78 - 8 - 79 - 0 -170 - 0 -171 - 2 -172 - 0 -173 - 0 -174 - 0 -175 - 0 -176 - 0 -177 - 0 -178 - 0 -179 - 0 -271 - 2 -272 - 4 -273 - 2 -274 - 2 -275 - 0 -276 - 0 -277 - 2 -278 - 44 -279 - 0 -280 - 0 -281 - 0 -282 - 0 -283 - 1 -284 - 0 -285 - 0 -286 - 0 -288 - 0 -289 - 3 -340 -54 - 0 -ENDTAB - 0 -TABLE - 2 -BLOCK_RECORD - 5 -1 -330 -0 -100 -AcDbSymbolTable - 70 - 2 - 0 -BLOCK_RECORD - 5 -1F -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Model_Space - 70 - 0 -280 - 1 -281 - 0 - 0 -BLOCK_RECORD - 5 -1E -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*Paper_Space - 70 - 0 -280 - 1 -281 - 0 - 0 -BLOCK_RECORD - 5 -57 -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*D4 - 70 - 0 -280 - 1 -281 - 0 - 0 -BLOCK_RECORD - 5 -5A -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*D2 - 70 - 0 -280 - 1 -281 - 0 - 0 -BLOCK_RECORD - 5 -5D -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*D1 - 70 - 0 -280 - 1 -281 - 0 - 0 -BLOCK_RECORD - 5 -60 -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -*D3 - 70 - 0 -280 - 1 -281 - 0 - 0 -BLOCK_RECORD - 5 -63 -330 -1 -100 -AcDbSymbolTableRecord -100 -AcDbBlockTableRecord - 2 -_CLOSEDFILLED - 70 - 0 -280 - 1 -281 - 0 - 0 -ENDTAB - 0 -ENDSEC - 0 -SECTION - 2 -BLOCKS - 0 -BLOCK - 5 -20 -330 -1F -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Model_Space - 70 - 0 - 10 -0 - 20 -0 - 30 -0 - 3 -*Model_Space - 1 - - 0 -ENDBLK - 5 -21 -330 -1F -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -1C -330 -1B -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*Paper_Space - 70 - 0 - 10 -0 - 20 -0 - 30 -0 - 3 -*Paper_Space - 1 - - 0 -ENDBLK - 5 -1D -330 -1F -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -58 -330 -57 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*D4 - 70 - 1 - 10 -0 - 20 -0 - 3 -*D4 - 1 - - 0 -LINE - 5 -66 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -5000 - 20 -9400 - 11 -8000 - 21 -9400 - 0 -MTEXT - 5 -67 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -CONTINUOUS - 62 - 0 -370 - -2 -100 -AcDbMText - 10 -6500 - 20 -9400 - 30 -0 - 40 -2.5 - 41 -6.944444444444599 - 71 - 5 - 72 - 1 - 1 -3000 - 7 -Standard -210 -0 -220 -0 -230 -1 - 50 -0 - 73 - 2 - 44 -1 - 0 -SOLID - 5 -68 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbTrace - 10 -5000 - 20 -9400 - 30 -0 - 11 -5002.5 - 21 -9400.416284657773 - 31 -0 - 12 -5002.5 - 22 -9399.583715342227 - 32 -0 - 13 -5002.5 - 23 -9399.583715342227 - 33 -0 - 0 -SOLID - 5 -69 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbTrace - 10 -8000 - 20 -9400 - 30 -0 - 11 -7997.5 - 21 -9399.583715342227 - 31 -0 - 12 -7997.5 - 22 -9400.416284657773 - 32 -0 - 13 -7997.5 - 23 -9400.416284657773 - 33 -0 - 0 -LINE - 5 -6A -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -5000 - 20 -9000.625 - 11 -5000 - 21 -9401.25 - 0 -LINE - 5 -6B -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -8000 - 20 -9000.625 - 11 -8000 - 21 -9401.25 - 0 -ENDBLK - 5 -59 -330 -57 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -5B -330 -5A -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*D2 - 70 - 1 - 10 -0 - 20 -0 - 3 -*D2 - 1 - - 0 -LINE - 5 -6C -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -5 - 20 -4500 - 11 --5 - 21 -4500 - 0 -MTEXT - 5 -6D -100 -AcDbEntity - 8 -DIMENSIONS - 6 -CONTINUOUS - 62 - 0 -370 - -2 -100 -AcDbMText - 10 -1.180555555555556 - 20 -4501.125 - 30 -0 - 40 -2.5 - 41 -1.111111111111111 - 71 - 5 - 72 - 1 - 1 -0 - 7 -Standard -210 -0 -220 -0 -230 -1 - 50 -0 - 73 - 2 - 44 -1 - 0 -SOLID - 5 -6E -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbTrace - 10 -0 - 20 -4500 - 30 -0 - 11 --2.5 - 21 -4499.583715342227 - 31 -0 - 12 --2.5 - 22 -4500.416284657773 - 32 -0 - 13 --2.5 - 23 -4500.416284657773 - 33 -0 - 0 -SOLID - 5 -6F -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbTrace - 10 -0 - 20 -4500 - 30 -0 - 11 --2.5 - 21 -4499.583715342227 - 31 -0 - 12 --2.5 - 22 -4500.416284657773 - 32 -0 - 13 --2.5 - 23 -4500.416284657773 - 33 -0 - 0 -LINE - 5 -70 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -3.827021247335479e-17 - 20 -0.625 - 11 -7.654042494670958e-17 - 21 -4501.25 - 0 -LINE - 5 -71 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 --1.148106374200643e-16 - 20 -8999.375 - 11 --2.296212748401287e-16 - 21 -4498.75 - 0 -ENDBLK - 5 -5C -330 -5A -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -5E -330 -5D -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*D1 - 70 - 1 - 10 -0 - 20 -0 - 3 -*D1 - 1 - - 0 -LINE - 5 -72 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -0 - 20 --600 - 11 -8000 - 21 --600 - 0 -MTEXT - 5 -73 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -CONTINUOUS - 62 - 0 -370 - -2 -100 -AcDbMText - 10 -4000 - 20 --600 - 30 -0 - 40 -2.5 - 41 -6.944444444444445 - 71 - 5 - 72 - 1 - 1 -8000 - 7 -Standard -210 -0 -220 -0 -230 -1 - 50 -0 - 73 - 2 - 44 -1 - 0 -SOLID - 5 -74 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbTrace - 10 -0 - 20 --600 - 30 -0 - 11 -2.5 - 21 --599.5837153422272 - 31 -0 - 12 -2.5 - 22 --600.4162846577728 - 32 -0 - 13 -2.5 - 23 --600.4162846577728 - 33 -0 - 0 -SOLID - 5 -75 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbTrace - 10 -8000 - 20 --600 - 30 -0 - 11 -7997.5 - 21 --600.4162846577728 - 31 -0 - 12 -7997.5 - 22 --599.5837153422272 - 32 -0 - 13 -7997.5 - 23 --599.5837153422272 - 33 -0 - 0 -LINE - 5 -76 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 --1.148106374200643e-16 - 20 --0.625 - 11 --2.296212748401287e-16 - 21 --601.25 - 0 -LINE - 5 -77 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -8000 - 20 --0.625 - 11 -8000 - 21 --601.25 - 0 -ENDBLK - 5 -5F -330 -5D -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -61 -330 -60 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -*D3 - 70 - 1 - 10 -0 - 20 -0 - 3 -*D3 - 1 - - 0 -LINE - 5 -78 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -0 - 20 -9400 - 11 -5000 - 21 -9400 - 0 -MTEXT - 5 -79 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -CONTINUOUS - 62 - 0 -370 - -2 -100 -AcDbMText - 10 -2500 - 20 -9400 - 30 -0 - 40 -2.5 - 41 -6.944444444444599 - 71 - 5 - 72 - 1 - 1 -5000 - 7 -Standard -210 -0 -220 -0 -230 -1 - 50 -0 - 73 - 2 - 44 -1 - 0 -SOLID - 5 -7A -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbTrace - 10 -0 - 20 -9400 - 30 -0 - 11 -2.5 - 21 -9400.416284657773 - 31 -0 - 12 -2.5 - 22 -9399.583715342227 - 32 -0 - 13 -2.5 - 23 -9399.583715342227 - 33 -0 - 0 -SOLID - 5 -7B -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbTrace - 10 -5000 - 20 -9400 - 30 -0 - 11 -4997.5 - 21 -9399.583715342227 - 31 -0 - 12 -4997.5 - 22 -9400.416284657773 - 32 -0 - 13 -4997.5 - 23 -9400.416284657773 - 33 -0 - 0 -LINE - 5 -7C -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -3.827021247335479e-17 - 20 -9000.625 - 11 -7.654042494670958e-17 - 21 -9401.25 - 0 -LINE - 5 -7D -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByBlock - 62 - 0 -370 - -2 -100 -AcDbLine - 10 -5000 - 20 -9000.625 - 11 -5000 - 21 -9401.25 - 0 -ENDBLK - 5 -62 -330 -60 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -BLOCK - 5 -64 -330 -63 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockBegin - 2 -_CLOSEDFILLED - 70 - 0 - 10 -0 - 20 -0 - 3 -_CLOSEDFILLED - 1 - - 0 -SOLID - 5 -7E -100 -AcDbEntity - 8 -0 - 6 -ByBlock - 62 - 0 -370 - -1 -100 -AcDbTrace - 10 --1 - 20 -0.1643989837240254 - 30 -0 - 11 -0 - 21 -0 - 31 -0 - 12 --1 - 22 --0.1643989837240254 - 32 -0 - 13 --1 - 23 --0.1643989837240254 - 33 -0 - 0 -ENDBLK - 5 -65 -330 -63 -100 -AcDbEntity - 8 -0 -100 -AcDbBlockEnd - 0 -ENDSEC - 0 -SECTION - 2 -ENTITIES - 0 -LINE - 5 -7F -100 -AcDbEntity - 8 -WALLS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -0 - 20 -125 - 11 -8000 - 21 -125 - 0 -LINE - 5 -80 -100 -AcDbEntity - 8 -WALLS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -0 - 20 --125 - 11 -8000 - 21 --125 - 0 -LINE - 5 -81 -100 -AcDbEntity - 8 -WALLS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -7875 - 20 -0 - 11 -7875 - 21 -9000 - 0 -LINE - 5 -82 -100 -AcDbEntity - 8 -WALLS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -8125 - 20 -0 - 11 -8125 - 21 -9000 - 0 -LINE - 5 -83 -100 -AcDbEntity - 8 -WALLS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -8000 - 20 -8875 - 11 -0 - 21 -8875 - 0 -LINE - 5 -84 -100 -AcDbEntity - 8 -WALLS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -8000 - 20 -9125 - 11 -0 - 21 -9125 - 0 -LINE - 5 -85 -100 -AcDbEntity - 8 -WALLS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -125 - 20 -9000 - 11 -125 - 21 -0 - 0 -LINE - 5 -86 -100 -AcDbEntity - 8 -WALLS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 --125 - 20 -9000 - 11 --125 - 21 -0 - 0 -LINE - 5 -87 -100 -AcDbEntity - 8 -WALLS_INT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -0 - 20 -3600 - 11 -8000 - 21 -3600 - 0 -LINE - 5 -88 -100 -AcDbEntity - 8 -WALLS_INT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -0 - 20 -3400 - 11 -8000 - 21 -3400 - 0 -LINE - 5 -89 -100 -AcDbEntity - 8 -WALLS_INT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -0 - 20 -5100 - 11 -8000 - 21 -5100 - 0 -LINE - 5 -8A -100 -AcDbEntity - 8 -WALLS_INT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -0 - 20 -4900 - 11 -8000 - 21 -4900 - 0 -LINE - 5 -8B -100 -AcDbEntity - 8 -WALLS_INT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -4900 - 20 -0 - 11 -4900 - 21 -9000 - 0 -LINE - 5 -8C -100 -AcDbEntity - 8 -WALLS_INT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -5100 - 20 -0 - 11 -5100 - 21 -9000 - 0 -LINE - 5 -8D -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -1500 - 20 -5000 - 11 -1500 - 21 -5900 - 0 -ARC - 5 -8E -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbCircle - 10 -1500 - 20 -5000 - 40 -900 -100 -AcDbArc - 50 -90 - 51 -180 - 0 -LINE - 5 -8F -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -5500 - 20 -5000 - 11 -5500 - 21 -5900 - 0 -ARC - 5 -90 -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbCircle - 10 -5500 - 20 -5000 - 40 -900 -100 -AcDbArc - 50 -90 - 51 -180 - 0 -LINE - 5 -91 -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -1500 - 20 -3500 - 11 -1500 - 21 -2600 - 0 -ARC - 5 -92 -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbCircle - 10 -1500 - 20 -3500 - 40 -900 -100 -AcDbArc - 50 -270 - 51 -360 - 0 -LINE - 5 -93 -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -5500 - 20 -3500 - 11 -5500 - 21 -2600 - 0 -ARC - 5 -94 -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbCircle - 10 -5500 - 20 -3500 - 40 -900 -100 -AcDbArc - 50 -270 - 51 -360 - 0 -LINE - 5 -95 -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -2500 - 20 -0 - 11 -2500 - 21 -900 - 0 -ARC - 5 -96 -100 -AcDbEntity - 8 -DOORS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbCircle - 10 -2500 - 20 -0 - 40 -900 -100 -AcDbArc - 50 -90 - 51 -180 - 0 -LINE - 5 -97 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -50 - 20 -6400 - 11 -50 - 21 -7600 - 0 -LINE - 5 -98 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -0 - 20 -6400 - 11 -0 - 21 -7600 - 0 -LINE - 5 -99 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 --50 - 20 -6400 - 11 --50 - 21 -7600 - 0 -LINE - 5 -9A -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -1900 - 20 -8950 - 11 -3100 - 21 -8950 - 0 -LINE - 5 -9B -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -1900 - 20 -9000 - 11 -3100 - 21 -9000 - 0 -LINE - 5 -9C -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -1900 - 20 -9050 - 11 -3100 - 21 -9050 - 0 -LINE - 5 -9D -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -5900 - 20 -8950 - 11 -7100 - 21 -8950 - 0 -LINE - 5 -9E -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -5900 - 20 -9000 - 11 -7100 - 21 -9000 - 0 -LINE - 5 -9F -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -5900 - 20 -9050 - 11 -7100 - 21 -9050 - 0 -LINE - 5 -A0 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -50 - 20 -1200 - 11 -50 - 21 -2400 - 0 -LINE - 5 -A1 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -0 - 20 -1200 - 11 -0 - 21 -2400 - 0 -LINE - 5 -A2 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 --50 - 20 -1200 - 11 --50 - 21 -2400 - 0 -LINE - 5 -A3 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -1000 - 20 --50 - 11 -2200 - 21 --50 - 0 -LINE - 5 -A4 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -1000 - 20 -0 - 11 -2200 - 21 -0 - 0 -LINE - 5 -A5 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -1000 - 20 -50 - 11 -2200 - 21 -50 - 0 -LINE - 5 -A6 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -8050 - 20 -1500 - 11 -8050 - 21 -2300 - 0 -LINE - 5 -A7 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -8000 - 20 -1500 - 11 -8000 - 21 -2300 - 0 -LINE - 5 -A8 -100 -AcDbEntity - 8 -WINDOWS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbLine - 10 -7950 - 20 -1500 - 11 -7950 - 21 -2300 - 0 -TEXT - 5 -A9 -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -2500 - 20 -7080 - 30 -0 - 40 -150 - 1 -LIVING ROOM - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -2500 - 21 -7080 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -AA -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -2500 - 20 -6900 - 30 -0 - 40 -100 - 1 -20.0 m² - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -2500 - 21 -6900 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -AB -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -6500 - 20 -7080 - 30 -0 - 40 -150 - 1 -KITCHEN - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -6500 - 21 -7080 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -AC -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -6500 - 20 -6900 - 30 -0 - 40 -100 - 1 -12.0 m² - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -6500 - 21 -6900 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -AD -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -2000 - 20 -1830 - 30 -0 - 40 -150 - 1 -BEDROOM - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -2000 - 21 -1830 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -AE -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -2000 - 20 -1650 - 30 -0 - 40 -100 - 1 -14.0 m² - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -2000 - 21 -1650 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -AF -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -6250 - 20 -1830 - 30 -0 - 40 -150 - 1 -BATHROOM - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -6250 - 21 -1830 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -B0 -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -6250 - 20 -1650 - 30 -0 - 40 -100 - 1 -8.8 m² - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -6250 - 21 -1650 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -B1 -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -4000 - 20 -4330 - 30 -0 - 40 -150 - 1 -HALLWAY - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -4000 - 21 -4330 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -TEXT - 5 -B2 -100 -AcDbEntity - 8 -TEXT - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -4000 - 20 -4150 - 30 -0 - 40 -100 - 1 -12.0 m² - 50 -0 - 41 -1 - 51 -0 - 7 -OpenSans - 71 - 0 - 72 - 1 - 11 -4000 - 21 -4150 - 31 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 73 - 2 - 0 -DIMENSION - 5 -B3 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbDimension - 2 -*D1 - 10 -0 - 20 --600 - 30 -0 - 11 -4000 - 21 --600 - 31 -0 - 70 - 32 - 1 -<> - 71 - 5 - 72 - 0 - 3 -Standard - 53 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbAlignedDimension - 13 -0 - 23 -0 - 33 -0 - 14 -8000 - 24 -0 - 34 -0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -B4 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbDimension - 2 -*D2 - 10 -0 - 20 -4500 - 30 -0 - 11 -0 - 21 -4501.125 - 31 -0 - 70 - 32 - 1 -<> - 71 - 5 - 72 - 0 - 3 -Standard - 53 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbAlignedDimension - 13 -0 - 23 -0 - 33 -0 - 14 -0 - 24 -9000 - 34 -0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -B5 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbDimension - 2 -*D3 - 10 -0 - 20 -9400 - 30 -0 - 11 -2500 - 21 -9400 - 31 -0 - 70 - 32 - 1 -<> - 71 - 5 - 72 - 0 - 3 -Standard - 53 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbAlignedDimension - 13 -0 - 23 -9000 - 33 -0 - 14 -5000 - 24 -9000 - 34 -0 -100 -AcDbRotatedDimension - 0 -DIMENSION - 5 -B6 -100 -AcDbEntity - 8 -DIMENSIONS - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbDimension - 2 -*D4 - 10 -5000 - 20 -9400 - 30 -0 - 11 -6500 - 21 -9400 - 31 -0 - 70 - 32 - 1 -<> - 71 - 5 - 72 - 0 - 3 -Standard - 53 -0 -210 -0 -220 -0 -230 -1 -100 -AcDbAlignedDimension - 13 -5000 - 23 -9000 - 33 -0 - 14 -8000 - 24 -9000 - 34 -0 -100 -AcDbRotatedDimension - 0 -TEXT - 5 -B7 -100 -AcDbEntity - 8 -TITLEBLOCK - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -9000 - 20 -1200 - 30 -0 - 40 -200 - 1 -FLOOR PLAN — 2 BEDROOM APARTMENT - 50 -0 - 41 -1 - 51 -0 - 7 -STANDARD - 71 - 0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 0 -TEXT - 5 -B8 -100 -AcDbEntity - 8 -TITLEBLOCK - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -9000 - 20 -900 - 30 -0 - 40 -120 - 1 -Total Area: 72.0 m² - 50 -0 - 41 -1 - 51 -0 - 7 -STANDARD - 71 - 0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 0 -TEXT - 5 -B9 -100 -AcDbEntity - 8 -TITLEBLOCK - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -9000 - 20 -650 - 30 -0 - 40 -100 - 1 -Scale: 1:100 | Units: mm - 50 -0 - 41 -1 - 51 -0 - 7 -STANDARD - 71 - 0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 0 -TEXT - 5 -BA -100 -AcDbEntity - 8 -TITLEBLOCK - 6 -ByLayer - 62 - 256 -370 - -1 -100 -AcDbText - 10 -9000 - 20 -450 - 30 -0 - 40 -80 - 1 -Generated with ezdxf for LibreCAD - 50 -0 - 41 -1 - 51 -0 - 7 -STANDARD - 71 - 0 -210 -0 -220 -0 -230 -1 -100 -AcDbText - 0 -ENDSEC - 0 -SECTION - 2 -OBJECTS - 0 -DICTIONARY - 5 -C -330 -0 -100 -AcDbDictionary -281 - 1 - 3 -ACAD_GROUP -350 -D - 0 -DICTIONARY - 5 -D -330 -C -100 -AcDbDictionary -281 - 1 - 0 -PLOTSETTINGS - 5 -BB -100 -AcDbPlotSettings - 6 -1x1 - 40 -0 - 41 -0 - 42 -0 - 43 -0 - 0 -ENDSEC - 0 -EOF diff --git a/tests/dxf/generate_building_samples.py b/tests/dxf/generate_building_samples.py index 5e419b9..4b9c7d2 100644 --- a/tests/dxf/generate_building_samples.py +++ b/tests/dxf/generate_building_samples.py @@ -1,3 +1,9 @@ +"""DXF 임포트 단위 테스트가 참조하는 픽스처 생성기. + +`office_suite.dxf` 만 본 스크립트로 결정적으로 재생성됩니다. +시연용 평면 자산은 `assets/demo-layouts/generate_demo_layouts.py` 에 별도로 있습니다. +""" + from __future__ import annotations from pathlib import Path @@ -109,40 +115,6 @@ def add_title(msp: ezdxf.layouts.Modelspace, title: str, subtitle: str) -> None: ) -def build_home_plan(path: Path) -> None: - doc, msp = new_document() - - add_title(msp, "HOME PLAN SAMPLE", "Generated from a plan2dxf-style workflow for SafeCrowd tests") - - outer = (0.0, 0.0, 10.0, 8.0) - add_wall(msp, (outer[0], outer[1]), (outer[2], outer[1])) - add_wall(msp, (outer[2], outer[1]), (outer[2], outer[3])) - add_wall(msp, (outer[2], outer[3]), (outer[0], outer[3])) - add_wall(msp, (outer[0], outer[3]), (outer[0], outer[1])) - - add_wall(msp, (4.8, 0.0), (4.8, 5.0)) - add_wall(msp, (0.0, 5.0), (10.0, 5.0)) - add_wall(msp, (7.2, 5.0), (7.2, 8.0)) - - add_space(doc, msp, "Living Room", 0.1, 0.1, 4.7, 4.9) - add_space(doc, msp, "Kitchen", 4.9, 0.1, 9.9, 2.9) - add_space(doc, msp, "Dining", 4.9, 3.1, 9.9, 4.9) - add_space(doc, msp, "Bedroom", 0.1, 5.1, 7.1, 7.9) - add_space(doc, msp, "Bath", 7.3, 5.1, 9.9, 7.9) - - add_door(msp, (2.0, 0.0), (2.9, 0.0), swing_center=(2.0, 0.0), swing_radius=0.9, start_angle=0, end_angle=90, layer="EXIT") - add_door(msp, (4.8, 2.0), (4.8, 2.9), swing_center=(4.8, 2.0), swing_radius=0.9, start_angle=0, end_angle=90) - add_door(msp, (7.2, 6.2), (7.2, 7.0), swing_center=(7.2, 6.2), swing_radius=0.8, start_angle=180, end_angle=270) - - add_window(msp, (0.0, 6.1), (0.0, 7.2)) - add_window(msp, (8.1, 8.0), (9.3, 8.0)) - add_window(msp, (10.0, 1.0), (10.0, 2.2)) - - add_obstacle(msp, 6.2, 1.0, 7.3, 1.8) - - doc.saveas(path) - - def build_office_plan(path: Path) -> None: doc, msp = new_document() @@ -185,100 +157,8 @@ def build_office_plan(path: Path) -> None: doc.saveas(path) -def build_evacuation_complex_large(path: Path) -> None: - doc, msp = new_document() - - add_title( - msp, - "LARGE EVACUATION COMPLEX", - "Multi-wing civic center floor with wide concourse, large assembly spaces, service wings, and multiple exits", - ) - - outer = (0.0, 0.0, 64.0, 42.0) - add_wall(msp, (outer[0], outer[1]), (outer[2], outer[1])) - add_wall(msp, (outer[2], outer[1]), (outer[2], outer[3])) - add_wall(msp, (outer[2], outer[3]), (outer[0], outer[3])) - add_wall(msp, (outer[0], outer[3]), (outer[0], outer[1])) - - # Primary structural partitions - add_wall(msp, (12.0, 0.0), (12.0, 42.0)) - add_wall(msp, (52.0, 0.0), (52.0, 42.0)) - add_wall(msp, (12.0, 16.0), (52.0, 16.0)) - add_wall(msp, (12.0, 26.0), (52.0, 26.0)) - add_wall(msp, (34.0, 26.0), (34.0, 42.0)) - add_wall(msp, (26.0, 0.0), (26.0, 16.0)) - add_wall(msp, (40.0, 0.0), (40.0, 16.0)) - add_wall(msp, (52.0, 12.0), (64.0, 12.0)) - add_wall(msp, (52.0, 30.0), (64.0, 30.0)) - add_wall(msp, (0.0, 12.0), (12.0, 12.0)) - add_wall(msp, (0.0, 30.0), (12.0, 30.0)) - - # Walkable zones - add_space(doc, msp, "West Lobby", 0.1, 12.1, 11.9, 29.9) - add_space(doc, msp, "Central Concourse", 12.1, 16.1, 51.9, 25.9) - add_space(doc, msp, "East Lobby", 52.1, 12.1, 63.9, 29.9) - add_space(doc, msp, "Auditorium", 12.1, 26.1, 33.9, 41.9) - add_space(doc, msp, "Cafeteria", 34.1, 26.1, 51.9, 41.9) - add_space(doc, msp, "Training A", 12.1, 0.1, 25.9, 15.9) - add_space(doc, msp, "Training B", 26.1, 0.1, 39.9, 15.9) - add_space(doc, msp, "Command Center", 40.1, 0.1, 51.9, 15.9) - add_space(doc, msp, "West Service", 0.1, 0.1, 11.9, 11.9) - add_space(doc, msp, "West Breakout", 0.1, 30.1, 11.9, 41.9) - add_space(doc, msp, "East Storage", 52.1, 0.1, 63.9, 11.9) - add_space(doc, msp, "East Operations", 52.1, 30.1, 63.9, 41.9) - - # Internal doors from concourse/lobbies to adjacent spaces - add_door(msp, (12.0, 19.5), (12.0, 22.5), swing_center=(12.0, 19.5), swing_radius=1.0, start_angle=180, end_angle=270) - add_door(msp, (52.0, 19.5), (52.0, 22.5), swing_center=(52.0, 19.5), swing_radius=1.0, start_angle=0, end_angle=90) - add_door(msp, (20.0, 26.0), (23.0, 26.0), swing_center=(20.0, 26.0), swing_radius=1.0, start_angle=0, end_angle=90) - add_door(msp, (42.0, 26.0), (45.0, 26.0), swing_center=(42.0, 26.0), swing_radius=1.0, start_angle=90, end_angle=180) - add_door(msp, (18.0, 16.0), (21.0, 16.0), swing_center=(18.0, 16.0), swing_radius=1.0, start_angle=270, end_angle=360) - add_door(msp, (31.0, 16.0), (34.0, 16.0), swing_center=(31.0, 16.0), swing_radius=1.0, start_angle=270, end_angle=360) - add_door(msp, (45.0, 16.0), (48.0, 16.0), swing_center=(45.0, 16.0), swing_radius=1.0, start_angle=270, end_angle=360) - add_door(msp, (6.0, 12.0), (8.5, 12.0), swing_center=(6.0, 12.0), swing_radius=0.9, start_angle=270, end_angle=360) - add_door(msp, (6.0, 30.0), (8.5, 30.0), swing_center=(6.0, 30.0), swing_radius=0.9, start_angle=0, end_angle=90) - add_door(msp, (57.0, 12.0), (59.5, 12.0), swing_center=(57.0, 12.0), swing_radius=0.9, start_angle=270, end_angle=360) - add_door(msp, (57.0, 30.0), (59.5, 30.0), swing_center=(57.0, 30.0), swing_radius=0.9, start_angle=0, end_angle=90) - - # External exits around the perimeter - add_door(msp, (0.0, 18.0), (0.0, 21.0), layer="EXIT") - add_door(msp, (0.0, 35.0), (0.0, 38.0), layer="EXIT") - add_door(msp, (18.0, 42.0), (21.0, 42.0), layer="EXIT") - add_door(msp, (43.0, 42.0), (46.0, 42.0), layer="EXIT") - add_door(msp, (64.0, 18.0), (64.0, 21.0), layer="EXIT") - add_door(msp, (64.0, 34.0), (64.0, 37.0), layer="EXIT") - add_door(msp, (18.0, 0.0), (21.0, 0.0), layer="EXIT") - add_door(msp, (44.0, 0.0), (47.0, 0.0), layer="EXIT") - - # Windows - add_window(msp, (0.0, 23.0), (0.0, 27.0)) - add_window(msp, (14.0, 42.0), (17.0, 42.0)) - add_window(msp, (28.0, 42.0), (31.0, 42.0)) - add_window(msp, (36.0, 42.0), (39.0, 42.0)) - add_window(msp, (64.0, 24.0), (64.0, 28.0)) - add_window(msp, (24.0, 0.0), (27.0, 0.0)) - add_window(msp, (48.0, 0.0), (51.0, 0.0)) - - # Obstacles / columns / furniture islands - add_obstacle(msp, 20.0, 19.0, 21.5, 20.5) - add_obstacle(msp, 30.0, 19.0, 31.5, 20.5) - add_obstacle(msp, 40.0, 19.0, 41.5, 20.5) - add_obstacle(msp, 20.0, 21.5, 21.5, 23.0) - add_obstacle(msp, 30.0, 21.5, 31.5, 23.0) - add_obstacle(msp, 40.0, 21.5, 41.5, 23.0) - add_obstacle(msp, 17.0, 31.0, 18.5, 32.5) - add_obstacle(msp, 24.0, 31.0, 25.5, 32.5) - add_obstacle(msp, 38.0, 32.0, 40.5, 34.0) - add_obstacle(msp, 43.0, 6.0, 45.5, 8.0) - add_obstacle(msp, 55.0, 34.0, 57.0, 36.5) - - doc.saveas(path) - - def main() -> None: - build_home_plan(OUTPUT_DIR / "home_plan.dxf") build_office_plan(OUTPUT_DIR / "office_suite.dxf") - build_evacuation_complex_large(OUTPUT_DIR / "evacuation_complex_large.dxf") if __name__ == "__main__": From f85238a646f0b4128292c63abd00a14e56d6dede Mon Sep 17 00:00:00 2001 From: Silversupplier Date: Mon, 4 May 2026 01:55:45 +0900 Subject: [PATCH 2/2] [Chore] Preserve existing tests/dxf fixtures while adding demo assets Curating the demo layouts under assets/demo-layouts/ does not require removing the existing test fixtures contributed by another teammate. Keep the four DXF files and the LICENSE under tests/dxf/ so the provenance of the downloaded MIT sample is retained and the local generator can still reproduce the residential and evacuation samples. - Restore apartment_floor_plan.dxf, LICENSE.cad-portfolio.txt, home_plan.dxf, and evacuation_complex_large.dxf so existing attribution and regeneration paths stay intact. - Restore the build_home_plan and build_evacuation_complex_large helpers in generate_building_samples.py for the same reason. - Keep the new framing in tests/dxf/README.md (cross-reference to assets/demo-layouts/, and the row for blocking_review_demo.dxf that was previously undocumented) and combine it with the original provenance section that describes the kept files. --- tests/dxf/LICENSE.cad-portfolio.txt | 21 + tests/dxf/README.md | 28 +- tests/dxf/apartment_floor_plan.dxf | 6024 ++++++++++++++++++++++++ tests/dxf/evacuation_complex_large.dxf | 5794 +++++++++++++++++++++++ tests/dxf/generate_building_samples.py | 132 +- tests/dxf/home_plan.dxf | 4034 ++++++++++++++++ 6 files changed, 16019 insertions(+), 14 deletions(-) create mode 100644 tests/dxf/LICENSE.cad-portfolio.txt create mode 100644 tests/dxf/apartment_floor_plan.dxf create mode 100644 tests/dxf/evacuation_complex_large.dxf create mode 100644 tests/dxf/home_plan.dxf diff --git a/tests/dxf/LICENSE.cad-portfolio.txt b/tests/dxf/LICENSE.cad-portfolio.txt new file mode 100644 index 0000000..bd7aa0b --- /dev/null +++ b/tests/dxf/LICENSE.cad-portfolio.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Yuval Levental + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/tests/dxf/README.md b/tests/dxf/README.md index 35d7773..73763ad 100644 --- a/tests/dxf/README.md +++ b/tests/dxf/README.md @@ -1,21 +1,33 @@ # Test DXF Fixtures -DXF 임포트 단위 테스트가 직접 참조하는 픽스처 모음입니다. +DXF 임포트 테스트용 건물/층 평면 샘플 모음입니다. 시연용 평면 자산은 `assets/demo-layouts/` 에서 별도로 관리합니다. +이 폴더에는 성격이 다른 두 종류의 샘플이 있습니다. + +1. 외부 공개 저장소에서 가져온 실제 건물 평면 DXF +2. 테스트 범위를 보강하기 위해 로컬에서 생성한 건물 평면 DXF + ## Included Files -| File | Notes | Used by | -| --- | --- | --- | -| `office_suite.dxf` | 소형 사무실 평면 (로비/회의실/오픈오피스/주방/창고/출구). `SPACE_*`/`WALLS`/`DOORS`/`EXIT`/`OBSTACLE`/`WINDOWS` 레이어 | `tests/DxfImportServiceTests.cpp` (정상 임포트 경로 검증) | -| `blocking_review_demo.dxf` | 의도적으로 차단 이슈를 발생시키는 작은 평면 | `tests/DxfImportServiceTests.cpp` (차단 이슈 검출 검증) | +| File | Type | Notes | Source | +| --- | --- | --- | --- | +| `apartment_floor_plan.dxf` | downloaded | 2-bedroom apartment floor plan with walls, doors, windows, labels, and dimensions | `ylevental/cad-portfolio` `librecad/floor_plan.dxf` | +| `home_plan.dxf` | generated | compact residential floor plan with `SPACE_*`, `WALLS`, `DOORS`, `EXIT`, `WINDOWS`, `OBSTACLE` layers | local generator | +| `office_suite.dxf` | generated | small office suite floor plan with lobby, meeting room, open office, kitchenette, storage, and exits | local generator | +| `evacuation_complex_large.dxf` | generated | large multi-wing building for evacuation simulation with concourse, assembly spaces, service wings, obstacles, and 8 perimeter exits | local generator | +| `blocking_review_demo.dxf` | generated | 의도적으로 차단 이슈를 발생시키는 작은 평면 (`tests/DxfImportServiceTests.cpp` 차단 이슈 검출 검증) | local generator | ## Provenance -- 로컬 생성기: [generate_building_samples.py](./generate_building_samples.py) -- 생성본은 `ezdxf` 로 다시 열어 검증되었습니다. +- Downloaded sample license: [LICENSE.cad-portfolio.txt](./LICENSE.cad-portfolio.txt) +- Downloaded sample upstream repository: https://github.com/ylevental/cad-portfolio +- Downloaded sample upstream file: https://github.com/ylevental/cad-portfolio/blob/main/librecad/floor_plan.dxf +- Local generator: [generate_building_samples.py](./generate_building_samples.py) ## Notes -- 이 폴더의 DXF 는 임포트 동작/이슈 검증을 위한 테스트 픽스처입니다. +- `apartment_floor_plan.dxf`는 외부 공개 MIT 저장소에서 가져온 실제 건물 평면입니다. +- `home_plan.dxf`, `office_suite.dxf`, `evacuation_complex_large.dxf`는 SafeCrowd import 테스트에 맞게 로컬에서 생성한 건물 평면 샘플입니다. +- 생성본도 `ezdxf`로 다시 열어 검증했습니다. - 시연 자산이 필요하면 `assets/demo-layouts/` 를 참조하세요. diff --git a/tests/dxf/apartment_floor_plan.dxf b/tests/dxf/apartment_floor_plan.dxf new file mode 100644 index 0000000..0adc9ef --- /dev/null +++ b/tests/dxf/apartment_floor_plan.dxf @@ -0,0 +1,6024 @@ +999 +dxfrw 0.6.3 + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1021 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$INSBASE + 10 +0 + 20 +0 + 30 +0 + 9 +$EXTMIN + 10 +-125 + 20 +-601.25 + 30 +0 + 9 +$EXTMAX + 10 +14394.44444444446 + 20 +9401.25 + 30 +0 + 9 +$LIMMIN + 10 +0 + 20 +0 + 9 +$LIMMAX + 10 +420 + 20 +297 + 9 +$ORTHOMODE + 70 + 0 + 9 +$REGENMODE + 70 + 1 + 9 +$FILLMODE + 70 + 1 + 9 +$QTEXTMODE + 70 + 0 + 9 +$MIRRTEXT + 70 + 1 + 9 +$LTSCALE + 40 +1 + 9 +$ATTMODE + 70 + 1 + 9 +$TEXTSIZE + 40 +2.5 + 9 +$TRACEWID + 40 +1 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 + 256 + 9 +$CELTSCALE + 40 +1 + 9 +$DISPSILH + 70 + 0 + 9 +$DIMSCALE + 40 +1 + 9 +$DIMASZ + 40 +2.5 + 9 +$DIMEXO + 40 +0.625 + 9 +$DIMDLI + 40 +3.75 + 9 +$DIMRND + 40 +0 + 9 +$DIMDLE + 40 +0 + 9 +$DIMEXE + 40 +1.25 + 9 +$DIMTP + 40 +0 + 9 +$DIMTM + 40 +0 + 9 +$DIMTXT + 40 +2.5 + 9 +$DIMCEN + 40 +2.5 + 9 +$DIMTSZ + 40 +0 + 9 +$DIMTOL + 70 + 0 + 9 +$DIMLIM + 70 + 0 + 9 +$DIMTIH + 70 + 0 + 9 +$DIMTOH + 70 + 0 + 9 +$DIMSE1 + 70 + 0 + 9 +$DIMSE2 + 70 + 0 + 9 +$DIMTAD + 70 + 1 + 9 +$DIMZIN + 70 + 8 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 + 1 + 9 +$DIMSHO + 70 + 1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 + 0 + 9 +$DIMALTD + 70 + 3 + 9 +$DIMALTF + 40 +0.03937007874 + 9 +$DIMLFAC + 40 +1 + 9 +$DIMTOFL + 70 + 1 + 9 +$DIMTVP + 40 +0 + 9 +$DIMTIX + 70 + 0 + 9 +$DIMSOXD + 70 + 0 + 9 +$DIMSAH + 70 + 0 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 + + 9 +$DIMSTYLE + 2 +ISO-25 + 9 +$DIMCLRD + 70 + 0 + 9 +$DIMCLRE + 70 + 0 + 9 +$DIMCLRT + 70 + 0 + 9 +$DIMTFAC + 40 +1 + 9 +$DIMGAP + 40 +0.625 + 9 +$DIMJUST + 70 + 0 + 9 +$DIMSD1 + 70 + 0 + 9 +$DIMSD2 + 70 + 0 + 9 +$DIMTOLJ + 70 + 0 + 9 +$DIMTZIN + 70 + 8 + 9 +$DIMALTZ + 70 + 0 + 9 +$DIMALTTZ + 70 + 0 + 9 +$DIMUPT + 70 + 0 + 9 +$DIMDEC + 70 + 2 + 9 +$DIMTDEC + 70 + 2 + 9 +$DIMALTU + 70 + 2 + 9 +$DIMALTTD + 70 + 3 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 + 0 + 9 +$DIMADEC + 70 + 0 + 9 +$DIMALTRND + 40 +0 + 9 +$DIMAZIN + 70 + 0 + 9 +$DIMDSEP + 70 + 44 + 9 +$DIMATFIT + 70 + 3 + 9 +$DIMFRAC + 70 + 0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 + 2 + 9 +$DIMLWD + 70 + -2 + 9 +$DIMLWE + 70 + -2 + 9 +$DIMTMOVE + 70 + 0 + 9 +$DIMFXL + 40 +1 + 9 +$DIMFXLON + 70 + 0 + 9 +$DIMJOGANG + 40 +0.785398163397 + 9 +$DIMTFILL + 70 + 0 + 9 +$DIMTFILLCLR + 70 + 0 + 9 +$DIMARCSYM + 70 + 0 + 9 +$DIMLTYPE + 6 + + 9 +$DIMLTEX1 + 6 + + 9 +$DIMLTEX2 + 6 + + 9 +$LUNITS + 70 + 2 + 9 +$LUPREC + 70 + 4 + 9 +$SKETCHINC + 40 +1 + 9 +$FILLETRAD + 40 +10 + 9 +$AUNITS + 70 + 0 + 9 +$AUPREC + 70 + 2 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0 + 9 +$PELEVATION + 40 +0 + 9 +$THICKNESS + 40 +0 + 9 +$LIMCHECK + 70 + 0 + 9 +$CHAMFERA + 40 +0 + 9 +$CHAMFERB + 40 +0 + 9 +$CHAMFERC + 40 +0 + 9 +$CHAMFERD + 40 +0 + 9 +$SKPOLY + 70 + 0 + 9 +$USRTIMER + 70 + 1 + 9 +$ANGBASE + 50 +0 + 9 +$ANGDIR + 70 + 0 + 9 +$PDMODE + 70 + 0 + 9 +$PDSIZE + 40 +0 + 9 +$PLINEWID + 40 +0 + 9 +$SPLFRAME + 70 + 0 + 9 +$SPLINETYPE + 70 + 6 + 9 +$SPLINESEGS + 70 + 8 + 9 +$HANDSEED + 5 +20000 + 9 +$SURFTAB1 + 70 + 6 + 9 +$SURFTAB2 + 70 + 6 + 9 +$SURFTYPE + 70 + 6 + 9 +$SURFU + 70 + 6 + 9 +$SURFV + 70 + 6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0 + 20 +0 + 30 +0 + 9 +$UCSXDIR + 10 +1 + 20 +0 + 30 +0 + 9 +$UCSYDIR + 10 +0 + 20 +1 + 30 +0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 + 0 + 9 +$UCSORGTOP + 10 +0 + 20 +0 + 30 +0 + 9 +$UCSORGBOTTOM + 10 +0 + 20 +0 + 30 +0 + 9 +$UCSORGLEFT + 10 +0 + 20 +0 + 30 +0 + 9 +$UCSORGRIGHT + 10 +0 + 20 +0 + 30 +0 + 9 +$UCSORGFRONT + 10 +0 + 20 +0 + 30 +0 + 9 +$UCSORGBACK + 10 +0 + 20 +0 + 30 +0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0 + 20 +0 + 30 +0 + 9 +$PUCSXDIR + 10 +1 + 20 +0 + 30 +0 + 9 +$PUCSYDIR + 10 +0 + 20 +1 + 30 +0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 + 0 + 9 +$PUCSORGTOP + 10 +0 + 20 +0 + 30 +0 + 9 +$PUCSORGBOTTOM + 10 +0 + 20 +0 + 30 +0 + 9 +$PUCSORGLEFT + 10 +0 + 20 +0 + 30 +0 + 9 +$PUCSORGRIGHT + 10 +0 + 20 +0 + 30 +0 + 9 +$PUCSORGFRONT + 10 +0 + 20 +0 + 30 +0 + 9 +$PUCSORGBACK + 10 +0 + 20 +0 + 30 +0 + 9 +$USERI1 + 70 + 0 + 9 +$USERI2 + 70 + 0 + 9 +$USERI3 + 70 + 0 + 9 +$USERI4 + 70 + 0 + 9 +$USERI5 + 70 + 0 + 9 +$USERR1 + 40 +0 + 9 +$USERR2 + 40 +0 + 9 +$USERR3 + 40 +0 + 9 +$USERR4 + 40 +0 + 9 +$USERR5 + 40 +0 + 9 +$WORLDVIEW + 70 + 1 + 9 +$SHADEDGE + 70 + 3 + 9 +$SHADEDIF + 70 + 70 + 9 +$TILEMODE + 70 + 1 + 9 +$MAXACTVP + 70 + 64 + 9 +$PINSBASE + 10 +0 + 20 +0 + 30 +0 + 9 +$PLIMCHECK + 70 + 0 + 9 +$PEXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$PEXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$GRIDMODE + 70 + 0 + 9 +$SNAPSTYLE + 70 + 0 + 9 +$PLIMMIN + 10 +0 + 20 +0 + 9 +$PLIMMAX + 10 +420 + 20 +297 + 9 +$UNITMODE + 70 + 0 + 9 +$VISRETAIN + 70 + 1 + 9 +$PLINEGEN + 70 + 0 + 9 +$PSLTSCALE + 70 + 1 + 9 +$TREEDEPTH + 70 + 3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 + 0 + 9 +$CMLSCALE + 40 +20 + 9 +$PROXYGRAPHICS + 70 + 1 + 9 +$MEASUREMENT + 70 + 1 + 9 +$CELWEIGHT +370 + -1 + 9 +$ENDCAPS +280 + 0 + 9 +$JOINSTYLE +280 + 0 + 9 +$LWDISPLAY +290 + 1 + 9 +$INSUNITS + 70 + 4 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 + 1 + 9 +$CEPSNTYPE +380 + 0 + 9 +$PSTYLEMODE +290 + 1 + 9 +$EXTNAMES +290 + 1 + 9 +$PSVPSCALE + 40 +0 + 9 +$OLESTARTUP +290 + 0 + 9 +$SORTENTS +280 + 127 + 9 +$INDEXCTL +280 + 0 + 9 +$HIDETEXT +280 + 1 + 9 +$XCLIPFRAME +290 + 1 + 9 +$HALOGAP +280 + 0 + 9 +$OBSCOLOR + 70 + 257 + 9 +$OBSLTYPE +280 + 0 + 9 +$INTERSECTIONDISPLAY +280 + 0 + 9 +$INTERSECTIONCOLOR + 70 + 257 + 9 +$DIMASSOC +280 + 2 + 9 +$PROJECTNAME + 1 + + 9 +$CAMERADISPLAY +290 + 0 + 9 +$LENSLENGTH + 40 +50 + 9 +$CAMERAHEIGHT + 40 +0 + 9 +$STEPSPERSEC + 40 +24 + 9 +$STEPSIZE + 40 +100 + 9 +$3DDWFPREC + 40 +2 + 9 +$PSOLWIDTH + 40 +0.005 + 9 +$PSOLHEIGHT + 40 +0.08 + 9 +$LOFTANG1 + 40 +1.570796326795 + 9 +$LOFTANG2 + 40 +1.570796326795 + 9 +$LOFTMAG1 + 40 +0 + 9 +$LOFTMAG2 + 40 +0 + 9 +$LOFTPARAM + 70 + 7 + 9 +$LOFTNORMALS +280 + 1 + 9 +$LATITUDE + 40 +37.795 + 9 +$LONGITUDE + 40 +-122.394 + 9 +$NORTHDIRECTION + 40 +0 + 9 +$TIMEZONE + 70 +-8000 + 9 +$LIGHTGLYPHDISPLAY +280 + 1 + 9 +$TILEMODELIGHTSYNCH +280 + 1 + 9 +$SOLIDHIST +280 + 0 + 9 +$SHOWHIST +280 + 1 + 9 +$DWFFRAME +280 + 2 + 9 +$DGNFRAME +280 + 2 + 9 +$REALWORLDSCALE +290 + 1 + 9 +$INTERFERECOLOR + 62 + 256 + 9 +$CSHADOW +280 + 0 + 9 +$SHADOWPLANELOCATION + 40 +0 + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +VPORT + 5 +31 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*ACTIVE + 70 + 0 + 10 +0 + 20 +0 + 11 +1 + 21 +1 + 12 +9817.628176926793 + 22 +5518.064063981903 + 13 +0 + 23 +0 + 14 +10 + 24 +10 + 15 +10 + 25 +10 + 16 +0 + 26 +0 + 36 +1 + 17 +0 + 27 +0 + 37 +0 + 40 +13037.94947609604 + 41 +1.763684913217624 + 42 +50 + 43 +0 + 44 +0 + 50 +0 + 51 +0 + 71 + 0 + 72 + 100 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 +281 + 0 + 65 + 1 +110 +0 +120 +0 +130 +0 +111 +1 +121 +0 +131 +0 +112 +0 +122 +1 +132 +0 + 79 + 0 +146 +0 +348 +10020 + 60 + 7 + 61 + 5 +292 +1 +282 + 1 +141 +0 +142 +0 + 63 + 250 +421 +3358443 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 4 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0 + 0 +LTYPE + 5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0 + 0 +LTYPE + 5 +32 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DOT + 70 + 0 + 3 +Dot . . . . . . . . . . . . . . . . . . . . . . + 72 + 65 + 73 + 2 + 40 +6.35 + 49 +0 + 74 + 0 + 49 +-6.35 + 74 + 0 + 0 +LTYPE + 5 +33 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DOTTINY + 70 + 0 + 3 +Dot (.15x) ..................................... + 72 + 65 + 73 + 2 + 40 +0.9525 + 49 +0 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 0 +LTYPE + 5 +34 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DOT2 + 70 + 0 + 3 +Dot (.5x) ..................................... + 72 + 65 + 73 + 2 + 40 +3.175 + 49 +0 + 74 + 0 + 49 +-3.175 + 74 + 0 + 0 +LTYPE + 5 +35 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DOTX2 + 70 + 0 + 3 +Dot (2x) . . . . . . . . . . . . . + 72 + 65 + 73 + 2 + 40 +12.7 + 49 +0 + 74 + 0 + 49 +-12.7 + 74 + 0 + 0 +LTYPE + 5 +36 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHED + 70 + 0 + 3 +Dashed _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + 72 + 65 + 73 + 2 + 40 +19.05 + 49 +12.7 + 74 + 0 + 49 +-6.35 + 74 + 0 + 0 +LTYPE + 5 +37 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHEDTINY + 70 + 0 + 3 +Dashed (.15x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + 72 + 65 + 73 + 2 + 40 +2.8575 + 49 +1.905 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 0 +LTYPE + 5 +38 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHED2 + 70 + 0 + 3 +Dashed (.5x) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + 72 + 65 + 73 + 2 + 40 +9.524999999999999 + 49 +6.35 + 74 + 0 + 49 +-3.175 + 74 + 0 + 0 +LTYPE + 5 +39 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHEDX2 + 70 + 0 + 3 +Dashed (2x) ____ ____ ____ ____ ____ ___ + 72 + 65 + 73 + 2 + 40 +38.09999999999999 + 49 +25.4 + 74 + 0 + 49 +-12.7 + 74 + 0 + 0 +LTYPE + 5 +3A +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHDOT + 70 + 0 + 3 +Dash dot __ . __ . __ . __ . __ . __ . __ . __ + 72 + 65 + 73 + 4 + 40 +25.4 + 49 +12.7 + 74 + 0 + 49 +-6.35 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-6.35 + 74 + 0 + 0 +LTYPE + 5 +3B +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHDOTTINY + 70 + 0 + 3 +Dash dot (.15x) _._._._._._._._._._._._._._._. + 72 + 65 + 73 + 4 + 40 +3.81 + 49 +1.905 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 0 +LTYPE + 5 +3C +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHDOT2 + 70 + 0 + 3 +Dash dot (.5x) _._._._._._._._._._._._._._._. + 72 + 65 + 73 + 4 + 40 +12.7 + 49 +6.35 + 74 + 0 + 49 +-3.175 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-3.175 + 74 + 0 + 0 +LTYPE + 5 +3D +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DASHDOTX2 + 70 + 0 + 3 +Dash dot (2x) ____ . ____ . ____ . ___ + 72 + 65 + 73 + 4 + 40 +50.8 + 49 +25.4 + 74 + 0 + 49 +-12.7 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-12.7 + 74 + 0 + 0 +LTYPE + 5 +3E +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DIVIDE + 70 + 0 + 3 +Divide ____ . . ____ . . ____ . . ____ . . ____ + 72 + 65 + 73 + 6 + 40 +31.75 + 49 +12.7 + 74 + 0 + 49 +-6.35 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-6.35 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-6.35 + 74 + 0 + 0 +LTYPE + 5 +3F +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DIVIDETINY + 70 + 0 + 3 +Divide (.15x) __..__..__..__..__..__..__..__.._ + 72 + 65 + 73 + 6 + 40 +4.7625 + 49 +1.905 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 0 +LTYPE + 5 +40 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DIVIDE2 + 70 + 0 + 3 +Divide (.5x) __..__..__..__..__..__..__..__.._ + 72 + 65 + 73 + 6 + 40 +15.875 + 49 +6.35 + 74 + 0 + 49 +-3.175 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-3.175 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-3.175 + 74 + 0 + 0 +LTYPE + 5 +41 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +DIVIDEX2 + 70 + 0 + 3 +Divide (2x) ________ . . ________ . . _ + 72 + 65 + 73 + 6 + 40 +63.5 + 49 +25.4 + 74 + 0 + 49 +-12.7 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-12.7 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-12.7 + 74 + 0 + 0 +LTYPE + 5 +42 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BORDER + 70 + 0 + 3 +Border __ __ . __ __ . __ __ . __ __ . __ __ . + 72 + 65 + 73 + 6 + 40 +44.45 + 49 +12.7 + 74 + 0 + 49 +-6.35 + 74 + 0 + 49 +12.7 + 74 + 0 + 49 +-6.35 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-6.35 + 74 + 0 + 0 +LTYPE + 5 +43 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BORDERTINY + 70 + 0 + 3 +Border (.15x) __.__.__.__.__.__.__.__.__.__.__. + 72 + 65 + 73 + 6 + 40 +6.6675 + 49 +1.905 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 49 +1.905 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 0 +LTYPE + 5 +44 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BORDER2 + 70 + 0 + 3 +Border (.5x) __.__.__.__.__.__.__.__.__.__.__. + 72 + 65 + 73 + 6 + 40 +22.225 + 49 +6.35 + 74 + 0 + 49 +-3.175 + 74 + 0 + 49 +6.35 + 74 + 0 + 49 +-3.175 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-3.175 + 74 + 0 + 0 +LTYPE + 5 +45 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BORDERX2 + 70 + 0 + 3 +Border (2x) ____ ____ . ____ ____ . ___ + 72 + 65 + 73 + 6 + 40 +88.89999999999999 + 49 +25.4 + 74 + 0 + 49 +-12.7 + 74 + 0 + 49 +25.4 + 74 + 0 + 49 +-12.7 + 74 + 0 + 49 +0 + 74 + 0 + 49 +-12.7 + 74 + 0 + 0 +LTYPE + 5 +46 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTER + 70 + 0 + 3 +Center ____ _ ____ _ ____ _ ____ _ ____ _ ____ + 72 + 65 + 73 + 4 + 40 +50.8 + 49 +31.75 + 74 + 0 + 49 +-6.35 + 74 + 0 + 49 +6.35 + 74 + 0 + 49 +-6.35 + 74 + 0 + 0 +LTYPE + 5 +47 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTERTINY + 70 + 0 + 3 +Center (.15x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ + 72 + 65 + 73 + 4 + 40 +7.619999999999999 + 49 +4.7625 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 49 +0.9525 + 74 + 0 + 49 +-0.9525 + 74 + 0 + 0 +LTYPE + 5 +48 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTER2 + 70 + 0 + 3 +Center (.5x) ___ _ ___ _ ___ _ ___ _ ___ _ ___ + 72 + 65 + 73 + 4 + 40 +28.575 + 49 +19.05 + 74 + 0 + 49 +-3.175 + 74 + 0 + 49 +3.175 + 74 + 0 + 49 +-3.175 + 74 + 0 + 0 +LTYPE + 5 +49 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CENTERX2 + 70 + 0 + 3 +Center (2x) ________ __ ________ __ _____ + 72 + 65 + 73 + 4 + 40 +101.6 + 49 +63.5 + 74 + 0 + 49 +-12.7 + 74 + 0 + 49 +12.7 + 74 + 0 + 49 +-12.7 + 74 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LAYER + 5 +10 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 + 0 + 62 + 7 + 6 +CONTINUOUS +370 + -3 +390 +F + 0 +LAYER + 5 +4A +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +DIMENSIONS + 70 + 0 + 62 + 1 + 6 +CONTINUOUS +370 + 13 +390 +F + 0 +LAYER + 5 +4B +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +DOORS + 70 + 0 + 62 + 3 + 6 +CONTINUOUS +370 + 25 +390 +F + 0 +LAYER + 5 +4C +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Defpoints + 70 + 0 + 62 + 7 + 6 +CONTINUOUS +290 +0 +370 + -3 +390 +F + 0 +LAYER + 5 +4D +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +FURNITURE + 70 + 0 + 62 + 8 + 6 +CONTINUOUS +370 + 13 +390 +F + 0 +LAYER + 5 +4E +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TEXT + 70 + 0 + 62 + 2 + 6 +CONTINUOUS +370 + 18 +390 +F + 0 +LAYER + 5 +4F +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TITLEBLOCK + 70 + 0 + 62 + 7 + 6 +CONTINUOUS +370 + 18 +390 +F + 0 +LAYER + 5 +50 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WALLS + 70 + 0 + 62 + 7 + 6 +CONTINUOUS +370 + 50 +390 +F + 0 +LAYER + 5 +51 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WALLS_INT + 70 + 0 + 62 + 7 + 6 +CONTINUOUS +370 + 35 +390 +F + 0 +LAYER + 5 +52 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WINDOWS + 70 + 0 + 62 + 5 + 6 +CONTINUOUS +370 + 25 +390 +F + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 3 + 0 +STYLE + 5 +53 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +OpenSans + 70 + 0 + 40 +0 + 41 +1 + 50 +0 + 71 + 0 + 42 +1 + 3 +OpenSans + 4 + + 0 +STYLE + 5 +54 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +STANDARD + 70 + 0 + 40 +0 + 41 +1 + 50 +0 + 71 + 0 + 42 +1 + 3 +STANDARD + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +APPID + 5 +55 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +LibreCad + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 1 +100 +AcDbDimStyleTable + 71 + 1 + 0 +DIMSTYLE +105 +56 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 + 0 + 40 +1 + 41 +2.5 + 42 +0.625 + 43 +0.38 + 44 +1.25 + 45 +0 + 46 +0 + 47 +0 + 48 +0 + 49 +1 +140 +2.5 +141 +0.09 +142 +0 +143 +25.4 +144 +1 +145 +0 +146 +1 +147 +0.625 +148 +0 + 71 + 0 + 72 + 0 + 73 + 0 + 74 + 1 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 8 + 79 + 0 +170 + 0 +171 + 2 +172 + 0 +173 + 0 +174 + 0 +175 + 0 +176 + 0 +177 + 0 +178 + 0 +179 + 0 +271 + 2 +272 + 4 +273 + 2 +274 + 2 +275 + 0 +276 + 0 +277 + 2 +278 + 44 +279 + 0 +280 + 0 +281 + 0 +282 + 0 +283 + 1 +284 + 0 +285 + 0 +286 + 0 +288 + 0 +289 + 3 +340 +54 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space + 70 + 0 +280 + 1 +281 + 0 + 0 +BLOCK_RECORD + 5 +1E +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space + 70 + 0 +280 + 1 +281 + 0 + 0 +BLOCK_RECORD + 5 +57 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*D4 + 70 + 0 +280 + 1 +281 + 0 + 0 +BLOCK_RECORD + 5 +5A +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*D2 + 70 + 0 +280 + 1 +281 + 0 + 0 +BLOCK_RECORD + 5 +5D +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*D1 + 70 + 0 +280 + 1 +281 + 0 + 0 +BLOCK_RECORD + 5 +60 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*D3 + 70 + 0 +280 + 1 +281 + 0 + 0 +BLOCK_RECORD + 5 +63 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +_CLOSEDFILLED + 70 + 0 +280 + 1 +281 + 0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 + 0 + 10 +0 + 20 +0 + 30 +0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 + 0 + 10 +0 + 20 +0 + 30 +0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +58 +330 +57 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*D4 + 70 + 1 + 10 +0 + 20 +0 + 3 +*D4 + 1 + + 0 +LINE + 5 +66 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +5000 + 20 +9400 + 11 +8000 + 21 +9400 + 0 +MTEXT + 5 +67 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +CONTINUOUS + 62 + 0 +370 + -2 +100 +AcDbMText + 10 +6500 + 20 +9400 + 30 +0 + 40 +2.5 + 41 +6.944444444444599 + 71 + 5 + 72 + 1 + 1 +3000 + 7 +Standard +210 +0 +220 +0 +230 +1 + 50 +0 + 73 + 2 + 44 +1 + 0 +SOLID + 5 +68 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbTrace + 10 +5000 + 20 +9400 + 30 +0 + 11 +5002.5 + 21 +9400.416284657773 + 31 +0 + 12 +5002.5 + 22 +9399.583715342227 + 32 +0 + 13 +5002.5 + 23 +9399.583715342227 + 33 +0 + 0 +SOLID + 5 +69 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbTrace + 10 +8000 + 20 +9400 + 30 +0 + 11 +7997.5 + 21 +9399.583715342227 + 31 +0 + 12 +7997.5 + 22 +9400.416284657773 + 32 +0 + 13 +7997.5 + 23 +9400.416284657773 + 33 +0 + 0 +LINE + 5 +6A +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +5000 + 20 +9000.625 + 11 +5000 + 21 +9401.25 + 0 +LINE + 5 +6B +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +8000 + 20 +9000.625 + 11 +8000 + 21 +9401.25 + 0 +ENDBLK + 5 +59 +330 +57 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +5B +330 +5A +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*D2 + 70 + 1 + 10 +0 + 20 +0 + 3 +*D2 + 1 + + 0 +LINE + 5 +6C +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +5 + 20 +4500 + 11 +-5 + 21 +4500 + 0 +MTEXT + 5 +6D +100 +AcDbEntity + 8 +DIMENSIONS + 6 +CONTINUOUS + 62 + 0 +370 + -2 +100 +AcDbMText + 10 +1.180555555555556 + 20 +4501.125 + 30 +0 + 40 +2.5 + 41 +1.111111111111111 + 71 + 5 + 72 + 1 + 1 +0 + 7 +Standard +210 +0 +220 +0 +230 +1 + 50 +0 + 73 + 2 + 44 +1 + 0 +SOLID + 5 +6E +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbTrace + 10 +0 + 20 +4500 + 30 +0 + 11 +-2.5 + 21 +4499.583715342227 + 31 +0 + 12 +-2.5 + 22 +4500.416284657773 + 32 +0 + 13 +-2.5 + 23 +4500.416284657773 + 33 +0 + 0 +SOLID + 5 +6F +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbTrace + 10 +0 + 20 +4500 + 30 +0 + 11 +-2.5 + 21 +4499.583715342227 + 31 +0 + 12 +-2.5 + 22 +4500.416284657773 + 32 +0 + 13 +-2.5 + 23 +4500.416284657773 + 33 +0 + 0 +LINE + 5 +70 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +3.827021247335479e-17 + 20 +0.625 + 11 +7.654042494670958e-17 + 21 +4501.25 + 0 +LINE + 5 +71 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +-1.148106374200643e-16 + 20 +8999.375 + 11 +-2.296212748401287e-16 + 21 +4498.75 + 0 +ENDBLK + 5 +5C +330 +5A +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +5E +330 +5D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*D1 + 70 + 1 + 10 +0 + 20 +0 + 3 +*D1 + 1 + + 0 +LINE + 5 +72 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +0 + 20 +-600 + 11 +8000 + 21 +-600 + 0 +MTEXT + 5 +73 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +CONTINUOUS + 62 + 0 +370 + -2 +100 +AcDbMText + 10 +4000 + 20 +-600 + 30 +0 + 40 +2.5 + 41 +6.944444444444445 + 71 + 5 + 72 + 1 + 1 +8000 + 7 +Standard +210 +0 +220 +0 +230 +1 + 50 +0 + 73 + 2 + 44 +1 + 0 +SOLID + 5 +74 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbTrace + 10 +0 + 20 +-600 + 30 +0 + 11 +2.5 + 21 +-599.5837153422272 + 31 +0 + 12 +2.5 + 22 +-600.4162846577728 + 32 +0 + 13 +2.5 + 23 +-600.4162846577728 + 33 +0 + 0 +SOLID + 5 +75 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbTrace + 10 +8000 + 20 +-600 + 30 +0 + 11 +7997.5 + 21 +-600.4162846577728 + 31 +0 + 12 +7997.5 + 22 +-599.5837153422272 + 32 +0 + 13 +7997.5 + 23 +-599.5837153422272 + 33 +0 + 0 +LINE + 5 +76 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +-1.148106374200643e-16 + 20 +-0.625 + 11 +-2.296212748401287e-16 + 21 +-601.25 + 0 +LINE + 5 +77 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +8000 + 20 +-0.625 + 11 +8000 + 21 +-601.25 + 0 +ENDBLK + 5 +5F +330 +5D +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +61 +330 +60 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*D3 + 70 + 1 + 10 +0 + 20 +0 + 3 +*D3 + 1 + + 0 +LINE + 5 +78 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +0 + 20 +9400 + 11 +5000 + 21 +9400 + 0 +MTEXT + 5 +79 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +CONTINUOUS + 62 + 0 +370 + -2 +100 +AcDbMText + 10 +2500 + 20 +9400 + 30 +0 + 40 +2.5 + 41 +6.944444444444599 + 71 + 5 + 72 + 1 + 1 +5000 + 7 +Standard +210 +0 +220 +0 +230 +1 + 50 +0 + 73 + 2 + 44 +1 + 0 +SOLID + 5 +7A +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbTrace + 10 +0 + 20 +9400 + 30 +0 + 11 +2.5 + 21 +9400.416284657773 + 31 +0 + 12 +2.5 + 22 +9399.583715342227 + 32 +0 + 13 +2.5 + 23 +9399.583715342227 + 33 +0 + 0 +SOLID + 5 +7B +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbTrace + 10 +5000 + 20 +9400 + 30 +0 + 11 +4997.5 + 21 +9399.583715342227 + 31 +0 + 12 +4997.5 + 22 +9400.416284657773 + 32 +0 + 13 +4997.5 + 23 +9400.416284657773 + 33 +0 + 0 +LINE + 5 +7C +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +3.827021247335479e-17 + 20 +9000.625 + 11 +7.654042494670958e-17 + 21 +9401.25 + 0 +LINE + 5 +7D +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByBlock + 62 + 0 +370 + -2 +100 +AcDbLine + 10 +5000 + 20 +9000.625 + 11 +5000 + 21 +9401.25 + 0 +ENDBLK + 5 +62 +330 +60 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +64 +330 +63 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +_CLOSEDFILLED + 70 + 0 + 10 +0 + 20 +0 + 3 +_CLOSEDFILLED + 1 + + 0 +SOLID + 5 +7E +100 +AcDbEntity + 8 +0 + 6 +ByBlock + 62 + 0 +370 + -1 +100 +AcDbTrace + 10 +-1 + 20 +0.1643989837240254 + 30 +0 + 11 +0 + 21 +0 + 31 +0 + 12 +-1 + 22 +-0.1643989837240254 + 32 +0 + 13 +-1 + 23 +-0.1643989837240254 + 33 +0 + 0 +ENDBLK + 5 +65 +330 +63 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 5 +7F +100 +AcDbEntity + 8 +WALLS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +0 + 20 +125 + 11 +8000 + 21 +125 + 0 +LINE + 5 +80 +100 +AcDbEntity + 8 +WALLS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +0 + 20 +-125 + 11 +8000 + 21 +-125 + 0 +LINE + 5 +81 +100 +AcDbEntity + 8 +WALLS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +7875 + 20 +0 + 11 +7875 + 21 +9000 + 0 +LINE + 5 +82 +100 +AcDbEntity + 8 +WALLS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +8125 + 20 +0 + 11 +8125 + 21 +9000 + 0 +LINE + 5 +83 +100 +AcDbEntity + 8 +WALLS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +8000 + 20 +8875 + 11 +0 + 21 +8875 + 0 +LINE + 5 +84 +100 +AcDbEntity + 8 +WALLS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +8000 + 20 +9125 + 11 +0 + 21 +9125 + 0 +LINE + 5 +85 +100 +AcDbEntity + 8 +WALLS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +125 + 20 +9000 + 11 +125 + 21 +0 + 0 +LINE + 5 +86 +100 +AcDbEntity + 8 +WALLS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +-125 + 20 +9000 + 11 +-125 + 21 +0 + 0 +LINE + 5 +87 +100 +AcDbEntity + 8 +WALLS_INT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +0 + 20 +3600 + 11 +8000 + 21 +3600 + 0 +LINE + 5 +88 +100 +AcDbEntity + 8 +WALLS_INT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +0 + 20 +3400 + 11 +8000 + 21 +3400 + 0 +LINE + 5 +89 +100 +AcDbEntity + 8 +WALLS_INT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +0 + 20 +5100 + 11 +8000 + 21 +5100 + 0 +LINE + 5 +8A +100 +AcDbEntity + 8 +WALLS_INT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +0 + 20 +4900 + 11 +8000 + 21 +4900 + 0 +LINE + 5 +8B +100 +AcDbEntity + 8 +WALLS_INT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +4900 + 20 +0 + 11 +4900 + 21 +9000 + 0 +LINE + 5 +8C +100 +AcDbEntity + 8 +WALLS_INT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +5100 + 20 +0 + 11 +5100 + 21 +9000 + 0 +LINE + 5 +8D +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +1500 + 20 +5000 + 11 +1500 + 21 +5900 + 0 +ARC + 5 +8E +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbCircle + 10 +1500 + 20 +5000 + 40 +900 +100 +AcDbArc + 50 +90 + 51 +180 + 0 +LINE + 5 +8F +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +5500 + 20 +5000 + 11 +5500 + 21 +5900 + 0 +ARC + 5 +90 +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbCircle + 10 +5500 + 20 +5000 + 40 +900 +100 +AcDbArc + 50 +90 + 51 +180 + 0 +LINE + 5 +91 +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +1500 + 20 +3500 + 11 +1500 + 21 +2600 + 0 +ARC + 5 +92 +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbCircle + 10 +1500 + 20 +3500 + 40 +900 +100 +AcDbArc + 50 +270 + 51 +360 + 0 +LINE + 5 +93 +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +5500 + 20 +3500 + 11 +5500 + 21 +2600 + 0 +ARC + 5 +94 +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbCircle + 10 +5500 + 20 +3500 + 40 +900 +100 +AcDbArc + 50 +270 + 51 +360 + 0 +LINE + 5 +95 +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +2500 + 20 +0 + 11 +2500 + 21 +900 + 0 +ARC + 5 +96 +100 +AcDbEntity + 8 +DOORS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbCircle + 10 +2500 + 20 +0 + 40 +900 +100 +AcDbArc + 50 +90 + 51 +180 + 0 +LINE + 5 +97 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +50 + 20 +6400 + 11 +50 + 21 +7600 + 0 +LINE + 5 +98 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +0 + 20 +6400 + 11 +0 + 21 +7600 + 0 +LINE + 5 +99 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +-50 + 20 +6400 + 11 +-50 + 21 +7600 + 0 +LINE + 5 +9A +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +1900 + 20 +8950 + 11 +3100 + 21 +8950 + 0 +LINE + 5 +9B +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +1900 + 20 +9000 + 11 +3100 + 21 +9000 + 0 +LINE + 5 +9C +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +1900 + 20 +9050 + 11 +3100 + 21 +9050 + 0 +LINE + 5 +9D +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +5900 + 20 +8950 + 11 +7100 + 21 +8950 + 0 +LINE + 5 +9E +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +5900 + 20 +9000 + 11 +7100 + 21 +9000 + 0 +LINE + 5 +9F +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +5900 + 20 +9050 + 11 +7100 + 21 +9050 + 0 +LINE + 5 +A0 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +50 + 20 +1200 + 11 +50 + 21 +2400 + 0 +LINE + 5 +A1 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +0 + 20 +1200 + 11 +0 + 21 +2400 + 0 +LINE + 5 +A2 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +-50 + 20 +1200 + 11 +-50 + 21 +2400 + 0 +LINE + 5 +A3 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +1000 + 20 +-50 + 11 +2200 + 21 +-50 + 0 +LINE + 5 +A4 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +1000 + 20 +0 + 11 +2200 + 21 +0 + 0 +LINE + 5 +A5 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +1000 + 20 +50 + 11 +2200 + 21 +50 + 0 +LINE + 5 +A6 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +8050 + 20 +1500 + 11 +8050 + 21 +2300 + 0 +LINE + 5 +A7 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +8000 + 20 +1500 + 11 +8000 + 21 +2300 + 0 +LINE + 5 +A8 +100 +AcDbEntity + 8 +WINDOWS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbLine + 10 +7950 + 20 +1500 + 11 +7950 + 21 +2300 + 0 +TEXT + 5 +A9 +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +2500 + 20 +7080 + 30 +0 + 40 +150 + 1 +LIVING ROOM + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +2500 + 21 +7080 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +AA +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +2500 + 20 +6900 + 30 +0 + 40 +100 + 1 +20.0 m² + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +2500 + 21 +6900 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +AB +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +6500 + 20 +7080 + 30 +0 + 40 +150 + 1 +KITCHEN + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +6500 + 21 +7080 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +AC +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +6500 + 20 +6900 + 30 +0 + 40 +100 + 1 +12.0 m² + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +6500 + 21 +6900 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +AD +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +2000 + 20 +1830 + 30 +0 + 40 +150 + 1 +BEDROOM + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +2000 + 21 +1830 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +AE +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +2000 + 20 +1650 + 30 +0 + 40 +100 + 1 +14.0 m² + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +2000 + 21 +1650 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +AF +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +6250 + 20 +1830 + 30 +0 + 40 +150 + 1 +BATHROOM + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +6250 + 21 +1830 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +B0 +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +6250 + 20 +1650 + 30 +0 + 40 +100 + 1 +8.8 m² + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +6250 + 21 +1650 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +B1 +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +4000 + 20 +4330 + 30 +0 + 40 +150 + 1 +HALLWAY + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +4000 + 21 +4330 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +TEXT + 5 +B2 +100 +AcDbEntity + 8 +TEXT + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +4000 + 20 +4150 + 30 +0 + 40 +100 + 1 +12.0 m² + 50 +0 + 41 +1 + 51 +0 + 7 +OpenSans + 71 + 0 + 72 + 1 + 11 +4000 + 21 +4150 + 31 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 73 + 2 + 0 +DIMENSION + 5 +B3 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbDimension + 2 +*D1 + 10 +0 + 20 +-600 + 30 +0 + 11 +4000 + 21 +-600 + 31 +0 + 70 + 32 + 1 +<> + 71 + 5 + 72 + 0 + 3 +Standard + 53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension + 13 +0 + 23 +0 + 33 +0 + 14 +8000 + 24 +0 + 34 +0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +B4 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbDimension + 2 +*D2 + 10 +0 + 20 +4500 + 30 +0 + 11 +0 + 21 +4501.125 + 31 +0 + 70 + 32 + 1 +<> + 71 + 5 + 72 + 0 + 3 +Standard + 53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension + 13 +0 + 23 +0 + 33 +0 + 14 +0 + 24 +9000 + 34 +0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +B5 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbDimension + 2 +*D3 + 10 +0 + 20 +9400 + 30 +0 + 11 +2500 + 21 +9400 + 31 +0 + 70 + 32 + 1 +<> + 71 + 5 + 72 + 0 + 3 +Standard + 53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension + 13 +0 + 23 +9000 + 33 +0 + 14 +5000 + 24 +9000 + 34 +0 +100 +AcDbRotatedDimension + 0 +DIMENSION + 5 +B6 +100 +AcDbEntity + 8 +DIMENSIONS + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbDimension + 2 +*D4 + 10 +5000 + 20 +9400 + 30 +0 + 11 +6500 + 21 +9400 + 31 +0 + 70 + 32 + 1 +<> + 71 + 5 + 72 + 0 + 3 +Standard + 53 +0 +210 +0 +220 +0 +230 +1 +100 +AcDbAlignedDimension + 13 +5000 + 23 +9000 + 33 +0 + 14 +8000 + 24 +9000 + 34 +0 +100 +AcDbRotatedDimension + 0 +TEXT + 5 +B7 +100 +AcDbEntity + 8 +TITLEBLOCK + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +9000 + 20 +1200 + 30 +0 + 40 +200 + 1 +FLOOR PLAN — 2 BEDROOM APARTMENT + 50 +0 + 41 +1 + 51 +0 + 7 +STANDARD + 71 + 0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 0 +TEXT + 5 +B8 +100 +AcDbEntity + 8 +TITLEBLOCK + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +9000 + 20 +900 + 30 +0 + 40 +120 + 1 +Total Area: 72.0 m² + 50 +0 + 41 +1 + 51 +0 + 7 +STANDARD + 71 + 0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 0 +TEXT + 5 +B9 +100 +AcDbEntity + 8 +TITLEBLOCK + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +9000 + 20 +650 + 30 +0 + 40 +100 + 1 +Scale: 1:100 | Units: mm + 50 +0 + 41 +1 + 51 +0 + 7 +STANDARD + 71 + 0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 0 +TEXT + 5 +BA +100 +AcDbEntity + 8 +TITLEBLOCK + 6 +ByLayer + 62 + 256 +370 + -1 +100 +AcDbText + 10 +9000 + 20 +450 + 30 +0 + 40 +80 + 1 +Generated with ezdxf for LibreCAD + 50 +0 + 41 +1 + 51 +0 + 7 +STANDARD + 71 + 0 +210 +0 +220 +0 +230 +1 +100 +AcDbText + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary +281 + 1 + 3 +ACAD_GROUP +350 +D + 0 +DICTIONARY + 5 +D +330 +C +100 +AcDbDictionary +281 + 1 + 0 +PLOTSETTINGS + 5 +BB +100 +AcDbPlotSettings + 6 +1x1 + 40 +0 + 41 +0 + 42 +0 + 43 +0 + 0 +ENDSEC + 0 +EOF diff --git a/tests/dxf/evacuation_complex_large.dxf b/tests/dxf/evacuation_complex_large.dxf new file mode 100644 index 0000000..d5542b5 --- /dev/null +++ b/tests/dxf/evacuation_complex_large.dxf @@ -0,0 +1,5794 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1024 + 9 +$ACADMAINTVER + 70 +6 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$LASTSAVEDBY + 1 +ezdxf + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$EXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +420.0 + 20 +297.0 + 9 +$ORTHOMODE + 70 +0 + 9 +$REGENMODE + 70 +1 + 9 +$FILLMODE + 70 +1 + 9 +$QTEXTMODE + 70 +0 + 9 +$MIRRTEXT + 70 +1 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 +1 + 9 +$TEXTSIZE + 40 +2.5 + 9 +$TRACEWID + 40 +1.0 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 +256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 +0 + 9 +$DIMSCALE + 40 +1.0 + 9 +$DIMASZ + 40 +2.5 + 9 +$DIMEXO + 40 +0.625 + 9 +$DIMDLI + 40 +3.75 + 9 +$DIMRND + 40 +0.0 + 9 +$DIMDLE + 40 +0.0 + 9 +$DIMEXE + 40 +1.25 + 9 +$DIMTP + 40 +0.0 + 9 +$DIMTM + 40 +0.0 + 9 +$DIMTXT + 40 +2.5 + 9 +$DIMCEN + 40 +2.5 + 9 +$DIMTSZ + 40 +0.0 + 9 +$DIMTOL + 70 +0 + 9 +$DIMLIM + 70 +0 + 9 +$DIMTIH + 70 +0 + 9 +$DIMTOH + 70 +0 + 9 +$DIMSE1 + 70 +0 + 9 +$DIMSE2 + 70 +0 + 9 +$DIMTAD + 70 +1 + 9 +$DIMZIN + 70 +8 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 +1 + 9 +$DIMSHO + 70 +1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 +0 + 9 +$DIMALTD + 70 +3 + 9 +$DIMALTF + 40 +0.03937007874 + 9 +$DIMLFAC + 40 +1.0 + 9 +$DIMTOFL + 70 +1 + 9 +$DIMTVP + 40 +0.0 + 9 +$DIMTIX + 70 +0 + 9 +$DIMSOXD + 70 +0 + 9 +$DIMSAH + 70 +0 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 + + 9 +$DIMSTYLE + 2 +ISO-25 + 9 +$DIMCLRD + 70 +0 + 9 +$DIMCLRE + 70 +0 + 9 +$DIMCLRT + 70 +0 + 9 +$DIMTFAC + 40 +1.0 + 9 +$DIMGAP + 40 +0.625 + 9 +$DIMJUST + 70 +0 + 9 +$DIMSD1 + 70 +0 + 9 +$DIMSD2 + 70 +0 + 9 +$DIMTOLJ + 70 +0 + 9 +$DIMTZIN + 70 +8 + 9 +$DIMALTZ + 70 +0 + 9 +$DIMALTTZ + 70 +0 + 9 +$DIMUPT + 70 +0 + 9 +$DIMDEC + 70 +2 + 9 +$DIMTDEC + 70 +2 + 9 +$DIMALTU + 70 +2 + 9 +$DIMALTTD + 70 +3 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 +0 + 9 +$DIMADEC + 70 +0 + 9 +$DIMALTRND + 40 +0.0 + 9 +$DIMAZIN + 70 +0 + 9 +$DIMDSEP + 70 +44 + 9 +$DIMATFIT + 70 +3 + 9 +$DIMFRAC + 70 +0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 +2 + 9 +$DIMLWD + 70 +-2 + 9 +$DIMLWE + 70 +-2 + 9 +$DIMTMOVE + 70 +0 + 9 +$DIMFXL + 40 +1.0 + 9 +$DIMFXLON + 70 +0 + 9 +$DIMJOGANG + 40 +0.785398163397 + 9 +$DIMTFILL + 70 +0 + 9 +$DIMTFILLCLR + 70 +0 + 9 +$DIMARCSYM + 70 +0 + 9 +$DIMLTYPE + 6 + + 9 +$DIMLTEX1 + 6 + + 9 +$DIMLTEX2 + 6 + + 9 +$DIMTXTDIRECTION + 70 +0 + 9 +$LUNITS + 70 +2 + 9 +$LUPREC + 70 +4 + 9 +$SKETCHINC + 40 +1.0 + 9 +$FILLETRAD + 40 +10.0 + 9 +$AUNITS + 70 +0 + 9 +$AUPREC + 70 +2 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 +0 + 9 +$CHAMFERA + 40 +0.0 + 9 +$CHAMFERB + 40 +0.0 + 9 +$CHAMFERC + 40 +0.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 +0 + 9 +$TDCREATE + 40 +2461138.6350115743 + 9 +$TDUCREATE + 40 +2458532.153996898 + 9 +$TDUPDATE + 40 +2461138.6350115743 + 9 +$TDUUPDATE + 40 +2458532.1544311 + 9 +$TDINDWG + 40 +0.0 + 9 +$TDUSRTIMER + 40 +0.0 + 9 +$USRTIMER + 70 +1 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 +0 + 9 +$PDMODE + 70 +0 + 9 +$PDSIZE + 40 +0.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 +0 + 9 +$SPLINETYPE + 70 +6 + 9 +$SPLINESEGS + 70 +8 + 9 +$HANDSEED + 5 +9C + 9 +$SURFTAB1 + 70 +6 + 9 +$SURFTAB2 + 70 +6 + 9 +$SURFTYPE + 70 +6 + 9 +$SURFU + 70 +6 + 9 +$SURFV + 70 +6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 +0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 +0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$USERI1 + 70 +0 + 9 +$USERI2 + 70 +0 + 9 +$USERI3 + 70 +0 + 9 +$USERI4 + 70 +0 + 9 +$USERI5 + 70 +0 + 9 +$USERR1 + 40 +0.0 + 9 +$USERR2 + 40 +0.0 + 9 +$USERR3 + 40 +0.0 + 9 +$USERR4 + 40 +0.0 + 9 +$USERR5 + 40 +0.0 + 9 +$WORLDVIEW + 70 +1 + 9 +$SHADEDGE + 70 +3 + 9 +$SHADEDIF + 70 +70 + 9 +$TILEMODE + 70 +1 + 9 +$MAXACTVP + 70 +64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 +0 + 9 +$PEXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$PEXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +420.0 + 20 +297.0 + 9 +$UNITMODE + 70 +0 + 9 +$VISRETAIN + 70 +1 + 9 +$PLINEGEN + 70 +0 + 9 +$PSLTSCALE + 70 +1 + 9 +$TREEDEPTH + 70 +3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 +0 + 9 +$CMLSCALE + 40 +20.0 + 9 +$PROXYGRAPHICS + 70 +1 + 9 +$MEASUREMENT + 70 +1 + 9 +$CELWEIGHT +370 +-1 + 9 +$ENDCAPS +280 +0 + 9 +$JOINSTYLE +280 +0 + 9 +$LWDISPLAY +290 +0 + 9 +$INSUNITS + 70 +6 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 +1 + 9 +$CEPSNTYPE +380 +0 + 9 +$PSTYLEMODE +290 +1 + 9 +$FINGERPRINTGUID + 2 +{EA4EDBD7-1C5F-4C92-AE42-ABFA8F771DB4} + 9 +$VERSIONGUID + 2 +{C4992EE5-E95B-40AD-8708-DD50D7009CF4} + 9 +$EXTNAMES +290 +1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 +0 + 9 +$SORTENTS +280 +127 + 9 +$INDEXCTL +280 +0 + 9 +$HIDETEXT +280 +1 + 9 +$XCLIPFRAME +280 +1 + 9 +$HALOGAP +280 +0 + 9 +$OBSCOLOR + 70 +257 + 9 +$OBSLTYPE +280 +0 + 9 +$INTERSECTIONDISPLAY +280 +0 + 9 +$INTERSECTIONCOLOR + 70 +257 + 9 +$DIMASSOC +280 +2 + 9 +$PROJECTNAME + 1 + + 9 +$CAMERADISPLAY +290 +0 + 9 +$LENSLENGTH + 40 +50.0 + 9 +$CAMERAHEIGHT + 40 +0.0 + 9 +$STEPSPERSEC + 40 +24.0 + 9 +$STEPSIZE + 40 +100.0 + 9 +$3DDWFPREC + 40 +2.0 + 9 +$PSOLWIDTH + 40 +0.005 + 9 +$PSOLHEIGHT + 40 +0.08 + 9 +$LOFTANG1 + 40 +1.570796326795 + 9 +$LOFTANG2 + 40 +1.570796326795 + 9 +$LOFTMAG1 + 40 +0.0 + 9 +$LOFTMAG2 + 40 +0.0 + 9 +$LOFTPARAM + 70 +7 + 9 +$LOFTNORMALS +280 +1 + 9 +$LATITUDE + 40 +37.795 + 9 +$LONGITUDE + 40 +-122.394 + 9 +$NORTHDIRECTION + 40 +0.0 + 9 +$TIMEZONE + 70 +-8000 + 9 +$LIGHTGLYPHDISPLAY +280 +1 + 9 +$TILEMODELIGHTSYNCH +280 +1 + 9 +$CMATERIAL +347 +20 + 9 +$SOLIDHIST +280 +0 + 9 +$SHOWHIST +280 +1 + 9 +$DWFFRAME +280 +2 + 9 +$DGNFRAME +280 +2 + 9 +$REALWORLDSCALE +290 +1 + 9 +$INTERFERECOLOR + 62 +256 + 9 +$CSHADOW +280 +0 + 9 +$SHADOWPLANELOCATION + 40 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +SUN + 2 +AcDbSun + 3 +SCENEOE + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +VISUALSTYLE + 2 +AcDbVisualStyle + 3 +ObjectDBX Classes + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MATERIAL + 2 +AcDbMaterial + 3 +ObjectDBX Classes + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +SCALE + 2 +AcDbScale + 3 +ObjectDBX Classes + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +TABLESTYLE + 2 +AcDbTableStyle + 3 +ObjectDBX Classes + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MLEADERSTYLE + 2 +AcDbMLeaderStyle + 3 +ACDB_MLEADERSTYLE_CLASS + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +DICTIONARYVAR + 2 +AcDbDictionaryVar + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +CELLSTYLEMAP + 2 +AcDbCellStyleMap + 3 +ObjectDBX Classes + 90 +1152 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MENTALRAYRENDERSETTINGS + 2 +AcDbMentalRayRenderSettings + 3 +SCENEOE + 90 +1024 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBDETAILVIEWSTYLE + 2 +AcDbDetailViewStyle + 3 +ObjectDBX Classes + 90 +1025 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBSECTIONVIEWSTYLE + 2 +AcDbSectionViewStyle + 3 +ObjectDBX Classes + 90 +1025 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +RASTERVARIABLES + 2 +AcDbRasterVariables + 3 +ISM + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +LAYOUT + 2 +AcDbLayout + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBPLACEHOLDER + 2 +AcDbPlaceHolder + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 +1 + 0 +VPORT + 5 +23 +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 +0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +0.0 + 22 +0.0 + 13 +0.0 + 23 +0.0 + 14 +0.5 + 24 +0.5 + 15 +0.5 + 25 +0.5 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +1000.0 + 41 +1.34 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 +0 + 72 +1000 + 73 +1 + 74 +3 + 75 +0 + 76 +0 + 77 +0 + 78 +0 +281 +0 + 65 +0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 +3 + 0 +LTYPE + 5 +24 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +25 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +26 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 +20 + 0 +LAYER + 5 +27 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 62 +7 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +28 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Defpoints + 70 +0 + 62 +7 + 6 +Continuous +290 +0 +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +2F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WALLS + 70 +0 + 62 +7 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +30 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +DOORS + 70 +0 + 62 +3 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +31 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +EXIT + 70 +0 + 62 +1 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +32 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WINDOWS + 70 +0 + 62 +5 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +33 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TEXT + 70 +0 + 62 +2 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +34 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +OBSTACLE + 70 +0 + 62 +6 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +45 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_WEST_LOBBY + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +48 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_CENTRAL_CONCOURSE + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +4B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_EAST_LOBBY + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +4E +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_AUDITORIUM + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +51 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_CAFETERIA + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +54 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_TRAINING_A + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +57 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_TRAINING_B + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +5A +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_COMMAND_CENTER + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +5D +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_WEST_SERVICE + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +60 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_WEST_BREAKOUT + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +63 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_EAST_STORAGE + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +66 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_EAST_OPERATIONS + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 +1 + 0 +STYLE + 5 +29 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 +0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 +0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 +3 + 0 +APPID + 5 +2A +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 +0 + 0 +APPID + 5 +99 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +HATCHBACKGROUNDCOLOR + 70 +0 + 0 +APPID + 5 +9A +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +EZDXF + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +4 +330 +0 +100 +AcDbSymbolTable + 70 +1 +100 +AcDbDimStyleTable + 0 +DIMSTYLE +105 +2B +330 +4 +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 +0 + 40 +1.0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +2.5 +140 +2.5 +141 +2.5 +142 +0.0 +143 +0.03937007874 +144 +1.0 +145 +0.0 +146 +1.0 +147 +0.625 +148 +0.0 + 69 +0 + 70 +0 + 71 +0 + 72 +0 + 73 +0 + 74 +0 + 75 +0 + 76 +0 + 77 +1 + 78 +8 + 79 +3 +170 +0 +171 +3 +172 +1 +173 +0 +174 +0 +175 +0 +176 +0 +177 +0 +178 +0 +179 +2 +271 +2 +272 +2 +273 +2 +274 +3 +275 +0 +276 +0 +277 +2 +278 +44 +279 +0 +280 +0 +281 +0 +282 +0 +283 +0 +284 +8 +285 +0 +286 +0 +288 +0 +289 +3 +290 +0 +371 +-2 +372 +-2 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 +2 + 0 +BLOCK_RECORD + 5 +17 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +1A + 70 +0 +280 +1 +281 +0 + 0 +BLOCK_RECORD + 5 +1B +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 70 +0 +280 +1 +281 +0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +18 +330 +17 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +19 +330 +17 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +MTEXT + 5 +35 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +0.2 + 20 +-1.2 + 30 +0.0 + 40 +0.28 + 71 +1 + 1 +LARGE EVACUATION COMPLEX\PMulti-wing civic center floor with wide concourse, large assembly spaces, service wings, and multiple exits + 0 +LINE + 5 +36 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +0.0 + 30 +0.0 + 11 +64.0 + 21 +0.0 + 31 +0.0 + 0 +LINE + 5 +37 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +64.0 + 20 +0.0 + 30 +0.0 + 11 +64.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +38 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +64.0 + 20 +42.0 + 30 +0.0 + 11 +0.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +39 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +42.0 + 30 +0.0 + 11 +0.0 + 21 +0.0 + 31 +0.0 + 0 +LINE + 5 +3A +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +12.0 + 20 +0.0 + 30 +0.0 + 11 +12.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +3B +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +52.0 + 20 +0.0 + 30 +0.0 + 11 +52.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +3C +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +12.0 + 20 +16.0 + 30 +0.0 + 11 +52.0 + 21 +16.0 + 31 +0.0 + 0 +LINE + 5 +3D +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +12.0 + 20 +26.0 + 30 +0.0 + 11 +52.0 + 21 +26.0 + 31 +0.0 + 0 +LINE + 5 +3E +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +34.0 + 20 +26.0 + 30 +0.0 + 11 +34.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +3F +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +26.0 + 20 +0.0 + 30 +0.0 + 11 +26.0 + 21 +16.0 + 31 +0.0 + 0 +LINE + 5 +40 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +40.0 + 20 +0.0 + 30 +0.0 + 11 +40.0 + 21 +16.0 + 31 +0.0 + 0 +LINE + 5 +41 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +52.0 + 20 +12.0 + 30 +0.0 + 11 +64.0 + 21 +12.0 + 31 +0.0 + 0 +LINE + 5 +42 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +52.0 + 20 +30.0 + 30 +0.0 + 11 +64.0 + 21 +30.0 + 31 +0.0 + 0 +LINE + 5 +43 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +12.0 + 30 +0.0 + 11 +12.0 + 21 +12.0 + 31 +0.0 + 0 +LINE + 5 +44 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +30.0 + 30 +0.0 + 11 +12.0 + 21 +30.0 + 31 +0.0 + 0 +LWPOLYLINE + 5 +46 +330 +17 +100 +AcDbEntity + 8 +SPACE_WEST_LOBBY +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +0.1 + 20 +12.1 + 10 +11.9 + 20 +12.1 + 10 +11.9 + 20 +29.9 + 10 +0.1 + 20 +29.9 + 0 +MTEXT + 5 +47 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +5.2 + 20 +21.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +WEST LOBBY\P210.0 m^2 + 0 +LWPOLYLINE + 5 +49 +330 +17 +100 +AcDbEntity + 8 +SPACE_CENTRAL_CONCOURSE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +12.1 + 20 +16.1 + 10 +51.9 + 20 +16.1 + 10 +51.9 + 20 +25.9 + 10 +12.1 + 20 +25.9 + 0 +MTEXT + 5 +4A +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +31.2 + 20 +21.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +CENTRAL CONCOURSE\P390.0 m^2 + 0 +LWPOLYLINE + 5 +4C +330 +17 +100 +AcDbEntity + 8 +SPACE_EAST_LOBBY +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +52.1 + 20 +12.1 + 10 +63.9 + 20 +12.1 + 10 +63.9 + 20 +29.9 + 10 +52.1 + 20 +29.9 + 0 +MTEXT + 5 +4D +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +57.2 + 20 +21.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +EAST LOBBY\P210.0 m^2 + 0 +LWPOLYLINE + 5 +4F +330 +17 +100 +AcDbEntity + 8 +SPACE_AUDITORIUM +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +12.1 + 20 +26.1 + 10 +33.9 + 20 +26.1 + 10 +33.9 + 20 +41.9 + 10 +12.1 + 20 +41.9 + 0 +MTEXT + 5 +50 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +22.2 + 20 +34.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +AUDITORIUM\P344.4 m^2 + 0 +LWPOLYLINE + 5 +52 +330 +17 +100 +AcDbEntity + 8 +SPACE_CAFETERIA +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +34.1 + 20 +26.1 + 10 +51.9 + 20 +26.1 + 10 +51.9 + 20 +41.9 + 10 +34.1 + 20 +41.9 + 0 +MTEXT + 5 +53 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +42.2 + 20 +34.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +CAFETERIA\P281.2 m^2 + 0 +LWPOLYLINE + 5 +55 +330 +17 +100 +AcDbEntity + 8 +SPACE_TRAINING_A +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +12.1 + 20 +0.1 + 10 +25.9 + 20 +0.1 + 10 +25.9 + 20 +15.9 + 10 +12.1 + 20 +15.9 + 0 +MTEXT + 5 +56 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +18.2 + 20 +8.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +TRAINING A\P218.0 m^2 + 0 +LWPOLYLINE + 5 +58 +330 +17 +100 +AcDbEntity + 8 +SPACE_TRAINING_B +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +26.1 + 20 +0.1 + 10 +39.9 + 20 +0.1 + 10 +39.9 + 20 +15.9 + 10 +26.1 + 20 +15.9 + 0 +MTEXT + 5 +59 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +32.2 + 20 +8.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +TRAINING B\P218.0 m^2 + 0 +LWPOLYLINE + 5 +5B +330 +17 +100 +AcDbEntity + 8 +SPACE_COMMAND_CENTER +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +40.1 + 20 +0.1 + 10 +51.9 + 20 +0.1 + 10 +51.9 + 20 +15.9 + 10 +40.1 + 20 +15.9 + 0 +MTEXT + 5 +5C +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +45.2 + 20 +8.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +COMMAND CENTER\P186.4 m^2 + 0 +LWPOLYLINE + 5 +5E +330 +17 +100 +AcDbEntity + 8 +SPACE_WEST_SERVICE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +0.1 + 20 +0.1 + 10 +11.9 + 20 +0.1 + 10 +11.9 + 20 +11.9 + 10 +0.1 + 20 +11.9 + 0 +MTEXT + 5 +5F +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +5.2 + 20 +6.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +WEST SERVICE\P139.2 m^2 + 0 +LWPOLYLINE + 5 +61 +330 +17 +100 +AcDbEntity + 8 +SPACE_WEST_BREAKOUT +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +0.1 + 20 +30.1 + 10 +11.9 + 20 +30.1 + 10 +11.9 + 20 +41.9 + 10 +0.1 + 20 +41.9 + 0 +MTEXT + 5 +62 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +5.2 + 20 +36.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +WEST BREAKOUT\P139.2 m^2 + 0 +LWPOLYLINE + 5 +64 +330 +17 +100 +AcDbEntity + 8 +SPACE_EAST_STORAGE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +52.1 + 20 +0.1 + 10 +63.9 + 20 +0.1 + 10 +63.9 + 20 +11.9 + 10 +52.1 + 20 +11.9 + 0 +MTEXT + 5 +65 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +57.2 + 20 +6.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +EAST STORAGE\P139.2 m^2 + 0 +LWPOLYLINE + 5 +67 +330 +17 +100 +AcDbEntity + 8 +SPACE_EAST_OPERATIONS +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +52.1 + 20 +30.1 + 10 +63.9 + 20 +30.1 + 10 +63.9 + 20 +41.9 + 10 +52.1 + 20 +41.9 + 0 +MTEXT + 5 +68 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +57.2 + 20 +36.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +EAST OPERATIONS\P139.2 m^2 + 0 +LINE + 5 +69 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +12.0 + 20 +19.5 + 30 +0.0 + 11 +12.0 + 21 +22.5 + 31 +0.0 + 0 +ARC + 5 +6A +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +12.0 + 20 +19.5 + 30 +0.0 + 40 +1.0 +100 +AcDbArc + 50 +180.0 + 51 +270.0 + 0 +LINE + 5 +6B +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +52.0 + 20 +19.5 + 30 +0.0 + 11 +52.0 + 21 +22.5 + 31 +0.0 + 0 +ARC + 5 +6C +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +52.0 + 20 +19.5 + 30 +0.0 + 40 +1.0 +100 +AcDbArc + 50 +0.0 + 51 +90.0 + 0 +LINE + 5 +6D +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +20.0 + 20 +26.0 + 30 +0.0 + 11 +23.0 + 21 +26.0 + 31 +0.0 + 0 +ARC + 5 +6E +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +20.0 + 20 +26.0 + 30 +0.0 + 40 +1.0 +100 +AcDbArc + 50 +0.0 + 51 +90.0 + 0 +LINE + 5 +6F +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +42.0 + 20 +26.0 + 30 +0.0 + 11 +45.0 + 21 +26.0 + 31 +0.0 + 0 +ARC + 5 +70 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +42.0 + 20 +26.0 + 30 +0.0 + 40 +1.0 +100 +AcDbArc + 50 +90.0 + 51 +180.0 + 0 +LINE + 5 +71 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +18.0 + 20 +16.0 + 30 +0.0 + 11 +21.0 + 21 +16.0 + 31 +0.0 + 0 +ARC + 5 +72 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +18.0 + 20 +16.0 + 30 +0.0 + 40 +1.0 +100 +AcDbArc + 50 +270.0 + 51 +360.0 + 0 +LINE + 5 +73 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +31.0 + 20 +16.0 + 30 +0.0 + 11 +34.0 + 21 +16.0 + 31 +0.0 + 0 +ARC + 5 +74 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +31.0 + 20 +16.0 + 30 +0.0 + 40 +1.0 +100 +AcDbArc + 50 +270.0 + 51 +360.0 + 0 +LINE + 5 +75 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +45.0 + 20 +16.0 + 30 +0.0 + 11 +48.0 + 21 +16.0 + 31 +0.0 + 0 +ARC + 5 +76 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +45.0 + 20 +16.0 + 30 +0.0 + 40 +1.0 +100 +AcDbArc + 50 +270.0 + 51 +360.0 + 0 +LINE + 5 +77 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +6.0 + 20 +12.0 + 30 +0.0 + 11 +8.5 + 21 +12.0 + 31 +0.0 + 0 +ARC + 5 +78 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +6.0 + 20 +12.0 + 30 +0.0 + 40 +0.9 +100 +AcDbArc + 50 +270.0 + 51 +360.0 + 0 +LINE + 5 +79 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +6.0 + 20 +30.0 + 30 +0.0 + 11 +8.5 + 21 +30.0 + 31 +0.0 + 0 +ARC + 5 +7A +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +6.0 + 20 +30.0 + 30 +0.0 + 40 +0.9 +100 +AcDbArc + 50 +0.0 + 51 +90.0 + 0 +LINE + 5 +7B +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +57.0 + 20 +12.0 + 30 +0.0 + 11 +59.5 + 21 +12.0 + 31 +0.0 + 0 +ARC + 5 +7C +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +57.0 + 20 +12.0 + 30 +0.0 + 40 +0.9 +100 +AcDbArc + 50 +270.0 + 51 +360.0 + 0 +LINE + 5 +7D +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +57.0 + 20 +30.0 + 30 +0.0 + 11 +59.5 + 21 +30.0 + 31 +0.0 + 0 +ARC + 5 +7E +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +57.0 + 20 +30.0 + 30 +0.0 + 40 +0.9 +100 +AcDbArc + 50 +0.0 + 51 +90.0 + 0 +LINE + 5 +7F +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +0.0 + 20 +18.0 + 30 +0.0 + 11 +0.0 + 21 +21.0 + 31 +0.0 + 0 +LINE + 5 +80 +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +0.0 + 20 +35.0 + 30 +0.0 + 11 +0.0 + 21 +38.0 + 31 +0.0 + 0 +LINE + 5 +81 +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +18.0 + 20 +42.0 + 30 +0.0 + 11 +21.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +82 +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +43.0 + 20 +42.0 + 30 +0.0 + 11 +46.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +83 +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +64.0 + 20 +18.0 + 30 +0.0 + 11 +64.0 + 21 +21.0 + 31 +0.0 + 0 +LINE + 5 +84 +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +64.0 + 20 +34.0 + 30 +0.0 + 11 +64.0 + 21 +37.0 + 31 +0.0 + 0 +LINE + 5 +85 +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +18.0 + 20 +0.0 + 30 +0.0 + 11 +21.0 + 21 +0.0 + 31 +0.0 + 0 +LINE + 5 +86 +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +44.0 + 20 +0.0 + 30 +0.0 + 11 +47.0 + 21 +0.0 + 31 +0.0 + 0 +LINE + 5 +87 +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +0.0 + 20 +23.0 + 30 +0.0 + 11 +0.0 + 21 +27.0 + 31 +0.0 + 0 +LINE + 5 +88 +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +14.0 + 20 +42.0 + 30 +0.0 + 11 +17.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +89 +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +28.0 + 20 +42.0 + 30 +0.0 + 11 +31.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +8A +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +36.0 + 20 +42.0 + 30 +0.0 + 11 +39.0 + 21 +42.0 + 31 +0.0 + 0 +LINE + 5 +8B +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +64.0 + 20 +24.0 + 30 +0.0 + 11 +64.0 + 21 +28.0 + 31 +0.0 + 0 +LINE + 5 +8C +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +24.0 + 20 +0.0 + 30 +0.0 + 11 +27.0 + 21 +0.0 + 31 +0.0 + 0 +LINE + 5 +8D +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +48.0 + 20 +0.0 + 30 +0.0 + 11 +51.0 + 21 +0.0 + 31 +0.0 + 0 +LWPOLYLINE + 5 +8E +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +20.0 + 20 +19.0 + 10 +21.5 + 20 +19.0 + 10 +21.5 + 20 +20.5 + 10 +20.0 + 20 +20.5 + 0 +LWPOLYLINE + 5 +8F +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +30.0 + 20 +19.0 + 10 +31.5 + 20 +19.0 + 10 +31.5 + 20 +20.5 + 10 +30.0 + 20 +20.5 + 0 +LWPOLYLINE + 5 +90 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +40.0 + 20 +19.0 + 10 +41.5 + 20 +19.0 + 10 +41.5 + 20 +20.5 + 10 +40.0 + 20 +20.5 + 0 +LWPOLYLINE + 5 +91 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +20.0 + 20 +21.5 + 10 +21.5 + 20 +21.5 + 10 +21.5 + 20 +23.0 + 10 +20.0 + 20 +23.0 + 0 +LWPOLYLINE + 5 +92 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +30.0 + 20 +21.5 + 10 +31.5 + 20 +21.5 + 10 +31.5 + 20 +23.0 + 10 +30.0 + 20 +23.0 + 0 +LWPOLYLINE + 5 +93 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +40.0 + 20 +21.5 + 10 +41.5 + 20 +21.5 + 10 +41.5 + 20 +23.0 + 10 +40.0 + 20 +23.0 + 0 +LWPOLYLINE + 5 +94 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +17.0 + 20 +31.0 + 10 +18.5 + 20 +31.0 + 10 +18.5 + 20 +32.5 + 10 +17.0 + 20 +32.5 + 0 +LWPOLYLINE + 5 +95 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +24.0 + 20 +31.0 + 10 +25.5 + 20 +31.0 + 10 +25.5 + 20 +32.5 + 10 +24.0 + 20 +32.5 + 0 +LWPOLYLINE + 5 +96 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +38.0 + 20 +32.0 + 10 +40.5 + 20 +32.0 + 10 +40.5 + 20 +34.0 + 10 +38.0 + 20 +34.0 + 0 +LWPOLYLINE + 5 +97 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +43.0 + 20 +6.0 + 10 +45.5 + 20 +6.0 + 10 +45.5 + 20 +8.0 + 10 +43.0 + 20 +8.0 + 0 +LWPOLYLINE + 5 +98 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +55.0 + 20 +34.0 + 10 +57.0 + 20 +34.0 + 10 +57.0 + 20 +36.5 + 10 +55.0 + 20 +36.5 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +A +330 +0 +100 +AcDbDictionary +281 +1 + 3 +ACAD_COLOR +350 +B + 3 +ACAD_GROUP +350 +C + 3 +ACAD_LAYOUT +350 +D + 3 +ACAD_MATERIAL +350 +E + 3 +ACAD_MLEADERSTYLE +350 +F + 3 +ACAD_MLINESTYLE +350 +10 + 3 +ACAD_PLOTSETTINGS +350 +11 + 3 +ACAD_PLOTSTYLENAME +350 +12 + 3 +ACAD_SCALELIST +350 +14 + 3 +ACAD_TABLESTYLE +350 +15 + 3 +ACAD_VISUALSTYLE +350 +16 + 3 +EZDXF_META +350 +2D + 0 +DICTIONARY + 5 +B +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +C +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +D +330 +A +100 +AcDbDictionary +281 +1 + 3 +Model +350 +1A + 3 +Layout1 +350 +1E + 0 +DICTIONARY + 5 +E +330 +A +100 +AcDbDictionary +281 +1 + 3 +ByBlock +350 +1F + 3 +ByLayer +350 +20 + 3 +Global +350 +21 + 0 +DICTIONARY + 5 +F +330 +A +100 +AcDbDictionary +281 +1 + 3 +Standard +350 +2C + 0 +DICTIONARY + 5 +10 +330 +A +100 +AcDbDictionary +281 +1 + 3 +Standard +350 +22 + 0 +DICTIONARY + 5 +11 +330 +A +100 +AcDbDictionary +281 +1 + 0 +ACDBDICTIONARYWDFLT + 5 +12 +330 +A +100 +AcDbDictionary +281 +1 + 3 +Normal +350 +13 +100 +AcDbDictionaryWithDefault +340 +13 + 0 +ACDBPLACEHOLDER + 5 +13 +330 +12 + 0 +DICTIONARY + 5 +14 +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +15 +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +16 +330 +A +100 +AcDbDictionary +281 +1 + 0 +LAYOUT + 5 +1A +330 +D +100 +AcDbPlotSettings + 1 + + 4 +A3 + 6 + + 40 +7.5 + 41 +20.0 + 42 +7.5 + 43 +20.0 + 44 +420.0 + 45 +297.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +1024 + 72 +1 + 73 +0 + 74 +5 + 7 + + 75 +16 + 76 +0 + 77 +2 + 78 +300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 +1 + 71 +0 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1e+20 + 24 +1e+20 + 34 +1e+20 + 15 +-1e+20 + 25 +-1e+20 + 35 +-1e+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +1 +330 +17 + 0 +LAYOUT + 5 +1E +330 +D +100 +AcDbPlotSettings + 1 + + 4 +A3 + 6 + + 40 +7.5 + 41 +20.0 + 42 +7.5 + 43 +20.0 + 44 +420.0 + 45 +297.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +0 + 72 +1 + 73 +0 + 74 +5 + 7 + + 75 +16 + 76 +0 + 77 +2 + 78 +300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 +1 + 71 +1 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1e+20 + 24 +1e+20 + 34 +1e+20 + 15 +-1e+20 + 25 +-1e+20 + 35 +-1e+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +1 +330 +1B + 0 +MATERIAL + 5 +1F +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +ByBlock + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MATERIAL + 5 +20 +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +ByLayer + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MATERIAL + 5 +21 +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +Global + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MLINESTYLE + 5 +22 +102 +{ACAD_REACTORS +330 +10 +102 +} +330 +10 +100 +AcDbMlineStyle + 2 +Standard + 70 +0 + 3 + + 62 +256 + 51 +90.0 + 52 +90.0 + 71 +2 + 49 +0.5 + 62 +256 + 6 +BYLAYER + 49 +-0.5 + 62 +256 + 6 +BYLAYER + 0 +MLEADERSTYLE + 5 +2C +102 +{ACAD_REACTORS +330 +F +102 +} +330 +F +100 +AcDbMLeaderStyle +179 +2 +170 +2 +171 +1 +172 +0 + 90 +2 + 40 +0.0 + 41 +0.0 +173 +1 + 91 +-1056964608 + 92 +-2 +290 +1 + 42 +2.0 +291 +1 + 43 +8.0 + 3 +Standard + 44 +4.0 +300 + +342 +29 +174 +1 +175 +1 +176 +0 +178 +1 + 93 +-1056964608 + 45 +4.0 +292 +0 +297 +0 + 46 +4.0 + 94 +-1056964608 + 47 +1.0 + 49 +1.0 +140 +1.0 +294 +1 +141 +0.0 +177 +0 +142 +1.0 +295 +0 +296 +0 +143 +3.75 +271 +0 +272 +9 +273 +9 + 0 +DICTIONARY + 5 +2D +330 +A +100 +AcDbDictionary +280 +1 +281 +1 + 3 +CREATED_BY_EZDXF +350 +2E + 3 +WRITTEN_BY_EZDXF +350 +9B + 0 +DICTIONARYVAR + 5 +2E +330 +2D +100 +DictionaryVariables +280 +0 + 1 +1.4.2 @ 2026-04-07T06:14:25.712109+00:00 + 0 +DICTIONARYVAR + 5 +9B +330 +2D +100 +DictionaryVariables +280 +0 + 1 +1.4.2 @ 2026-04-07T06:14:25.715931+00:00 + 0 +ENDSEC + 0 +EOF diff --git a/tests/dxf/generate_building_samples.py b/tests/dxf/generate_building_samples.py index 4b9c7d2..5e419b9 100644 --- a/tests/dxf/generate_building_samples.py +++ b/tests/dxf/generate_building_samples.py @@ -1,9 +1,3 @@ -"""DXF 임포트 단위 테스트가 참조하는 픽스처 생성기. - -`office_suite.dxf` 만 본 스크립트로 결정적으로 재생성됩니다. -시연용 평면 자산은 `assets/demo-layouts/generate_demo_layouts.py` 에 별도로 있습니다. -""" - from __future__ import annotations from pathlib import Path @@ -115,6 +109,40 @@ def add_title(msp: ezdxf.layouts.Modelspace, title: str, subtitle: str) -> None: ) +def build_home_plan(path: Path) -> None: + doc, msp = new_document() + + add_title(msp, "HOME PLAN SAMPLE", "Generated from a plan2dxf-style workflow for SafeCrowd tests") + + outer = (0.0, 0.0, 10.0, 8.0) + add_wall(msp, (outer[0], outer[1]), (outer[2], outer[1])) + add_wall(msp, (outer[2], outer[1]), (outer[2], outer[3])) + add_wall(msp, (outer[2], outer[3]), (outer[0], outer[3])) + add_wall(msp, (outer[0], outer[3]), (outer[0], outer[1])) + + add_wall(msp, (4.8, 0.0), (4.8, 5.0)) + add_wall(msp, (0.0, 5.0), (10.0, 5.0)) + add_wall(msp, (7.2, 5.0), (7.2, 8.0)) + + add_space(doc, msp, "Living Room", 0.1, 0.1, 4.7, 4.9) + add_space(doc, msp, "Kitchen", 4.9, 0.1, 9.9, 2.9) + add_space(doc, msp, "Dining", 4.9, 3.1, 9.9, 4.9) + add_space(doc, msp, "Bedroom", 0.1, 5.1, 7.1, 7.9) + add_space(doc, msp, "Bath", 7.3, 5.1, 9.9, 7.9) + + add_door(msp, (2.0, 0.0), (2.9, 0.0), swing_center=(2.0, 0.0), swing_radius=0.9, start_angle=0, end_angle=90, layer="EXIT") + add_door(msp, (4.8, 2.0), (4.8, 2.9), swing_center=(4.8, 2.0), swing_radius=0.9, start_angle=0, end_angle=90) + add_door(msp, (7.2, 6.2), (7.2, 7.0), swing_center=(7.2, 6.2), swing_radius=0.8, start_angle=180, end_angle=270) + + add_window(msp, (0.0, 6.1), (0.0, 7.2)) + add_window(msp, (8.1, 8.0), (9.3, 8.0)) + add_window(msp, (10.0, 1.0), (10.0, 2.2)) + + add_obstacle(msp, 6.2, 1.0, 7.3, 1.8) + + doc.saveas(path) + + def build_office_plan(path: Path) -> None: doc, msp = new_document() @@ -157,8 +185,100 @@ def build_office_plan(path: Path) -> None: doc.saveas(path) +def build_evacuation_complex_large(path: Path) -> None: + doc, msp = new_document() + + add_title( + msp, + "LARGE EVACUATION COMPLEX", + "Multi-wing civic center floor with wide concourse, large assembly spaces, service wings, and multiple exits", + ) + + outer = (0.0, 0.0, 64.0, 42.0) + add_wall(msp, (outer[0], outer[1]), (outer[2], outer[1])) + add_wall(msp, (outer[2], outer[1]), (outer[2], outer[3])) + add_wall(msp, (outer[2], outer[3]), (outer[0], outer[3])) + add_wall(msp, (outer[0], outer[3]), (outer[0], outer[1])) + + # Primary structural partitions + add_wall(msp, (12.0, 0.0), (12.0, 42.0)) + add_wall(msp, (52.0, 0.0), (52.0, 42.0)) + add_wall(msp, (12.0, 16.0), (52.0, 16.0)) + add_wall(msp, (12.0, 26.0), (52.0, 26.0)) + add_wall(msp, (34.0, 26.0), (34.0, 42.0)) + add_wall(msp, (26.0, 0.0), (26.0, 16.0)) + add_wall(msp, (40.0, 0.0), (40.0, 16.0)) + add_wall(msp, (52.0, 12.0), (64.0, 12.0)) + add_wall(msp, (52.0, 30.0), (64.0, 30.0)) + add_wall(msp, (0.0, 12.0), (12.0, 12.0)) + add_wall(msp, (0.0, 30.0), (12.0, 30.0)) + + # Walkable zones + add_space(doc, msp, "West Lobby", 0.1, 12.1, 11.9, 29.9) + add_space(doc, msp, "Central Concourse", 12.1, 16.1, 51.9, 25.9) + add_space(doc, msp, "East Lobby", 52.1, 12.1, 63.9, 29.9) + add_space(doc, msp, "Auditorium", 12.1, 26.1, 33.9, 41.9) + add_space(doc, msp, "Cafeteria", 34.1, 26.1, 51.9, 41.9) + add_space(doc, msp, "Training A", 12.1, 0.1, 25.9, 15.9) + add_space(doc, msp, "Training B", 26.1, 0.1, 39.9, 15.9) + add_space(doc, msp, "Command Center", 40.1, 0.1, 51.9, 15.9) + add_space(doc, msp, "West Service", 0.1, 0.1, 11.9, 11.9) + add_space(doc, msp, "West Breakout", 0.1, 30.1, 11.9, 41.9) + add_space(doc, msp, "East Storage", 52.1, 0.1, 63.9, 11.9) + add_space(doc, msp, "East Operations", 52.1, 30.1, 63.9, 41.9) + + # Internal doors from concourse/lobbies to adjacent spaces + add_door(msp, (12.0, 19.5), (12.0, 22.5), swing_center=(12.0, 19.5), swing_radius=1.0, start_angle=180, end_angle=270) + add_door(msp, (52.0, 19.5), (52.0, 22.5), swing_center=(52.0, 19.5), swing_radius=1.0, start_angle=0, end_angle=90) + add_door(msp, (20.0, 26.0), (23.0, 26.0), swing_center=(20.0, 26.0), swing_radius=1.0, start_angle=0, end_angle=90) + add_door(msp, (42.0, 26.0), (45.0, 26.0), swing_center=(42.0, 26.0), swing_radius=1.0, start_angle=90, end_angle=180) + add_door(msp, (18.0, 16.0), (21.0, 16.0), swing_center=(18.0, 16.0), swing_radius=1.0, start_angle=270, end_angle=360) + add_door(msp, (31.0, 16.0), (34.0, 16.0), swing_center=(31.0, 16.0), swing_radius=1.0, start_angle=270, end_angle=360) + add_door(msp, (45.0, 16.0), (48.0, 16.0), swing_center=(45.0, 16.0), swing_radius=1.0, start_angle=270, end_angle=360) + add_door(msp, (6.0, 12.0), (8.5, 12.0), swing_center=(6.0, 12.0), swing_radius=0.9, start_angle=270, end_angle=360) + add_door(msp, (6.0, 30.0), (8.5, 30.0), swing_center=(6.0, 30.0), swing_radius=0.9, start_angle=0, end_angle=90) + add_door(msp, (57.0, 12.0), (59.5, 12.0), swing_center=(57.0, 12.0), swing_radius=0.9, start_angle=270, end_angle=360) + add_door(msp, (57.0, 30.0), (59.5, 30.0), swing_center=(57.0, 30.0), swing_radius=0.9, start_angle=0, end_angle=90) + + # External exits around the perimeter + add_door(msp, (0.0, 18.0), (0.0, 21.0), layer="EXIT") + add_door(msp, (0.0, 35.0), (0.0, 38.0), layer="EXIT") + add_door(msp, (18.0, 42.0), (21.0, 42.0), layer="EXIT") + add_door(msp, (43.0, 42.0), (46.0, 42.0), layer="EXIT") + add_door(msp, (64.0, 18.0), (64.0, 21.0), layer="EXIT") + add_door(msp, (64.0, 34.0), (64.0, 37.0), layer="EXIT") + add_door(msp, (18.0, 0.0), (21.0, 0.0), layer="EXIT") + add_door(msp, (44.0, 0.0), (47.0, 0.0), layer="EXIT") + + # Windows + add_window(msp, (0.0, 23.0), (0.0, 27.0)) + add_window(msp, (14.0, 42.0), (17.0, 42.0)) + add_window(msp, (28.0, 42.0), (31.0, 42.0)) + add_window(msp, (36.0, 42.0), (39.0, 42.0)) + add_window(msp, (64.0, 24.0), (64.0, 28.0)) + add_window(msp, (24.0, 0.0), (27.0, 0.0)) + add_window(msp, (48.0, 0.0), (51.0, 0.0)) + + # Obstacles / columns / furniture islands + add_obstacle(msp, 20.0, 19.0, 21.5, 20.5) + add_obstacle(msp, 30.0, 19.0, 31.5, 20.5) + add_obstacle(msp, 40.0, 19.0, 41.5, 20.5) + add_obstacle(msp, 20.0, 21.5, 21.5, 23.0) + add_obstacle(msp, 30.0, 21.5, 31.5, 23.0) + add_obstacle(msp, 40.0, 21.5, 41.5, 23.0) + add_obstacle(msp, 17.0, 31.0, 18.5, 32.5) + add_obstacle(msp, 24.0, 31.0, 25.5, 32.5) + add_obstacle(msp, 38.0, 32.0, 40.5, 34.0) + add_obstacle(msp, 43.0, 6.0, 45.5, 8.0) + add_obstacle(msp, 55.0, 34.0, 57.0, 36.5) + + doc.saveas(path) + + def main() -> None: + build_home_plan(OUTPUT_DIR / "home_plan.dxf") build_office_plan(OUTPUT_DIR / "office_suite.dxf") + build_evacuation_complex_large(OUTPUT_DIR / "evacuation_complex_large.dxf") if __name__ == "__main__": diff --git a/tests/dxf/home_plan.dxf b/tests/dxf/home_plan.dxf new file mode 100644 index 0000000..b01554d --- /dev/null +++ b/tests/dxf/home_plan.dxf @@ -0,0 +1,4034 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1024 + 9 +$ACADMAINTVER + 70 +6 + 9 +$DWGCODEPAGE + 3 +ANSI_1252 + 9 +$LASTSAVEDBY + 1 +ezdxf + 9 +$INSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$EXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$EXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$LIMMIN + 10 +0.0 + 20 +0.0 + 9 +$LIMMAX + 10 +420.0 + 20 +297.0 + 9 +$ORTHOMODE + 70 +0 + 9 +$REGENMODE + 70 +1 + 9 +$FILLMODE + 70 +1 + 9 +$QTEXTMODE + 70 +0 + 9 +$MIRRTEXT + 70 +1 + 9 +$LTSCALE + 40 +1.0 + 9 +$ATTMODE + 70 +1 + 9 +$TEXTSIZE + 40 +2.5 + 9 +$TRACEWID + 40 +1.0 + 9 +$TEXTSTYLE + 7 +Standard + 9 +$CLAYER + 8 +0 + 9 +$CELTYPE + 6 +ByLayer + 9 +$CECOLOR + 62 +256 + 9 +$CELTSCALE + 40 +1.0 + 9 +$DISPSILH + 70 +0 + 9 +$DIMSCALE + 40 +1.0 + 9 +$DIMASZ + 40 +2.5 + 9 +$DIMEXO + 40 +0.625 + 9 +$DIMDLI + 40 +3.75 + 9 +$DIMRND + 40 +0.0 + 9 +$DIMDLE + 40 +0.0 + 9 +$DIMEXE + 40 +1.25 + 9 +$DIMTP + 40 +0.0 + 9 +$DIMTM + 40 +0.0 + 9 +$DIMTXT + 40 +2.5 + 9 +$DIMCEN + 40 +2.5 + 9 +$DIMTSZ + 40 +0.0 + 9 +$DIMTOL + 70 +0 + 9 +$DIMLIM + 70 +0 + 9 +$DIMTIH + 70 +0 + 9 +$DIMTOH + 70 +0 + 9 +$DIMSE1 + 70 +0 + 9 +$DIMSE2 + 70 +0 + 9 +$DIMTAD + 70 +1 + 9 +$DIMZIN + 70 +8 + 9 +$DIMBLK + 1 + + 9 +$DIMASO + 70 +1 + 9 +$DIMSHO + 70 +1 + 9 +$DIMPOST + 1 + + 9 +$DIMAPOST + 1 + + 9 +$DIMALT + 70 +0 + 9 +$DIMALTD + 70 +3 + 9 +$DIMALTF + 40 +0.03937007874 + 9 +$DIMLFAC + 40 +1.0 + 9 +$DIMTOFL + 70 +1 + 9 +$DIMTVP + 40 +0.0 + 9 +$DIMTIX + 70 +0 + 9 +$DIMSOXD + 70 +0 + 9 +$DIMSAH + 70 +0 + 9 +$DIMBLK1 + 1 + + 9 +$DIMBLK2 + 1 + + 9 +$DIMSTYLE + 2 +ISO-25 + 9 +$DIMCLRD + 70 +0 + 9 +$DIMCLRE + 70 +0 + 9 +$DIMCLRT + 70 +0 + 9 +$DIMTFAC + 40 +1.0 + 9 +$DIMGAP + 40 +0.625 + 9 +$DIMJUST + 70 +0 + 9 +$DIMSD1 + 70 +0 + 9 +$DIMSD2 + 70 +0 + 9 +$DIMTOLJ + 70 +0 + 9 +$DIMTZIN + 70 +8 + 9 +$DIMALTZ + 70 +0 + 9 +$DIMALTTZ + 70 +0 + 9 +$DIMUPT + 70 +0 + 9 +$DIMDEC + 70 +2 + 9 +$DIMTDEC + 70 +2 + 9 +$DIMALTU + 70 +2 + 9 +$DIMALTTD + 70 +3 + 9 +$DIMTXSTY + 7 +Standard + 9 +$DIMAUNIT + 70 +0 + 9 +$DIMADEC + 70 +0 + 9 +$DIMALTRND + 40 +0.0 + 9 +$DIMAZIN + 70 +0 + 9 +$DIMDSEP + 70 +44 + 9 +$DIMATFIT + 70 +3 + 9 +$DIMFRAC + 70 +0 + 9 +$DIMLDRBLK + 1 + + 9 +$DIMLUNIT + 70 +2 + 9 +$DIMLWD + 70 +-2 + 9 +$DIMLWE + 70 +-2 + 9 +$DIMTMOVE + 70 +0 + 9 +$DIMFXL + 40 +1.0 + 9 +$DIMFXLON + 70 +0 + 9 +$DIMJOGANG + 40 +0.785398163397 + 9 +$DIMTFILL + 70 +0 + 9 +$DIMTFILLCLR + 70 +0 + 9 +$DIMARCSYM + 70 +0 + 9 +$DIMLTYPE + 6 + + 9 +$DIMLTEX1 + 6 + + 9 +$DIMLTEX2 + 6 + + 9 +$DIMTXTDIRECTION + 70 +0 + 9 +$LUNITS + 70 +2 + 9 +$LUPREC + 70 +4 + 9 +$SKETCHINC + 40 +1.0 + 9 +$FILLETRAD + 40 +10.0 + 9 +$AUNITS + 70 +0 + 9 +$AUPREC + 70 +2 + 9 +$MENU + 1 +. + 9 +$ELEVATION + 40 +0.0 + 9 +$PELEVATION + 40 +0.0 + 9 +$THICKNESS + 40 +0.0 + 9 +$LIMCHECK + 70 +0 + 9 +$CHAMFERA + 40 +0.0 + 9 +$CHAMFERB + 40 +0.0 + 9 +$CHAMFERC + 40 +0.0 + 9 +$CHAMFERD + 40 +0.0 + 9 +$SKPOLY + 70 +0 + 9 +$TDCREATE + 40 +2461138.6350115743 + 9 +$TDUCREATE + 40 +2458532.153996898 + 9 +$TDUPDATE + 40 +2461138.6350115743 + 9 +$TDUUPDATE + 40 +2458532.1544311 + 9 +$TDINDWG + 40 +0.0 + 9 +$TDUSRTIMER + 40 +0.0 + 9 +$USRTIMER + 70 +1 + 9 +$ANGBASE + 50 +0.0 + 9 +$ANGDIR + 70 +0 + 9 +$PDMODE + 70 +0 + 9 +$PDSIZE + 40 +0.0 + 9 +$PLINEWID + 40 +0.0 + 9 +$SPLFRAME + 70 +0 + 9 +$SPLINETYPE + 70 +6 + 9 +$SPLINESEGS + 70 +8 + 9 +$HANDSEED + 5 +59 + 9 +$SURFTAB1 + 70 +6 + 9 +$SURFTAB2 + 70 +6 + 9 +$SURFTYPE + 70 +6 + 9 +$SURFU + 70 +6 + 9 +$SURFV + 70 +6 + 9 +$UCSBASE + 2 + + 9 +$UCSNAME + 2 + + 9 +$UCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$UCSORTHOREF + 2 + + 9 +$UCSORTHOVIEW + 70 +0 + 9 +$UCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$UCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSBASE + 2 + + 9 +$PUCSNAME + 2 + + 9 +$PUCSORG + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSXDIR + 10 +1.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSYDIR + 10 +0.0 + 20 +1.0 + 30 +0.0 + 9 +$PUCSORTHOREF + 2 + + 9 +$PUCSORTHOVIEW + 70 +0 + 9 +$PUCSORGTOP + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBOTTOM + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGLEFT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGRIGHT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGFRONT + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PUCSORGBACK + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$USERI1 + 70 +0 + 9 +$USERI2 + 70 +0 + 9 +$USERI3 + 70 +0 + 9 +$USERI4 + 70 +0 + 9 +$USERI5 + 70 +0 + 9 +$USERR1 + 40 +0.0 + 9 +$USERR2 + 40 +0.0 + 9 +$USERR3 + 40 +0.0 + 9 +$USERR4 + 40 +0.0 + 9 +$USERR5 + 40 +0.0 + 9 +$WORLDVIEW + 70 +1 + 9 +$SHADEDGE + 70 +3 + 9 +$SHADEDIF + 70 +70 + 9 +$TILEMODE + 70 +1 + 9 +$MAXACTVP + 70 +64 + 9 +$PINSBASE + 10 +0.0 + 20 +0.0 + 30 +0.0 + 9 +$PLIMCHECK + 70 +0 + 9 +$PEXTMIN + 10 +1e+20 + 20 +1e+20 + 30 +1e+20 + 9 +$PEXTMAX + 10 +-1e+20 + 20 +-1e+20 + 30 +-1e+20 + 9 +$PLIMMIN + 10 +0.0 + 20 +0.0 + 9 +$PLIMMAX + 10 +420.0 + 20 +297.0 + 9 +$UNITMODE + 70 +0 + 9 +$VISRETAIN + 70 +1 + 9 +$PLINEGEN + 70 +0 + 9 +$PSLTSCALE + 70 +1 + 9 +$TREEDEPTH + 70 +3020 + 9 +$CMLSTYLE + 2 +Standard + 9 +$CMLJUST + 70 +0 + 9 +$CMLSCALE + 40 +20.0 + 9 +$PROXYGRAPHICS + 70 +1 + 9 +$MEASUREMENT + 70 +1 + 9 +$CELWEIGHT +370 +-1 + 9 +$ENDCAPS +280 +0 + 9 +$JOINSTYLE +280 +0 + 9 +$LWDISPLAY +290 +0 + 9 +$INSUNITS + 70 +6 + 9 +$HYPERLINKBASE + 1 + + 9 +$STYLESHEET + 1 + + 9 +$XEDIT +290 +1 + 9 +$CEPSNTYPE +380 +0 + 9 +$PSTYLEMODE +290 +1 + 9 +$FINGERPRINTGUID + 2 +{7F8C12D3-6229-44E2-AADD-C5B2452CBB51} + 9 +$VERSIONGUID + 2 +{E2D7A65D-E728-43E9-BD0F-CA8B1391CCA9} + 9 +$EXTNAMES +290 +1 + 9 +$PSVPSCALE + 40 +0.0 + 9 +$OLESTARTUP +290 +0 + 9 +$SORTENTS +280 +127 + 9 +$INDEXCTL +280 +0 + 9 +$HIDETEXT +280 +1 + 9 +$XCLIPFRAME +280 +1 + 9 +$HALOGAP +280 +0 + 9 +$OBSCOLOR + 70 +257 + 9 +$OBSLTYPE +280 +0 + 9 +$INTERSECTIONDISPLAY +280 +0 + 9 +$INTERSECTIONCOLOR + 70 +257 + 9 +$DIMASSOC +280 +2 + 9 +$PROJECTNAME + 1 + + 9 +$CAMERADISPLAY +290 +0 + 9 +$LENSLENGTH + 40 +50.0 + 9 +$CAMERAHEIGHT + 40 +0.0 + 9 +$STEPSPERSEC + 40 +24.0 + 9 +$STEPSIZE + 40 +100.0 + 9 +$3DDWFPREC + 40 +2.0 + 9 +$PSOLWIDTH + 40 +0.005 + 9 +$PSOLHEIGHT + 40 +0.08 + 9 +$LOFTANG1 + 40 +1.570796326795 + 9 +$LOFTANG2 + 40 +1.570796326795 + 9 +$LOFTMAG1 + 40 +0.0 + 9 +$LOFTMAG2 + 40 +0.0 + 9 +$LOFTPARAM + 70 +7 + 9 +$LOFTNORMALS +280 +1 + 9 +$LATITUDE + 40 +37.795 + 9 +$LONGITUDE + 40 +-122.394 + 9 +$NORTHDIRECTION + 40 +0.0 + 9 +$TIMEZONE + 70 +-8000 + 9 +$LIGHTGLYPHDISPLAY +280 +1 + 9 +$TILEMODELIGHTSYNCH +280 +1 + 9 +$CMATERIAL +347 +20 + 9 +$SOLIDHIST +280 +0 + 9 +$SHOWHIST +280 +1 + 9 +$DWFFRAME +280 +2 + 9 +$DGNFRAME +280 +2 + 9 +$REALWORLDSCALE +290 +1 + 9 +$INTERFERECOLOR + 62 +256 + 9 +$CSHADOW +280 +0 + 9 +$SHADOWPLANELOCATION + 40 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +CLASSES + 0 +CLASS + 1 +ACDBDICTIONARYWDFLT + 2 +AcDbDictionaryWithDefault + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +SUN + 2 +AcDbSun + 3 +SCENEOE + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +VISUALSTYLE + 2 +AcDbVisualStyle + 3 +ObjectDBX Classes + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MATERIAL + 2 +AcDbMaterial + 3 +ObjectDBX Classes + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +SCALE + 2 +AcDbScale + 3 +ObjectDBX Classes + 90 +1153 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +TABLESTYLE + 2 +AcDbTableStyle + 3 +ObjectDBX Classes + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MLEADERSTYLE + 2 +AcDbMLeaderStyle + 3 +ACDB_MLEADERSTYLE_CLASS + 90 +4095 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +DICTIONARYVAR + 2 +AcDbDictionaryVar + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +CELLSTYLEMAP + 2 +AcDbCellStyleMap + 3 +ObjectDBX Classes + 90 +1152 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +MENTALRAYRENDERSETTINGS + 2 +AcDbMentalRayRenderSettings + 3 +SCENEOE + 90 +1024 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBDETAILVIEWSTYLE + 2 +AcDbDetailViewStyle + 3 +ObjectDBX Classes + 90 +1025 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBSECTIONVIEWSTYLE + 2 +AcDbSectionViewStyle + 3 +ObjectDBX Classes + 90 +1025 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +RASTERVARIABLES + 2 +AcDbRasterVariables + 3 +ISM + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +LAYOUT + 2 +AcDbLayout + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +CLASS + 1 +ACDBPLACEHOLDER + 2 +AcDbPlaceHolder + 3 +ObjectDBX Classes + 90 +0 + 91 +0 +280 +0 +281 +0 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 +1 + 0 +VPORT + 5 +23 +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*Active + 70 +0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +0.0 + 22 +0.0 + 13 +0.0 + 23 +0.0 + 14 +0.5 + 24 +0.5 + 15 +0.5 + 25 +0.5 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +1000.0 + 41 +1.34 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 +0 + 72 +1000 + 73 +1 + 74 +3 + 75 +0 + 76 +0 + 77 +0 + 78 +0 +281 +0 + 65 +0 +146 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +2 +330 +0 +100 +AcDbSymbolTable + 70 +3 + 0 +LTYPE + 5 +24 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByBlock + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +25 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +ByLayer + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +LTYPE + 5 +26 +330 +2 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +Continuous + 70 +0 + 3 + + 72 +65 + 73 +0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 +13 + 0 +LAYER + 5 +27 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 62 +7 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +28 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Defpoints + 70 +0 + 62 +7 + 6 +Continuous +290 +0 +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +2F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WALLS + 70 +0 + 62 +7 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +30 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +DOORS + 70 +0 + 62 +3 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +31 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +EXIT + 70 +0 + 62 +1 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +32 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +WINDOWS + 70 +0 + 62 +5 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +33 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +TEXT + 70 +0 + 62 +2 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +34 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +OBSTACLE + 70 +0 + 62 +6 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +3D +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_LIVING_ROOM + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +40 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_KITCHEN + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +43 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_DINING + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +46 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_BEDROOM + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +LAYER + 5 +49 +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +SPACE_BATH + 70 +0 + 62 +4 + 6 +Continuous +370 +-3 +390 +13 +347 +21 + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 +1 + 0 +STYLE + 5 +29 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +Standard + 70 +0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 +0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 +3 + 0 +APPID + 5 +2A +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 +0 + 0 +APPID + 5 +56 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +HATCHBACKGROUNDCOLOR + 70 +0 + 0 +APPID + 5 +57 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +EZDXF + 70 +0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +4 +330 +0 +100 +AcDbSymbolTable + 70 +1 +100 +AcDbDimStyleTable + 0 +DIMSTYLE +105 +2B +330 +4 +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +Standard + 70 +0 + 40 +1.0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +2.5 +140 +2.5 +141 +2.5 +142 +0.0 +143 +0.03937007874 +144 +1.0 +145 +0.0 +146 +1.0 +147 +0.625 +148 +0.0 + 69 +0 + 70 +0 + 71 +0 + 72 +0 + 73 +0 + 74 +0 + 75 +0 + 76 +0 + 77 +1 + 78 +8 + 79 +3 +170 +0 +171 +3 +172 +1 +173 +0 +174 +0 +175 +0 +176 +0 +177 +0 +178 +0 +179 +2 +271 +2 +272 +2 +273 +2 +274 +3 +275 +0 +276 +0 +277 +2 +278 +44 +279 +0 +280 +0 +281 +0 +282 +0 +283 +0 +284 +8 +285 +0 +286 +0 +288 +0 +289 +3 +290 +0 +371 +-2 +372 +-2 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 +2 + 0 +BLOCK_RECORD + 5 +17 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Model_Space +340 +1A + 70 +0 +280 +1 +281 +0 + 0 +BLOCK_RECORD + 5 +1B +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*Paper_Space +340 +1E + 70 +0 +280 +1 +281 +0 + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +18 +330 +17 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Model_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Model_Space + 1 + + 0 +ENDBLK + 5 +19 +330 +17 +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*Paper_Space + 70 +0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*Paper_Space + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +MTEXT + 5 +35 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +0.2 + 20 +-1.2 + 30 +0.0 + 40 +0.28 + 71 +1 + 1 +HOME PLAN SAMPLE\PGenerated from a plan2dxf-style workflow for SafeCrowd tests + 0 +LINE + 5 +36 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +0.0 + 30 +0.0 + 11 +10.0 + 21 +0.0 + 31 +0.0 + 0 +LINE + 5 +37 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +10.0 + 20 +0.0 + 30 +0.0 + 11 +10.0 + 21 +8.0 + 31 +0.0 + 0 +LINE + 5 +38 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +10.0 + 20 +8.0 + 30 +0.0 + 11 +0.0 + 21 +8.0 + 31 +0.0 + 0 +LINE + 5 +39 +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +8.0 + 30 +0.0 + 11 +0.0 + 21 +0.0 + 31 +0.0 + 0 +LINE + 5 +3A +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +4.8 + 20 +0.0 + 30 +0.0 + 11 +4.8 + 21 +5.0 + 31 +0.0 + 0 +LINE + 5 +3B +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +0.0 + 20 +5.0 + 30 +0.0 + 11 +10.0 + 21 +5.0 + 31 +0.0 + 0 +LINE + 5 +3C +330 +17 +100 +AcDbEntity + 8 +WALLS +100 +AcDbLine + 10 +7.2 + 20 +5.0 + 30 +0.0 + 11 +7.2 + 21 +8.0 + 31 +0.0 + 0 +LWPOLYLINE + 5 +3E +330 +17 +100 +AcDbEntity + 8 +SPACE_LIVING_ROOM +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +0.1 + 20 +0.1 + 10 +4.7 + 20 +0.1 + 10 +4.7 + 20 +4.9 + 10 +0.1 + 20 +4.9 + 0 +MTEXT + 5 +3F +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +1.5999999999999999 + 20 +2.6 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +LIVING ROOM\P22.1 m^2 + 0 +LWPOLYLINE + 5 +41 +330 +17 +100 +AcDbEntity + 8 +SPACE_KITCHEN +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +4.9 + 20 +0.1 + 10 +9.9 + 20 +0.1 + 10 +9.9 + 20 +2.9 + 10 +4.9 + 20 +2.9 + 0 +MTEXT + 5 +42 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +6.6000000000000005 + 20 +1.6 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +KITCHEN\P14.0 m^2 + 0 +LWPOLYLINE + 5 +44 +330 +17 +100 +AcDbEntity + 8 +SPACE_DINING +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +4.9 + 20 +3.1 + 10 +9.9 + 20 +3.1 + 10 +9.9 + 20 +4.9 + 10 +4.9 + 20 +4.9 + 0 +MTEXT + 5 +45 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +6.6000000000000005 + 20 +4.1 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +DINING\P9.0 m^2 + 0 +LWPOLYLINE + 5 +47 +330 +17 +100 +AcDbEntity + 8 +SPACE_BEDROOM +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +0.1 + 20 +5.1 + 10 +7.1 + 20 +5.1 + 10 +7.1 + 20 +7.9 + 10 +0.1 + 20 +7.9 + 0 +MTEXT + 5 +48 +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +2.8 + 20 +6.6 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +BEDROOM\P19.6 m^2 + 0 +LWPOLYLINE + 5 +4A +330 +17 +100 +AcDbEntity + 8 +SPACE_BATH +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +7.3 + 20 +5.1 + 10 +9.9 + 20 +5.1 + 10 +9.9 + 20 +7.9 + 10 +7.3 + 20 +7.9 + 0 +MTEXT + 5 +4B +330 +17 +100 +AcDbEntity + 8 +TEXT +100 +AcDbMText + 10 +7.8 + 20 +6.6 + 30 +0.0 + 40 +0.24 + 71 +1 + 1 +BATH\P7.3 m^2 + 0 +LINE + 5 +4C +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbLine + 10 +2.0 + 20 +0.0 + 30 +0.0 + 11 +2.9 + 21 +0.0 + 31 +0.0 + 0 +ARC + 5 +4D +330 +17 +100 +AcDbEntity + 8 +EXIT +100 +AcDbCircle + 10 +2.0 + 20 +0.0 + 30 +0.0 + 40 +0.9 +100 +AcDbArc + 50 +0.0 + 51 +90.0 + 0 +LINE + 5 +4E +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +4.8 + 20 +2.0 + 30 +0.0 + 11 +4.8 + 21 +2.9 + 31 +0.0 + 0 +ARC + 5 +4F +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +4.8 + 20 +2.0 + 30 +0.0 + 40 +0.9 +100 +AcDbArc + 50 +0.0 + 51 +90.0 + 0 +LINE + 5 +50 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbLine + 10 +7.2 + 20 +6.2 + 30 +0.0 + 11 +7.2 + 21 +7.0 + 31 +0.0 + 0 +ARC + 5 +51 +330 +17 +100 +AcDbEntity + 8 +DOORS +100 +AcDbCircle + 10 +7.2 + 20 +6.2 + 30 +0.0 + 40 +0.8 +100 +AcDbArc + 50 +180.0 + 51 +270.0 + 0 +LINE + 5 +52 +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +0.0 + 20 +6.1 + 30 +0.0 + 11 +0.0 + 21 +7.2 + 31 +0.0 + 0 +LINE + 5 +53 +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +8.1 + 20 +8.0 + 30 +0.0 + 11 +9.3 + 21 +8.0 + 31 +0.0 + 0 +LINE + 5 +54 +330 +17 +100 +AcDbEntity + 8 +WINDOWS +100 +AcDbLine + 10 +10.0 + 20 +1.0 + 30 +0.0 + 11 +10.0 + 21 +2.2 + 31 +0.0 + 0 +LWPOLYLINE + 5 +55 +330 +17 +100 +AcDbEntity + 8 +OBSTACLE +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +6.2 + 20 +1.0 + 10 +7.3 + 20 +1.0 + 10 +7.3 + 20 +1.8 + 10 +6.2 + 20 +1.8 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +A +330 +0 +100 +AcDbDictionary +281 +1 + 3 +ACAD_COLOR +350 +B + 3 +ACAD_GROUP +350 +C + 3 +ACAD_LAYOUT +350 +D + 3 +ACAD_MATERIAL +350 +E + 3 +ACAD_MLEADERSTYLE +350 +F + 3 +ACAD_MLINESTYLE +350 +10 + 3 +ACAD_PLOTSETTINGS +350 +11 + 3 +ACAD_PLOTSTYLENAME +350 +12 + 3 +ACAD_SCALELIST +350 +14 + 3 +ACAD_TABLESTYLE +350 +15 + 3 +ACAD_VISUALSTYLE +350 +16 + 3 +EZDXF_META +350 +2D + 0 +DICTIONARY + 5 +B +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +C +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +D +330 +A +100 +AcDbDictionary +281 +1 + 3 +Model +350 +1A + 3 +Layout1 +350 +1E + 0 +DICTIONARY + 5 +E +330 +A +100 +AcDbDictionary +281 +1 + 3 +ByBlock +350 +1F + 3 +ByLayer +350 +20 + 3 +Global +350 +21 + 0 +DICTIONARY + 5 +F +330 +A +100 +AcDbDictionary +281 +1 + 3 +Standard +350 +2C + 0 +DICTIONARY + 5 +10 +330 +A +100 +AcDbDictionary +281 +1 + 3 +Standard +350 +22 + 0 +DICTIONARY + 5 +11 +330 +A +100 +AcDbDictionary +281 +1 + 0 +ACDBDICTIONARYWDFLT + 5 +12 +330 +A +100 +AcDbDictionary +281 +1 + 3 +Normal +350 +13 +100 +AcDbDictionaryWithDefault +340 +13 + 0 +ACDBPLACEHOLDER + 5 +13 +330 +12 + 0 +DICTIONARY + 5 +14 +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +15 +330 +A +100 +AcDbDictionary +281 +1 + 0 +DICTIONARY + 5 +16 +330 +A +100 +AcDbDictionary +281 +1 + 0 +LAYOUT + 5 +1A +330 +D +100 +AcDbPlotSettings + 1 + + 4 +A3 + 6 + + 40 +7.5 + 41 +20.0 + 42 +7.5 + 43 +20.0 + 44 +420.0 + 45 +297.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +1024 + 72 +1 + 73 +0 + 74 +5 + 7 + + 75 +16 + 76 +0 + 77 +2 + 78 +300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Model + 70 +1 + 71 +0 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1e+20 + 24 +1e+20 + 34 +1e+20 + 15 +-1e+20 + 25 +-1e+20 + 35 +-1e+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +1 +330 +17 + 0 +LAYOUT + 5 +1E +330 +D +100 +AcDbPlotSettings + 1 + + 4 +A3 + 6 + + 40 +7.5 + 41 +20.0 + 42 +7.5 + 43 +20.0 + 44 +420.0 + 45 +297.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 + 49 +0.0 +140 +0.0 +141 +0.0 +142 +1.0 +143 +1.0 + 70 +0 + 72 +1 + 73 +0 + 74 +5 + 7 + + 75 +16 + 76 +0 + 77 +2 + 78 +300 +147 +1.0 +148 +0.0 +149 +0.0 +100 +AcDbLayout + 1 +Layout1 + 70 +1 + 71 +1 + 10 +0.0 + 20 +0.0 + 11 +420.0 + 21 +297.0 + 12 +0.0 + 22 +0.0 + 32 +0.0 + 14 +1e+20 + 24 +1e+20 + 34 +1e+20 + 15 +-1e+20 + 25 +-1e+20 + 35 +-1e+20 +146 +0.0 + 13 +0.0 + 23 +0.0 + 33 +0.0 + 16 +1.0 + 26 +0.0 + 36 +0.0 + 17 +0.0 + 27 +1.0 + 37 +0.0 + 76 +1 +330 +1B + 0 +MATERIAL + 5 +1F +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +ByBlock + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MATERIAL + 5 +20 +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +ByLayer + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MATERIAL + 5 +21 +102 +{ACAD_REACTORS +330 +E +102 +} +330 +E +100 +AcDbMaterial + 1 +Global + 2 + + 70 +0 + 40 +1.0 + 71 +1 + 41 +1.0 + 91 +-1023410177 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 44 +0.5 + 73 +0 + 45 +1.0 + 46 +1.0 + 77 +1 + 4 + + 78 +1 + 79 +1 +170 +1 + 48 +1.0 +171 +1 + 6 + +172 +1 +173 +1 +174 +1 +140 +1.0 +141 +1.0 +175 +1 + 7 + +176 +1 +177 +1 +178 +1 +143 +1.0 +179 +1 + 8 + +270 +1 +271 +1 +272 +1 +145 +1.0 +146 +1.0 +273 +1 + 9 + +274 +1 +275 +1 +276 +1 + 42 +1.0 + 72 +1 + 3 + + 73 +1 + 74 +1 + 75 +1 + 94 +63 + 0 +MLINESTYLE + 5 +22 +102 +{ACAD_REACTORS +330 +10 +102 +} +330 +10 +100 +AcDbMlineStyle + 2 +Standard + 70 +0 + 3 + + 62 +256 + 51 +90.0 + 52 +90.0 + 71 +2 + 49 +0.5 + 62 +256 + 6 +BYLAYER + 49 +-0.5 + 62 +256 + 6 +BYLAYER + 0 +MLEADERSTYLE + 5 +2C +102 +{ACAD_REACTORS +330 +F +102 +} +330 +F +100 +AcDbMLeaderStyle +179 +2 +170 +2 +171 +1 +172 +0 + 90 +2 + 40 +0.0 + 41 +0.0 +173 +1 + 91 +-1056964608 + 92 +-2 +290 +1 + 42 +2.0 +291 +1 + 43 +8.0 + 3 +Standard + 44 +4.0 +300 + +342 +29 +174 +1 +175 +1 +176 +0 +178 +1 + 93 +-1056964608 + 45 +4.0 +292 +0 +297 +0 + 46 +4.0 + 94 +-1056964608 + 47 +1.0 + 49 +1.0 +140 +1.0 +294 +1 +141 +0.0 +177 +0 +142 +1.0 +295 +0 +296 +0 +143 +3.75 +271 +0 +272 +9 +273 +9 + 0 +DICTIONARY + 5 +2D +330 +A +100 +AcDbDictionary +280 +1 +281 +1 + 3 +CREATED_BY_EZDXF +350 +2E + 3 +WRITTEN_BY_EZDXF +350 +58 + 0 +DICTIONARYVAR + 5 +2E +330 +2D +100 +DictionaryVariables +280 +0 + 1 +1.4.2 @ 2026-04-07T06:14:25.689174+00:00 + 0 +DICTIONARYVAR + 5 +58 +330 +2D +100 +DictionaryVariables +280 +0 + 1 +1.4.2 @ 2026-04-07T06:14:25.694151+00:00 + 0 +ENDSEC + 0 +EOF