Информации действительно маловато.
Пример практического построения новой модели приведен в файле C:\Users\Public\Documents\SAPFIR\SAPFIR 2016\Service\Users\TestStorey.htm
Этот файл содержит программу построения стен, перекрытия и крыши небольшого домика.
При этом используются вспомогательные функции, описанные в ServiceFun.jsh.
Чтобы исполнить программу, нужно сначала подключить её к САПФИР, как описано в разделе 10.1 "Учебного пособия",
с той разницей, что выбрать не DLL, а HTM файл и не нужно в аргументах задавать вызов StartFunction, просто оставить поле "Аргументы" пустым.
Команда появится в меню "Сервис". Если Вы работаете в интерфейсе стиля "лента", то включите также параллельно с лентой меню,
используя кнопку "Стиль" (галочку "Меню" включить).
В файле TestStorey.htm есть функция OnCreateWalls().
В ней последовательно происходит создание этажа, а затем создание ряда объектов типа "Стена".
Эти действия обрамляются специальными командами, обеспечивающими создание точек восстановления состояния модели по Undo,
что важно при редактировании.
Создание каждого объекта типа "Стена" выполняется при помощи специальной функции CreateWall(), которая находится в этом же файле.
Эта функция содержит вызов:
| Код |
|---|
var Wall = Storey.NewModel(TM_WALL); // В текущем этаже создаем объект стена |
Реализация этого вызова находится в ядре САПФИР. Там фабрика объектов порождает новый объект, тип которого наделён идентификатором TM_WALL.
Поведение и набор основных параметров этого объекта также определён внутри ядра САПФИР. Порождённый таким образом объект "Стена"
сразу оказывается включённым в информационную модель здания, составляющую суть документа САПФИР.
Соответственно он подхватывается конвейером визуализации, который обеспечивает отрисовку этого объекта в видах САПФИР.
Остаётся задать несколько параметров этого объекта, чтобы он был таким, как нам надо.
Для этого мы используем интерфейс вида Wall.Parameter( <мнемоника параметра> ) = <значение>.
Можно наделять объекты и какими-то другими, дополнительными параметрами, кроме основных, влияние которых на поведение и внешний вид объекта заложено в ядро.
Эти параметры будут просто храниться в объекте до тех пор, пока к ним снова кто-то не обратится, чтобы реализовать свои прикладные задачи обработки информационной модели здания. Но это, как Вы верно заметили, выходит за рамки задачи создания и редактирования физической и аналитической составляющих информационной модели.
Кроме TM_WALL существует несколько других типов объектов. См. документ "Описание функций автоматизации САПФИР.pdf", стр. 4, 5.