Class: Dxf::FloorPlan

Inherits:
Object
  • Object
show all
Defined in:
lib/dxf/floor_plan.rb

Defined Under Namespace

Classes: Bidet, Block

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(floorplan_hsh, room_type, flooring_type) ⇒ FloorPlan

Returns a new instance of FloorPlan.



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/dxf/floor_plan.rb', line 4

def initialize(floorplan_hsh, room_type, flooring_type)
  @room_type = room_type
  @flooring_type = flooring_type
  @hsh = floorplan_hsh
  @dxf = ''
  headers
  # classes
  tables
  blocks
  entities
  objects
  end_file
end

Instance Attribute Details

#dxfObject (readonly)

Returns the value of attribute dxf.



2
3
4
# File 'lib/dxf/floor_plan.rb', line 2

def dxf
  @dxf
end

#hshObject (readonly)

Returns the value of attribute hsh.



2
3
4
# File 'lib/dxf/floor_plan.rb', line 2

def hsh
  @hsh
end

Instance Method Details

#blocksObject

blocks



641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
# File 'lib/dxf/floor_plan.rb', line 641

def blocks # http://www.autodesk.com/techpubs/autocad/acadr14/dxf/blocks_in_dxf_files_al_u05_c.htm
  dxf << "0\nSECTION\n"
  # blocks section
  dxf << "2\nBLOCKS\n"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockBegin\n"
  dxf << "2\n*Model_Space\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\n*Model_Space\n1\n*Model_Space\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockEnd\n"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n67\n1\n8\n0\n100\nAcDbBlockBegin\n"
  dxf << "2\n*Paper_Space\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\n*Paper_Space\n1\n*Paper_Space\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n67\n1\n8\n0\n100\nAcDbBlockEnd\n"

  # thermostat
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nThermostats\n100\nAcDbBlockBegin\n"
  dxf << "2\nTSTAT\n70\n0\n10\n0.0\n20\n0.0\n30\n0.0\n3\nTSTAT\n1\nTSTAT\n" # block name
  dxf << "0\nCIRCLE\n100\nAcDbEntity\n8\nThermostats\n370\n0\n100\nAcDbCircle\n10\n0.0\n20\n0.0\n30\n0.0\n40\n3.0\n" # block content
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nThermostats\n6\nContinuous\n100\nAcDbText\n10\n-1.2\n20\n-1.5\n30\n0.0\n40\n3.0\n1\nT\n100\nAcDbText\n" # block content
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nThermostats\n100\nAcDbBlockEnd\n"

  # fixtures
  # Bidet            linkage="bidet"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nbidet\n70\n0\n10\n24\n20\n18\n3\nbidet\n1\nbidet\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbEllipse\n10\n24.0\n20\n18.0\n11\n24.0\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.75\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbEllipse\n10\n20.9729612711883\n20\n18.0\n11\n17.29733942372201\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.7804668492245455\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n20\n20\n18\n40\n3\n1\nBidet\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Bookcase            linkage="bookcase"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nbookcase\n70\n0\n10\n30\n20\n12\n3\nbookcase\n1\nbookcase\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n24\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n24\n11\n60\n21\n24\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n60\n20\n24\n11\n60\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n60\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n20\n20\n18\n40\n3\n1\nBookcase\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Chair               linkage="chair" desc="chair"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nchair\n70\n0\n10\n18.0\n20\n18.0\n3\nchair\n1\nchair\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n36\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n36\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n36\n20\n0\n11\n36\n21\n36\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n36\n11\n36\n21\n36\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n27.8\n11\n36\n21\n27.8\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n11\n20\n18\n40\n3\n1\nChair\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Clawfoot Tub
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nClawfootTub\n70\n0\n10\n72\n20\n36\n3\nClawfootTub\n1\nClawfootTub\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n18.42635694264806\n20\n63.60489673583069\n11\n114.344691846235\n21\n63.60489673583069\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n18.35423788646338\n20\n9.679218186123961\n11\n114.2725727900503\n21\n9.679218186123961\n"
  dxf << "0\nSPLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbSpline\n210\n0.0\n220\n0.0\n230\n1.0\n70\n8\n71\n3\n72\n11\n73\n7\n74\n0\n42\n0.0\n43\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n"
  dxf << "40\n20.65248297607312\n40\n47.62646824322792\n40\n66.7375711701294\n40\n77.69113402689787\n40\n77.69113402689787\n40\n77.69113402689787\n40\n77.69113402689787\n10\n114.344691846235\n"
  dxf << "20\n63.60489673583069\n30\n0.0\n10\n118.9603109694151\n20\n62.87813556928111\n30\n0.0\n10\n132.8071683389555\n20\n56.3372850703351\n30\n0.0\n10\n138.8651684381294\n20\n32.20881434088975\n"
  dxf << "30\n0.0\n10\n126.3164539469835\n20\n15.92936421017961\n30\n0.0\n10\n120.6911681406077\n20\n11.13274051095252\n30\n0.0\n10\n114.2725727900503\n20\n9.679218186123961\n30\n0.0\n"
  dxf << "0\nSPLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbSpline\n210\n0.0\n220\n0.0\n230\n1.0\n70\n8\n71\n3\n72\n11\n73\n7\n74\n0\n42\n0.0\n43\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n"
  dxf << "40\n20.65248297607312\n40\n47.62646824322792\n40\n66.7375711701294\n40\n77.69113402689787\n40\n77.69113402689787\n40\n77.69113402689787\n40\n77.69113402689787\n10\n18.42635694264806\n"
  dxf << "20\n63.60489673583069\n30\n0.0\n10\n15.83007118585923\n20\n63.31419226921085\n30\n0.0\n10\n4.723737670707067\n20\n54.59305827061615\n30\n0.0\n10\n3.137118597113869\n20\n27.84824734159238\n"
  dxf << "30\n0.0\n10\n9.195118696287807\n20\n18.10964770982829\n30\n0.0\n10\n14.67616640506418\n20\n11.27809274426244\n30\n0.0\n10\n18.35423788646338\n20\n9.679218186123961\n30\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n14.02709495891474\n20\n67.52940703768382\n11\n123.5759300925952\n21\n67.52940703768382\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n13.84679733277588\n20\n4.591890020785797\n11\n123.3956324664564\n21\n4.591890020785797\n"
  dxf << "0\nSPLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbSpline\n210\n0.0\n220\n0.0\n230\n1.0\n70\n8\n71\n3\n72\n14\n73\n10\n74\n0\n42\n0.0\n43\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n"
  dxf << "40\n12.41791667152077\n40\n28.06403746513897\n40\n35.34157743053044\n40\n51.65539443940168\n40\n64.79676783426837\n40\n79.54461685639828\n40\n84.86149031817284\n40\n84.86149031817284\n"
  dxf << "40\n84.86149031817284\n40\n84.86149031817284\n10\n123.5759300925952\n20\n67.52940703768382\n30\n0.0\n10\n127.0663145934258\n20\n65.7611294585596\n30\n0.0\n10\n135.259215998145\n20\n61.86066993611175\n"
  dxf << "30\n0.0\n10\n141.8941684877164\n20\n49.36037787145935\n30\n0.0\n10\n144.0028208099944\n20\n39.89273521621323\n30\n0.0\n10\n144.4904542445052\n20\n29.15641744138159\n30\n0.0\n10\n139.1536446333282\n"
  dxf << "20\n17.0921820766589\n30\n0.0\n10\n130.4137965810553\n20\n8.135913322351229\n30\n0.0\n10\n124.8657799942615\n20\n5.334283189455391\n30\n0.0\n10\n123.3956324664564\n20\n4.591890020785797\n30\n0.0\n"
  dxf << "0\nSPLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbSpline\n210\n0.0\n220\n0.0\n230\n1.0\n70\n8\n71\n3\n72\n12\n73\n8\n74\n0\n42\n0.0\n43\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n"
  dxf << "40\n13.07784586050326\n40\n27.97147080905125\n40\n48.63563902028818\n40\n61.71071582603637\n40\n76.11119978287786\n40\n76.11119978287786\n40\n76.11119978287786\n40\n76.11119978287786\n10\n14.02709495891474\n"
  dxf << "20\n67.52940703768382\n30\n0.0\n10\n10.27690444158912\n20\n65.34912353554964\n30\n0.0\n10\n4.371190754349868\n20\n58.88629663736066\n30\n0.0\n10\n-0.2049336036068325\n20\n43.82801571513733\n30\n0.0\n10\n-0.3885208277320373\n"
  dxf << "20\n28.50991718352219\n30\n0.0\n10\n4.445266732457782\n20\n13.84095130518935\n30\n0.0\n10\n8.978761563194695\n20\n8.807104777993942\n30\n0.0\n10\n13.84679733277588\n20\n4.591890020785797\n30\n0.0\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n25.98022594572433\n20\n36.64205746097733\n11\n2.291375519706528E-16\n21\n-3.742100206037975\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.992334925407323\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n25.98022594572433\n20\n36.64205746097733\n11\n1.718531639779892E-16\n21\n-2.806575154528474\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.9923349254073229\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n23.19516339910527\n20\n36.64205746097733\n11\n28.76528849234339\n21\n36.64205746097733\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n25.98022594572433\n20\n39.4486326155058\n11\n25.98022594572433\n21\n33.83548230644882\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n30.72163222697699\n20\n3.584309556556093\n11\n2.163917756422856E-16\n21\n-3.533945882077119\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.9932543621350295\n41\n4.461164581527846\n42\n8.080032908465391\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n106.8840220879196\n20\n3.53394588207712\n11\n2.163917756422856E-16\n21\n-3.533945882077119\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.9932543621350246\n41\n4.461164581527846\n42\n8.08003290846539\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n30.26445392639317\n20\n68.41569044344394\n11\n2.163917756422856E-16\n21\n-3.533945882077119\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.9932543621350295\n41\n1.34474505230399\n42\n4.963613379241533\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n106.4268437873358\n20\n68.46605411792288\n11\n2.163917756422869E-16\n21\n-3.533945882077139\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.9932543621350227\n41\n1.344745052303997\n42\n4.963613379241522\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n60\n20\n35\n40\n3\n1\nClawfoot Tub\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Closet                linkage='closet'  desc='closet'
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ncloset\n70\n0\n10\n72\n20\n24\n3\ncloset\n1\ncloset\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n48\n11\n144\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n144\n20\n48\n11\n144\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n144\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n48\n11\n144\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n144\n21\n48\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n45\n20\n35\n40\n3\n1\nCloset\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Corner Desk           linkage="cornerDesk"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ncornerDesk\n70\n0\n10\n60\n20\n60\n3\ncornerDesk\n1\ncornerDesk\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n60\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n60\n11\n29.5\n21\n60\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n29.5\n20\n60\n11\n60\n21\n88.7\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n60\n20\n88.7\n11\n60\n21\n120\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n60\n20\n120\n11\n120\n21\n120\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n120\n11\n120\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n45\n20\n60\n40\n3\n1\nCorner Desk\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Corner Shower         linkage="cornerShower" desc="cornerShower"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ncornerShower\n70\n0\n10\n36\n20\n36\n3\ncornerShower\n1\ncornerShower\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n72\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n72\n20\n0\n11\n72\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n72\n20\n72\n11\n32.3\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n32.3\n20\n72\n11\n0\n21\n38.7\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n38.7\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n6.3\n20\n6.3\n11\n65.7\n21\n6.3\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n65.7\n20\n6.3\n11\n65.7\n21\n65.7\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n65.7\n20\n65.7\n11\n33\n21\n65.7\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n33\n20\n65.7\n11\n6.3\n21\n38.2\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n6.3\n20\n38.2\n11\n6.3\n21\n6.3\n"
  dxf << "0\nCIRCLE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbCircle\n10\n36\n20\n36\n40\n3.45\n"
  dxf << "0\nCIRCLE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbCircle\n10\n36\n20\n36\n40\n2.3\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n33.7\n20\n36\n11\n38.3\n21\n36\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n36\n20\n38.3\n11\n36\n21\n33.7\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n59.3\n20\n32.25\n11\n59.3\n21\n39.75\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n59.3\n20\n39.75\n11\n65.55\n21\n38.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n65.55\n20\n38.5\n11\n65.55\n21\n33.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n65.55\n20\n33.5\n11\n59.3\n21\n32.25\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n65.55\n20\n34.15\n11\n65.55\n21\n37.85\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n65.55\n20\n37.85\n11\n66.8\n21\n37.85\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n66.8\n20\n37.85\n11\n66.8\n21\n34.15\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n66.8\n20\n34.15\n11\n65.55\n21\n34.15\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n66.75\n20\n34.75\n11\n66.75\n21\n37.25\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n66.75\n20\n37.25\n11\n71.9\n21\n37.25\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n71.9\n20\n37.25\n11\n71.9\n21\n34.75\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n71.9\n20\n34.75\n11\n66.75\n21\n34.75\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n66.95\n20\n23.5\n11\n66.95\n21\n28.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n66.95\n20\n28.5\n11\n69.95\n21\n28.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n69.95\n20\n28.5\n11\n69.95\n21\n23.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n69.95\n20\n23.5\n11\n66.95\n21\n23.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n69.95\n20\n24.5\n11\n69.95\n21\n27.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n69.95\n20\n27.5\n11\n71.95\n21\n27.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n71.95\n20\n27.5\n11\n71.95\n21\n24.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n71.95\n20\n24.5\n11\n69.95\n21\n24.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n66.95\n20\n43.5\n11\n66.95\n21\n48.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n66.95\n20\n48.5\n11\n69.95\n21\n48.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n69.95\n20\n48.5\n11\n69.95\n21\n43.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n69.95\n20\n43.5\n11\n66.95\n21\n43.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n69.95\n20\n44.5\n11\n69.95\n21\n47.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n69.95\n20\n47.5\n11\n71.95\n21\n47.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n71.95\n20\n47.5\n11\n71.95\n21\n44.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n71.95\n20\n44.5\n11\n69.95\n21\n44.5\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n20\n20\n20\n40\n3\n1\nCorner Shower\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Corner Sofa           linkage="cornerSofa" desc="cornerSofa"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ncornerSofa\n70\n0\n10\n83\n20\n59\n3\ncornerSofa\n1\ncornerSofa\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n70\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n70\n11\n150\n21\n70\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n16\n11\n150\n21\n16\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n150\n20\n16\n11\n150\n21\n118\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n96\n20\n18\n11\n96\n21\n118\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n48\n20\n18\n11\n48\n21\n70\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n166\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n96\n20\n118\n11\n166\n21\n118\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n166\n20\n0\n11\n166\n21\n118\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n55\n20\n40\n40\n3\n1\nCorner Sofa\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Corner Sofa R         linkage="cornerSofaR"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ncornerSofaR\n70\n0\n10\n83\n20\n59\n3\ncornerSofaR\n1\ncornerSofaR\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n48\n11\n0\n21\n118\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n118\n11\n166\n21\n118\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n166\n20\n118\n11\n166\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n166\n20\n0\n11\n96\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n96\n20\n0\n11\n96\n21\n100\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n48\n11\n150\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n48\n20\n48\n11\n48\n21\n100\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n102\n11\n150\n21\n102\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n150\n20\n102\n11\n150\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n55\n20\n78\n40\n3\n1\nCorner Sofa Right\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Corner Tub         linkage="cornerTub"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ncornerTub\n70\n0\n10\n60\n20\n60\n3\ncornerTub\n1\ncornerTub\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0.0\n20\n0.0\n11\n120.0\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120.0\n20\n120.0\n11\n120.0\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120.0\n20\n120.0\n11\n53.0\n21\n120.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n53.0\n20\n120.0\n11\n0.0\n21\n65.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0.0\n20\n0.0\n11\n0.0\n21\n65.0\n"
  dxf << "0\nSPLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbSpline\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n70\n8\n71\n3\n72\n21\n73\n17\n74\n0\n42\n0.0\n43\n0.0\n"
  dxf << "40\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n40\n13.67539005761319\n40\n35.1324348786553\n"
  dxf << "40\n56.82122607081873\n40\n85.6846713966547\n40\n98.01605028521676\n40\n111.7858940854387\n40\n129.2487669813796\n"
  dxf << "40\n149.6600495283091\n40\n174.3025855335068\n40\n199.4786223402552\n40\n217.4487960720225\n40\n237.8844877808006\n"
  dxf << "40\n254.5971700287426\n40\n271.6798947322018\n40\n271.6798947322018\n40\n271.6798947322018\n40\n271.6798947322018\n"
  dxf << "10\n10.66285903925706\n20\n51.80500029353985\n30\n0.0\n"
  dxf << "10\n8.270639724045594\n20\n47.93782074641609\n30\n0.0\n"
  dxf << "10\n6.02249231983339\n20\n33.27380064321102\n30\n0.0\n"
  dxf << "10\n13.16366642733095\n20\n15.43918159877239\n30\n0.0\n"
  dxf << "10\n35.34046790552401\n20\n4.204632503529695\n30\n0.0\n"
  dxf << "10\n58.92007830129668\n20\n8.305333980996977\n30\n0.0\n"
  dxf << "10\n74.78576635852775\n20\n7.949668921035652\n30\n0.0\n"
  dxf << "10\n89.19705119964243\n20\n10.48315058358713\n30\n0.0\n"
  dxf << "10\n104.2797582804015\n20\n20.59140487827688\n30\n0.0\n"
  dxf << "10\n112.8341716340908\n20\n40.57940516091273\n30\n0.0\n"
  dxf << "10\n108.3793211939649\n20\n60.22389164369599\n30\n0.0\n"
  dxf << "10\n115.1237634066014\n20\n86.64554948730876\n30\n0.0\n"
  dxf << "10\n104.5357648862551\n20\n107.4623706127447\n30\n0.0\n"
  dxf << "10\n85.93569080871032\n20\n113.0887182756674\n30\n0.0\n"
  dxf << "10\n64.606568794304\n20\n112.9350990417034\n30\n0.0\n"
  dxf << "10\n57.78487275033035\n20\n107.1717961749798\n30\n0.0\n"
  dxf << "10\n53.02677312904186\n20\n103.736071418529\n30\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n10.66285903925706\n20\n51.80500029353985\n11\n53.02677312904186\n21\n103.736071418529\n"
  dxf << "0\nSPLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbSpline\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n70\n8\n71\n3\n72\n22\n73\n18\n74\n0\n42\n0.0\n43\n0.0\n"
  dxf << "40\n0.0\n40\n0.0\n40\n0.0\n40\n0.0\n40\n13.70763970049432\n40\n32.98855350034167\n"
  dxf << "40\n48.53927787796805\n40\n64.91185967716504\n40\n75.57846896582835\n40\n86.89180186177198\n"
  dxf << "40\n102.16247661579\n40\n121.7439283785528\n40\n131.7931049446289\n40\n145.979708752237\n"
  dxf << "40\n169.6475305099082\n40\n186.0018330180562\n40\n201.3311572097204\n40\n217.2189557934555\n"
  dxf << "40\n232.8071882233024\n40\n232.8071882233024\n40\n232.8071882233024\n40\n232.8071882233024\n"
  dxf << "10\n19.43944681881408\n20\n52.14221504110472\n30\n0.0\n"
  dxf << "10\n17.26322934089436\n20\n48.2020373248522\n30\n0.0\n"
  dxf << "10\n15.01508193668215\n20\n37.89759076584323\n30\n0.0\n"
  dxf << "10\n22.1853581610599\n20\n20.04555114522941\n30\n0.0\n"
  dxf << "10\n38.8709388941804\n20\n12.7615495453459\n30\n0.0\n"
  dxf << "10\n53.18404796842884\n20\n14.16427623213343\n30\n0.0\n"
  dxf << "10\n65.881596675845\n20\n15.51238499036705\n30\n0.0\n"
  dxf << "10\n78.34264359353296\n20\n14.86112272634762\n30\n0.0\n"
  dxf << "10\n93.54397717943917\n20\n20.03831042965561\n30\n0.0\n"
  dxf << "10\n103.0639694349348\n20\n33.30355029944459\n30\n0.0\n"
  dxf << "10\n104.6745910046047\n20\n47.97763969168346\n30\n0.0\n"
  dxf << "10\n102.4283427710502\n20\n65.24400663398245\n30\n0.0\n"
  dxf << "10\n107.5858574042429\n20\n81.75754278624044\n30\n0.0\n"
  dxf << "10\n99.38673157711611\n20\n98.6674038061526\n30\n0.0\n"
  dxf << "10\n82.17915152287787\n20\n104.4709847809212\n30\n0.0\n"
  dxf << "10\n61.0359817405552\n20\n103.2911939287848\n30\n0.0\n"
  dxf << "10\n57.47214823216152\n20\n97.74258367854293\n30\n0.0\n"
  dxf << "10\n53.36433419748636\n20\n94.29405848671274\n30\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n19.43944681881408\n20\n52.14221504110472\n11\n53.36433419748636\n21\n94.29405848671274\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n50\n20\n58\n40\n3\n1\nCorner Tub\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Cutout                linkage="cutout" desc="cutout"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ncutout\n70\n0\n10\n29\n20\n29\n3\ncutout\n1\ncutout\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n58\n11\n58\n21\n58\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n58\n20\n58\n11\n58\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n58\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n58\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n58\n11\n58\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n58\n21\n58\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n20\n20\n10\n40\n3\n1\nCutout\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Desk                   linkage="desk" desc="desk"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ndesk\n70\n0\n10\n60\n20\n30\n3\ndesk\n1\ndesk\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n60\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n60\n11\n120\n21\n60\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n60\n11\n120\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n55\n20\n30\n40\n3\n1\nDesk\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Door                   linkage='door'
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ndoor\n70\n0\n10\n18.5\n20\n3.3\n3\ndoor\n1\ndoor\n"
  dxf << "0\nLWPOLYLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n62\n7\n420\n16777215\n"
  dxf << "100\nAcDbPolyline\n90\n4\n70\n129\n43\n0.0\n10\n0\n20\n6.528\n10\n36.577\n20\n6.528\n10\n36.577\n20\n0\n10\n0\n20\n0\n"
  dxf << "0\nHATCH\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n62\n7\n420\n16777215\n"
  dxf << "100\nAcDbHatch\n10\n0.0\n20\n0.0\n30\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n"
  dxf << "2\nSOLID\n70\n1\n71\n1\n91\n1\n92\n3\n72\n0\n73\n1\n93\n4\n10\n0\n20\n6.528\n10\n36.577\n20\n6.528\n10\n36.577\n20\n0\n10\n0\n20\n0\n"
  dxf << "97\n1\n330\nC58\n75\n0\n76\n1\n98\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n0.388\n20\n0.329\n11\n0.388\n21\n6.297\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n62\n7\n100\nAcDbLine\n10\n36.32\n20\n0.337\n11\n0.341\n21\n0.337\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n0.429\n20\n0.517\n11\n36.266\n21\n0.517\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n62\n7\n100\nAcDbEllipse\n10\n1.718\n20\n0.563\n11\n34.568\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.1658\n41\n-0.0066\n42\n1.6078\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n36.293\n20\n0.333\n11\n7.838\n21\n0.514\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Double Vanity
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nDoubleVanity\n70\n0\n10\n60\n20\n22\n3\nDoubleVanity\n1\nDoubleVanity\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n30\n20\n22.0\n11\n24.0\n21\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.75\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n30\n20\n22.857\n11\n14.64\n21\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.5562\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n29.98835429995089\n20\n22.11646351612012\n11\n2.0\n21\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.892854953304191\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n29.98835429995089\n20\n20.32926721143258\n11\n29.98835429995089\n21\n23.90365982080743\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n31.99001906988193\n20\n22.11646351612012\n11\n27.98668953001973\n21\n22.11646351612012\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n90\n20\n22.0\n11\n24.0\n21\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.75\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n90\n20\n22.857\n11\n14.64\n21\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.5562\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n89.98835429995088\n20\n22.11646351612012\n11\n2.0\n21\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.892854953304191\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n89.98835429995088\n20\n20.32926721143258\n11\n89.98835429995088\n21\n23.90365982080743\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n91.99001906988192\n20\n22.11646351612012\n11\n87.98668953001973\n21\n22.11646351612012\n"
  dxf << "0\nLWPOLYLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbPolyline\n90\n4\n70\n129\n43\n0.0\n10\n0\n20\n44.0\n10\n120.0\n20\n44.0\n10\n120.0\n20\n0.0\n10\n0\n20\n0.0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n50\n20\n15\n40\n3\n1\nDouble Vanity\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Dresser              linkage="dresser" desc="dresser"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ndresser\n70\n0\n10\n36\n20\n24\n3\ndresser\n1\ndresser\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n48\n11\n72\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n72\n20\n48\n11\n72\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n72\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n26\n20\n20\n40\n3\n1\nDresser\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Floor Cabinet        linkage="floorCabinet" desc="cabinet_bif"
  dxf << "0\nBLOCK\n5\n1CD\n330\n1A7\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nfloorCabinet\n70\n0\n10\n60\n20\n24\n3\nfloorCabinet\n1\nfloorCabinet\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n120\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n5\n11\n120\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n48\n11\n120\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n0\n11\n120\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n5.7\n20\n0\n11\n5.7\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n49.5\n20\n0\n11\n49.5\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n70.7\n20\n0\n11\n70.7\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n114.3\n20\n0\n11\n114.3\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n12.09\n20\n5\n11\n120\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n107.9\n20\n5\n11\n0\n21\n48\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n42\n20\n35\n40\n3\n1\nFloor Cabinet\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Full Bed     linkage="fullbed" desc="fullbed"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nfullbed\n70\n0\n10\n75\n20\n54\n3\nfullbed\n1\nfullbed\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n108\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n108\n11\n150\n21\n108\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n150\n20\n108\n11\n150\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n150\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n95\n20\n2\n11\n95\n21\n106\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n111\n20\n2\n11\n111\n21\n106\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n65\n20\n50\n40\n5\n1\nFull Bed\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Generic     linkage="generic"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ngeneric\n70\n0\n10\n18\n20\n12\n3\ngeneric\n1\ngeneric\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n24\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n24\n11\n36\n21\n24\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n36\n20\n24\n11\n36\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n36\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n10\n20\n10\n40\n3\n1\nGeneric\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Generic Floating    linkage="genericFloating"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ngenericFloating\n70\n0\n10\n60\n20\n36\n3\ngenericFloating\n1\ngenericFloating\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n72\n11\n120\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n72\n11\n120\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n36\n20\n30\n40\n3\n1\nGeneric Floating\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Half Wall             linkage="halfWall" desc="halfwall"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nhalfWall\n70\n0\n10\n4\n20\n36\n3\nhalfWall\n1\nhalfWall\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n72\n11\n8\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n8\n20\n72\n11\n8\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n8\n20\n0\n11\n0\n21\n0\n"
  # dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n8\n21\n72\n"
  # dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n8\n20\n0\n11\n0\n21\n72\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Heat Vent    linkage="heatvent"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nheatvent\n70\n0\n10\n16.5\n20\n7\n3\nheatvent\n1\nheatvent\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n14\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n14\n11\n33\n21\n14\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n33\n20\n14\n11\n33\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n33\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n4\n20\n3\n11\n4\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n5\n20\n3\n11\n5\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n8\n20\n3\n11\n8\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n9\n20\n3\n11\n9\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n12\n20\n3\n11\n12\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n13\n20\n3\n11\n13\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n16\n20\n3\n11\n16\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n17\n20\n3\n11\n17\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n20\n20\n3\n11\n20\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n21\n20\n3\n11\n21\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n24\n20\n3\n11\n24\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n25\n20\n3\n11\n25\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n28\n20\n3\n11\n28\n21\n11\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n29\n20\n3\n11\n29\n21\n11\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Island                linkage="island" desc="island"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nisland\n70\n0\n10\n29\n20\n29\n3\nisland\n1\nisland\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n58\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n58\n11\n58\n21\n58\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n58\n20\n58\n11\n58\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n58\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n58\n21\n58\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n58\n20\n0\n11\n0\n21\n58\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n23\n20\n35\n40\n3\n1\nIsland\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # King Cal Bed     linkage="kingCalBed" desc="kingCalBed"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nkingCalBed\n70\n0\n10\n84\n20\n72\n3\nkingCalBed\n1\nkingCalBed\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n144\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n144\n11\n168\n21\n144\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n168\n20\n144\n11\n168\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n168\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n105\n20\n2\n11\n105\n21\n142\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n121\n20\n2\n11\n121\n21\n142\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n60\n20\n70\n40\n5\n1\nKing Cal Bed\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # King St Bed     linkage="kingStBed" desc="kingStBed"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nkingStBed\n70\n0\n10\n80\n20\n77\n3\nkingStBed\n1\nkingStBed\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n154\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n154\n11\n160\n21\n154\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n160\n20\n154\n11\n160\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n160\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n99\n20\n2\n11\n99\n21\n152\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n115\n20\n2\n11\n115\n21\n152\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n60\n20\n75\n40\n5\n1\nKing St Bed\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Nightstand            linkage="nightstand" desc="nightstand"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nnightstand\n70\n0\n10\n18\n20\n12\n3\nnightstand\n1\nnightstand\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n24\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n24\n11\n36\n21\n24\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n36\n20\n24\n11\n36\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n36\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n8\n20\n10\n40\n3\n1\nNightstand\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Queen Bed     linkage="queenBed" desc="queenBed"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nqueenBed\n70\n0\n10\n80\n20\n60\n3\nqueenBed\n1\nqueenBed\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n120\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n120\n11\n160\n21\n120\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n160\n20\n120\n11\n160\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n160\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n102\n20\n120\n11\n102\n21\n2\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n118\n20\n120\n11\n118\n21\n2\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n66\n20\n55\n40\n3\n1\nQueen Bed\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Rectangular Sink
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nrectangularSink\n70\n0\n10\n18\n20\n13.5\n3\nrectangularSink\n1\nrectangularSink\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n34.7277\n20\n25.8429\n11\n1.2590\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.8999892668789701\n41\n0.0\n42\n1.570796326794897\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n34.671\n20\n25.8\n11\n1.3247\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.9000235960203\n41\n-0.1420290998373265\n42\n-0.0001630102582132\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n17.9956\n20\n13.4919\n11\n1.4988\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.900002697760282\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n1.3203\n20\n25.7996\n11\n1.3247\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.9000340171518656\n41\n1.429140036807999\n42\n3.283720726220944\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n34.6709\n20\n1.1842\n11\n1.3247\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.8999748264380861\n41\n-1.712792364213817\n42\n-0.0001222078419867\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbEllipse\n10\n1.32034\n20\n1.1842\n11\n1.3247\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.8999817921419287\n41\n2.999827585801681\n42\n4.854392342122557\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n16.4956\n20\n13.4919\n11\n19.4956\n21\n13.4919\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n17.9956\n20\n12.1419\n11\n17.9956\n21\n14.8340\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n29.9867\n20\n5.3920\n11\n6.0045\n21\n5.3920\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n29.9867\n20\n19.555\n11\n29.9867\n21\n5.3920\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n6.0045\n20\n19.555\n11\n29.9867\n21\n19.555\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n6.0045\n20\n5.3920\n11\n6.0045\n21\n19.555\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n1.5133\n20\n26.976\n11\n34.7277\n21\n26.976\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n34.4867\n20\n0.0\n11\n1.5133\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0.0133\n20\n1.3499\n11\n0.0133\n21\n25.626\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n35.9867\n20\n25.8429\n11\n35.9867\n21\n1.1486\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n5\n20\n8\n40\n2\n1\nrectangularSink\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Round Sink
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nRoundSink\n70\n0\n10\n24\n20\n18\n3\nRoundSink\n1\nRoundSink\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n370\n50\n"
  dxf << "100\nAcDbEllipse\n10\n24\n20\n18\n11\n24\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.75\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n370\n50\n"
  dxf << "100\nAcDbEllipse\n10\n24\n20\n18.857\n11\n14.64\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.5562\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n370\n50\n"
  dxf << "100\nAcDbEllipse\n10\n23.98835429995086\n20\n18.11646351612012\n11\n2\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.8928549533041918\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n370\n50\n100\nAcDbLine\n"
  dxf << "10\n23.98835429995086\n20\n16.32926721143258\n11\n23.98835429995086\n21\n19.90365982080743\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n370\n50\n100\nAcDbLine\n"
  dxf << "10\n25.9900190698819\n20\n18.11646351612012\n11\n21.9866895300197\n21\n18.11646351612012\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n15\n20\n10\n40\n3\n1\nRound Sink\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Round Table   linkage="roundTable" desc="roundTable"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nroundTable\n70\n0\n10\n48\n20\n48\n3\nroundTable\n1\nroundTable\n"
  dxf << "0\nCIRCLE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbCircle\n10\n48.0\n20\n48.0\n40\n48\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n30\n20\n45\n40\n5\n1\nRound Table\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Single Vanity
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nSingleVanity\n70\n0\n10\n30\n20\n22\n3\nSingleVanity\n1\nSingleVanity\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbEllipse\n10\n30\n20\n22.0\n11\n24.0\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.75\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbEllipse\n10\n30\n20\n22.857\n11\n14.64\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.5562\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbEllipse\n10\n29.98835429995089\n20\n22.11646351612012\n11\n2.0\n21\n0.0\n"
  dxf << "210\n0.0\n220\n0.0\n230\n1.0\n40\n0.892854953304191\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n29.98835429995089\n20\n20.32926721143258\n11\n29.98835429995089\n21\n23.90365982080743\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n31.99001906988193\n20\n22.11646351612012\n11\n27.98668953001973\n21\n22.11646351612012\n"
  dxf << "0\nLWPOLYLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n370\n0\n100\nAcDbPolyline\n90\n4\n70\n129\n43\n0.0\n"
  dxf << "10\n60\n20\n44.0\n10\n0\n20\n44.0\n10\n0\n20\n0\n10\n60\n20\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n25\n20\n15\n40\n3\n1\nVanity\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Sofa
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nsofa\n70\n0\n10\n83\n20\n35\n3\nsofa\n1\nsofa\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n70\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n70\n11\n166\n21\n70\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n166\n20\n70\n11\n166\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n166\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n54\n11\n166\n21\n54\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n10\n20\n0\n11\n10\n21\n52\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n55\n20\n0\n11\n55\n21\n52\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n111\n20\n0\n11\n111\n21\n52\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n156\n20\n0\n11\n156\n21\n52\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n80\n20\n35\n40\n3\n1\nSofa\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Standard Shower
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nstandardShower\n70\n0\n10\n36\n20\n36\n3\nstandardShower\n1\nstandardShower\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n3.0\n20\n69.0\n11\n3.0\n21\n69.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n3.0\n20\n3.0\n11\n3.0\n21\n3.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n69.0\n20\n3.0\n11\n69.0\n21\n3.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n69.0\n20\n69\n11\n69.0\n21\n69\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n63.0\n20\n63.0\n11\n63.0\n21\n63.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n9.0\n20\n63.0\n11\n9.0\n21\n63.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n63.0\n20\n9.0\n11\n63.0\n21\n9.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n9.0\n20\n9.0\n11\n9.0\n21\n9.0\n"
  dxf << "0\nLWPOLYLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbPolyline\n90\n10\n70\n0\n43\n0.0\n"
  dxf << "10\n32.99\n20\n63.0\n10\n14.0\n20\n63\n42\n0.4142135623730951\n"
  dxf << "10\n9.0\n20\n58\n10\n9.0\n20\n14\n42\n0.4142135623730951\n"
  dxf << "10\n14.0\n20\n9\n10\n58.0\n20\n9.0\n42\n0.4142135623730951\n"
  dxf << "10\n63.0\n20\n14.0\n10\n63.0\n20\n58.0\n42\n0.4142135623730951\n"
  dxf << "10\n58.0\n20\n63.0\n10\n39.0\n20\n63.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n37.25\n20\n69.0\n11\n37.25\n21\n66.75\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n34.75\n20\n66.75\n11\n34.75\n21\n69.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n11.0\n20\n3.0\n11\n11.0\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n61.0\n20\n0.0\n11\n61.0\n21\n3.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n0.0\n20\n0.0\n11\n11.0\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n61.0\n20\n0.0\n11\n72.0\n21\n0.0\n"
  dxf << "0\nLWPOLYLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbPolyline\n90\n10\n70\n0\n43\n0.0\n"
  dxf << "10\n61.0\n20\n3.0\n10\n68.0\n20\n3.0\n42\n0.4142135623730951\n"
  dxf << "10\n69.0\n20\n4.0\n10\n69.0\n20\n68.0\n42\n0.4142135623730951\n"
  dxf << "10\n68.0\n20\n69.0\n10\n4.0\n20\n69\n42\n0.4142135623730951\n"
  dxf << "10\n3.0\n20\n68\n10\n3.0\n20\n4\n42\n0.4142135623730951\n"
  dxf << "10\n4.0\n20\n3\n10\n11.0\n20\n3.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n11.0\n20\n1.5\n11\n61.0\n21\n1.5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n11.0\n20\n0.0\n11\n61.0\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n72.0\n20\n0.0\n11\n72.0\n21\n72.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n72.0\n20\n72.0\n11\n0.0\n21\n72.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n0.0\n20\n72.0\n11\n0.0\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n0.0\n20\n0.0\n11\n0.0\n21\n0.0\n"
  dxf << "0\nCIRCLE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n370\n0\n100\nAcDbCircle\n10\n36.0\n20\n36.0\n40\n3.45\n"
  dxf << "0\nCIRCLE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n370\n0\n100\nAcDbCircle\n10\n36.0\n20\n36.0\n40\n2.3\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n36.0\n20\n33.7\n11\n36.0\n21\n38.3\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n33.7\n20\n36.0\n11\n38.3\n21\n36.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n39.75\n20\n59.3\n11\n32.25\n21\n59.3\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n32.25\n20\n59.3\n11\n33.5\n21\n65.55\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n33.5\n20\n65.55\n11\n38.5\n21\n65.55\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n38.5\n20\n65.55\n11\n39.75\n21\n59.3\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n37.85\n20\n65.55\n11\n34.15\n21\n65.55\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n34.15\n20\n65.55\n11\n34.15\n21\n66.8\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n34.15\n20\n66.8\n11\n37.85\n21\n66.8\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n37.85\n20\n66.8\n11\n37.85\n21\n65.55\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n37.25\n20\n66.75\n11\n34.75\n21\n66.75\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n48.54967762590988\n20\n65.30732484809349\n11\n43.54967762590988\n21\n65.30732484809349\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n43.54967762590988\n20\n65.30732484809349\n11\n43.54967762590988\n21\n69.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n48.54967762590988\n20\n69.0\n11\n48.54967762590988\n21\n65.30732484809349\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n28.54967762590988\n20\n65.30732484809349\n11\n23.54967762590988\n21\n65.30732484809349\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n23.54967762590988\n20\n65.30732484809349\n11\n23.54967762590988\n21\n69.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n48\n0.5833333134651184\n100\nAcDbLine\n10\n28.54967762590988\n20\n69.0\n11\n28.54967762590988\n21\n65.30732484809349\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n20\n20\n20\n40\n3\n1\nStandard Shower\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Table     linkage="table" desc="table"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ntable\n70\n0\n10\n60\n20\n36\n3\ntable\n1\ntable\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n72\n11\n120\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n72\n11\n120\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n55\n20\n35\n40\n3\n1\nTable\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Toilet
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ntoilet\n70\n0\n10\n9\n20\n17\n3\ntoilet\n1\ntoilet\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n18\n20\n6\n11\n0\n21\n6\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n0\n20\n6\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n0\n20\n0\n11\n18\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n18\n20\n0\n11\n18\n21\n6\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n12.62\n20\n9\n11\n5.38\n21\n9\n"
  dxf << "0\nLWPOLYLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbPolyline\n90\n49\n70\n128\n43\n0.0\n"
  dxf << "10\n5.38\n20\n9.00\n10\n4.90\n20\n9.78\n10\n4.47\n20\n10.65\n10\n4.09\n20\n11.61\n10\n3.76\n20\n12.64\n"
  dxf << "10\n3.48\n20\n13.73\n10\n3.27\n20\n14.87\n10\n3.11\n20\n16.04\n10\n3.03\n20\n17.25\n10\n3.00\n20\n18.46\n"
  dxf << "10\n3.04\n20\n19.67\n10\n3.14\n20\n20.87\n10\n3.31\n20\n22.03\n10\n3.54\n20\n23.16\n10\n3.83\n20\n24.24\n"
  dxf << "10\n4.17\n20\n25.25\n10\n4.57\n20\n26.19\n10\n5.01\n20\n27.04\n10\n5.50\n20\n27.80\n10\n6.02\n20\n28.46\n"
  dxf << "10\n6.58\n20\n29.01\n10\n7.16\n20\n29.44\n10\n7.76\n20\n29.75\n10\n8.38\n20\n29.94\n10\n9.00\n20\n30.00\n"
  dxf << "10\n9.62\n20\n29.94\n10\n10.24\n20\n29.75\n10\n10.84\n20\n29.44\n10\n11.42\n20\n29.01\n10\n11.98\n20\n28.46\n"
  dxf << "10\n12.50\n20\n27.80\n10\n12.99\n20\n27.04\n10\n13.43\n20\n26.19\n10\n13.83\n20\n25.25\n10\n14.17\n20\n24.24\n"
  dxf << "10\n14.46\n20\n23.16\n10\n14.69\n20\n22.03\n10\n14.86\n20\n20.87\n10\n14.96\n20\n19.67\n10\n15.00\n20\n18.46\n"
  dxf << "10\n14.97\n20\n17.25\n10\n14.89\n20\n16.04\n10\n14.73\n20\n14.87\n10\n14.52\n20\n13.73\n10\n14.24\n20\n12.64\n"
  dxf << "10\n13.91\n20\n11.61\n10\n13.53\n20\n10.65\n10\n13.10\n20\n9.78\n10\n12.62\n20\n9.00\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n4\n20\n2\n40\n3\n1\nToilet\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Tub Shower - Bathtub
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ntubShower\n70\n0\n10\n60\n20\n36\n3\ntubShower\n1\ntubShower\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n90.26425010279615\n20\n36\n11\n0\n21\n26.39837312760143\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.835576498789067\n41\n3.140594945086378\n42\n6.284284720591521\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n18.05053710937506\n20\n36\n11\n1.469576158976671E-16\n21\n-2.4\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.8355391652961845\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n18.05053710937506\n20\n36\n11\n2.204364238465111E-16\n21\n-3.6\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.8355391652961134\n41\n0.0\n42\n6.283185307179586\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n18.05053710937506\n20\n38.40140625000026\n11\n18.05053710937506\n21\n33.59789062500033\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n16.04370117187523\n20\n36\n11\n20.05756578947376\n21\n36\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n8.015971936677659\n20\n57.60585937500014\n11\n8.015971936677659\n21\n14.4075\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n90.24073550575667\n20\n62.405859375\n11\n11.96334035773026\n21\n62.405859375\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n90.24073550575667\n20\n9.6075\n11\n11.96334035773026\n21\n9.6075\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n0.0\n20\n0.0\n11\n0.0\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n0.0\n20\n72\n11\n120.0\n21\n72\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n120.0\n20\n72.0\n11\n120.0\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n100\nAcDbLine\n10\n120.0\n20\n0.0\n11\n0.0\n21\n0.0\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n11.96334035773026\n20\n57.60585937500014\n11\n2.939152317953620E-16\n21\n-4.8\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.8223684210526332\n41\n3.141592653589793\n42\n4.71238898038469\n"
  dxf << "0\nELLIPSE\n100\nAcDbEntity\n8\nFixtures\n6\nContinuous\n"
  dxf << "100\nAcDbEllipse\n10\n11.96334035773026\n20\n14.4075\n11\n2.939152317953620E-16\n21\n-4.8\n210\n0.0\n220\n0.0\n230\n1.0\n40\n0.8223684210526332\n41\n4.71238898038469\n42\n6.283185307179586\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n45\n20\n30\n40\n4\n1\nTub Shower\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Twin Bed     linkage="twinBed" desc="twinBed"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\ntwinBed\n70\n0\n10\n75\n20\n39\n3\ntwinBed\n1\ntwinBed\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n78\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n78\n11\n150\n21\n78\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n150\n20\n78\n11\n150\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n150\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n95\n20\n2\n11\n95\n21\n78\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n111\n20\n2\n11\n111\n21\n78\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n66\n20\n39\n40\n3\n1\nTwin Bed\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Wall Cabinet          linkage="wallCabinet" desc="cabinet_httw"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nwallCabinet\n70\n0\n10\n60\n20\n24\n3\nwallCabinet\n1\nwallCabinet\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n120\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n5\n11\n120\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n48\n11\n120\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n120\n20\n0\n11\n120\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n5.7\n20\n0\n11\n5.7\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n49.5\n20\n0\n11\n49.5\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n70.7\n20\n0\n11\n70.7\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n114.3\n20\n0\n11\n114.3\n21\n5\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n12.09\n20\n5\n11\n120\n21\n48\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n107.9\n20\n5\n11\n0\n21\n48\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n42\n20\n35\n40\n3\n1\nWall Cabinet\n100\nAcDbText\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"
  # Window                linkage="window"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockBegin\n"
  dxf << "2\nwindow\n70\n0\n10\n50\n20\n8\n3\nwindow\n1\nwindow\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n0\n11\n0\n21\n16\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n16\n11\n100\n21\n16\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n100\n20\n16\n11\n100\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n100\n20\n0\n11\n0\n21\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n7\n11\n100\n21\n7\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbLine\n10\n0\n20\n9\n11\n100\n21\n9\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockEnd\n"

  # Dimension for scale
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nDimensions\n100\nAcDbBlockBegin\n2\nTC_DIMARROW_CLOSED30\n70\n0\n10\n0.0\n20\n0.0\n3\nTC_DIMARROW_CLOSED30\n1\nTC_DIMARROW_CLOSED30\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n62\n0\n100\nAcDbLine\n10\n-1.0\n20\n0.267949\n11\n0.0\n21\n0.0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n62\n0\n100\nAcDbLine\n10\n0.0\n20\n0.0\n11\n-1.0\n21\n-0.267949\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n62\n0\n100\nAcDbLine\n10\n-1.0\n20\n-0.267949\n11\n-1.0\n21\n0.267949\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n62\n0\n100\nAcDbLine\n10\n0.0\n20\n0.0\n11\n-1.0\n21\n0.0\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\nDimensions\n100\nAcDbBlockEnd\n"
  dxf << "0\nBLOCK\n100\nAcDbEntity\n8\nDimensions\n100\nAcDbBlockBegin\n2\n*D01\n70\n1\n10\n0.0\n20\n0.0\n3\n*D01\n1\n*D01\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n370\n-2\n100\nAcDbLine\n10\n-141.29\n20\n-141.80\n11\n-141.29\n21\n-147.83\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n370\n-2\n100\nAcDbLine\n10\n-81.29\n20\n-141.80\n11\n-81.29\n21\n-147.83\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n370\n-2\n100\nAcDbLine\n10\n-135.29\n20\n-147.58\n11\n-115.72\n21\n-147.58\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n370\n-2\n100\nAcDbLine\n10\n-87.29\n20\n-147.58\n11\n-106.86\n21\n-147.58\n"
  dxf << "0\nINSERT\n100\nAcDbEntity\n8\nDimensions\n370\n-2\n100\nAcDbBlockReference\n2\nTC_DIMARROW_CLOSED30\n"
  dxf << "10\n-141.29\n20\n-147.58\n41\n6.0\n42\n6.0\n43\n6.0\n50\n180.0\n"
  dxf << "0\nINSERT\n100\nAcDbEntity\n8\nDimensions\n370\n-2\n100\nAcDbBlockReference\n2\nTC_DIMARROW_CLOSED30\n"
  dxf << "10\n-81.29\n20\n-147.58\n41\n6.0\n42\n6.0\n43\n6.0\n"
  dxf << "0\nMTEXT\n100\nAcDbEntity\n8\nDimensions\n370\n25\n100\nAcDbMText\n10\n-111.29\n20\n-147.58\n40\n4\n41\n0.0\n46\n0.0\n71\n5\n72\n1\n1\n\\A1;5'-0\"\n73\n1\n44\n1.0\n"
  dxf << "0\nPOINT\n100\nAcDbEntity\n8\nDefpoints\n62\n0\n100\nAcDbPoint\n10\n-141.29\n20\n-141.68\n"
  dxf << "0\nPOINT\n100\nAcDbEntity\n8\nDefpoints\n62\n0\n100\nAcDbPoint\n10\n-81.29\n20\n-141.68\n"
  dxf << "0\nPOINT\n100\nAcDbEntity\n8\nDefpoints\n62\n0\n100\nAcDbPoint\n10\n-81.29\n20\n-147.58\n"
  dxf << "0\nENDBLK\n100\nAcDbEntity\n8\n0\n100\nAcDbBlockEnd\n"

  dxf << "0\nENDSEC\n"
end

#draw_line_floorplanObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
# File 'lib/dxf/floor_plan.rb', line 34

def draw_line_floorplan
  # thermostat location
  [hsh['Project']['Room']['SolutionConstraints']['ControlPlacement']['Controls']].flatten.compact.each do |coords|
    if coords['@x'] == 'undefined' || coords['@y'] == 'undefined'
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nText\n6\nContinuous\n100\nAcDbText\n10\n-150\n20\n60\n40\n4\n1\nThermostat location decided by designer\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"

    else
      dxf << "0\nINSERT\n100\nAcDbEntity\n"
      dxf << "8\nThermostats\n100\nAcDbBlockReference\n2\nTSTAT\n10\n#{coords['@x']}\n20\n#{coords['@y']}\n"
    end
  end
  # room shape
  hsh['Project']['Room']['DrawingInfo']['UserFloorPlan']['RoomShape']['Line'].compact.each do |coords|
    dxf << "0\nLINE\n100\nAcDbEntity\n8\nRoom Shape\n100\nAcDbLine\n"
    dxf << "10\n#{coords['@x1']}\n20\n#{coords['@y1']}\n11\n#{coords['@x2']}\n21\n#{coords['@y2']}\n"
  end

  # heated area
  ha_array = hsh['Project']['Room']['SolutionConstraints']['HeatedAreaConstraints']['HeatedArea']
  ha_array = [ha_array] unless ha_array.is_a?(Array)
  ha_max = ha_array.detect { |ha| ha['@exceptiontype'] == 'MAXIMUM' }
  ha_eff = ha_array.detect { |ha| ha['@exceptiontype'] == 'EFFICIENT' }
  ha_min = ha_array.detect { |ha| ha['@exceptiontype'] == 'MINIMUM' }

  # Maximum heated area
  dxf << "999\nMaximum Heated Area\n"

  render_heated_area_shape(:maximum, ha_max)
  render_heated_area_shape(:efficient, ha_eff)
  render_heated_area_shape(:minimum, ha_min)

  # Protected areas
  dxf << "999\nUser Chosen Heated Area\n"
  parse_areas_hash(hsh['Project']['Room']['SolutionConstraints']['HeatedAreaConstraints']['ProtectedAreas'], area_tag = 'ProtectedArea', layer_name = 'Protected Areas')

  # Fixtures
  dxf << "999\nFixtures\n"
  fixt = [hsh['Project']['Room']['DrawingInfo']['UserFloorPlan']['Fixture']].flatten.compact
  # condition if we have fixture

  fixt.each do |charact|
    x = charact['@x']
    y = charact['@y']
    length = charact['@length']
    width = charact['@width']
    rot = charact['@rotation']
    fixture_name = charact['@linkage']
    comments = charact['@comments']
    rot = -1 * rot.to_i
    # Bidet
    if charact['@linkage'].index('bidet') # linkage="bidet"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nbidet\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 48.0}\n42\n#{length.to_f / 36.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Bookcase
    elsif charact['@linkage'].index('bookcase') # linkage="bookcase"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nbookcase\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 60.0}\n42\n#{length.to_f / 24.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Chair
    elsif charact['@linkage'].index('chair') # linkage="chair" desc="chair"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nchair\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 36.0}\n42\n#{length.to_f / 36.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Closet
    elsif charact['@linkage'].index('closet') # linkage='closet'  desc='closet'
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ncloset\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 144.0}\n42\n#{length.to_f / 48.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot - 90}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Corner Desk
    elsif charact['@linkage'].index('cornerDesk') # linkage="cornerDesk"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ncornerDesk\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 120.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Corner Shower
    elsif charact['@linkage'].index('cornerShower') # linkage="cornerShower" desc="cornerShower"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ncornerShower\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 72.0}\n42\n#{length.to_f / 72.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Corner Sofa R
    elsif charact['@linkage'].index('cornerSofaR') # linkage="cornerSofaR" desc="cornerSofaR"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ncornerSofaR\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 166.0}\n42\n#{length.to_f / 118.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Corner Sofa
    elsif charact['@linkage'].index('cornerSofa') # linkage="cornerSofa" desc="cornerSofa"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ncornerSofa\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 166.0}\n42\n#{length.to_f / 118.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Corner Tub
    elsif charact['@linkage'].index('cornerTub') # linkage="cornerTub" desc="cornerTub"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ncornerTub\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 120.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Cutout
    elsif charact['@linkage'].index('cutout') # linkage="cutout" desc="cutout"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ncutout\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 58.0}\n42\n#{length.to_f / 58.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot - 90}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Desk
    elsif charact['@linkage'].index('desk') # linkage="desk" desc="desk"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ndesk\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 60.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Doorway
    elsif charact['@linkage'].index('door') # linkage='door'  desc='doorway'
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ndoor\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 56.0}\n42\n#{length.to_f / 8.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Dresser
    elsif charact['@linkage'].index('dresser') # linkage="dresser" desc="dresser"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ndresser\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 72.0}\n42\n#{length.to_f / 48.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Floor Cabinet
    elsif charact['@linkage'].index('floorCabinet') # linkage="floorCabinet" desc="cabinet_bif"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nfloorCabinet\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 48.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Floor Clawfoot Tub
    elsif charact['@linkage'].index('floorClawfootTub') # linkage="floorClawfootTub" desc="floorClawfootTub"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nClawfootTub\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 144.0}\n42\n#{length.to_f / 72.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Floor Sink
    elsif charact['@linkage'].index('floorSink') # linkage="floorSink" desc="floorSink"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nRoundSink\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 48.0}\n42\n#{length.to_f / 36.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Full Bed
    elsif charact['@linkage'].index('fullbed') # linkage="fullbed" desc="fullbed"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nfullbed\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 150.0}\n42\n#{length.to_f / 108.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Generic Floating
    elsif charact['@linkage'].index('genericfloating') # linkage="genericFloating"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ngenericFloating\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 72.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Generic
    elsif charact['@linkage'].index('generic') # linkage="generic"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ngeneric\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 36.0}\n42\n#{length.to_f / 24.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Half Wall
    elsif charact['@linkage'].index('halfWall') # linkage="halfWall" desc="halfwall"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nhalfWall\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 8.0}\n42\n#{length.to_f / 72.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Heat Vent
    elsif charact['@linkage'].index('heatvent') # linkage="heatvent" desc="heatvent"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nheatvent\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 33.0}\n42\n#{length.to_f / 14.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Island
    elsif charact['@linkage'].index('island') # linkage="island" desc="island"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nisland\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 58.0}\n42\n#{length.to_f / 58.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # King Cal Bed
    elsif charact['@linkage'].index('kingCalBed') # linkage="kingCalBed" desc="kingCalBed"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nkingCalBed\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 168.0}\n42\n#{length.to_f / 144.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # King St Bed
    elsif charact['@linkage'].index('kingStBed') # linkage="kingStBed" desc="kingStBed"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nkingStBed\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 160.0}\n42\n#{length.to_f / 154.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Nightstand
    elsif charact['@linkage'].index('nightstand') # linkage="nightstand" desc="nightstand"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nnightstand\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 36.0}\n42\n#{length.to_f / 24.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # No Toe Kick Vanity
    elsif charact['@linkage'].index('noToeKickVanity') # linkage="noToeKickVanity" desc="noToeKickVanity"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nSingleVanity\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 60.0}\n42\n#{length.to_f / 44.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # No Toe Kick Double Vanity
    elsif charact['@linkage'].index('noToeKickDoubleVanity') # linkage="noToeKickDoubleVanity" desc="noToeKickDoubleVanity"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nDoubleVanity\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 44.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Queen Bed
    elsif charact['@linkage'].index('queenBed') # linkage="queenBed" desc="queenBed"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nqueenBed\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 160.0}\n42\n#{length.to_f / 120.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Round Table
    elsif charact['@linkage'].index('roundTable') # linkage="roundTable" desc="roundTable"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nroundTable\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 96.0}\n42\n#{length.to_f / 96.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Sofa
    elsif charact['@linkage'].index('sofa') # linkage="sofa" desc="sofa"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nsofa\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 166.0}\n42\n#{length.to_f / 70.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Standard Shower
    elsif charact['@linkage'].index('standardShower') # linkage='standardShower'  desc='standardShower'
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nstandardShower\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 72.0}\n42\n#{length.to_f / 72.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Table
    elsif charact['@linkage'].index('table') # linkage="table" desc="table"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ntable\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 72.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Toe Kick Vanity
    elsif charact['@linkage'].index('toeKickVanity') # linkage="toeKickVanity" desc="toeKickVanity"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nSingleVanity\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 60.0}\n42\n#{length.to_f / 44.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Toe Kick Double Vanity
    elsif charact['@linkage'].index('toeKickDoubleVanity') # linkage="toeKickDoubleVanity" desc="toeKickDoubleVanity"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nDoubleVanity\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 44.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Toilet
    elsif charact['@linkage'].index('toilet') # linkage='toilet'  desc='toilet'
      # dxf << "0\nINSERT\n100\nAcDbBlockReference\n2\ntoilet\n8\nFixtures\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f}\n42\n#{length.to_f}\n50\n#{rot}\n"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ntoilet\n10\n#{x}\n20\n#{y}\n30\n0.0\n41\n#{width.to_f / 18.0}\n42\n#{length.to_f / 25.66}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Tub Shower
    elsif charact['@linkage'].index('tubShower') # linkage='tubShower'  desc='tubshower'
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ntubShower\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 72.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Twin Bed
    elsif charact['@linkage'].index('twinBed') # linkage="twinBed" desc="twinBed"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ntwinBed\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 150.0}\n42\n#{length.to_f / 78.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Wall Cabinet
    elsif charact['@linkage'].index('wallCabinet') # linkage="wallCabinet" desc="cabinet_httw"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nwallCabinet\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 120.0}\n42\n#{length.to_f / 48.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Wall Clawfoot Tub
    elsif charact['@linkage'].index('wallClawfootTub') # linkage="wallClawfootTub" desc="wallClawfootTub"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nClawfootTub\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 144.0}\n42\n#{length.to_f / 72.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Wall Sink
    elsif charact['@linkage'].index('wallSink') # linkage="wallSink" desc="wallSink"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nRoundSink\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 48.0}\n42\n#{length.to_f / 36.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Wall Toilet
    elsif charact['@linkage'].index('wallToilet') # linkage="wallToilet" desc="wallToilet"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\ntoilet\n10\n#{x}\n20\n#{y}\n30\n0.0\n41\n#{width.to_f / 18.0}\n42\n#{length.to_f / 25.66}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    # Window
    elsif charact['@linkage'].index('window') # linkage="window"
      dxf << "0\nINSERT\n100\nAcDbEntity\n8\nFixtures\n100\nAcDbBlockReference\n"
      dxf << "2\nwindow\n10\n#{x}\n20\n#{y}\n41\n#{width.to_f / 100.0}\n42\n#{length.to_f / 16.0}\n50\n#{rot}\n"
      dxf << "0\nTEXT\n100\nAcDbEntity\n8\nFixtures_name\n6\nContinuous\n100\nAcDbText\n10\n#{x}\n20\n#{y}\n40\n3\n50\n#{rot}\n1\n#{comments}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
    else
    end
  end
end

#end_fileObject

file end



321
322
323
# File 'lib/dxf/floor_plan.rb', line 321

def end_file
  dxf <<  "0\nEOF\n"
end

#entitiesObject

entities



311
312
313
314
315
316
317
318
# File 'lib/dxf/floor_plan.rb', line 311

def entities
  dxf << "0\nSECTION\n"
  dxf << "2\nENTITIES\n"
  draw_line_floorplan
  plan_details
  scale
  dxf <<  "0\nENDSEC\n"
end

#headersObject

headers and their attibutes



386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
# File 'lib/dxf/floor_plan.rb', line 386

def headers
  dxf << "0\nSECTION\n"
  dxf << "2\nHEADER\n" # 9\n$QTEXTMODE\n70\n0\n9\n$MIRRTEXT\n70\n1\n9\n$TEXTSIZE\n40\n0.2\n9\n$TEXTSTYLE\n7\nStandard\n"
  dxf << "9\n$ACADVER\n1\nAC1021\n"
  dxf << "9\n$ACADMAINTVER\n70\n25\n"
  dxf << "9\n$DWGCODEPAGE\n3\nANSI_1252\n"
  dxf << "9\n$INSBASE\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$EXTMIN\n10\n193\n20\n202.97\n30\n0.0\n"     # $EXTMIN    10  -154.4741532331679   20 -154.0644363541621
  dxf << "9\n$EXTMAX\n10\n211.82\n20\n233.75\n30\n0.0\n"  # $EXTMAX    10  298.6783328522743  20 -112.3162465354225
  dxf << "9\n$LIMMIN\n10\n-372.43\n20\n-261.39\n"         # $LIMMIN   10 25.88129465399258  20 -11.84201020884029
  dxf << "9\n$LIMMAX\n10\n689.21\n20\n558.96\n"           # $LIMMAX   10  36.88129465399258   20 -3.34201020884029
  dxf << "9\n$ORTHOMODE\n70\n0\n"
  dxf << "9\n$REGENMODE\n70\n1\n"
  dxf << "9\n$FILLMODE\n70\n1\n"
  dxf << "9\n$QTEXTMODE\n70\n0\n"
  dxf << "9\n$MIRRTEXT\n70\n0\n"    # 1
  dxf << "9\n$LTSCALE\n40\n1.0\n"
  dxf << "9\n$ATTMODE\n70\n1\n"
  dxf << "9\n$TEXTSIZE\n40\n0.2\n"  # $TEXTSIZE    40  0.14772726595402
  dxf << "9\n$TRACEWID\n40\n1.0\n" # 0.05
  dxf << "9\n$TEXTSTYLE\n7\nStandard\n"
  dxf << "9\n$CLAYER\n8\n0\n"
  dxf << "9\n$CELTYPE\n6\nByLayer\n"
  dxf << "9\n$CECOLOR\n62\n7\n"
  dxf << "9\n$CELTSCALE\n40\n1.0\n"
  dxf << "9\n$DISPSILH\n70\n0\n"
  dxf << "9\n$DIMSCALE\n40\n1.0\n"
  dxf << "9\n$DIMASZ\n40\n0.25\n" # 0.18
  dxf << "9\n$DIMEXO\n40\n0.0625\n"
  dxf << "9\n$DIMDLI\n40\n0.375\n"
  dxf << "9\n$DIMRND\n40\n0.01\n"
  dxf << "9\n$DIMDLE\n40\n0.0\n"
  dxf << "9\n$DIMEXE\n40\n0.125\n" # 0.18
  dxf << "9\n$DIMTP\n40\n0.0\n"
  dxf << "9\n$DIMTM\n40\n0.0\n"
  dxf << "9\n$DIMTXT\n40\n0.18\n" # $DIMTXT 40 0.1477272727272727
  dxf << "9\n$DIMCEN\n40\n0.0\n" # 0.09
  dxf << "9\n$DIMTSZ\n40\n0.0\n"
  dxf << "9\n$DIMTOL\n70\n0\n"
  dxf << "9\n$DIMLIM\n70\n0\n"
  dxf << "9\n$DIMTIH\n70\n1\n"
  dxf << "9\n$DIMTOH\n70\n0\n"  # 1
  dxf << "9\n$DIMSE1\n70\n0\n"
  dxf << "9\n$DIMSE2\n70\n0\n"
  dxf << "9\n$DIMTAD\n70\n1\n"  # 0
  dxf << "9\n$DIMZIN\n70\n1\n"  # 0
  dxf << "9\n$DIMBLK\n1\n\n"
  dxf << "9\n$DIMASO\n70\n1\n"
  dxf << "9\n$DIMSHO\n70\n1\n"
  dxf << "9\n$DIMPOST\n1\n\n"
  dxf << "9\n$DIMAPOST\n1\n^B2147483648l^B^B2147483648l^B\n"
  dxf << "9\n$DIMALT\n70\n0\n"
  dxf << "9\n$DIMALTD\n70\n2\n"
  dxf << "9\n$DIMALTF\n40\n1.0\n" # 25.4
  dxf << "9\n$DIMLFAC\n40\n1.0\n"
  dxf << "9\n$DIMTOFL\n70\n1\n" # 0
  dxf << "9\n$DIMTVP\n40\n0.0\n"
  dxf << "9\n$DIMTIX\n70\n0\n"
  dxf << "9\n$DIMSOXD\n70\n0\n"
  dxf << "9\n$DIMSAH\n70\n0\n"
  dxf << "9\n$DIMBLK1\n1\n\n"
  dxf << "9\n$DIMBLK2\n1\n\n"
  dxf << "9\n$DIMSTYLE\n2\nStandard\n"
  dxf << "9\n$DIMCLRD\n70\n0\n"
  dxf << "9\n$DIMCLRE\n70\n0\n"
  dxf << "9\n$DIMCLRT\n70\n0\n"
  dxf << "9\n$DIMTFAC\n40\n1.0\n"
  dxf << "9\n$DIMGAP\n40\n0.0625\n" # 0.09
  dxf << "9\n$DIMJUST\n70\n0\n"
  dxf << "9\n$DIMSD1\n70\n0\n"
  dxf << "9\n$DIMSD2\n70\n0\n"
  dxf << "9\n$DIMTOLJ\n70\n1\n"
  dxf << "9\n$DIMTZIN\n70\n0\n"
  dxf << "9\n$DIMALTZ\n70\n0\n"
  dxf << "9\n$DIMALTTZ\n70\n0\n"
  dxf << "9\n$DIMUPT\n70\n0\n"
  dxf << "9\n$DIMDEC\n70\n4\n"
  dxf << "9\n$DIMTDEC\n70\n4\n"
  dxf << "9\n$DIMALTU\n70\n2\n"
  dxf << "9\n$DIMALTTD\n70\n2\n"
  dxf << "9\n$DIMTXSTY\n7\nStandard\n"
  dxf << "9\n$DIMAUNIT\n70\n0\n"
  dxf << "9\n$DIMADEC\n70\n0\n"
  dxf << "9\n$DIMALTRND\n40\n0.0\n"
  dxf << "9\n$DIMAZIN\n70\n0\n"
  dxf << "9\n$DIMDSEP\n70\n46\n"
  dxf << "9\n$DIMATFIT\n70\n3\n"
  dxf << "9\n$DIMFRAC\n70\n0\n"
  dxf << "9\n$DIMLDRBLK\n1\n\n"
  dxf << "9\n$DIMLUNIT\n70\n2\n"
  dxf << "9\n$DIMLWD\n70\n-2\n"
  dxf << "9\n$DIMLWE\n70\n-2\n"
  dxf << "9\n$DIMTMOVE\n70\n0\n"
  dxf << "9\n$DIMFXL\n40\n1.0\n"
  dxf << "9\n$DIMFXLON\n70\n0\n"
  dxf << "9\n$DIMJOGANG\n40\n0.79\n"
  dxf << "9\n$DIMTFILL\n70\n0\n"
  dxf << "9\n$DIMTFILLCLR\n70\n0\n"
  dxf << "9\n$DIMARCSYM\n70\n0\n"
  dxf << "9\n$DIMLTYPE\n6\nByBlock\n"
  dxf << "9\n$DIMLTEX1\n6\nByBlock\n"
  dxf << "9\n$DIMLTEX2\n6\nByBlock\n"
  dxf << "9\n$LUNITS\n70\n2\n"
  dxf << "9\n$LUPREC\n70\n4\n"
  dxf << "9\n$SKETCHINC\n40\n0.1\n"
  dxf << "9\n$FILLETRAD\n40\n0.5\n"
  dxf << "9\n$AUNITS\n70\n0\n"
  dxf << "9\n$AUPREC\n70\n0\n"
  dxf << "9\n$MENU\n1\n.\n"
  dxf << "9\n$ELEVATION\n40\n0.0\n"
  dxf << "9\n$PELEVATION\n40\n0.0\n"
  dxf << "9\n$THICKNESS\n40\n0.0\n"
  dxf << "9\n$LIMCHECK\n70\n0\n"
  dxf << "9\n$CHAMFERA\n40\n0.0\n"
  dxf << "9\n$CHAMFERB\n40\n0.0\n"
  dxf << "9\n$CHAMFERC\n40\n0.0\n"
  dxf << "9\n$CHAMFERD\n40\n0.0\n"
  dxf << "9\n$SKPOLY\n70\n0\n"
  dxf << "9\n$TDCREATE\n40\n2457262.637550787\n"
  dxf << "9\n$TDUCREATE\n40\n2457262.845884121\n"
  dxf << "9\n$TDUPDATE\n40\n2457262.637551505\n"
  dxf << "9\n$TDUUPDATE\n40\n2457262.845884838\n"
  dxf << "9\n$TDINDWG\n40\n0.0\n"
  dxf << "9\n$TDUSRTIMER\n40\n0.0\n"
  dxf << "9\n$USRTIMER\n70\n1\n"
  dxf << "9\n$ANGBASE\n50\n0.0\n"
  dxf << "9\n$ANGDIR\n70\n0\n"
  dxf << "9\n$PDMODE\n70\n0\n"
  dxf << "9\n$PDSIZE\n40\n0.0\n"
  dxf << "9\n$PLINEWID\n40\n0.0\n"
  dxf << "9\n$SPLFRAME\n70\n0\n"
  dxf << "9\n$SPLINETYPE\n70\n6\n"
  dxf << "9\n$SPLINESEGS\n70\n8\n"
  dxf << "9\n$HANDSEED\n5\n5C2\n"
  dxf << "9\n$SURFTAB1\n70\n6\n"
  dxf << "9\n$SURFTAB2\n70\n6\n"
  dxf << "9\n$SURFTYPE\n70\n6\n"
  dxf << "9\n$SURFU\n70\n6\n"
  dxf << "9\n$SURFV\n70\n6\n"
  dxf << "9\n$UCSBASE\n2\n\n"
  dxf << "9\n$UCSNAME\n2\n\n"
  dxf << "9\n$UCSORG\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$UCSXDIR\n10\n1.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$UCSYDIR\n10\n0.0\n20\n1.0\n30\n0.0\n"
  dxf << "9\n$UCSORTHOREF\n2\n\n"
  dxf << "9\n$UCSORTHOVIEW\n70\n0\n"
  dxf << "9\n$UCSORGTOP\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$UCSORGBOTTOM\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$UCSORGLEFT\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$UCSORGRIGHT\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$UCSORGFRONT\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$UCSORGBACK\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PUCSBASE\n2\n\n"
  dxf << "9\n$PUCSNAME\n2\n\n"
  dxf << "9\n$PUCSORG\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PUCSXDIR\n10\n1.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PUCSYDIR\n10\n0.0\n20\n1.0\n30\n0.0\n"
  dxf << "9\n$PUCSORTHOREF\n2\n\n"
  dxf << "9\n$PUCSORTHOVIEW\n70\n0\n"
  dxf << "9\n$PUCSORGTOP\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PUCSORGBOTTOM\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PUCSORGLEFT\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PUCSORGRIGHT\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PUCSORGFRONT\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PUCSORGBACK\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$USERI1\n70\n0\n"
  dxf << "9\n$USERI2\n70\n0\n"
  dxf << "9\n$USERI3\n70\n0\n"
  dxf << "9\n$USERI4\n70\n0\n"
  dxf << "9\n$USERI5\n70\n0\n"
  dxf << "9\n$USERR1\n40\n0.0\n"
  dxf << "9\n$USERR2\n40\n0.0\n"
  dxf << "9\n$USERR3\n40\n0.0\n"
  dxf << "9\n$USERR4\n40\n0.0\n"
  dxf << "9\n$USERR5\n40\n0.0\n"
  dxf << "9\n$WORLDVIEW\n70\n1\n"
  dxf << "9\n$SHADEDGE\n70\n3\n"
  dxf << "9\n$SHADEDIF\n70\n70\n"
  dxf << "9\n$TILEMODE\n70\n1\n"
  dxf << "9\n$MAXACTVP\n70\n64\n"
  dxf << "9\n$PINSBASE\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PLIMCHECK\n70\n0\n"
  dxf << "9\n$PEXTMIN\n10\n0.0\n20\n0.0\n30\n0.0\n"
  dxf << "9\n$PEXTMAX\n10\n12.0\n20\n9.0\n30\n0.0\n"
  dxf << "9\n$PLIMMIN\n10\n0.0\n20\n0.0\n"
  dxf << "9\n$PLIMMAX\n10\n12.0\n20\n9.0\n"
  dxf << "9\n$UNITMODE\n70\n0\n"
  dxf << "9\n$VISRETAIN\n70\n1\n"
  dxf << "9\n$PLINEGEN\n70\n0\n"
  dxf << "9\n$PSLTSCALE\n70\n1\n"
  dxf << "9\n$TREEDEPTH\n70\n3020\n"
  dxf << "9\n$CMLSTYLE\n2\nStandard\n"
  dxf << "9\n$CMLJUST\n70\n0\n"
  dxf << "9\n$CMLSCALE\n40\n1.0\n"
  dxf << "9\n$PROXYGRAPHICS\n70\n1\n"
  dxf << "9\n$MEASUREMENT\n70\n0\n"
  dxf << "9\n$CELWEIGHT\n370\n-1\n"
  dxf << "9\n$ENDCAPS\n280\n0\n"
  dxf << "9\n$JOINSTYLE\n280\n0\n"
  dxf << "9\n$LWDISPLAY\n290\n0\n"
  dxf << "9\n$INSUNITS\n70\n0\n"
  dxf << "9\n$HYPERLINKBASE\n1\n\n"
  dxf << "9\n$STYLESHEET\n1\n\n"
  dxf << "9\n$XEDIT\n290\n1\n"
  dxf << "9\n$CEPSNTYPE\n380\n0\n"
  dxf << "9\n$PSTYLEMODE\n290\n1\n"
  dxf << "9\n$FINGERPRINTGUID\n2\n{A7C40A6E-D667-4EE6-A94E-792426BEC8DB}\n"
  dxf << "9\n$VERSIONGUID\n2\n{FAEB1C32-E019-11D5-929B-00C0DF256EC4}\n"
  dxf << "9\n$EXTNAMES\n290\n1\n"
  dxf << "9\n$PSVPSCALE\n40\n0.0\n"
  dxf << "9\n$OLESTARTUP\n290\n0\n"
  dxf << "9\n$SORTENTS\n280\n127\n"
  dxf << "9\n$INDEXCTL\n280\n0\n"
  dxf << "9\n$HIDETEXT\n280\n1\n"
  dxf << "9\n$XCLIPFRAME\n290\n0\n"
  dxf << "9\n$HALOGAP\n280\n0\n"
  dxf << "9\n$OBSCOLOR\n70\n257\n"
  dxf << "9\n$OBSLTYPE\n280\n0\n"
  dxf << "9\n$INTERSECTIONDISPLAY\n280\n0\n"
  dxf << "9\n$INTERSECTIONCOLOR\n70\n257\n"
  dxf << "9\n$DIMASSOC\n280\n2\n"
  dxf << "9\n$PROJECTNAME\n1\n\n"
  dxf << "9\n$CAMERADISPLAY\n290\n0\n"
  dxf << "9\n$LENSLENGTH\n40\n50.0\n"
  dxf << "9\n$CAMERAHEIGHT\n40\n0.0\n"
  dxf << "9\n$STEPSPERSEC\n40\n2.0\n"
  dxf << "9\n$STEPSIZE\n40\n6.0\n"
  dxf << "9\n$3DDWFPREC\n40\n2.0\n"
  dxf << "9\n$PSOLWIDTH\n40\n0.25\n"
  dxf << "9\n$PSOLHEIGHT\n40\n4.0\n"
  dxf << "9\n$LOFTANG1\n40\n1.57\n"
  dxf << "9\n$LOFTANG2\n40\n1.57\n"
  dxf << "9\n$LOFTMAG1\n40\n0.0\n"
  dxf << "9\n$LOFTMAG2\n40\n0.0\n"
  dxf << "9\n$LOFTPARAM\n70\n7\n"
  dxf << "9\n$LOFTNORMALS\n280\n1\n"
  dxf << "9\n$LATITUDE\n40\n37.795\n"
  dxf << "9\n$LONGITUDE\n40\n-122.394\n"
  dxf << "9\n$NORTHDIRECTION\n40\n0.0\n"
  dxf << "9\n$TIMEZONE\n70\n-8000\n"
  dxf << "9\n$LIGHTGLYPHDISPLAY\n280\n1\n"
  dxf << "9\n$TILEMODELIGHTSYNCH\n280\n1\n"
  dxf << "9\n$CMATERIAL\n347\n44\n"
  dxf << "9\n$SOLIDHIST\n280\n1\n"
  dxf << "9\n$SHOWHIST\n280\n1\n"
  dxf << "9\n$DWFFRAME\n280\n2\n"
  dxf << "9\n$DGNFRAME\n280\n2\n"
  dxf << "9\n$REALWORLDSCALE\n290\n1\n"
  dxf << "9\n$INTERFERECOLOR\n62\n256\n"
  dxf << "9\n$CSHADOW\n280\n0\n"
  dxf << "9\n$SHADOWPLANELOCATION\n40\n0.0\n"
  dxf << "0\nENDSEC\n"
end

#objectsObject



1507
1508
# File 'lib/dxf/floor_plan.rb', line 1507

def objects
end

#parse_areas_hash(areas_hash, area_tag = 'InsideException', layer_name = 'InsideExceptions') ⇒ Object

parse areas



326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
# File 'lib/dxf/floor_plan.rb', line 326

def parse_areas_hash(areas_hash, area_tag = 'InsideException', layer_name = 'InsideExceptions')
  return if areas_hash.nil?

  dxf << "999\n#{area_tag}s\n"
  areas = areas_hash[area_tag]
  areas = [areas] unless areas.is_a?(Array)
  areas.compact.each do |area|
    dxf << "999\n#{area_tag}\n"
    area['Line'].compact.each do |coords|
      # puts "coords.inspect: #{coords.inspect}"
      # dxf << "0\nLINE\n8\n#{layer_name}\n"
      dxf << "0\nLINE\n330\n1F\n100\nAcDbEntity\n8\n#{layer_name}\n100\nAcDbLine\n"
      dxf << "10\n#{coords['@x1']}\n20\n#{coords['@y1']}\n11\n#{coords['@x2']}\n21\n#{coords['@y2']}\n"
    end
  end
end

#plan_detailsObject

room type, flooring type, project ID,



300
301
302
303
304
305
306
307
308
# File 'lib/dxf/floor_plan.rb', line 300

def plan_details
  rtype = @room_type
  ftype = @flooring_type
  proj_id = hsh['Project']['@projectid']
  dxf << "999\nPlan Details\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nText\n6\nContinuous\n100\nAcDbText\n10\n-150\n20\n110\n40\n4\n1\nProjectID: #{proj_id}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nText\n6\nContinuous\n100\nAcDbText\n10\n-150\n20\n100\n40\n4\n1\nRoom type: #{rtype}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\nText\n6\nContinuous\n100\nAcDbText\n10\n-150\n20\n90\n40\n4\n1\nFlooring type: #{ftype}\n7\n_TCW_TXTSTY_7\n100\nAcDbText\n"
end

#render_heated_area_shape(area_type, node) ⇒ Object



1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
# File 'lib/dxf/floor_plan.rb', line 1543

def render_heated_area_shape(area_type, node)
  hsh_area_types = {
    maximum: 'Maximum Heated Area',
    efficient: 'Efficient Heated Area',
    minimum: 'Minimum Heated Area'
  }

  area_name = hsh_area_types[area_type]

  return unless area_name and node

  dxf << "999\n#{area_name}\n"

  return unless node['HeatedAreaShape']

  [node['HeatedAreaShape']['Line']].flatten.compact.each do |coords|
    unless coords['@x1'].index('undefined')
      dxf << "0\nLINE\n100\nAcDbEntity\n8\n#{area_name}\n100\nAcDbLine\n"
      dxf << "10\n#{coords['@x1']}\n20\n#{coords['@y1']}\n11\n#{coords['@x2']}\n21\n#{coords['@y2']}\n"
    end
  end
  # exceptions
  parse_areas_hash(node['InsideExceptions'], area_tag = 'InsideException')
  return unless area_type == :maximum

  parse_areas_hash(node['LPAExceptions'], area_tag = 'LPAException', layer_name = 'LPAExceptions')
end

#save_fileObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/dxf/floor_plan.rb', line 18

def save_file
  # f = File.new(file_path, "w")
  f = File.new('plan.dxf', 'w')
  f.write(@dxf)
  f.flush
  f.fsync
rescue StandardError => e
  # puts "Error while saving #{exc.inspect}"
ensure
  begin
    f.close
  rescue StandardError
    nil
  end
end

#scaleObject



1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
# File 'lib/dxf/floor_plan.rb', line 1510

def scale
  # scale
  dxf << "0\nTEXT\n100\nAcDbEntity\n8\n0\n6\nContinuous\n100\nAcDbText\n10\n-10\n20\n-44.5\n40\n4\n1\nScale\n7\n_TCW_TXTSTY_17\n72\n1\n"
  dxf << "11\n-10\n21\n-42.92\n100\nAcDbText\n73\n2\n"
  dxf << "0\nLWPOLYLINE\n100\nAcDbEntity\n8\n0\n6\nContinuous\n62\n45\n370\n25\n"
  dxf << "100\nAcDbPolyline\n90\n4\n70\n129\n43\n0.0\n10\n0\n20\n-39.80\n10\n60\n20\n-39.80\n10\n60\n20\n-41.80\n10\n0\n20\n-41.80\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\n0\n6\nContinuous\n62\n45\n370\n25\n100\nAcDbLine\n10\n12\n20\n-41.80\n11\n12\n21\n-39.80\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\n0\n6\nContinuous\n62\n45\n370\n25\n100\nAcDbLine\n10\n24\n20\n-41.80\n11\n24\n21\n-39.80\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\n0\n6\nContinuous\n62\n45\n370\n25\n100\nAcDbLine\n10\n48\n20\n-39.80\n11\n48\n21\n-41.80\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\n0\n6\nContinuous\n62\n45\n370\n25\n100\nAcDbLine\n10\n36\n20\n-39.80\n11\n36\n21\n-41.80\n"
  dxf << "0\nHATCH\n100\nAcDbEntity\n8\n0\n6\nContinuous\n62\n45\n370\n0\n100\nAcDbHatch\n10\n0.0\n20\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n2\nSOLID\n"
  dxf << "70\n1\n71\n0\n91\n1\n92\n3\n72\n0\n73\n1\n93\n4\n10\n0\n20\n-39.80\n10\n0\n20\n-41.80\n"
  dxf << "10\n12\n20\n-41.80\n10\n12\n20\n-39.80\n97\n0\n75\n0\n76\n1\n98\n0\n"
  dxf << "0\nHATCH\n100\nAcDbEntity\n8\n0\n6\nContinuous\n62\n45\n370\n0\n100\nAcDbHatch\n10\n0.0\n20\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n2\nSOLID\n"
  dxf << "70\n1\n71\n0\n91\n1\n92\n3\n72\n0\n73\n1\n93\n4\n10\n24\n20\n-39.80\n10\n24\n20\n-41.80\n"
  dxf << "10\n36\n20\n-41.80\n10\n36\n20\n-39.80\n97\n0\n75\n0\n76\n1\n98\n0\n"
  dxf << "0\nHATCH\n100\nAcDbEntity\n8\n0\n6\nContinuous\n62\n45\n370\n0\n100\nAcDbHatch\n10\n0.0\n20\n0.0\n210\n0.0\n220\n0.0\n230\n1.0\n2\nSOLID\n"
  dxf << "70\n1\n71\n0\n91\n1\n92\n3\n72\n0\n73\n1\n93\n4\n10\n48\n20\n-39.80\n10\n48\n20\n-41.80\n"
  dxf << "10\n60\n20\n-41.80\n10\n60\n20\n-39.80\n97\n0\n75\n0\n76\n1\n98\n0\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n370\n-2\n100\nAcDbLine\n10\n0\n20\n-41.80\n11\n0\n21\n-47.83\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n370\n-2\n100\nAcDbLine\n10\n60\n20\n-41.80\n11\n60\n21\n-47.83\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n370\n-2\n100\nAcDbLine\n10\n6\n20\n-47.58\n11\n26\n21\n-47.58\n"
  dxf << "0\nLINE\n100\nAcDbEntity\n8\nDimensions\n6\nByBlock\n370\n-2\n100\nAcDbLine\n10\n54\n20\n-47.58\n11\n35\n21\n-47.58\n"
  dxf << "0\nINSERT\n100\nAcDbEntity\n8\nDimensions\n370\n-2\n100\nAcDbBlockReference\n2\nTC_DIMARROW_CLOSED30\n"
  dxf << "10\n0\n20\n-47.58\n41\n6.0\n42\n6.0\n43\n6.0\n50\n180.0\n"
  dxf << "0\nINSERT\n100\nAcDbEntity\n8\nDimensions\n370\n-2\n100\nAcDbBlockReference\n2\nTC_DIMARROW_CLOSED30\n"
  dxf << "10\n60\n20\n-47.58\n41\n6.0\n42\n6.0\n43\n6.0\n"
  dxf << "0\nMTEXT\n100\nAcDbEntity\n8\nDimensions\n370\n25\n100\nAcDbMText\n10\n30\n20\n-47.58\n40\n4\n41\n0.0\n46\n0.0\n71\n5\n72\n1\n1\n\\A1;5'-0\"\n73\n1\n44\n1.0\n"
  dxf << "0\nPOINT\n100\nAcDbEntity\n8\nDefpoints\n62\n0\n100\nAcDbPoint\n10\n0\n20\n-41.68\n"
  dxf << "0\nPOINT\n100\nAcDbEntity\n8\nDefpoints\n62\n0\n100\nAcDbPoint\n10\n60\n20\n-41.68\n"
  dxf << "0\nPOINT\n100\nAcDbEntity\n8\nDefpoints\n62\n0\n100\nAcDbPoint\n10\n60\n20\n-47.58\n"
end

#tablesObject

tables and their attibutes



1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
# File 'lib/dxf/floor_plan.rb', line 1332

def tables
  dxf << "0\nSECTION\n"
  dxf << "2\nTABLES\n"

  # Vport
  dxf << "0\nTABLE\n"
  dxf << "2\nVPORT\n100\nAcDbSymbolTable\n70\n1\n"
  dxf << "0\nVPORT\n100\nAcDbSymbolTableRecord\n100\nAcDbViewportTableRecord\n2\n*Active\n70\n0\n"
  dxf << "10\n0.0\n20\n0.0\n11\n1.0\n21\n1.0\n12\n0.0\n22\n0.0\n13\n0.0\n23\n0.0\n14\n12.0\n24\n12.0\n15\n12.0\n"
  dxf << "25\n12.0\n16\n0.0\n26\n0.0\n36\n1.0\n17\n250\n27\n150\n37\n0.0\n40\n500\n41\n-100\n42\n50.0\n"
  dxf << "43\n0.0\n44\n0.0\n50\n0.0\n51\n0.0\n71\n0\n72\n100\n73\n1\n74\n3\n75\n0\n76\n1\n77\n0\n78\n0\n281\n0\n"
  dxf << "65\n1\n110\n0.0\n120\n0.0\n130\n0.0\n111\n1.0\n121\n0.0\n131\n0.0\n112\n0.0\n122\n1.0\n132\n0.0\n79\n0\n"
  dxf << "146\n0.0\n60\n3\n61\n5\n292\n1\n282\n1\n141\n0.0\n142\n0.0\n63\n150\n361\n69\n"
  dxf << "0\nENDTAB\n"

  # Line types
  dxf << "0\nTABLE\n"
  dxf << "2\nLTYPE\n100\nAcDbSymbolTable\n70\n13\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nByBlock\n70\n0\n3\n\n72\n65\n73\n0\n40\n0.0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nByLayer\n70\n0\n3\n\n72\n65\n73\n0\n40\n0.0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nContinuous\n70\n0\n3\nSolid line\n72\n65\n73\n0\n40\n0.0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nBORDER\n70\n0\n3\nBORDER\n72\n65\n73\n6\n40\n1.75\n49\n0.5\n74\n0\n49\n-0.25\n74\n0\n49\n0.5\n74\n0\n49\n-0.25\n74\n0\n49\n0.0\n74\n0\n49\n-0.25\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nCENTER\n70\n0\n3\nCENTER\n72\n65\n73\n4\n40\n2.0\n49\n1.25\n74\n0\n49\n-0.25\n74\n0\n49\n0.25\n74\n0\n49\n-0.25\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nDASHDOT\n70\n0\n3\nDASHDOT\n72\n65\n73\n4\n40\n1.0\n49\n0.5\n74\n0\n49\n-0.25\n74\n0\n49\n0.0\n74\n0\n49\n-0.25\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nDASHED\n70\n0\n3\nDASHED\n72\n65\n73\n2\n40\n0.75\n49\n0.5\n74\n0\n49\n-0.25\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nDIVIDE\n70\n0\n3\nDIVIDE\n72\n65\n73\n6\n40\n1.25\n49\n0.5\n74\n0\n49\n-0.25\n74\n0\n49\n0.0\n74\n0\n49\n-0.25\n74\n0\n49\n0.0\n74\n0\n49\n-0.25\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nDOT\n70\n0\n3\nDOT\n72\n65\n73\n2\n40\n0.25\n49\n0.0\n74\n0\n49\n-0.25\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nHIDDEN\n70\n0\n3\nHIDDEN\n72\n65\n73\n2\n40\n0.375\n49\n0.25\n74\n0\n49\n-0.125\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\nPHANTOM\n70\n0\n3\nPHANTOM\n72\n65\n73\n6\n40\n2.5\n49\n1.25\n74\n0\n49\n-0.25\n74\n0\n49\n0.25\n74\n0\n49\n-0.25\n74\n0\n49\n0.25\n74\n0\n49\n-0.25\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\n$INVISIBLE\n70\n0\n3\n$INVISIBLE\n72\n65\n73\n2\n40\n200.0\n49\n-100.0\n74\n0\n49\n-100.0\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\n$CONSTRUCTION\n70\n0\n3\n$CONSTRUCTION\n72\n65\n73\n4\n40\n0.3\n49\n0.2\n74\n0\n49\n-0.05\n74\n0\n49\n0.0\n74\n0\n49\n-0.05\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\n$AUXILIARY\n70\n0\n3\n$AUXILIARY\n72\n65\n73\n2\n40\n0.1\n49\n0.05\n74\n0\n49\n-0.05\n74\n0\n"
  dxf << "0\nLTYPE\n100\nAcDbSymbolTableRecord\n100\nAcDbLinetypeTableRecord\n2\n$SNAPEXT\n70\n0\n3\n$SNAPEXT\n72\n65\n73\n2\n40\n0.04\n49\n0.02\n74\n0\n49\n-0.02\n74\n0\n"
  dxf << "0\nENDTAB\n"

  # # Layers
  dxf << "0\nTABLE\n"
  dxf << "2\nLAYER\n100\nAcDbSymbolTable\n70\n12\n"

  layers = {
    '0' => 7,
    'Room Shape' => 7,
    'Maximum Heated Area' => 14,
    'Minimum Heated Area' => 1,
    'Efficient Heated Area' => 3,
    'Protected Areas' => 7,
    'Fixtures' => 30,
    'Fixtures_name' => 30,
    'Thermostats' => 5,
    'Text' => 7,
    'LPAExceptions' => 6,
    'InsideExceptions' => 6,
    'Dimensions' => 1
  }
  layers.each do |key, value|
    dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\n#{key}\n70\n0\n62\n#{value}\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  end

  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\n0\n                      70\n0\n62\n7\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nRoom Shape\n             70\n0\n62\n7\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nMaximum Heated Area\n    70\n0\n62\n1\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nMinimum Heated Area\n    70\n0\n62\n2\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nEfficient Heated Area\n  70\n0\n62\n3\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nProtected Areas\n        70\n0\n62\n7\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nFixtures\n               70\n0\n62\n30\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nFixtures_name\n          70\n0\n62\n30\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nThermostats\n            70\n0\n62\n5\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nText\n                   70\n0\n62\n7\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nLPAExceptions\n          70\n0\n62\n6\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nInsideExceptions\n       70\n0\n62\n6\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  # dxf << "0\nLAYER\n100\nAcDbSymbolTableRecord\n100\nAcDbLayerTableRecord\n2\nDimensions\n             70\n0\n62\n1\n6\nContinuous\n370\n0\n390\nF\n347\n46\n"
  dxf << "0\nENDTAB\n"

  # Style
  dxf << "0\nTABLE\n"
  dxf << "2\nSTYLE\n5\n3\n330\n0\n100\nAcDbSymbolTable\n70\n2\n"
  dxf << "0\nSTYLE\n5\n11\n330\n3\n100\nAcDbSymbolTableRecord\n100\nAcDbTextStyleTableRecord\n2\nStandard\n70\n0\n40\n0.0\n41\n1.0\n50\n0.0\n71\n0\n42\n0.2\n3\narial.ttf\n4\n\n1001\nACAD\n1000\nArial\n1071\n34\n"
  dxf << "0\nENDTAB\n"

  # Views
  dxf << "0\nTABLE\n"
  dxf << "2\nVIEW\n5\n6\n330\n0\n100\nAcDbSymbolTable\n70\n1\n"
  dxf << "0\nVIEW\n5\n192\n330\n6\n100\nAcDbSymbolTableRecord\n100\nAcDbViewTableRecord\n"
  dxf << "2\nView_0\n70\n0\n40\n8.27\n10\n5.84\n20\n4.13\n41\n11.69\n"
  dxf << "11\n0.0\n21\n0.0\n31\n1.0\n12\n0.0\n22\n0.0\n32\n0.0\n42\n50.0\n43\n0.0\n44\n0.0\n50\n0.0\n71\n0\n281\n0\n72\n0\n73\n0\n"
  dxf << "0\nENDTAB\n"

  # UCS
  dxf << "0\nTABLE\n"
  dxf << "2\nUCS\n5\n7\n330\n0\n100\nAcDbSymbolTable\n70\n0\n"
  dxf << "0\nENDTAB\n"

  # APPID
  dxf << "0\nTABLE\n"
  dxf << "2\nAPPID\n100\nAcDbSymbolTable\n70\n6\n"
  appid = %w[ACAD TCAD ACAD_MLEADERVER AVE_RENDER]
  appid.compact.each do |name|
    dxf << "0\nAPPID\n100\nAcDbSymbolTableRecord\n100\nAcDbRegAppTableRecord\n2\n#{name}\n70\n0\n"
  end
  dxf << "0\nENDTAB\n"

  # Dimension style
  dxf << "0\nTABLE\n"
  dxf << "2\nDIMSTYLE\n100\nAcDbSymbolTable\n70\n2\n100\nAcDbDimStyleTable\n"
  dxf << "0\nDIMSTYLE\n105\n27\n100\nAcDbSymbolTableRecord\n100\nAcDbDimStyleTableRecord\n"
  dxf << "2\nStandard\n70\n0\n4\n^B2147483648l^B\n41\n0.25\n43\n0.375\n44\n0.125\n45\n0.01\n74\n0\n77\n1\n78\n1\n"
  dxf << "140\n0.1477272727272727\n141\n0.0\n143\n1.0\n147\n0.0625\n148\n0.01\n172\n1\n178\n0\n179\n2\n271\n2\n"
  dxf << "272\n3\n276\n2\n278\n0\n340\n11\n345\n14\n346\n14\n347\n14\n"
  dxf << "0\nDIMSTYLE\n105\n196\n100\nAcDbSymbolTableRecord\n100\nAcDbDimStyleTableRecord\n"
  dxf << "2\nCommon Dimension Style 1\n70\n0\n4\n^B2147483648l^B\n41\n0.25\n43\n0.375\n44\n0.125\n45\n0.01\n"
  dxf << "74\n0\n77\n1\n78\n1\n140\n0.1477272727272727\n141\n0.0\n143\n1.0\n147\n0.0625\n148\n0.01\n172\n1\n"
  dxf << "178\n0\n179\n2\n271\n2\n272\n3\n276\n2\n278\n0\n340\n11\n345\n14\n346\n14\n347\n14\n"
  dxf << "0\nENDTAB\n"

  # Block Record
  dxf << "0\nTABLE\n"
  dxf << "2\nBLOCK_RECORD\n100\nAcDbSymbolTable\n70\n23\n"
  dxf << "0\nBLOCK_RECORD\n100\nAcDbSymbolTableRecord\n100\nAcDbBlockTableRecord\n2\n*Model_Space\n340\n22\n70\n0\n280\n1\n281\n0\n"
  dxf << "0\nBLOCK_RECORD\n100\nAcDbSymbolTableRecord\n100\nAcDbBlockTableRecord\n2\n*Paper_Space\n340\n1E\n70\n0\n280\n1\n281\n0\n"
  blk_rec = [
    'ERT120-1.5x06',
    'ERT120-1.5x08',
    'ERT120-1.5x10',
    'ERT120-1.5x12',
    'ERT120-1.5x14',
    'ERT120-1.5x16',
    'ERT120-1.5x18',
    'ERT120-1.5x20',
    'ERT120-1.5x25',
    'ERT120-1.5x30',
    'ERT120-1.5x35',
    'ERT120-1.5x40',
    'ERT120-1.5x45',

    'ERT120-3.0x05',
    'ERT120-3.0x08',
    'ERT120-3.0x10',

    'ERT240-1.5x06',
    'ERT240-1.5x08',
    'ERT240-1.5x10',
    'ERT240-1.5x14',
    'ERT240-1.5x20',
    'ERT240-1.5x25',
    'ERT240-1.5x30',
    'ERT240-1.5x35',
    'ERT240-1.5x40',
    'ERT240-1.5x45',
    'ERT240-1.5x50',
    'ERT240-1.5x60',
    'ERT240-1.5x70',
    'ERT240-1.5x80',
    'ERT240-1.5x90',

    '240V_5_x_10',
    '240V_5_x_15',

    'CL-TWIN-14',
    'CL-TWIN-17',

    'Cerazorb',
    'Cork',
    'Master Units',
    'Slave Units',
    'RELAY_CONTACTOR',
    'Tstat_15A_120V',
    'Tstat_15A_240V'
  ]
  blk_rec.compact.each do |name|
    dxf << "0\nBLOCK_RECORD\n100\nAcDbSymbolTableRecord\n100\nAcDbBlockTableRecord\n2\n#{name}\n340\n0\n70\n0\n280\n1\n281\n0\n"
  end
  dxf << "0\nENDTAB\n"
  dxf << "0\nENDSEC\n"
end