1. YarUnderoaker
  2. Архитектурные решения
  3. 08.11.2012
  4.  Подписаться через email
Приветствую. Прошу протестировать дополнение для работы с внутренней отделкой. https://dl.dropboxusercontent.com/u/71139287/Revit/RoomFinishingPanel.png Принцип работы - моделирование отделки с помощью многослойных стен и деление их на детали. Системные требования: Windows 7 x64 Revit 2014 Ссылка на установщик https://docs.google.com/file/d/0B-jjKvne7s2SbTlMTVdBWFRjc00/edit?usp=sharing"]RoomFinishesAddInSetup2014(x64).msi Ссылка на тестовый проект https://dl.dropboxusercontent.com/u/71139287/Revit/%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82.rvt"]Тестовый проект.rvt Как с этим работать: 1) Создаем несколько основных типов многослойных стен, у которых имеются слои с отделкой. Толщина слоев не имеет особого значения. Отличатся они будут, например, толщиной и материалом несущего слоя (кирпич, пеноблок, гипсокартон...) 2) Создаем модель здания. Желательно делать отдельные стены на каждом этаже. Несущие стены соединяем с конструктивными элементами либо вырезаем в стенах врезанными профилями ниши и штрабы. Это нужно для корректного моделирования отделки. 3) Создаем потолки обычным способом. Ограничение - потолок должен находится в пределах одного помещения и являться границей помещения (как бы обрезая его объем сверху). В помещении может быть несколько типов потолков. 4) Выбираем стены/перегородки и нажимаем кнопку "Создать детали" на вкладке Изменить. Потолки не нужно делить на детали. 5) Нажимаем кнопочку "Определить детали отделки" на вкладке Отделка. В результате для каждой детали стен определяется к какой комнате они принадлежат (данные записываются в параметры "Номер помещения" и "Имя помещения" детали. Пока есть ограничение - определяются только плоские детали. 6) Далее переходим на 3D вид, вводим номер помещения в текстовое поле на вкладке Надстройки. Произойдет изоляция деталей отделки, которые принадлежат помещению. Смотрим все ли детали на месте и имеют правильную форму. Если нет, то корректируем вручную. На планах/разрезах можно задать параметры "Номер помещения" и "Имя помещения" деталям у которых они не определены. Также можно подкорректировать размеры детали включив галочку параметру "Показать ручки формы". И самое главное - можно переназначить материал для деталей если есть такая необходимость. 7) Дополнительно есть кнопка "Разделить детали рабочей плоскостью", которая делит выбранные детали по линии пересечения с рабочей плоскостью. Это может пригодится для моделирования отделки у которой разные материалы по высоте. 8) Можно циклически переходить от помещения к помещению с помощью кнопок "Предыдущее помещение" и "Следующее помещение". 9) Делаем ведомость отделки нажимая кнопку "Ведомость отделки", при этом должен быть активным вид у которого есть параметр "Тип системы". Эта ведомость статическая - не обновляется автоматически с изменениями в проекте, зато полностью соответствует ГОСТ. Язык шапки ведомости выбирается в настройках. Шрифт шапки заависит от текущего шрифта в проекте, в соответствии с ним строятся линии разделения строк.
Warning: Spoiler Alert! [Toggle message]
Пришлось столкнутся с среднего размера реконструкцией объекта, где часть перегородок сносилась и строились новые, на других менялись только обои. В помещениях было до 5 видов отделки. Требовалось все точно подсчитать. Конечно потом это еще неоднократно менялось по разным причинам. Работа трудоемкая. Так пришла идея написать это дополнение.
Критика и пожелания приветствуются. Предупреждаю, сильно не тестировал. Удалить дополнение можно через панель управления -> удаление программ. Для обновления придется его переустановить перед этим удалив.
Ответ принят
Ответ принят Pending Moderation
1
Голосов
Отменить
Вышло обновление! Отредактирован первый пост, прошу заинтересовавшихся перечитать еще раз. Добавлены функция определения потолков, а так же создание ведомости отделки по ГОСТ в виде текста и линий в чертежном виде. Обновлен установщик и тестовый проект. To Admin: движек форума ламает ссылки, не показывает изображения по ссылке из dropbox и не дает возможность управлять вложениями!
Комментарий
  1. Андрей Конюков
  2. около 6 лет назад
  3. #249
Ссылки в "ссылки", изображения урл в [IMG]
  1. YarUnderoaker
  2. около 6 лет назад
  3. #255
Старый форум был лучше :p
Никаких комментариев пока не создано.
Ответ принят Pending Moderation
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 121
Ответ принят Pending Moderation
0
Голосов
Отменить
А можно тоже сделать для Revit 2014, а то я в проектной конторе работаю и переход на revit 2015 не прост.
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 122
Ответ принят Pending Moderation
0
Голосов
Отменить
У меня уже нет 2014-го, а без него собрать не получится. Но я постараюсь написать для вас макрос, который будет копировать значения параметров отделки из помещений в стены.
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 123
Ответ принят Pending Moderation
0
Голосов
Отменить
Вот, как обещал

/*
 * Created by SharpDevelop.
 * User: Ростислав
 * Date: 04.08.2014
 * Time: 20:58
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace Resident
{
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Automatic)]
    [Autodesk.Revit.DB.Macros.AddInId("8AD00553-D1C8-4544-93E5-3D68F36CE3FC")]
	public partial class ThisDocument
	{
		private void Module_Startup(object sender, EventArgs e)
		{

		}

		private void Module_Shutdown(object sender, EventArgs e)
		{

		}

		#region Revit Macros generated code
		private void InternalStartup()
		{
			this.Startup += new System.EventHandler(Module_Startup);
			this.Shutdown += new System.EventHandler(Module_Shutdown);
		}
		#endregion
		public void FinishHim()
		{
            Document doc = this.Document;
            ICollection eset = this.Selection.GetElementIds();
            
            FilteredElementCollector collector = new FilteredElementCollector(doc);
            ElementCategoryFilter wallCatFilter = new ElementCategoryFilter(BuiltInCategory.OST_Walls);
            ICollection wallCollection = collector.WherePasses(wallCatFilter).WhereElementIsNotElementType().ToElements();            
            
            int count = 0;
            bool useness = false;
            
            foreach(ElementId id in eset)
            {
            	Element e = doc.GetElement(id);
            	Autodesk.Revit.DB.Architecture.Room room = e as Autodesk.Revit.DB.Architecture.Room;
            	if (room == null) continue;
            	count++;
            	
            	Parameter roomNumberParam = room.get_Parameter(BuiltInParameter.ROOM_NUMBER);
                string roomNumber = roomNumberParam.AsString();
                
            	Parameter roomFinishParam = room.get_Parameter(BuiltInParameter.ROOM_FINISH_WALL);
                string roomFinishing = roomFinishParam.AsString();                
                
            	
            	foreach(Wall w in wallCollection)
            	{

            		Parameter p2 = w.get_Parameter("Номер помещения");
            		if (p2 == null)
            		{
            			MessageBox.Show("У стен нет параметра 'Номер помещения', что-то тут не так...");
            			return;
            		}     
            		
            		if (string.Compare(roomNumber, p2.AsString()) != 0) continue;

            		Parameter p1 = w.get_Parameter("Отделка стен");
            		if (p1 == null)
            		{
            			MessageBox.Show("У стен нет параметра 'Отделка стен', необходимо добавить его вручную");
            			return;
            		}       

            		p1.Set(roomFinishing);
            		useness = true;
            	}
            }
			
            if (count == 0) 
            {
            	MessageBox.Show("Предварительно выберите одно или несколько помещений");
            	return;
            }	

            if (useness) MessageBox.Show("Выполнено");
		}
	}
}
Инструкция по использованию 1) Закладка Управление -> Кнопка Диспетчер макросов 2) В диспетчере активной должна быть закладка с названием вашего проекта 3) Нажимаем кнопку Создать в группе Модуль, пишем имя модуля Resident 4) Ждем пока появится окно среды разработки 5) Удаляем дефолтный текст и копируем туда код из этого поста 6) Заходим в меню Проект -> Добавить ссылку, ищем System.Windows.Forms. Жмем ОК. 7) Заходим в меню Сбока -> Собрать решение 8) Если ошибок нет, возвращаемся в Ревит, выбираем те помещения, стены которых нужно обновить, в Диспечере макросов выбираем макрос FinishHim и нажимаем кнопку Выполнить 9) Значение параметра "Отделка стен" скопировано в из помещений в стены-отделки. Profit :)
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 124
Ответ принят Pending Moderation
0
Голосов
Отменить
Немного подправил под 2014 версию (утро вечера мудренее :)


/*
 * Created by SharpDevelop.
 * User: Ростислав
 * Date: 04.08.2014
 * Time: 20:58
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using Autodesk.Revit.UI;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI.Selection;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace Resident
{
    [Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Automatic)]
    [Autodesk.Revit.DB.Macros.AddInId("8AD00553-D1C8-4544-93E5-3D68F36CE3FC")]
	public partial class ThisDocument
	{
		private void Module_Startup(object sender, EventArgs e)
		{

		}

		private void Module_Shutdown(object sender, EventArgs e)
		{

		}

		#region Revit Macros generated code
		private void InternalStartup()
		{
			this.Startup += new System.EventHandler(Module_Startup);
			this.Shutdown += new System.EventHandler(Module_Shutdown);
		}
		#endregion
		public void FinishHim()
		{
            Document doc = this.Document;
            Autodesk.Revit.UI.Selection.SelElementSet eset = this.Selection.Elements;
            
            FilteredElementCollector collector = new FilteredElementCollector(doc);
            ElementCategoryFilter wallCatFilter = new ElementCategoryFilter(BuiltInCategory.OST_Walls);
            ICollection wallCollection = collector.WherePasses(wallCatFilter).WhereElementIsNotElementType().ToElements();            
            
            int count = 0;
            bool useness = false;
            
            foreach(Element e in eset)
            {
            	Autodesk.Revit.DB.Architecture.Room room = e as Autodesk.Revit.DB.Architecture.Room;
            	if (room == null) continue;
            	count++;
            	
            	Parameter roomNumberParam = room.get_Parameter(BuiltInParameter.ROOM_NUMBER);
                string roomNumber = roomNumberParam.AsString();
                
            	Parameter roomFinishParam = room.get_Parameter(BuiltInParameter.ROOM_FINISH_WALL);
                string roomFinishing = roomFinishParam.AsString();                
                
            	
            	foreach(Wall w in wallCollection)
            	{

            		Parameter p2 = w.get_Parameter("Номер помещения");
            		if (p2 == null)
            		{
            			MessageBox.Show("У стен нет параметра 'Номер помещения', что-то тут не так...");
            			return;
            		}     
            		
            		if (string.Compare(roomNumber, p2.AsString()) != 0) continue;

            		Parameter p1 = w.get_Parameter("Отделка стен");
            		if (p1 == null)
            		{
            			MessageBox.Show("У стен нет параметра 'Отделка стен', необходимо добавить его вручную");
            			return;
            		}       

            		p1.Set(roomFinishing);
            		useness = true;
            	}
            }
			
            if (count == 0) 
            {
            	MessageBox.Show("Предварительно выберите одно или несколько помещений");
            	return;
            }	

            if (useness) MessageBox.Show("Выполнено");
		}
	}
}
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 125
Ответ принят Pending Moderation
0
Голосов
Отменить
На Revit 2015 выдает error " Error in read ParamDatabase" :(
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 126
Ответ принят Pending Moderation
0
Голосов
Отменить
Nikolaywrote: На Revit 2015 выдает error " Error in read ParamDatabase" :(
После каких действий?
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 127
Ответ принят Pending Moderation
0
Голосов
Отменить
Здравствуйте! При работе с макросом выскочила ошибка см. картинки, если сложно, то я выкручусь с Revit 2015. По поводу отделки для тестового проекта мной модифицированного - работает. Для скаченного образца - выдает ошибку см. .., может дело в том, что у стены нет данных "Отделка стен" и происходит ошибка? Можно ведомость отделки расширить, добавить панели и пол. Добавить выбор 2-х типов ведомости отделки: - Ведомость отделки с сортировкой по этажам, для больших зданий. - Ведомость отделки для каждого помещения (без группировки), для маленьких зданий. Спасибо.
Вложения
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 128
Ответ принят Pending Moderation
0
Голосов
Отменить
Здравствуйте! При работе с макросом выскочила ошибка см. картинки, если сложно, то я выкручусь с Revit 2015. По поводу отделки для тестового проекта мной модифицированного - работает. Для скаченного образца - выдает ошибку см. .., может дело в том, что у стены нет данных "Отделка стен" и происходит ошибка? Можно ведомость отделки расширить, добавить панели и пол. Добавить выбор 2-х типов ведомости отделки: - Ведомость отделки с сортировкой по этажам, для больших зданий. - Ведомость отделки для каждого помещения (без группировки), для маленьких зданий. Спасибо. P.S. Хотел образцы ведомостей отделки послать в Excel - не приняли.
Вложения
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 129
Ответ принят Pending Moderation
0
Голосов
Отменить
Это у вас ошибка среды разработки (глюк), попробуйте перезагрузится. Я когда-то с таким сталкивался, но уже не помню как решил. Пол, панели - это уже не Гостовская ведомость, тут уже лучше использовать ревитовские спецификации. >> - Ведомость отделки с сортировкой по этажам, для больших зданий. Это можно сделать. >> - Ведомость отделки для каждого помещения (без группировки), для маленьких зданий. Это уже есть.
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 130
Ответ принят Pending Moderation
0
Голосов
Отменить
YarUnderoakerwrote:
После каких действий? Например после добавления помещения в плане (в Тестовый проект) ,нажимаю на ''определить деталь отделки'' . Наверно я что то не правельно сделал . Можете описать порядок действий , смотрел видео на youtube но там старая версия? спасибо
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 131
Ответ принят Pending Moderation
0
Голосов
Отменить
Я так проверяю: расставляю перегородки внутри существующего помещения создаю новое помещение разделяю новые перегородки на детали запускаю определение деталей отделки получаю сообщение "Готово" проверяю, что деталям присваивается номер и имя помещения Видео актуальности не утратило, просто с того времени добавлены пару новых функции.
Комментарий
Никаких комментариев пока не создано.
  1. больше, чем месяц назад
  2. Архитектурные решения
  3. # 132


На это сообщение еще не было ни одного ответа.
Однако, Вы не можете отвечать на это сообщение.

REVITCITY.RU

Социальная сетка ревитчиков это 10 000 проектировщиков, работающих в REVIT. Архитекторы, конструкторы, инженеры. Стадионы, промышленные объекты, школы, и объекты благоустройства. От завода до многоквартирных домов. От дизайна интерьеров до индивидуальной застройки.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Пакет спонсора, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Revitcity.ru сообщество проектировщиков работающих в revit.

Техподдержка: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.