Skip to content

Commit ea6a4b2

Browse files
committed
Adapt components description from BCF API
1 parent 2925760 commit ea6a4b2

File tree

1 file changed

+57
-79
lines changed

1 file changed

+57
-79
lines changed

Documentation/README.md

+57-79
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ IfcGuid
1818
Globally Unique ID in the IFC format. This format is used only when referring to components in IFC files.
1919

2020

21-
| | |
21+
| | |
2222
| ------------- |:-------------|
2323
| BCF | BIM Collaboration Format |
2424
| BCF file | File in BIM Collaboration Format |
@@ -57,18 +57,18 @@ The project file contains reference information about the project the topics bel
5757

5858

5959

60-
Attribute | Optional | Description |
60+
Attribute | Optional | Description |
6161
:-----------|:------------|:------------:
6262
ProjectId | Yes | ProjectId of the project
63-
63+
6464
In addition it has the following nodes:
6565

6666

67-
Element | Optional | Description |
67+
Element | Optional | Description |
6868
:-----------|:------------|:------------
6969
Name | Yes | Name of the project.
7070
ExtensionSchema| No | URI to the extension schema.
71-
71+
7272

7373

7474
## Markup (.bcf) file
@@ -80,15 +80,15 @@ Header node contains information about the IFC files relevant to this topic. It
8080
Each File node has the following attributes:
8181

8282

83-
Attribute | Optional | Description |
83+
Attribute | Optional | Description |
8484
:-----------|:------------|:------------
8585
IfcProject | Yes | IfcGuid Reference to the project to which this topic is related in the IFC file
8686
IfcSpatialStructureElement | Yes | IfcGuid Reference to the spatial structure element, e.g. IfcBuildingStorey, to which this topic is related.
8787
isExternal | Yes | Is the IFC file external or within the bcfzip. (Default = true).
8888

8989
In addition File has the following nodes:
9090

91-
Attribute | Optional | Description |
91+
Attribute | Optional | Description |
9292
:-----------|:------------|:------------
9393
Filename | Yes | The BIM file related to this topic.
9494
Date | Yes | Date of the BIM file.
@@ -98,7 +98,7 @@ Reference | Yes | URI to IfcFile. <br> IsExternal=false “..\example.ifc“ (wi
9898
Topic node contains reference information of the topic. It has one attribute, Guid, which is the topic GUID.
9999

100100

101-
Attribute | Optional | Description |
101+
Attribute | Optional | Description |
102102
:-----------|:------------|:------------
103103
Guid | No | Guid of the topic
104104
TopicType | Yes | Type of the topic (Predefined list in “extension.xsd”)
@@ -107,7 +107,7 @@ TopicStatus | Yes | Type of the topic (Predefined list in “extension.xsd”)
107107
In addition it has the following nodes:
108108

109109

110-
Element | Optional | Description |
110+
Element | Optional | Description |
111111
:-----------|:------------|:------------
112112
ReferenceLink | Yes | List of references to the topic, for example, a work request management system or an URI to a model.
113113
Title | No | Title of the topic.
@@ -126,12 +126,12 @@ Stage | Yes | Stage this topic is part of (Predefined list in “extension.xsd
126126
### BimSnippet (optional)
127127
BimSnippet is an additional file containing information related to one or multiple topics. For example, it can be an IFC file containing provisions for voids.
128128

129-
Attribute | Optional | Description |
129+
Attribute | Optional | Description |
130130
:-----------|:------------|:------------
131131
SnippetType | No | Type of the Snippet (Predefined list in “extension.xsd”)
132132
IsExternal | Yes | Is the BimSnippet external or within the bcfzip. <br> (Default = false).
133-
134-
Element | Optional | Description |
133+
134+
Element | Optional | Description |
135135
:-----------|:------------|:------------
136136
Reference | No | URI to BimSnippet. <br> IsExternal=false “..\snippetExample.ifc“ (within bcfzip) <br> IsExternal=true “https://.../snippetExample.ifc“
137137
ReferenceSchema | Yes | URI to BimSnippetSchema (always external)
@@ -140,12 +140,12 @@ ReferenceSchema | Yes | URI to BimSnippetSchema (always external)
140140
### DocumentReference (optional)
141141
DocumentReference provides a means to associate additional payloads or links with topics. The references may point to a file within the .bcfzip or to an external location.
142142

143-
Attribute | Optional | Description |
143+
Attribute | Optional | Description |
144144
:-----------|:------------|:------------
145145
Guid | Yes | Guid attribute for identifying it uniquely
146146
IsExternal | Yes | Is the Document external or within the bcfzip. <br> (Default = false).
147147

148-
Element | Optional | Description |
148+
Element | Optional | Description |
149149
:-----------|:------------|:------------
150150
ReferencedDocument | Yes | URI to document. <br> IsExternal=false “..\exampleDoc.docx“ (within bcfzip) <br> IsExternal=true “https://.../ exampleDoc.docx“
151151
Description | Yes | Description of the document
@@ -154,15 +154,15 @@ Description | Yes | Description of the document
154154
### RelatedTopic (optional)
155155
Relation between topics (Clash -> PfV -> Opening)
156156

157-
Attribute | Optional | Description |
157+
Attribute | Optional | Description |
158158
:-----------|:------------|:------------
159159
RelatedTopic/GUID | Yes | List of GUIDs of the referenced topics.
160160

161161

162162
### Comment
163163
The markup file can contain comments related to the topic. Their purpose is to record discussion between different parties related to the topic. Comment has also the Guid attribute for identifying it uniquely. In addition, it has the following nodes:
164164

165-
Element | Optional | Description |
165+
Element | Optional | Description |
166166
:-----------|:------------|:------------
167167
Date | No | Date of the comment
168168
Author |No | Comment author
@@ -174,7 +174,7 @@ ModifiedDate | Yes | The date when comment was modified
174174
### Viewpoints
175175
The markup file can contain multiple viewpoints related to one or more comments. A viewpoint has also the Guid attribute for identifying it uniquely. In addition, it has the following nodes:
176176

177-
Element | Optional | Description |
177+
Element | Optional | Description |
178178
:-----------|:------------|:------------
179179
Viewpoint | Yes | Filename of the viewpoint (.bcfv)
180180
Snapshot | Yes | Filename of the snapshot(.png)
@@ -186,93 +186,71 @@ Viewpoints are immutable, therefore they should never be changed once created. I
186186
The visualization information file contains information of components related to the topic, camera settings, and possible markup and clipping information.
187187

188188
### Components
189-
A component set has the following attributes:
190-
191-
Attribute | Description |
192-
:-----------|:------------
193-
DefaultVisibilityComponents | Default visibility of physical components. That means components that are not of type IfcSpace, IfcSpaceBoundary or IfcOpening.
194-
DefaultVisibilitySpaces | Default visibility of components with type IfcSpace.
195-
DefaultVisibilitySpaceBoundaries | Default visibility of components with type IfcSpaceBoundary.
196-
DefaultVisibilityOpenings | Default visibility of components with type IfcOpening.
197189

198190
The components node contains a set of Component references. The numeric values in this file are all given in fixed units (meters for length and degrees for angle). Unit conversion is not required, since the values are not relevant to the user. The components node has also the DefaultVisibility attribute which indicates true or false for all components of the viewpoint.
199191

200-
A component has the following attributes:
201-
202-
Attribute | Optional | Description |
203-
:-----------|:------------|:------------
204-
IfcGuid | Yes | Select the component in a BIM tool
205-
Selected | Yes | This flag is true if the component is actually involved in the topic. If the flag is false, the component is involved as reference.
206-
Visible | Yes | This flag is true when the component is visible in the visualization. By setting this false, you can hide components that would prevent seeing the topic from the camera position and angle of the viewpoint.
207-
Color | Yes | Color of the component. This can be used to provide special highlighting of components in the viewpoint. The color is given in ARGB format. Colors are represented as 6 or 8 hexadecimal digits. If 8 digits are present, the first two represent the alpha (transparency) channel. For example, `40E0D0` would be the color <span style="color:#40E0D0;";>Turquoise</span>. [More information about the color format can be found on Wikipedia.](https://en.wikipedia.org/wiki/RGBA_color_space)
208-
209-
210-
In addition, it has the following information:
211-
212-
Element | Optional | Description |
213-
:-----------|:------------|:------------
214-
OriginatingSystem | Yes | Name of the system in which the component is originated
215-
AuthoringToolId | Yes | System specific identifier of the component in the originating BIM tool
192+
The `Components` element contains the following properties.
193+
* `ViewSetupHints` to describe the visualization settings that were used in the application creating the viewpoint
194+
* `Selection` to list components of interest
195+
* `Visibility` to describe default visibility and exceptions
196+
* `Coloring` to convey coloring options for displaying components
216197

217-
#### Exporting Components in Viewpoint
198+
#### ViewSetupHints
199+
This element contains information about the default visibility for elements of certain types (`SpacesVisible`, `SpaceBoundariesVisible` and `OpeningsVisible`) that should be applied if not stated otherwise.
218200

219-
There can be lots of component references in a viewpoint. Therefore, these references must be kept to a minimum. The following rules are developed to export the components in compact and unambiguous way.
201+
#### Selection
202+
The `Selection` element lists all components that should be either highlighted or selected when displaying a viewpoint.
220203

221-
The components in viewpoints are exported according to the following rules:
222-
Divide all components to the following sets: **Openings**, **Spaces**, **SpaceBoundaries**, and **Components**.
204+
**Optimization Rules**
223205

224-
- **Components** are physical building components, such as walls and doors.
206+
BCF is suitable for selecting a few components. A huge list of selected components causes poor performance. All clients should follow this rule:
225207

226-
- **Spaces** are the rooms in the building.
208+
* If the size of the selected components is huge (approximately 1000 components), alert the user and give him the opportunity to modify the visibility.
227209

228-
- **Openings** are the virtual elements modeling voids in components.
210+
#### Visibility
211+
The `Visibility` element states the components `DefaultVisibility` and lists all `Exceptions` that apply to specific components.
229212

230-
- **SpaceBoundaries** are the virtual elements between spaces and building components, such as, walls and doors.
213+
**Optimization Rules**
231214

232-
For each set of sets above, divide them further to the following subsets:
215+
BCF is suitable for hiding/showing a few components. A huge list of hidden/shown components causes poor performance. All clients should follow these rules:
233216

234-
**V**: Visible components
235-
**I**: Invisible components
236-
**S**: Selected or colored components, subset of V
217+
* If the list of hidden components is smaller than the list of visible components: set default_visibility to true and put the hidden components in exceptions.
218+
* If the list of visible components is smaller or equals the list of hidden components: set default_visibility to false and put the visible components in exceptions.
219+
* If the size of exceptions is huge (approximately 1000 components), alert the user and give him the opportunity to modify the visibility.
237220

238-
Apply the following rules for **Components**, **Spaces**, **Openings**, **SpaceBoundaries**
221+
#### Coloring
222+
The `Coloring` element lists colors and a list of associated components that should be displayed with the specified color when displaying a viewpoint. The color is given in ARGB format. Colors are represented as 6 or 8 hexadecimal digits. If 8 digits are present, the first two represent the alpha (transparency) channel. For example, `40E0D0` would be the color <span style="color:#40E0D0;";>Turquoise</span>. [More information about the color format can be found on Wikipedia.](https://en.wikipedia.org/wiki/RGBA_color_space)
239223

240-
Example components
224+
**Optimization Rules**
241225

242-
1. If **I** is empty and **S** equals **V**
226+
BCF is suitable for coloring on a few components. A huge list of components causes poor performance. All clients should follow this rule:
243227

244-
a) Export **S** with DefaultVisibilityComponents=true
228+
* If the size of colored components is huge (approximately 1000 components), alert the user and give him the opportunity to modify the coloring.
245229

246-
b) Set visible=true for all components in **S**
230+
#### Component
247231

248-
2. If **V** is smaller than **I**
249-
250-
a) Export **V** with DefaultVisibilityComponents=false
251-
252-
b) Set visible=true for all components in **V**
253-
254-
3. Else
255-
256-
a) Export **I** and **S** with DefaultVisibilityComponents=true
257-
258-
b) Set visible=true for all components in **S**
232+
A component has the following attributes:
259233

260-
c) Set visible=false for all components in **I**
234+
Attribute | Optional | Description |
235+
:-----------|:------------|:------------
236+
IfcGuid | No | The IfcGuid of the component
237+
OriginatingSystem | Yes | Name of the system in which the component is originated
238+
AuthoringToolId | Yes | System specific identifier of the component in the originating BIM tool
261239

262240
### OrthogonalCamera (optional)
263241
This element describes a viewpoint using orthogonal camera. It has the following elements:
264242

265-
Element | Optional | Description |
243+
Element | Optional | Description |
266244
:-----------|:------------|:------------
267245
CameraViewPoint | No | Camera location
268246
CameraDirection | No | Camera direction
269247
CameraUpVector | No | Camera up vector
270248
ViewToWorldScale | No | Scaling from view to world
271249

272250
### PerspectiveCamera (optional)
273-
This element describes a viewpoint using perspective camera. It has the following
251+
This element describes a viewpoint using perspective camera. It has the following elements:
274252

275-
Element | Optional | Description |
253+
Element | Optional | Description |
276254
:-----------|:------------|:------------
277255
CameraViewPoint | No | Camera location
278256
CameraDirection | No | Camera direction
@@ -289,15 +267,15 @@ ClippingPlanes can be used to define a subsection of a building model that is re
289267
A list of bitmaps can be used to add more information, for example, text in the visualization. It has the following elements:
290268

291269

292-
Element | Optional | Description |
270+
Element | Optional | Description |
293271
:-----------|:------------|:------------
294272
Bitmap | No | Format of the bitmap (PNG/JPG)
295273
Reference | No | Name of the bitmap file in the topic folder
296274
Location | No | Location of the center of the bitmap in world coordinates
297275
Normal | No | Normal vector of the bitmap
298276
Up | No | Up vector of the bitmap
299277

300-
## Implementation Agreements
278+
## Implementation Agreements
301279
Since BCF 2.0 is compatible with version 1.0, there are some ambiguities in the implementation. The following agreements are written to clarify the implementation.
302280

303281
### One to Many Mapping between Viewpoints and Comments
@@ -377,14 +355,14 @@ Archive: incorrect_file_without_directory_entries.bcfzip
377355
**Example output**
378356
```
379357
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
380-
358+
381359
Listing archive: E:\BIM\bcf files\bulkExport_1topic.bcfzip
382-
360+
383361
--
384-
Path = #### Path to the bcfzip file
362+
Path = #### Path to the bcfzip file
385363
Type = zip
386364
Physical Size = 183599
387-
365+
388366
Date Time Attr Size Compressed Name
389367
------------------- ----- ------------ ------------ ------------------------
390368
2015-02-18 09:12:40 ..... 217 161 bcf.version

0 commit comments

Comments
 (0)