Доступ к IfcGUID импортированной стены
Вопрос: У меня есть стена, которая в IFC файле задана с идентификатором ‘3lDzp1LFjDqwXDAihsyNrA’ и выглядит примерно так:
- #615 = IFCWALLSTANDARDCASE( '3lDzp1LFjDqwXDAihsyNrA',
- #42, '\X2\6A196E9658C1\X0\:(P)PC200:1185289', $,
- '\X2\6A196E9658C1\X0\:(P)PC200:794115',
- #587, #613, '1185289' );
Как можно получить IFC GUID '3lDzp1LFjDqwXDAihsyNrA' для этой стены в модели Revit?
Я вижу, что в интерфейсе он отображается как значение свойства IfcGuid:
Ответ: Эти данные хранятся как обычный параметр соответствующего элемента.
Доступ к нему можно получить с помощью метода Element.LookupParameter или Element.GetParameters, например:
- IList<Parameter> ps = elem.GetParameters( "IfcGUID" );
- // или
- Parameter pGuid = elem.LookupParameter( "IfcGUID" );
- string ifc_guid = pGuid.AsString();
Первый вариант предпочтительней, так как он гарантирует, что вы корректно обрабатываете случай, если у элемента есть несколько параметров с одинаковым именем.
Но, лучше использовать другой метод, который абсолютно не зависит от локализации Revit. Нужно использовать встроенный параметр.
В данном случае, это IFC_GUID:
- Parameter pGuid = e.get_Parameter( BuiltInParameter.IFC_GUID );
- string ifc_guid = pGuid.AsString();
Обсуждение: http://adn-cis.org/forum/index.php?topic=2942
Опубликовано 25.08.2015