Попробовал пользоваться Labpp_Automat для создания таблицы квартир по требованию Минстроя по подготовленному скрипту. Т.к. в
программировании я профан, то двигался на ощуп по знакомым словам )
1. У меня своя структура слоев и слой для маркеров имеет другое название, так же у меня на плане размещены общий маркер этажа и
маркер объединяющий места общего пользования
(рис. 01)
Подготовленный скрипт выбирает все маркеры. По логике названий понял что надо править файл «pso_live». Название слоя для выборки заменил и добавил правило выборки по имени объекта маркера:
// выбрать все маркеры квартир
cout<< "старт выборки";
string longlayername = "ИМЯ СЛОЯ";
string sObjectName = "ИМЯ ОБЪЕКТА";
int ires =ac_request("load_elements_list",4,"ObjectType","Layer",longlayername,"ObjectName",sObjectName,"MainFilter",2);
2. Заметил что столбик «Этаж расположения» заполняется на 1 меньше номера этажа (по индексу этажа начиная с «0»). Прибавил
единицу к индексу этажа:
ires = ac_request("get_element_value","StoreIndex");
floornum= ac_getnumvalue()+1;
3. Было нужно чтобы в столбике «Назначение» всегда писалось просто «квартира»:
ires =ac_request("get_object_property_value","TS_KVTYPE");
naznacheniye= "квартира"; //ac_request
То что было написано раньше закоментировал на всякий случай.
4. По умолчанию столбик «номера подъезда» заполнялся из параметра маркера «номер секции». Для логичности поменял,
все-таки, на номер подьезда:
ires = ac_request("get_object_property_value","TS_PODN");
section= ac_getnumvalue();
5. Не нравилось что в последних столбиках по вспомогательным помещениям у каждой квартиры составляется полный список всех
возможных помещений с прочерками напротив отсутствующих. Закоментировал строки
которые за это отвечали (поначалу заменил названия на те которые использую сам):
//ts_table(TableDescrOthers,"add_row",1, "коридор",2, 0);
//ts_table(TableDescrOthers,"add_row",1, "кухня",2, 0);
//ts_table(TableDescrOthers,"add_row",1, "кухня-ниша", 2, 0);
//ts_table(TableDescrOthers,"add_row",1, "гардероб",2, 0);
//ts_table(TableDescrOthers,"add_row",1, "кладовая",2, 0);
//ts_table(TableDescrOthers,"add_row",1, "совмещенный с/у", 2, 0);
//ts_table(TableDescrOthers,"add_row",1, "с/у", 2, 0);
//ts_table(TableDescrOthers,"add_row",1, "ванная",2, 0);
//ts_table(TableDescrOthers,"add_row",1, "лоджия",2, 0);
//ts_table(TableDescrOthers,"add_row",1, "балкон",2, 0);
6. Площадь балконов и лоджий в последнем столбце писалась без коэффициента. Чтобы площадь была с учетом коэфициента заменил
название параметра паспорта зоны по умолчанию на параметр своего паспорта зоны
с коэф. (в конце закоментированный параметр по умолчанию):
ires = ac_request("get_gdlelem_property_value","My_area"); //"ROOM_AREA"
7. Захотел убрать из таблицы слово «секция», и заменить его словом «подъезд». Просто поиском нашел нужные слова и заменил их,
или удалил для переименовывания столбца «номер подъезда (секции)».
Теперь о выявленных проблемах и не решенных задачах:
(рис. 02)
8. Условный номер комнаты берется из № зоны, и если зоны имеют одинаковый номер, то и условный номер в таблице будет одинаковый.
Жилые дома зачастую проектируются без поэтажной экспликации и только с
названиями помещений на плане, по-этому следить за номером зон не всегда
удобно. Хотелось бы чтобы условный номер присваивался независимо от № зоны,
например от большей комнаты к меньшей.
9. Если два помещения в квартире имеют одинаковое название, то в таблице они объединяются в одну строку. У нас экспертиза требует
чтобы если в ванной есть унитаз, она называлась «с/у», можно назвать «совмещенный
с/у», но это загромоздит план. Хотелось бы чтобы помещения с одинаковым
названием не объединялись в одну строку.
10. Неясна логика формирования списка вспомогательных помещений квартир. Они формируются независимо от № зоны и
алфавита по названию. Иногда «кухня» на первом месте, иногда «балкон». Не
разобрался как настроить последовательность, но чтобы небыло списка всех
возможных помещений с прочерками напротив отсутствующих (так слишком громоздко
при большом кол-ве квартир).
11. В заголовке таблицы есть название объекта, оно записано в скрипте в конце:
//excel_putstrvalue("Жилой дом № 1 (5-ти секционный, 17-ти этажный),расположенный по адресу: Московская область, г.о. Балашиха, севернее улицы
Лукино, квартал \"Б\"");
string s = "Жилой дом № 12, расположенный по адресу: г.Москва";
Хотелось бы увязать эту строку с автотекстом из ArchiCAD, например <PROJECTNAME>.
12. Первый столбец с названием «Блок» хотелось бы убрать совсем, т.к. его нет в приказе минстроя, да и таблица формируется
зачастую из файла ArchiCAD в котором один дом, а то и один подъезд дома, и
достаточно градации квартир по номеру подъезда.
13. Ещё хотелось бы чтобы какие-то основные настройки в скрипте были вынесены в отдельный файл, чтобы удобнее было настраивать под себя.