xBIM 05 3D墙案例
发布时间:2020-12-14 04:45:38 所属栏目:大数据 来源:网络整理
导读:使用编码的形式去生成一堵墙的模型需要做很多的工作。 1 using System; 2 using System.Collections.Generic; 3 using System.Diagnostics; 4 using System.Linq; 5 using Xbim.Common; 6 using Xbim.Common.Step21; 7 using Xbim.Ifc; 8 using Xbim.IO; 9 u
使用编码的形式去生成一堵墙的模型需要做很多的工作。 1 using System; 2 using System.Collections.Generic; 3 using System.Diagnostics; 4 using System.Linq; 5 using Xbim.Common; 6 using Xbim.Common.Step21; 7 using Xbim.Ifc; 8 using Xbim.IO; 9 using Xbim.Ifc4.ActorResource; 10 using Xbim.Ifc4.DateTimeResource; 11 using Xbim.Ifc4.ExternalReferenceResource; 12 using Xbim.Ifc4.PresentationOrganizationResource; 13 using Xbim.Ifc4.GeometricConstraintResource; 14 using Xbim.Ifc4.GeometricModelResource; 15 using Xbim.Ifc4.GeometryResource; 16 using Xbim.Ifc4.Interfaces; 17 using Xbim.Ifc4.Kernel; 18 using Xbim.Ifc4.MaterialResource; 19 using Xbim.Ifc4.MeasureResource; 20 using Xbim.Ifc4.ProductExtension; 21 using Xbim.Ifc4.ProfileResource; 22 using Xbim.Ifc4.PropertyResource; 23 using Xbim.Ifc4.QuantityResource; 24 using Xbim.Ifc4.RepresentationResource; 25 using Xbim.Ifc4.SharedBldgElements; 26 27 28 namespace HelloWall 29 { 30 class Program 31 { 32 /// <summary> 33 /// 此示例演示了创建包含单个标准事例墙的符合IFC模型的最小步骤。 34 /// </summary> 35 static int Main() 36 { 37 // 首先创建并初始化一个名为hello wall的模型 38 Console.WriteLine("Initialising the IFC Project 初始化 IFc 项目...."); 39 using (var model = CreateandInitModel("HelloWall")) 40 { 41 if (model != null) 42 { 43 IfcBuilding building = CreateBuilding(model,"Default Building 默认建筑"); 44 IfcBuildingStorey storey = CreateStorey(building); 45 IfcWallStandardCase wall = CreateWall(model,4000,300,2400); 46 47 if(wall != null) 48 { 49 AddPropertiesToWall(model,wall); 50 } 51 using (var txn = model.BeginTransaction("Add Wall 添加墙")) 52 { 53 building.AddToSpatialDecomposition(storey); 54 storey.AddElement(wall); 55 txn.Commit(); 56 } 57 58 if (wall != null) 59 { 60 try 61 { 62 Console.WriteLine("Standard Wall successfully created...."); 63 64 model.SaveAs("HelloWallIfc4.ifc",StorageType.Ifc); // 保存到文件中 65 66 Console.WriteLine("HelloWallIfc4.ifc has been successfully written"); 67 } 68 catch (Exception e) 69 { 70 Console.WriteLine("Failed to save HelloWall.ifc"); 71 Console.WriteLine(e.Message); 72 } 73 } 74 } 75 else 76 { 77 Console.WriteLine("Failed to initialise the model"); 78 } 79 } 80 Console.WriteLine("Press any key to exit to view the IFC file...."); 81 Console.ReadKey(); 82 LaunchNotepad("HelloWallIfc4.ifc"); 83 return 0; 84 } 85 86 private static IfcBuildingStorey CreateStorey(IfcBuilding building) 87 { 88 var model = building.Model; 89 IfcBuildingStorey storey; 90 using (var txn = model.BeginTransaction("Storey creation")) 91 { 92 storey = model.Instances.New<IfcBuildingStorey>(s => 93 { 94 s.Name = "Default storey"; 95 s.Elevation = 0.0; 96 }); 97 txn.Commit(); 98 } 99 return storey; 100 } 101 102 /// <summary> 103 /// 在记事本中打开指定的文件 104 /// </summary> 105 /// <param name="fileName"></param> 106 private static void LaunchNotepad(string fileName) 107 { 108 try 109 { 110 var p = new Process { StartInfo = { FileName = fileName,CreateNoWindow = false } }; 111 p.Start(); 112 } 113 catch (Exception ex) 114 { 115 Console.WriteLine("Exception Occurred :{0},{1}",ex.Message,ex.StackTrace); 116 } 117 } 118 119 /// <summary> 120 /// 创建建筑对象 121 /// </summary> 122 /// <param name="model"></param> 123 /// <param name="name">建筑名称</param> 124 /// <returns></returns> 125 private static IfcBuilding CreateBuilding(IfcStore model,string name) 126 { 127 using (var txn = model.BeginTransaction("Create Building 创建建筑对象")) 128 { 129 var building = model.Instances.New<IfcBuilding>(); 130 building.Name = name; 131 building.CompositionType = IfcElementCompositionEnum.ELEMENT; // 组成类型 132 133 var localPlacement = model.Instances.New<IfcLocalPlacement>(); 134 building.ObjectPlacement = localPlacement; 135 136 var placement = model.Instances.New<IfcAxis2Placement3D>(); 137 localPlacement.RelativePlacement = placement; 138 placement.Location = model.Instances.New<IfcCartesianPoint>(p => p.SetXYZ(0,0,0)); 139 140 // 获取第一个或者默认的项目 141 var project = model.Instances.OfType<IfcProject>().FirstOrDefault(); 142 if(project != null) 143 { 144 project.AddBuilding(building); 145 } 146 147 txn.Commit(); 148 149 return building; 150 } 151 } 152 153 /// <summary> 154 /// 设置任何模型必须提供的基本参数、单位、所有权等 155 /// </summary> 156 /// <param name="projectName">项目名称</param> 157 /// <returns></returns> 158 private static IfcStore CreateandInitModel(string projectName) 159 { 160 // 首先,我们需要为新模型中的数据所有权设置一些凭证 161 var credentials = new XbimEditorCredentials 162 { 163 ApplicationDevelopersName = "xBimTeam",164 ApplicationFullName = "Hello Wall Application",165 ApplicationIdentifier = "HelloWall.exe",166 ApplicationVersion = "1.0",167 EditorsFamilyName = "Team",168 EditorsGivenName = "xBIM",169 EditorsOrganisationName = "xBimTeam" 170 }; 171 172 // 现在我们可以创建一个ifcstore,它是ifc4格式的,将保存在内存中而不是数据库中。 173 // 如果模型的容量大于50MB,或者需要健壮的事务,那么数据库在性能方面通常更好。 174 175 var model = IfcStore.Create(credentials,XbimSchemaVersion.Ifc4,XbimStoreType.InMemoryModel); 176 177 // 开始事务,因为对模型的所有更改都是ACID 178 using (var txn = model.BeginTransaction("Initialise Model 初始化模型")) 179 { 180 var project = model.Instances.New<IfcProject>(); // 创建一个项目 181 project.Initialize(ProjectUnits.SIUnitsUK); // 将单位设置为si(mm和米) 182 project.Name = projectName; 183 184 txn.Commit(); // 现在提交更改,否则它们将在using语句的范围结束时回滚。 185 } 186 187 return model; 188 } 189 190 /// <summary> 191 /// 创建一个墙和它的几何图形,许多几何图形表示是可能的,并选择挤压矩形示意图,因为这通常用于标准情况下的墙。 192 /// </summary> 193 /// <param name="model"></param> 194 /// <param name="length">矩形足迹的长度</param> 195 /// <param name="width">矩形足迹的宽度(墙的宽度)</param> 196 /// <param name="height">挤出墙的高度,挤出是垂直的</param> 197 /// <returns></returns> 198 static private IfcWallStandardCase CreateWall(IfcStore model,double length,double width,double height) 199 { 200 using (var txn = model.BeginTransaction("Create Wall 创建墙")) 201 { 202 var wall = model.Instances.New<IfcWallStandardCase>(); //IfcWallStandardCase:IFC墙标准案例 203 wall.Name = "A Standard rectangular wall 标准矩形墙"; 204 205 // 将墙表示为矩形轮廓,墙的矩形剖面 206 var rectProf = model.Instances.New<IfcRectangleProfileDef>(); //IfcRectangleProfileDef:IFC矩形轮廓定义 207 rectProf.ProfileType = IfcProfileTypeEnum.AREA; 208 rectProf.XDim = width; 209 rectProf.YDim = length; 210 211 var insertPoint = model.Instances.New<IfcCartesianPoint>(); //IfcCartesianPoint:IFc 笛卡尔点 212 insertPoint.SetXY(0,400); //在任意位置插入 213 rectProf.Position = model.Instances.New<IfcAxis2Placement2D>(); 214 rectProf.Position.Location = insertPoint; 215 216 // 模型区域实心 217 var body = model.Instances.New<IfcExtrudedAreaSolid>(); //IfcExtrudedAreaSolid:IFC拉伸区域实体 218 body.Depth = height; 219 body.SweptArea = rectProf; 220 body.ExtrudedDirection = model.Instances.New<IfcDirection>();//IfcDirection:IFC方向 221 body.ExtrudedDirection.SetXYZ(0,1); 222 223 // 在模型中插入几何参数 224 var origin = model.Instances.New<IfcCartesianPoint>(); //IfcCartesianPoint:IFc 笛卡尔点 225 origin.SetXYZ(0,0); 226 body.Position = model.Instances.New<IfcAxis2Placement3D>(); 227 body.Position.Location = origin; 228 229 // 创建定义形状以保存几何图形 230 var shape = model.Instances.New<IfcShapeRepresentation>();//IfcShapeRepresentation:IFC形状表示 231 var modelContext = model.Instances.OfType<IfcGeometricRepresentationContext>().FirstOrDefault(); //IfcGeometricRepresentationContext:IFC几何表示上下文 232 shape.ContextOfItems = modelContext; 233 shape.RepresentationType = "SweptSolid"; 234 shape.RepresentationIdentifier = "Body"; 235 shape.Items.Add(body); 236 237 // 创建产品定义并将模型几何图形添加到墙中 238 var rep = model.Instances.New<IfcProductDefinitionShape>(); //IfcProductDefinitionShape:IFC产品定义形状 239 rep.Representations.Add(shape); 240 wall.Representation = rep; 241 242 // 现在将墙放置到模型中 243 var lp = model.Instances.New<IfcLocalPlacement>(); 244 var ax3D = model.Instances.New<IfcAxis2Placement3D>(); 245 ax3D.Location = origin; 246 ax3D.RefDirection = model.Instances.New<IfcDirection>(); 247 ax3D.RefDirection.SetXYZ(0,1,0); 248 ax3D.Axis = model.Instances.New<IfcDirection>(); 249 ax3D.Axis.SetXYZ(0,1); 250 lp.RelativePlacement = ax3D; 251 wall.ObjectPlacement = lp; 252 253 // Where Clause: ifcwallstandardard 依赖于 ifcmmateriallayersetusage 的规定。 254 var ifcMaterialLayerSetUsage = model.Instances.New<IfcMaterialLayerSetUsage>(); 255 var ifcMaterialLayerSet = model.Instances.New<IfcMaterialLayerSet>(); 256 var ifcMaterialLayer = model.Instances.New<IfcMaterialLayer>(); 257 ifcMaterialLayer.LayerThickness = 10; 258 ifcMaterialLayerSet.MaterialLayers.Add(ifcMaterialLayer); 259 ifcMaterialLayerSetUsage.ForLayerSet = ifcMaterialLayerSet; 260 ifcMaterialLayerSetUsage.LayerSetDirection = IfcLayerSetDirectionEnum.AXIS2; 261 ifcMaterialLayerSetUsage.DirectionSense = IfcDirectionSenseEnum.NEGATIVE; 262 ifcMaterialLayerSetUsage.OffsetFromReferenceLine = 150; 263 264 // 将材料添加到墙商 265 var material = model.Instances.New<IfcMaterial>(); 266 material.Name = "some material"; 267 var ifcRelAssociatesMaterial = model.Instances.New<IfcRelAssociatesMaterial>(); 268 ifcRelAssociatesMaterial.RelatingMaterial = material; 269 ifcRelAssociatesMaterial.RelatedObjects.Add(wall); 270 271 ifcRelAssociatesMaterial.RelatingMaterial = ifcMaterialLayerSetUsage; 272 273 // ifcPresentationLayerAssignment 对于 ifcwall 或 ifcwallstandardcase 中的 CAD 演示是必须的 274 var ifcPresentationLayerAssignment = model.Instances.New<IfcPresentationLayerAssignment>(); 275 ifcPresentationLayerAssignment.Name = "some ifcPresentationLayerAssignment"; 276 ifcPresentationLayerAssignment.AssignedItems.Add(shape); 277 278 279 // 如果 IfcPolyline 具有两个点,则对于 IfcWall 是必需的 280 var ifcPolyline = model.Instances.New<IfcPolyline>(); 281 var startPoint = model.Instances.New<IfcCartesianPoint>(); 282 startPoint.SetXY(0,0); 283 var endPoint = model.Instances.New<IfcCartesianPoint>(); 284 endPoint.SetXY(4000,0); 285 ifcPolyline.Points.Add(startPoint); 286 ifcPolyline.Points.Add(endPoint); 287 288 var shape2D = model.Instances.New<IfcShapeRepresentation>(); 289 shape2D.ContextOfItems = modelContext; 290 shape2D.RepresentationIdentifier = "Axis"; 291 shape2D.RepresentationType = "Curve2D"; 292 shape2D.Items.Add(ifcPolyline); 293 rep.Representations.Add(shape2D); 294 txn.Commit(); 295 296 return wall; 297 } 298 } 299 300 /// <summary> 301 /// 向墙添加一些属性,302 /// </summary> 303 /// <param name="model">XbimModel</param> 304 /// <param name="wall"></param> 305 static private void AddPropertiesToWall(IfcStore model,IfcWallStandardCase wall) 306 { 307 using (var txn = model.BeginTransaction("Create Wall")) 308 { 309 CreateElementQuantity(model,wall); 310 CreateSimpleProperty(model,wall); 311 txn.Commit(); 312 } 313 } 314 315 private static void CreateSimpleProperty(IfcStore model,IfcWallStandardCase wall) 316 { 317 var ifcPropertySingleValue = model.Instances.New<IfcPropertySingleValue>(psv => 318 { 319 psv.Name = "IfcPropertySingleValue:Time"; 320 psv.Description = ""; 321 psv.NominalValue = new IfcTimeMeasure(150.0); 322 psv.Unit = model.Instances.New<IfcSIUnit>(siu => 323 { 324 siu.UnitType = IfcUnitEnum.TIMEUNIT; 325 siu.Name = IfcSIUnitName.SECOND; 326 }); 327 }); 328 var ifcPropertyEnumeratedValue = model.Instances.New<IfcPropertyEnumeratedValue>(pev => 329 { 330 pev.Name = "IfcPropertyEnumeratedValue:Music"; 331 pev.EnumerationReference = model.Instances.New<IfcPropertyEnumeration>(pe => 332 { 333 pe.Name = "Notes"; 334 pe.EnumerationValues.Add(new IfcLabel("Do")); 335 pe.EnumerationValues.Add(new IfcLabel("Re")); 336 pe.EnumerationValues.Add(new IfcLabel("Mi")); 337 pe.EnumerationValues.Add(new IfcLabel("Fa")); 338 pe.EnumerationValues.Add(new IfcLabel("So")); 339 pe.EnumerationValues.Add(new IfcLabel("La")); 340 pe.EnumerationValues.Add(new IfcLabel("Ti")); 341 }); 342 pev.EnumerationValues.Add(new IfcLabel("Do")); 343 pev.EnumerationValues.Add(new IfcLabel("Re")); 344 pev.EnumerationValues.Add(new IfcLabel("Mi")); 345 346 }); 347 var ifcPropertyBoundedValue = model.Instances.New<IfcPropertyBoundedValue>(pbv => 348 { 349 pbv.Name = "IfcPropertyBoundedValue:Mass"; 350 pbv.Description = ""; 351 pbv.UpperBoundValue = new IfcMassMeasure(5000.0); 352 pbv.LowerBoundValue = new IfcMassMeasure(1000.0); 353 pbv.Unit = model.Instances.New<IfcSIUnit>(siu => 354 { 355 siu.UnitType = IfcUnitEnum.MASSUNIT; 356 siu.Name = IfcSIUnitName.GRAM; 357 siu.Prefix = IfcSIPrefix.KILO; 358 }); 359 }); 360 361 var definingValues = new List<IfcReal> { new IfcReal(100.0),new IfcReal(200.0),new IfcReal(400.0), 生成的IFC文件可以在您选择的查看器中打开: ISO-10303-21; HEADER; FILE_DESCRIPTION ((‘‘),‘2;1‘); FILE_NAME (‘‘,‘2016-10-31T10:18:08‘,(‘‘),‘Xbim File Processor version 4.0.0.0‘,‘Xbim version 4.0.0.0‘,‘‘); FILE_SCHEMA ((‘IFC4‘)); ENDSEC; DATA; #1=IFCPROJECT(‘2MSHGQD897wuyjYHKVxtyf‘,#2,‘HelloWall‘,$,(#20,#23),#8); #2=IFCOWNERHISTORY(#5,#6,.ADDED.,0); #3=IFCPERSON($,‘Team‘,‘xBIM‘,$); #4=IFCORGANIZATION($,‘xBimTeam‘,$); #5=IFCPERSONANDORGANIZATION(#3,#4,$); #7=IFCORGANIZATION($,$); #6=IFCAPPLICATION(#7,‘1.0‘,‘Hello Wall Application‘,‘HelloWall.exe‘); #8=IFCUNITASSIGNMENT((#9,#10,#11,#12,#13,#14,#15,#16,#17)); #9=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); #10=IFCSIUNIT(*,.AREAUNIT.,.SQUARE_METRE.); #11=IFCSIUNIT(*,.VOLUMEUNIT.,.CUBIC_METRE.); #12=IFCSIUNIT(*,.SOLIDANGLEUNIT.,.STERADIAN.); #13=IFCSIUNIT(*,.PLANEANGLEUNIT.,.RADIAN.); #14=IFCSIUNIT(*,.MASSUNIT.,.GRAM.); #15=IFCSIUNIT(*,.TIMEUNIT.,.SECOND.); #16=IFCSIUNIT(*,.THERMODYNAMICTEMPERATUREUNIT.,.DEGREE_CELSIUS.); #17=IFCSIUNIT(*,.LUMINOUSINTENSITYUNIT.,.LUMEN.); #18=IFCCARTESIANPOINT((0.,0.,0.)); #19=IFCAXIS2PLACEMENT3D(#18,$); #20=IFCGEOMETRICREPRESENTATIONCONTEXT(‘Building Model‘,‘Model‘,3,1.E-05,#19,$); #21=IFCCARTESIANPOINT((0.,0.)); #22=IFCAXIS2PLACEMENT2D(#21,$); #23=IFCGEOMETRICREPRESENTATIONCONTEXT(‘Building Plan View‘,‘Plan‘,2,#22,$); #24=IFCBUILDING(‘0jQ$yvAIv6URCwLuvWnAo0‘,‘Default Building‘,#25,.ELEMENT.,$); #25=IFCLOCALPLACEMENT($,#26); #26=IFCAXIS2PLACEMENT3D(#27,$); #27=IFCCARTESIANPOINT((0.,0.)); #28=IFCRELAGGREGATES(‘3Qs6TKkPjASQ1ctGzUSQ7F‘,#1,(#24)); #29=IFCWALLSTANDARDCASE(‘3NBPkknun6EuV9fpeE6rFh‘,‘A Standard rectangular wall‘,#39,#38,$); #30=IFCRECTANGLEPROFILEDEF(.AREA.,#32,300.,4000.); #31=IFCCARTESIANPOINT((0.,400.)); #32=IFCAXIS2PLACEMENT2D(#31,$); #33=IFCEXTRUDEDAREASOLID(#30,#36,#34,2400.); #34=IFCDIRECTION((0.,1.)); #35=IFCCARTESIANPOINT((0.,0.)); #36=IFCAXIS2PLACEMENT3D(#35,$); #37=IFCSHAPEREPRESENTATION(#20,‘Body‘,‘SweptSolid‘,(#33)); #38=IFCPRODUCTDEFINITIONSHAPE($,(#37,#52)); #39=IFCLOCALPLACEMENT($,#40); #40=IFCAXIS2PLACEMENT3D(#35,#42,#41); #41=IFCDIRECTION((0.,1.,0.)); #42=IFCDIRECTION((0.,1.)); #43=IFCMATERIALLAYERSETUSAGE(#44,.AXIS2.,.NEGATIVE.,150.,$); #44=IFCMATERIALLAYERSET((#45),$); #45=IFCMATERIALLAYER($,10.,$); #46=IFCMATERIAL(‘some material‘,$); #47=IFCRELASSOCIATESMATERIAL(‘0is_vsqtn9ouErH3XVg3O8‘,(#29),#43); #48=IFCPRESENTATIONLAYERASSIGNMENT(‘some ifcPresentationLayerAssignment‘,(#37),$); #49=IFCPOLYLINE((#50,#51)); #50=IFCCARTESIANPOINT((0.,0.)); #51=IFCCARTESIANPOINT((4000.,0.)); #52=IFCSHAPEREPRESENTATION(#20,‘Axis‘,‘Curve2D‘,(#49)); #54=IFCSIUNIT(*,.METRE.); #53=IFCQUANTITYLENGTH(‘IfcQuantityArea:Area‘,‘‘,#54,100.,$); #56=IFCDIMENSIONALEXPONENTS(1,0); #55=IFCCONTEXTDEPENDENTUNIT(#56,‘Elephants‘); #57=IFCQUANTITYCOUNT(‘IfcQuantityCount:Elephant‘,#55,12.,$); #60=IFCSIUNIT(*,.METRE.); #59=IFCMEASUREWITHUNIT(IFCRATIOMEASURE(25.4),#60); #61=IFCDIMENSIONALEXPONENTS(1,0); #58=IFCCONVERSIONBASEDUNIT(#61,‘Inch‘,#59); #62=IFCQUANTITYLENGTH(‘IfcQuantityLength:Length‘,#58,24.,$); #63=IFCELEMENTQUANTITY(‘2NzDD6BkfDFAUH5zVe3vf0‘,‘Test:IfcElementQuantity‘,‘Measurement quantity‘,(#53,#57,#62)); #64=IFCRELDEFINESBYPROPERTIES(‘2rxEDLnp59XvLpgGjoNnBQ‘,‘Area Association‘,‘IfcElementQuantity associated to wall‘,#63); #66=IFCSIUNIT(*,.SECOND.); #65=IFCPROPERTYSINGLEVALUE(‘IfcPropertySingleValue:Time‘,IFCTIMEMEASURE(150.),#66); #68=IFCPROPERTYENUMERATION(‘Notes‘,(IFCLABEL(‘Do‘),IFCLABEL(‘Re‘),IFCLABEL(‘Mi‘),IFCLABEL(‘Fa‘),IFCLABEL(‘So‘),IFCLABEL(‘La‘),IFCLABEL(‘Ti‘)),$); #67=IFCPROPERTYENUMERATEDVALUE(‘IfcPropertyEnumeratedValue:Music‘,IFCLABEL(‘Mi‘)),#68); #70=IFCSIUNIT(*,.KILO.,.GRAM.); #69=IFCPROPERTYBOUNDEDVALUE(‘IfcPropertyBoundedValue:Mass‘,IFCMASSMEASURE(5000.),IFCMASSMEASURE(1000.),#70,$); #73=IFCDIMENSIONALEXPONENTS(0,0); #72=IFCCONTEXTDEPENDENTUNIT(#73,.FREQUENCYUNIT.,‘dB‘); #71=IFCPROPERTYTABLEVALUE(‘IfcPropertyTableValue:Sound‘,(IFCREAL(100.),IFCREAL(200.),IFCREAL(400.),IFCREAL(800.),IFCREAL(1600.),IFCREAL(3200.)),(IFCREAL(20.),IFCREAL(42.),IFCREAL(46.),IFCREAL(56.),IFCREAL(60.),IFCREAL(65.)),#72,$); #74=IFCPROPERTYLISTVALUE(‘IfcPropertyListValue:Colours‘,(IFCLABEL(‘Red‘),IFCLABEL(‘Green‘),IFCLABEL(‘Blue‘),IFCLABEL(‘Pink‘),IFCLABEL(‘White‘),IFCLABEL(‘Black‘)),$); #75=IFCMATERIAL(‘Brick‘,$); #76=IFCPROPERTYREFERENCEVALUE(‘IfcPropertyReferenceValue:Material‘,#75); #78=IFCMATERIAL(‘Cavity‘,$); #79=IFCMATERIAL(‘Block‘,$); #77=IFCMATERIALLIST((#75,#78,#79)); #80=IFCMATERIALLAYER(#75,$); #81=IFCPROPERTYREFERENCEVALUE(‘IfcPropertyReferenceValue:MaterialLayer‘,#80); #82=IFCDOCUMENTREFERENCE(‘c://Documents//TheDoc.Txt‘,‘Document‘,$); #83=IFCPROPERTYREFERENCEVALUE(‘IfcPropertyReferenceValue:Document‘,#82); #84=IFCREGULARTIMESERIES(‘Regular Time Series‘,‘Time series of events‘,‘2015-02-14T12:01:01‘,‘2015-05-15T12:01:01‘,.CONTINUOUS.,.MEASURED.,604800.,()); #85=IFCPROPERTYREFERENCEVALUE(‘IfcPropertyReferenceValue:TimeSeries‘,#84); #86=IFCPOSTALADDRESS($,‘Room 101‘,(‘12 New road‘,‘DoxField‘),‘Sunderland‘,‘DL01 6SX‘,$); #87=IFCPROPERTYREFERENCEVALUE(‘IfcPropertyReferenceValue:Address‘,#86); #88=IFCTELECOMADDRESS($,(‘01325 6589965‘),(‘[email?protected]‘),$); #89=IFCPROPERTYREFERENCEVALUE(‘IfcPropertyReferenceValue:Telecom‘,#88); #90=IFCPROPERTYSET(‘2qJSTdQSj0wQKmIdFVroG2‘,‘Test:IfcPropertySet‘,‘Property Set‘,(#65,#67,#69,#71,#74,#76,#81,#83,#85,#87,#89)); #91=IFCRELDEFINESBYPROPERTIES(‘3n83nuxoj0gA5F$UnucPP3‘,‘Property Association‘,‘IfcPropertySet associated to wall‘,#90); #92=IFCRELCONTAINEDINSPATIALSTRUCTURE(‘1mefbELBn5JQeF1AH4vA0$‘,#24); ENDSEC; END-ISO-10303-21; ? 2019-05-31 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |