{"version":3,"sources":["components/api-authorization/ApiAuthorizationConstants.js","components/api-authorization/AuthorizeService.js","components/api-authorization/LoginMenu.js","components/NavMenu.js","components/Layout.js","components/Home.js","components/FetchData.js","components/FileUploader.js","components/IfcElementsTable/EcoinventDropdown.js","components/IfcElementsTable/EcoinventTableViewer.js","components/IfcElementsTable/EcoinventModal.js","components/IfcElementsTable/IfcElementsTableViewer.js","components/EcoinventListViewer.js","components/Counter.js","components/api-authorization/AuthorizeRoute.js","components/api-authorization/Login.js","components/api-authorization/Logout.js","components/api-authorization/ApiAuthorizationRoutes.js","App.js","index.js"],"names":["QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","this","getUser","user","profile","ensureUserManagerInitialized","userManager","access_token","state","signinSilent","createArguments","silentUser","updateState","success","console","log","Error","signinPopup","popUpUser","message","error","signinRedirect","redirect","url","signinCallback","signoutPopup","undefined","signoutRedirect","signoutCallback","response","data","notifySubscribers","callback","push","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","status","AuthenticationResultStatus","Fail","Success","Redirect","fetch","ok","json","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","removeUser","Component","NavMenu","props","toggleNavbar","bind","collapsed","setState","Navbar","className","light","Container","NavbarBrand","tag","Link","to","NavbarToggler","onClick","Collapse","isOpen","navbar","displayName","name","Layout","children","Home","href","FetchData","forecasts","loading","populateWeatherData","contents","renderForecastsTable","id","getAccessToken","token","headers","aria-labelledby","forecast","key","date","temperatureC","temperatureF","summary","FileUploader","uploading","uploaded","uploadError","file","onFormSubmit","onChange","fileUpload","e","preventDefault","target","files","formData","FormData","append","method","body","then","res","resJson","onDataLoaded","fileTitle","noValidate","onSubmit","type","htmlFor","React","forwardRef","ref","style","labeledBy","useState","value","setValue","FormControl","autoFocus","placeholder","Children","toArray","child","toLowerCase","startsWith","defaultPropGetter","Table","columns","getHeaderProps","getColumnProps","getRowProps","getCellProps","useTable","useRowState","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","bordered","hover","striped","size","headerGroup","getHeaderGroupProps","column","render","row","cells","cell","loadEcoinventData","EcoinventTableViewer","onSelect","ecoinventData","setEcoinventData","selectedId","setSelectedId","searchValue","setSearchValue","result","activities","useEffect","loadEcoinvent","tableData","elm","includes","useMemo","Header","accessor","background","original","cellInfo","EcoinventModal","show","onHide","Modal","centered","closeButton","Title","Body","Footer","Button","variant","IndeterminateCheckbox","indeterminate","rest","defaultRef","useRef","resolvedRef","current","setSelectedRows","useExpanded","useRowSelect","selectedFlatRows","IfcElementsTableViewer","showPicker","setShowPicker","getToggleAllRowsSelectedProps","Cell","getToggleRowSelectedProps","canExpand","getToggleRowExpandedProps","paddingLeft","depth","isExpanded","material","parseFloat","toFixed","sort","a","b","forEach","mgroup","subRows","elements","title","TransformData","isSelected","alert","MaterialSelected","Counter","ifcData","onIfcDataLoaded","table","AuthorizeRoute","ready","authenticated","_subscription","subscribe","authenticationChanged","populateAuthenticationState","unsubscribe","link","document","createElement","path","returnUrl","protocol","host","pathname","search","hash","redirectUrl","encodeURI","component","isAuthenticated","action","login","getReturnUrl","processLoginCallback","URLSearchParams","window","location","get","redirectToProfile","redirectToRegister","signIn","navigateToReturnUrl","completeSignIn","fromQuery","origin","redirectToApiAuthorizationPath","apiAuthorizationPath","replace","Logout","isReady","history","local","logout","processLogoutCallback","signOut","completeSignOut","ApiAuthorizationRoutes","loginAction","logoutAction","App","exact","baseUrl","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","basename"],"mappings":"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","file":"static/js/main.eb621923.chunk.js","sourcesContent":["export const ApplicationName = 'Envi4BIM';\n\nexport const QueryParameterNames = {\n ReturnUrl: 'returnUrl',\n Message: 'message'\n};\n\nexport const LogoutActions = {\n LogoutCallback: 'logout-callback',\n Logout: 'logout',\n LoggedOut: 'logged-out'\n};\n\nexport const LoginActions = {\n Login: 'login',\n LoginCallback: 'login-callback',\n LoginFailed: 'login-failed',\n Profile: 'profile',\n Register: 'register'\n};\n\nconst prefix = '/authentication';\n\nexport const ApplicationPaths = {\n DefaultLoginRedirectPath: '/',\n ApiAuthorizationClientConfigurationUrl: `/_configuration/${ApplicationName}`,\n ApiAuthorizationPrefix: prefix,\n Login: `${prefix}/${LoginActions.Login}`,\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\n Register: `${prefix}/${LoginActions.Register}`,\n Profile: `${prefix}/${LoginActions.Profile}`,\n LogOut: `${prefix}/${LogoutActions.Logout}`,\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\n IdentityRegisterPath: '/Identity/Account/Register',\n IdentityManagePath: '/Identity/Account/Manage'\n};\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\n\nexport class AuthorizeService {\n _callbacks = [];\n _nextSubscriptionId = 0;\n _user = null;\n _isAuthenticated = false;\n\n // By default pop ups are disabled because they don't work properly on Edge.\n // If you want to enable pop up authentication simply set this flag to false.\n _popUpDisabled = true;\n\n async isAuthenticated() {\n const user = await this.getUser();\n return !!user;\n }\n\n async getUser() {\n if (this._user && this._user.profile) {\n return this._user.profile;\n }\n\n await this.ensureUserManagerInitialized();\n const user = await this.userManager.getUser();\n return user && user.profile;\n }\n\n async getAccessToken() {\n await this.ensureUserManagerInitialized();\n const user = await this.userManager.getUser();\n return user && user.access_token;\n }\n\n // We try to authenticate the user in three different ways:\n // 1) We try to see if we can authenticate the user silently. This happens\n // when the user is already logged in on the IdP and is done using a hidden iframe\n // on the client.\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\n // Pop-Up blocker or the user has disabled PopUps.\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\n // redirect flow.\n async signIn(state) {\n await this.ensureUserManagerInitialized();\n try {\n const silentUser = await this.userManager.signinSilent(this.createArguments());\n this.updateState(silentUser);\n return this.success(state);\n } catch (silentError) {\n // User might not be authenticated, fallback to popup authentication\n console.log(\"Silent authentication error: \", silentError);\n\n try {\n if (this._popUpDisabled) {\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\n }\n\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\n this.updateState(popUpUser);\n return this.success(state);\n } catch (popUpError) {\n if (popUpError.message === \"Popup window closed\") {\n // The user explicitly cancelled the login action by closing an opened popup.\n return this.error(\"The user closed the window.\");\n } else if (!this._popUpDisabled) {\n console.log(\"Popup authentication error: \", popUpError);\n }\n\n // PopUps might be blocked by the user, fallback to redirect\n try {\n await this.userManager.signinRedirect(this.createArguments(state));\n return this.redirect();\n } catch (redirectError) {\n console.log(\"Redirect authentication error: \", redirectError);\n return this.error(redirectError);\n }\n }\n }\n }\n\n async completeSignIn(url) {\n try {\n await this.ensureUserManagerInitialized();\n const user = await this.userManager.signinCallback(url);\n this.updateState(user);\n return this.success(user && user.state);\n } catch (error) {\n console.log('There was an error signing in: ', error);\n return this.error('There was an error signing in.');\n }\n }\n\n // We try to sign out the user in two different ways:\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\n // Pop-Up blocker or the user has disabled PopUps.\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\n // post logout redirect flow.\n async signOut(state) {\n await this.ensureUserManagerInitialized();\n try {\n if (this._popUpDisabled) {\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\n }\n\n await this.userManager.signoutPopup(this.createArguments());\n this.updateState(undefined);\n return this.success(state);\n } catch (popupSignOutError) {\n console.log(\"Popup signout error: \", popupSignOutError);\n try {\n await this.userManager.signoutRedirect(this.createArguments(state));\n return this.redirect();\n } catch (redirectSignOutError) {\n console.log(\"Redirect signout error: \", redirectSignOutError);\n return this.error(redirectSignOutError);\n }\n }\n }\n\n async completeSignOut(url) {\n await this.ensureUserManagerInitialized();\n try {\n const response = await this.userManager.signoutCallback(url);\n this.updateState(null);\n return this.success(response && response.data);\n } catch (error) {\n console.log(`There was an error trying to log out '${error}'.`);\n return this.error(error);\n }\n }\n\n updateState(user) {\n this._user = user;\n this._isAuthenticated = !!this._user;\n this.notifySubscribers();\n }\n\n subscribe(callback) {\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\n return this._nextSubscriptionId - 1;\n }\n\n unsubscribe(subscriptionId) {\n const subscriptionIndex = this._callbacks\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\n .filter(element => element.found === true);\n if (subscriptionIndex.length !== 1) {\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\n }\n\n this._callbacks.splice(subscriptionIndex[0].index, 1);\n }\n\n notifySubscribers() {\n for (let i = 0; i < this._callbacks.length; i++) {\n const callback = this._callbacks[i].callback;\n callback();\n }\n }\n\n createArguments(state) {\n return { useReplaceToNavigate: true, data: state };\n }\n\n error(message) {\n return { status: AuthenticationResultStatus.Fail, message };\n }\n\n success(state) {\n return { status: AuthenticationResultStatus.Success, state };\n }\n\n redirect() {\n return { status: AuthenticationResultStatus.Redirect };\n }\n\n async ensureUserManagerInitialized() {\n if (this.userManager !== undefined) {\n return;\n }\n\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\n if (!response.ok) {\n throw new Error(`Could not load settings for '${ApplicationName}'`);\n }\n\n let settings = await response.json();\n settings.automaticSilentRenew = true;\n settings.includeIdTokenInSilentRenew = true;\n settings.userStore = new WebStorageStateStore({\n prefix: ApplicationName\n });\n\n this.userManager = new UserManager(settings);\n\n this.userManager.events.addUserSignedOut(async () => {\n await this.userManager.removeUser();\n this.updateState(undefined);\n });\n }\n\n static get instance() { return authService }\n}\n\nconst authService = new AuthorizeService();\n\nexport default authService;\n\nexport const AuthenticationResultStatus = {\n Redirect: 'redirect',\n Success: 'success',\n Fail: 'fail'\n};\n","import React, { Component, Fragment } from 'react';\nimport { NavItem, NavLink } from 'reactstrap';\nimport { Link } from 'react-router-dom';\nimport authService from './AuthorizeService';\nimport { ApplicationPaths } from './ApiAuthorizationConstants';\n\nexport class LoginMenu extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n isAuthenticated: false,\n userName: null\n };\n }\n\n componentDidMount() {\n this._subscription = authService.subscribe(() => this.populateState());\n this.populateState();\n }\n\n componentWillUnmount() {\n authService.unsubscribe(this._subscription);\n }\n\n async populateState() {\n const [isAuthenticated, user] = await Promise.all([authService.isAuthenticated(), authService.getUser()])\n this.setState({\n isAuthenticated,\n userName: user && user.name\n });\n }\n\n render() {\n const { isAuthenticated, userName } = this.state;\n if (!isAuthenticated) {\n const registerPath = `${ApplicationPaths.Register}`;\n const loginPath = `${ApplicationPaths.Login}`;\n return this.anonymousView(registerPath, loginPath);\n } else {\n const profilePath = `${ApplicationPaths.Profile}`;\n const logoutPath = { pathname: `${ApplicationPaths.LogOut}`, state: { local: true } };\n return this.authenticatedView(userName, profilePath, logoutPath);\n }\n }\n\n authenticatedView(userName, profilePath, logoutPath) {\n return (\n \n Hello {userName}\n \n \n Logout\n \n );\n\n }\n\n anonymousView(registerPath, loginPath) {\n return (\n \n Registrace\n \n \n Přihlášení\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\nimport { Link } from 'react-router-dom';\nimport { LoginMenu } from './api-authorization/LoginMenu';\nimport './NavMenu.css';\n\nexport class NavMenu extends Component {\n static displayName = NavMenu.name;\n\n constructor (props) {\n super(props);\n\n this.toggleNavbar = this.toggleNavbar.bind(this);\n this.state = {\n collapsed: true\n };\n }\n\n toggleNavbar () {\n this.setState({\n collapsed: !this.state.collapsed\n });\n }\n\n render () {\n return (\n
\n \n \n Envi4BIM\n \n \n
    \n {/**/}\n {/* Převod IFC do CSV*/}\n {/**/}\n {/**/}\n {/**/}\n
\n
\n
\n
\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport { Container } from 'reactstrap';\nimport { NavMenu } from './NavMenu';\n\nexport class Layout extends Component {\n static displayName = Layout.name;\n\n render () {\n return (\n
\n \n \n {this.props.children}\n \n
\n );\n }\n}\n","import React, { Component } from 'react';\n\nexport class Home extends Component {\n static displayName = Home.name;\n\n render () {\n return (\n
\n

Hello, world!

\n

Welcome to your new single-page application, built with:

\n \n

To help you get started, we have also set up:

\n \n

The ClientApp subdirectory is a standard React application based on the create-react-app template. If you open a command prompt in that directory, you can run npm commands such as npm test or npm install.

\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport authService from './api-authorization/AuthorizeService'\n\nexport class FetchData extends Component {\n static displayName = FetchData.name;\n\n constructor(props) {\n super(props);\n this.state = { forecasts: [], loading: true };\n }\n\n componentDidMount() {\n this.populateWeatherData();\n }\n\n static renderForecastsTable(forecasts) {\n return (\n \n \n \n \n \n \n \n \n \n \n {forecasts.map(forecast =>\n \n \n \n \n \n \n )}\n \n
DateTemp. (C)Temp. (F)Summary
{forecast.date}{forecast.temperatureC}{forecast.temperatureF}{forecast.summary}
\n );\n }\n\n render() {\n let contents = this.state.loading\n ?

Loading...

\n : FetchData.renderForecastsTable(this.state.forecasts);\n\n return (\n
\n

Weather forecast

\n

This component demonstrates fetching data from the server.

\n {contents}\n
\n );\n }\n\n async populateWeatherData() {\n const token = await authService.getAccessToken();\n const response = await fetch('weatherforecast', {\n headers: !token ? {} : { 'Authorization': `Bearer ${token}` }\n });\n const data = await response.json();\n this.setState({ forecasts: data, loading: false });\n }\n}\n","import React from 'react'\nimport authService from './api-authorization/AuthorizeService'\n\nexport class FileUploader extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n uploading: false,\n uploaded: false,\n uploadError: false,\n file: null\n }\n this.onFormSubmit = this.onFormSubmit.bind(this)\n this.onChange = this.onChange.bind(this)\n this.fileUpload = this.fileUpload.bind(this)\n }\n\n onFormSubmit(e) {\n e.preventDefault(); // Stop form submit\n this.fileUpload(this.state.file);\n }\n\n onChange(e) {\n console.log(e);\n if (e.target.files.length > 0) {\n this.setState({ file: e.target.files[0] });\n } else {\n this.setState({ file: null });\n }\n }\n\n fileUpload(file) {\n this.setState({ uploading: true });\n\n const formData = new FormData();\n formData.append(\"formFile\", file);\n\n //var target = 'ifc/fileupload';\n var target = 'ifc/parse/elements/json';\n\n fetch(target, {\n method: 'POST',\n // headers: !token ? {} : { 'Authorization': `Bearer ${token}` },\n body: formData\n })\n .then(res => {\n this.setState({ uploading: false, uploaded: true });\n console.log(res);\n return res.json();\n })\n .then(resJson => {\n //this.props.onDataLoaded(resJson.slice(1, 10));\n this.props.onDataLoaded(resJson);\n });\n }\n\n render() {\n var fileTitle = 'Vyberte IFC soubor';\n if (this.state.file)\n fileTitle = this.state.file.name;\n\n var state = null;\n //if (this.state.uploading)\n // state =
Loading...
;\n //else if (this.state.uploaded)\n // state = ;\n\n return (\n
\n
\n
\n
\n \n \n
\n
\n
\n\n \n { state }\n\n
\n )\n }\n}\n","import React, { useEffect, useState } from \"react\";\nimport Dropdown from 'react-bootstrap/Dropdown'\nimport FormControl from 'react-bootstrap/FormControl'\n\n\n// The forwardRef is important!!\n// Dropdown needs access to the DOM node in order to position the Menu\nconst CustomToggle = React.forwardRef(({ children, onClick }, ref) => (\n {\n e.preventDefault();\n onClick(e);\n }}\n >\n {children}\n {/* ▼ */}\n \n));\n\n// forwardRef again here!\n// Dropdown needs access to the DOM of the Menu to measure it\nconst CustomMenu = React.forwardRef(\n ({ children, style, className, 'aria-labelledby': labeledBy }, ref) => {\n const [value, setValue] = useState('');\n\n return (\n \n setValue(e.target.value)}\n value={value}\n />\n
    \n {React.Children.toArray(children).filter(\n (child) =>\n !value || child.props.children.toLowerCase().startsWith(value),\n )}\n
\n \n );\n },\n);\n\n\nexport function EcoinventDropdown({ data, noDataId }) {\n const [value, setValue] = useState(noDataId);\n\n let items;\n let strValue;\n if (data) {\n items = data.map((object, i) => {object.name})\n let elm = data.find((elm) => elm.id == value);\n if (elm) {\n strValue = elm.name;\n } else {\n strValue = '(neznámí hodnota)';\n }\n }\n\n return (\n setValue(eventKey)}>\n \n {strValue}\n \n\n \n {items}\n \n \n )\n}\n","import React, { useEffect, useState } from \"react\";\nimport { useTable, useExpanded, useRowSelect, useRowState } from 'react-table'\nimport FormControl from 'react-bootstrap/FormControl'\nimport BTable from 'react-bootstrap/Table';\nimport BButton from 'react-bootstrap/Button';\nimport { EcoinventDropdown } from './EcoinventDropdown';\nimport { EcoinventModal } from './EcoinventModal';\n\n\nconst maximumRows = 20;\nconst defaultPropGetter = () => ({})\n\nfunction Table({ columns, data, getHeaderProps = defaultPropGetter, getColumnProps = defaultPropGetter, getRowProps = defaultPropGetter, getCellProps = defaultPropGetter }) {\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow\n } = useTable({\n columns,\n data,\n },\n //useExpanded,\n //useRowSelect,\n useRowState,\n );\n\n return (\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n {column.render('Header')}\n \n ))}\n \n ))}\n \n \n {rows.map((row, i) => {\n prepareRow(row)\n return (\n // Merge user row props in\n \n {row.cells.map(cell => {\n return (\n \n {cell.render('Cell')}\n \n )\n })}\n \n )\n })}\n \n \n )\n}\n\nfunction loadEcoinventData() {\n var target = 'ecoinvent/activities';\n return fetch(target, {\n method: 'GET'\n })\n .then(res => {\n return res.json();\n })\n .then(resJson => {\n return resJson;\n });\n}\n\n\nexport function EcoinventTableViewer({ onSelect }) {\n const [ecoinventData, setEcoinventData] = useState([]);\n const [selectedId, setSelectedId] = useState(null);\n const [searchValue, setSearchValue] = useState('concrete production');\n\n\n async function loadEcoinvent() {\n const result = await loadEcoinventData();\n //const result = {\n // \"activities\": [{ \"name\": \"market group for waste polyethylene terephthalate\", \"id\": \"e429c8b9-0eb3-4b9c-b211-43f853428319\" }, { \"name\": \"aircraft production, dedicated freight aircraft, short haul\", \"id\": \"967db386-968e-402e-a38f-1ffe7452cb5c\" }]\n //};\n setEcoinventData(result.activities);\n }\n useEffect(() => {\n loadEcoinvent();\n }, []);\n\n\n let filtered = ecoinventData.filter((elm) => !searchValue || elm.name.toLowerCase().includes(searchValue.toLowerCase()));\n\n //let filterendLength = filtered.length;\n //if (filterendLength > maximumRows) {\n // filtered = filtered.slice(0, maximumRows - 1);\n // filtered.push({ name: '(není zobrazeno dalších ' + (filterendLength - (maximumRows - 1)) +' řádků)'})\n //}\n\n const tableData = filtered;\n\n const columns = React.useMemo(() => [\n {\n Header: 'Materiál',\n accessor: 'name',\n },\n ]);\n\n return (\n
\n setSearchValue(e.target.value)}\n value={searchValue}\n />\n\n ({\n //onClick: () => alert('Header!'),\n })}\n getColumnProps={column => ({\n //onClick: () => alert('Column!'),\n })}\n getRowProps={row => ({\n //style: {\n // background: row.canExpand ? 'rgba(0,0,0,.05)' : 'white',\n //},\n style: {\n background: selectedId == row.original.id ? '#17a2b840' : '',\n },\n //className: !row.canExpand ? 'table-active' : '',\n\n onClick: () => {\n setSelectedId(row.original.id);\n onSelect(row.original.id);\n }\n })}\n getCellProps={cellInfo => ({\n //style: {\n // backgroundColor: `hsl(${120 * ((120 - cellInfo.value) / 120) * -1 +\n // 120}, 100%, 67%)`,\n //},\n })} />\n
\n )\n}\n","import React, { useEffect, useState } from \"react\";\nimport Modal from 'react-bootstrap/Modal'\nimport Button from 'react-bootstrap/Button'\nimport FormControl from 'react-bootstrap/FormControl'\nimport { EcoinventTableViewer } from \"./EcoinventTableViewer\";\n\n\nexport function EcoinventModal({ show, onHide, onSelect }) {\n const [selectedId, setSelectedId] = useState(null);\n\n return (\n \n \n \n Vyberte materiál\n \n \n \n setSelectedId(id)}/>\n \n \n \n \n \n \n );\n}","import React, { useEffect, useState } from \"react\";\nimport { useTable, useExpanded, useRowSelect, selectedFlatRows } from 'react-table'\nimport BTable from 'react-bootstrap/Table';\nimport BButton from 'react-bootstrap/Button';\nimport { EcoinventDropdown } from './EcoinventDropdown';\nimport { EcoinventModal } from './EcoinventModal';\n\n\nconst IndeterminateCheckbox = React.forwardRef(\n ({ indeterminate, ...rest }, ref) => {\n const defaultRef = React.useRef()\n const resolvedRef = ref || defaultRef\n\n React.useEffect(() => {\n resolvedRef.current.indeterminate = indeterminate\n }, [resolvedRef, indeterminate])\n\n return (\n <>\n \n \n )\n }\n)\n\nconst defaultPropGetter = () => ({})\n\nfunction Table({\n columns,\n data,\n setSelectedRows,\n getHeaderProps = defaultPropGetter,\n getColumnProps = defaultPropGetter,\n getRowProps = defaultPropGetter,\n getCellProps = defaultPropGetter,\n }) {\n // Use the state and functions returned from useTable to build your UI\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n selectedFlatRows\n } = useTable({\n columns,\n data,\n },\n useExpanded,\n useRowSelect,\n );\n\n useEffect(() => {\n const selected = selectedFlatRows.map((row) => row.original);\n //setSelectedRows(selected);\n }, [selectedFlatRows]);\n\n // Render the UI for your table\n return (\n \n \n {headerGroups.map(headerGroup => (\n \n {headerGroup.headers.map(column => (\n \n {column.render('Header')}\n \n ))}\n \n ))}\n \n \n {rows.map((row, i) => {\n prepareRow(row)\n return (\n // Merge user row props in\n \n {row.cells.map(cell => {\n return (\n \n {cell.render('Cell')}\n \n )\n })}\n \n )\n })}\n \n \n )\n}\n\nfunction TransformData(data) {\n data = data.sort((a, b) => a.material < b.material ? -1 : 1);\n\n data.forEach((mgroup) => {\n if (!mgroup.material)\n mgroup.material = '(nedefinovaný materiál)';\n\n //mgroup.quantities = mgroup.quantities % 10;\n\n mgroup.subRows = mgroup.elements;\n\n mgroup.subRows.forEach((elm) => {\n elm.title = elm.type + ': ' + elm.name;\n\n //elm.quantities = elm.quantities % 10;\n })\n })\n\n return data;\n}\n\nfunction loadEcoinventData() {\n var target = 'ecoinvent/activities';\n return fetch(target, {\n method: 'GET'\n })\n .then(res => {\n return res.json();\n })\n .then(resJson => {\n return resJson;\n });\n}\n\nfunction MaterialSelected(id) {\n alert('selected: ' + id);\n}\n\nexport function IfcElementsTableViewer({ data }) {\n const [selectedRows, setSelectedRows] = useState([]);\n const [showPicker, setShowPicker] = useState(false);\n\n\n const columns = React.useMemo(\n () => [\n {\n id: 'selection',\n Header: ({ getToggleAllRowsSelectedProps }) => (\n
\n \n
\n ),\n Cell: ({ row }) => (\n
\n \n
\n ),\n },\n {\n Header: 'IFC Element',\n Cell: ({ row }) =>\n row.canExpand ? (\n \n {row.isExpanded ? : }\n {row.original.material}\n \n ) : (\n \n {row.original.name}\n \n ),\n },\n {\n Header: 'Objem [m3]',\n accessor: 'quantities',\n Cell: props => {props.value ? parseFloat(props.value).toFixed(3) : ''}\n },\n {\n id: 'ecoinvent',\n Header: 'Ecoinvent',\n\n accessor: 'eco_material'\n\n //Cell: ({ row }) => (\n //\n //)\n }\n ]);\n\n const tableData = TransformData(data)\n\n return (\n
\n ({\n //onClick: () => alert('Header!'),\n })}\n getColumnProps={column => ({\n //onClick: () => alert('Column!'),\n })}\n getRowProps={row => ({\n //style: {\n // background: row.canExpand ? 'rgba(0,0,0,.05)' : 'white',\n //},\n style: {\n background: row.isSelected ? '#17a2b820' : (row.canExpand ? 'rgba(0,0,0,.05)' : 'white'),\n },\n //className: !row.canExpand ? 'table-active' : '',\n })}\n getCellProps={cellInfo => ({\n //style: {\n // backgroundColor: `hsl(${120 * ((120 - cellInfo.value) / 120) * -1 +\n // 120}, 100%, 67%)`,\n //},\n })} />\n\n setShowPicker(true)}>Nastavit materiál\n\n setShowPicker(false)} onSelect={(id) => { setShowPicker(false); MaterialSelected(id) }} />\n
\n )\n}\n","import React from 'react'\n\n\nexport class EcoinventListViewer extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n loading: true,\n data: null\n };\n }\n\n componentDidMount() {\n this.loadEcoinventData();\n }\n\n loadEcoinventData() {\n var target = 'ecoinvent/activities';\n fetch(target, {\n method: 'GET'\n })\n .then(res => {\n return res.json();\n })\n .then(resJson => {\n this.setState({ loading: false, data: resJson });\n });\n }\n\n render() {\n if (this.state.loading) {\n return
Loading data...
;\n } else {\n var data = this.state.data.activities;\n var list = data.map((row) =>\n
  • \n {row.name}\n
  • \n );\n return (\n
      \n {list}\n
    \n );\n }\n }\n}\n","import React, { Component } from 'react';\nimport { FileUploader } from './FileUploader';\nimport { IfcElementsTableViewer } from './IfcElementsTable/IfcElementsTableViewer';\nimport { EcoinventListViewer } from './EcoinventListViewer';\nimport BButton from 'react-bootstrap/Button';\nimport { EcoinventDropdown } from './IfcElementsTable/EcoinventDropdown';\nimport { EcoinventModal } from './IfcElementsTable/EcoinventModal';\n\n\nexport class Counter extends Component {\n static displayName = Counter.name;\n\n constructor(props) {\n super(props);\n\n this.state = {\n ifcData: null,\n };\n\n this.onIfcDataLoaded = this.onIfcDataLoaded.bind(this);\n }\n\n onIfcDataLoaded(data) {\n this.setState({ ifcData: data });\n }\n\n render() {\n const tableData = this.state.ifcData;\n //const tableData = [{ \"material\": \"Beton, C20/25\", \"elements\": [{ \"id\": \"06TmbctQf3OA0qVOJuFeeR\", \"type\": \"IfcSlab\", \"name\": \"Podlaha:_Obecná základová deska 800:565252\", \"materials\": \"Beton, C20/25\", \"quantities\": 632557.653960698 }, { \"id\": \"1lLX7hO8TDcA6LwxYYDbwj\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603130\", \"materials\": \"Beton, C20/25\", \"quantities\": 2087250000 }, { \"id\": \"1lLX7hO8TDcA6LwxkYDbwj\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603130\", \"materials\": \"Beton, C20/25\", \"quantities\": 2041875000.0001 }, { \"id\": \"1lLX7hO8TDcA6LwxgYDbwj\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603130\", \"materials\": \"Beton, C20/25\", \"quantities\": 2041875000 }, { \"id\": \"1lLX7hO8TDcA6LwxYYDbd6\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603281\", \"materials\": \"Beton, C20/25\", \"quantities\": 1366200000 }, { \"id\": \"1lLX7hO8TDcA6LwxkYDbd6\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603281\", \"materials\": \"Beton, C20/25\", \"quantities\": 1336500000.00006 }, { \"id\": \"1lLX7hO8TDcA6LwxgYDbd6\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603281\", \"materials\": \"Beton, C20/25\", \"quantities\": 1336500000 }, { \"id\": \"1lLX7hO8TDcA6LwxYYDbXD\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603418\", \"materials\": \"Beton, C20/25\", \"quantities\": 1973400000 }, { \"id\": \"1lLX7hO8TDcA6LwxkYDbXD\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603418\", \"materials\": \"Beton, C20/25\", \"quantities\": 1930500000.00009 }, { \"id\": \"1lLX7hO8TDcA6LwxgYDbXD\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603418\", \"materials\": \"Beton, C20/25\", \"quantities\": 1930500000 }, { \"id\": \"1lLX7hO8TDcA6LwxYYDbZG\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603527\", \"materials\": \"Beton, C20/25\", \"quantities\": 1252350000 }, { \"id\": \"1lLX7hO8TDcA6LwxkYDbZG\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603527\", \"materials\": \"Beton, C20/25\", \"quantities\": 1225125000.00006 }, { \"id\": \"1lLX7hO8TDcA6LwxgYDbZG\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603527\", \"materials\": \"Beton, C20/25\", \"quantities\": 1225125000 }, { \"id\": \"1lLX7hO8TDcA6LwxYYDbFj\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:605882\", \"materials\": \"Beton, C20/25\", \"quantities\": 6944870393.28891 }, { \"id\": \"1lLX7hO8TDcA6LwxkYDbFj\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:605882\", \"materials\": \"Beton, C20/25\", \"quantities\": 6793894949.95686 }, { \"id\": \"1lLX7hO8TDcA6LwxgYDbFj\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:605882\", \"materials\": \"Beton, C20/25\", \"quantities\": 6793894949.95654 }, { \"id\": \"1lLX7hO8TDcA6LwxYYDbEZ\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:605940\", \"materials\": \"Beton, C20/25\", \"quantities\": 1745700000 }, { \"id\": \"1lLX7hO8TDcA6LwxkYDbEZ\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:605940\", \"materials\": \"Beton, C20/25\", \"quantities\": 1707750000.00008 }, { \"id\": \"1lLX7hO8TDcA6LwxgYDbEZ\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:605940\", \"materials\": \"Beton, C20/25\", \"quantities\": 1707750000 }, { \"id\": \"1lLX7hO8TDcA6LwxYYDYtV\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 250 mm - ztužující jádro 2:606344\", \"materials\": \"Beton, C20/25\", \"quantities\": 8222500000 }, { \"id\": \"1lLX7hO8TDcA6LwxkYDYtV\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 250 mm - ztužující jádro 2:606344\", \"materials\": \"Beton, C20/25\", \"quantities\": 8043750000.00038 }, { \"id\": \"1lLX7hO8TDcA6LwxgYDYtV\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:Betonová stěna 250 mm - ztužující jádro 2:606344\", \"materials\": \"Beton, C20/25\", \"quantities\": 8043750000 }] }, { \"material\": \"Beton, C30/37\", \"elements\": [{ \"id\": \"06TmbctQf3OA0qVOJuFe$o\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566765\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.81656886832412 }, { \"id\": \"06TmbctQf3OA0qVOJuFe$e\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566775\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816796514566815 }, { \"id\": \"06TmbctQf3OA0qVOJuFemV\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566784\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816796514566815 }, { \"id\": \"06TmbctQf3OA0qVOJuFem1\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566814\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816796514566815 }, { \"id\": \"06TmbctQf3OA0qVOJuFemu\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566823\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816568868324119 }, { \"id\": \"06TmbctQf3OA0qVOJuFen$\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566880\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816568868324118 }, { \"id\": \"06TmbctQf3OA0qVOJuFeoH\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566926\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816568868324117 }, { \"id\": \"06TmbctQf3OA0qVOJuFeo8\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566935\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.81653968645599 }, { \"id\": \"06TmbctQf3OA0qVOJuFeo$\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566944\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816767332698692 }, { \"id\": \"06TmbctQf3OA0qVOJuFeos\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566953\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816796514566815 }, { \"id\": \"06TmbctQf3OA0qVOJuFeoj\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566962\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816796514566815 }, { \"id\": \"06TmbctQf3OA0qVOJuFeoa\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566971\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816796514566815 }, { \"id\": \"06TmbctQf3OA0qVOJuFepR\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566980\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816796514566815 }, { \"id\": \"06TmbctQf3OA0qVOJuFepI\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:566989\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.816796514566815 }, { \"id\": \"3eArCZNNPFefi06HHQENmm\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:581323\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQENrN\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:581548\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKB4\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:581695\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEK91\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:581818\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEK1d\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:582300\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEK7W\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:582427\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEK65\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:582526\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEK4M\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:582637\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKQV\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:582756\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKOs\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:582861\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKUz\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:582982\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKHZ\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:583320\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKMJ\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:583528\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKr8\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:585651\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuR$H\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:590129\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRyL\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:590325\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRmW\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:590528\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRs$\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:590687\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRl9\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:591145\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRWs\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:591574\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRdP\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:591673\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRam\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:591824\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRPj\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:592013\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRVC\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:592172\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRSD\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:592365\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRIU\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:592510\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRNH\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:592689\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRKY\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP KRAJNÍ S1 - 500mm:592834\", \"materials\": \"Beton, C30/37\", \"quantities\": 0.795198529806635 }] }, { \"material\": \"\", \"elements\": [{ \"id\": \"1lLX7hO8TDcA6LuwgYDbDR\", \"type\": \"IfcOpeningElement\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603281\", \"materials\": \"\", \"quantities\": 0 }, { \"id\": \"1lLX7hO8TDcA6LuwgYDb1E\", \"type\": \"IfcOpeningElement\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603281\", \"materials\": \"\", \"quantities\": 0 }, { \"id\": \"1lLX7hO8TDcA6LuwgYDb3r\", \"type\": \"IfcOpeningElement\", \"name\": \"Základní stěna:Betonová stěna 150 mm - ztužující jádro:603281\", \"materials\": \"\", \"quantities\": 0 }, { \"id\": \"2Eb6JBloLFqgx6pr8NafJw\", \"type\": \"IfcOpeningElement\", \"name\": \"Podlaha:_Obecná stropní deska 200:600137:2\", \"materials\": \"\", \"quantities\": 0 }, { \"id\": \"2Eb6JBloLFqgx6pr8NafJA\", \"type\": \"IfcOpeningElement\", \"name\": \"Podlaha:_Obecná stropní deska 200:600137:3\", \"materials\": \"\", \"quantities\": 0 }, { \"id\": \"2Eb6JBloLFqgx6pr8NafVo\", \"type\": \"IfcOpeningElement\", \"name\": \"Podlaha:_Obecná stropní deska 200:600948:2\", \"materials\": \"\", \"quantities\": 0 }, { \"id\": \"2Eb6JBloLFqgx6pr8NafMb\", \"type\": \"IfcOpeningElement\", \"name\": \"Podlaha:_Obecná stropní deska 200:600948:3\", \"materials\": \"\", \"quantities\": 0 }] }, { \"material\": \"Beton, C25/30\", \"elements\": [{ \"id\": \"1LLtiRqK9BDAc05owVoi5M\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:567452\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.816796514566815 }, { \"id\": \"1LLtiRqK9BDAc05owVoi5p\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:567481\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.816796514566815 }, { \"id\": \"1LLtiRqK9BDAc05owVoi4Z\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:567529\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.816796514566815 }, { \"id\": \"1LLtiRqK9BDAc05owVoi3o\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:567608\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.816796514566815 }, { \"id\": \"1LLtiRqK9BDAc05owVoi2B\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:567617\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.816796514566815 }, { \"id\": \"1LLtiRqK9BDAc05owVoi20\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:567626\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.816796514566815 }, { \"id\": \"3eArCZNNPFefi06HHQEKK5\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:583678\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKeQ\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:583905\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKlc\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:583965\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKjj\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:584086\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKZ5\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:584254\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"3eArCZNNPFefi06HHQEKWw\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:584385\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuR8d\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:593095\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRF5\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:593189\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuRDi\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:593292\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuR2z\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:593501\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuR0l\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:593615\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuR75\", \"type\": \"IfcColumn\", \"name\": \"Betonový kulatý sloup:SLOUP VNITŘNÍ S2 - 500mm:593701\", \"materials\": \"Beton, C25/30\", \"quantities\": 0.795198529806635 }] }, { \"material\": \"Beton, C35/45\", \"elements\": [{ \"id\": \"1LLtiRqK9BDAc05owVoiB0\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:568074\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62309013684758 }, { \"id\": \"09g5PQyDf5WRUm1xW0mjNT\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:572489\", \"materials\": \"Beton, C35/45\", \"quantities\": 0.0375019662178373 }, { \"id\": \"09g5PQyDf5WRUm1xW0mjIQ\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:572686\", \"materials\": \"Beton, C35/45\", \"quantities\": 0 }, { \"id\": \"09g5PQyDf5WRUm1xW0mjQV\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:573195\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.6230901368476 }, { \"id\": \"09g5PQyDf5WRUm1xW0mjRN\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:573251\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62359569120006 }, { \"id\": \"09g5PQyDf5WRUm1xW0mjRi\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:573304\", \"materials\": \"Beton, C35/45\", \"quantities\": 10.2537124632665 }, { \"id\": \"09g5PQyDf5WRUm1xW0mjPt\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:573411\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62440922671824 }, { \"id\": \"3eArCZNNPFefi06HHQELig\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:588241\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62440922671822 }, { \"id\": \"3eArCZNNPFefi06HHQELiN\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:588268\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62440922671824 }, { \"id\": \"3eArCZNNPFefi06HHQELZq\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:588303\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62440922671822 }, { \"id\": \"3eArCZNNPFefi06HHQELZI\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:588329\", \"materials\": \"Beton, C35/45\", \"quantities\": 10.2547785027379 }, { \"id\": \"3eArCZNNPFefi06HHQELYP\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:588386\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62440922671822 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQNV\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:596799\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62454901392553 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQM$\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:596831\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.62454901392555 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQLZ\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:596867\", \"materials\": \"Beton, C35/45\", \"quantities\": 9.6244092267104 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQL0\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:596896\", \"materials\": \"Beton, C35/45\", \"quantities\": 10.2547785027326 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQKu\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 500 x 700mm:596952\", \"materials\": \"Beton, C35/45\", \"quantities\": 10.2547785027326 }] }, { \"material\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"elements\": [{ \"id\": \"09g5PQyDf5WRUm1xW0mjur\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:571297\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 3499882055.48562 }, { \"id\": \"09g5PQyDf5WRUm1xW0mj70\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:571476\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 2421965040.52298 }, { \"id\": \"09g5PQyDf5WRUm1xW0mjAX\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:572213\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 2249228659.87849 }, { \"id\": \"09g5PQyDf5WRUm1xW0mj9a\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:572400\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 3312487573.35694 }, { \"id\": \"27rNAHC2D8pAgabKeTlkBX\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:599406\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 921968292.178005 }, { \"id\": \"27rNAHC2D8pAgabKeTlk9b\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:599530\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 580000000 }, { \"id\": \"27rNAHC2D8pAgabKeTlk7B\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:599620\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 240137446.375104 }, { \"id\": \"27rNAHC2D8pAgabKeTlksm\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:600639\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 639403395.607134 }, { \"id\": \"27rNAHC2D8pAgabKeTlkrN\", \"type\": \"IfcWallStandardCase\", \"name\": \"Základní stěna:_Obecná stěna obvodová 250:600792\", \"materials\": \"STĚNY - KERAMICKÉ NOSNÉ OBVODOVÉ\", \"quantities\": 240333205.719148 }] }, { \"material\": \"Beton, C35/45(1)\", \"elements\": [{ \"id\": \"09g5PQyDf5WRUm1xW0mgaM\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:573570\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59960216399842 }, { \"id\": \"09g5PQyDf5WRUm1xW0mgbN\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:573635\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600196900195637 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlSx\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:576877\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlU2\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:576980\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000009 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlUw\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577004\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlHV\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577033\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlHZ\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577077\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600196900195629 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlG6\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577104\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000996855303 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlGt\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577121\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599190642883452 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlJG\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577158\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000016 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlIM\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577216\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998425 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlI$\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577257\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597686133923396 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlLK\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577282\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597709153999956 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlLF\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577305\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311859 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlLw\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577324\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311858 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlLh\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577341\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041347 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlKQ\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577356\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347091 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlKr\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577379\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998424 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlKX\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577399\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998423 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlNT\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577419\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59980341534709 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlN9\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577439\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041347 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlNd\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577457\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311858 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlML\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577475\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211552 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJlM$\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577513\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211552 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkex\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577645\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998422 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkhH\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577671\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347089 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkh8\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577694\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041346 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkhd\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577713\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.379438147876977 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkgT\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577739\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.422885077969363 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkgq\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577762\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000012 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkgY\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577780\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041346 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkjR\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577805\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59980341534709 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkjm\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577830\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998421 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkiH\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577863\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59960216399842 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJki8\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577886\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347089 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkiY\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577908\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041345 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJklO\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:577934\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311857 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkXr\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578083\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998419 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkWz\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578155\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998418 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkZS\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578186\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347081 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkZp\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578213\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599753181312054 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkZg\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578236\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311849 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkY0\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578262\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311856 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkYm\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578278\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597709153999956 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkYg\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578300\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347088 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkbO\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578318\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998418 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkbo\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578340\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.00791409561897215 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkbh\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578365\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347087 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJka6\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578384\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041343 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkax\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:578413\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311855 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJk99\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:579615\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJk8H\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:579655\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599644511894132 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJk89\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:579679\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599424568328967 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkD9\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:579871\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000016 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkCT\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:579915\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.60000000000001 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkCo\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:579940\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.60000000000001 }, { \"id\": \"2sRyXXkDD9AQB$mUMnJkFG\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:579974\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599354096904845 }, { \"id\": \"3eArCZNNPFefi06HHQELXp\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588424\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"3eArCZNNPFefi06HHQELXE\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588469\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"3eArCZNNPFefi06HHQELWp\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588488\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000009 }, { \"id\": \"3eArCZNNPFefi06HHQELWd\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588508\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000004 }, { \"id\": \"3eArCZNNPFefi06HHQELdo\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588553\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.598559463613674 }, { \"id\": \"3eArCZNNPFefi06HHQELdI\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588585\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041344 }, { \"id\": \"3eArCZNNPFefi06HHQELcQ\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588641\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59853224965521 }, { \"id\": \"3eArCZNNPFefi06HHQELc0\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588667\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998419 }, { \"id\": \"3eArCZNNPFefi06HHQELbk\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588693\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59960216399842 }, { \"id\": \"3eArCZNNPFefi06HHQELbN\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588716\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599977084770808 }, { \"id\": \"3eArCZNNPFefi06HHQELaw\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588737\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597709153999956 }, { \"id\": \"3eArCZNNPFefi06HHQELaW\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588763\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599529173006311 }, { \"id\": \"3eArCZNNPFefi06HHQELaF\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588788\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311858 }, { \"id\": \"3eArCZNNPFefi06HHQELxr\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588814\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041344 }, { \"id\": \"3eArCZNNPFefi06HHQELxP\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588834\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.596017132230297 }, { \"id\": \"3eArCZNNPFefi06HHQELww\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588865\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998419 }, { \"id\": \"3eArCZNNPFefi06HHQELwB\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588912\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000012 }, { \"id\": \"3eArCZNNPFefi06HHQELv_\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588933\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599868504064824 }, { \"id\": \"3eArCZNNPFefi06HHQELvP\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588962\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59812974695862 }, { \"id\": \"3eArCZNNPFefi06HHQELuv\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:588994\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"3eArCZNNPFefi06HHQELuW\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589019\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311855 }, { \"id\": \"3eArCZNNPFefi06HHQELuK\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589039\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041346 }, { \"id\": \"3eArCZNNPFefi06HHQEL$p\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589064\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59980341534709 }, { \"id\": \"3eArCZNNPFefi06HHQEL$O\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589091\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59960216399842 }, { \"id\": \"3eArCZNNPFefi06HHQEL$7\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589116\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998421 }, { \"id\": \"3eArCZNNPFefi06HHQEL_f\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589138\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59980341534709 }, { \"id\": \"3eArCZNNPFefi06HHQEL_U\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589157\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041346 }, { \"id\": \"3eArCZNNPFefi06HHQEL_0\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589179\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"3eArCZNNPFefi06HHQELzj\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589206\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.379438147876979 }, { \"id\": \"3eArCZNNPFefi06HHQELzH\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589226\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041347 }, { \"id\": \"3eArCZNNPFefi06HHQELz0\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589243\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347091 }, { \"id\": \"3eArCZNNPFefi06HHQELyr\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589262\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998421 }, { \"id\": \"3eArCZNNPFefi06HHQELyL\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589294\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000016 }, { \"id\": \"3eArCZNNPFefi06HHQELpw\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589313\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59979768151254 }, { \"id\": \"3eArCZNNPFefi06HHQELph\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589328\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.60000000000001 }, { \"id\": \"3eArCZNNPFefi06HHQELpF\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589364\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599354096904846 }, { \"id\": \"3eArCZNNPFefi06HHQELog\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589393\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.422885077969363 }, { \"id\": \"3eArCZNNPFefi06HHQELo1\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589434\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211559 }, { \"id\": \"3eArCZNNPFefi06HHQELnR\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589472\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.17963706621156 }, { \"id\": \"3eArCZNNPFefi06HHQELnD\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589494\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311858 }, { \"id\": \"3eArCZNNPFefi06HHQELm_\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589509\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041348 }, { \"id\": \"3eArCZNNPFefi06HHQELmZ\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589528\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347091 }, { \"id\": \"3eArCZNNPFefi06HHQELmM\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589549\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998422 }, { \"id\": \"3eArCZNNPFefi06HHQELtn\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589578\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998423 }, { \"id\": \"3eArCZNNPFefi06HHQELtL\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589614\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347091 }, { \"id\": \"3eArCZNNPFefi06HHQELr$\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589700\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041348 }, { \"id\": \"3eArCZNNPFefi06HHQELrW\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589723\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311859 }, { \"id\": \"3eArCZNNPFefi06HHQELrM\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589741\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211557 }, { \"id\": \"3eArCZNNPFefi06HHQELqs\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589773\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"3eArCZNNPFefi06HHQELqD\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589814\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597709153999956 }, { \"id\": \"3eArCZNNPFefi06HHQEABt\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589836\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347092 }, { \"id\": \"3eArCZNNPFefi06HHQEABa\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589855\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998423 }, { \"id\": \"3eArCZNNPFefi06HHQEAA_\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589893\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000009 }, { \"id\": \"2vTBM9ue57ChTPpYBt2cFd\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589958\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000009 }, { \"id\": \"2vTBM9ue57ChTPpYBt2cFy\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:589981\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59957940704135 }, { \"id\": \"2vTBM9ue57ChTPpYBt2cEY\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:590019\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQBG\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597040\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000006 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQAj\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597069\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQAu\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597080\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.6 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQAH\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597105\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ9y\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597148\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311856 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ9L\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597173\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041438 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ8g\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597194\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59853224965521 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ8u\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597208\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59686314311494 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ8M\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597238\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599775780998922 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQFk\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597262\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597686133923394 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQF3\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597283\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599753181312056 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQFO\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597304\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311861 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQEl\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597327\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311854 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQE3\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597347\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597709153999955 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQDk\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597390\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347088 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQD_\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597406\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998512 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQDJ\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597427\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599667591552207 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQC0\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597472\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000008 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ3W\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597504\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599644511894492 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ36\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597542\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599290697020598 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ2l\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597583\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311862 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ25\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597605\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597709153999955 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ1q\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597652\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59980341534709 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ17\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597671\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998514 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ1U\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597694\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998515 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ0n\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597713\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597686133923396 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ0F\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597743\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.59957940704144 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ7Z\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597763\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599529173006412 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ72\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597794\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 165.000000000003 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ6d\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597831\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.597709153999955 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ68\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597864\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347091 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ6Q\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597882\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998515 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ51\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597921\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599596400315049 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ4b\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:597957\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.60000000000001 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuQ4P\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598009\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.60000000000001 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPx7\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598055\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599354096904751 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPxU\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598078\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211754 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPwz\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598109\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211658 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPwI\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598130\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311863 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPwV\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598143\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041441 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPvn\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598161\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347091 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPv0\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598176\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998515 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPvP\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598201\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998516 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPuh\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598219\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347091 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPuC\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598252\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041441 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPuT\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598269\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311864 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuP$k\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598286\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211654 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuP$5\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598309\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211658 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuP$M\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598326\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311864 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuP_f\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598345\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599579407041442 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuP_v\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598361\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599803415347092 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuP_G\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598384\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599602163998516 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPzo\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598418\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000009 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPz5\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598437\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.600000000000009 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPye\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598472\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.6 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPys\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598486\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.599359802311871 }, { \"id\": \"1iUBEmJ_D2guG2DpJTuPy4\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:598500\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211757 }, { \"id\": \"27rNAHC2D8pAgabKeTlkkv\", \"type\": \"IfcBeam\", \"name\": \"Betonový pravoúhlý nosník:STROPNÍ PŘÍČEL 250 x 400mm:601142\", \"materials\": \"Beton, C35/45(1)\", \"quantities\": 0.179637066211553 }] }, { \"material\": \"Beton, C40/50\", \"elements\": [{ \"id\": \"1iUBEmJ_D2guG2DpJTuPyP\", \"type\": \"IfcSlab\", \"name\": \"Podlaha:_Obecná stropní deska 200:598521\", \"materials\": \"Beton, C40/50\", \"quantities\": 152329.66569121 }, { \"id\": \"27rNAHC2D8pAgabKeTlk$6\", \"type\": \"IfcSlab\", \"name\": \"Podlaha:_Obecná stropní deska 200:600137\", \"materials\": \"Beton, C40/50\", \"quantities\": 143.538349959515 }, { \"id\": \"27rNAHC2D8pAgabKeTlkpx\", \"type\": \"IfcSlab\", \"name\": \"Podlaha:_Obecná stropní deska 200:600948\", \"materials\": \"Beton, C40/50\", \"quantities\": 143.657539082157 }] }]\n\n let table;\n if (tableData) {\n table = ;\n } else {\n table = Nejprve vložte BIM model.;\n }\n\n return (\n
    \n

    Vložení BIM modelu

    \n\n

    Vyberte a nahrejte IFC soubor.

    \n\n \n\n
    \n\n

    Mapování materiálů

    \n\n
    \n
    \n {/*

    Elementy modelu

    */}\n { table }\n
    \n\n {/*
    \n

    Aktivity Ecoinvent databáze

    \n \n
    */}\n\n {/*
    \n \n
    */}\n
    \n\n
    \n\n

    Generování CSV pro SimaPro

    \n\n Generovat CSV\n
    \n );\n }\n}\n","import React from 'react'\nimport { Component } from 'react'\nimport { Route, Redirect } from 'react-router-dom'\nimport { ApplicationPaths, QueryParameterNames } from './ApiAuthorizationConstants'\nimport authService from './AuthorizeService'\n\nexport default class AuthorizeRoute extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n ready: false,\n authenticated: false\n };\n }\n\n componentDidMount() {\n this._subscription = authService.subscribe(() => this.authenticationChanged());\n this.populateAuthenticationState();\n }\n\n componentWillUnmount() {\n authService.unsubscribe(this._subscription);\n }\n\n render() {\n const { ready, authenticated } = this.state;\n var link = document.createElement(\"a\");\n link.href = this.props.path;\n const returnUrl = `${link.protocol}//${link.host}${link.pathname}${link.search}${link.hash}`;\n const redirectUrl = `${ApplicationPaths.Login}?${QueryParameterNames.ReturnUrl}=${encodeURI(returnUrl)}`\n if (!ready) {\n return
    ;\n } else {\n const { component: Component, ...rest } = this.props;\n return {\n if (authenticated) {\n return \n } else {\n return \n }\n }} />\n }\n }\n\n async populateAuthenticationState() {\n const authenticated = await authService.isAuthenticated();\n this.setState({ ready: true, authenticated });\n }\n\n async authenticationChanged() {\n this.setState({ ready: false, authenticated: false });\n await this.populateAuthenticationState();\n }\n}\n","import React from 'react'\nimport { Component } from 'react';\nimport authService from './AuthorizeService';\nimport { AuthenticationResultStatus } from './AuthorizeService';\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\n\n// The main responsibility of this component is to handle the user's login process.\n// This is the starting point for the login process. Any component that needs to authenticate\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\n// let the component perform the login and return back to the return url.\nexport class Login extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n message: undefined\n };\n }\n\n componentDidMount() {\n const action = this.props.action;\n switch (action) {\n case LoginActions.Login:\n this.login(this.getReturnUrl());\n break;\n case LoginActions.LoginCallback:\n this.processLoginCallback();\n break;\n case LoginActions.LoginFailed:\n const params = new URLSearchParams(window.location.search);\n const error = params.get(QueryParameterNames.Message);\n this.setState({ message: error });\n break;\n case LoginActions.Profile:\n this.redirectToProfile();\n break;\n case LoginActions.Register:\n this.redirectToRegister();\n break;\n default:\n throw new Error(`Invalid action '${action}'`);\n }\n }\n\n render() {\n const action = this.props.action;\n const { message } = this.state;\n\n if (!!message) {\n return
    {message}
    \n } else {\n switch (action) {\n case LoginActions.Login:\n return (
    Processing login
    );\n case LoginActions.LoginCallback:\n return (
    Processing login callback
    );\n case LoginActions.Profile:\n case LoginActions.Register:\n return (
    );\n default:\n throw new Error(`Invalid action '${action}'`);\n }\n }\n }\n\n async login(returnUrl) {\n const state = { returnUrl };\n const result = await authService.signIn(state);\n switch (result.status) {\n case AuthenticationResultStatus.Redirect:\n break;\n case AuthenticationResultStatus.Success:\n await this.navigateToReturnUrl(returnUrl);\n break;\n case AuthenticationResultStatus.Fail:\n this.setState({ message: result.message });\n break;\n default:\n throw new Error(`Invalid status result ${result.status}.`);\n }\n }\n\n async processLoginCallback() {\n const url = window.location.href;\n const result = await authService.completeSignIn(url);\n switch (result.status) {\n case AuthenticationResultStatus.Redirect:\n // There should not be any redirects as the only time completeSignIn finishes\n // is when we are doing a redirect sign in flow.\n throw new Error('Should not redirect.');\n case AuthenticationResultStatus.Success:\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\n break;\n case AuthenticationResultStatus.Fail:\n this.setState({ message: result.message });\n break;\n default:\n throw new Error(`Invalid authentication result status '${result.status}'.`);\n }\n }\n\n getReturnUrl(state) {\n const params = new URLSearchParams(window.location.search);\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\n // This is an extra check to prevent open redirects.\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\n }\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\n }\n\n redirectToRegister() {\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\n }\n\n redirectToProfile() {\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\n }\n\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\n // It's important that we do a replace here so that when the user hits the back arrow on the\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\n // component.\n window.location.replace(redirectUrl);\n }\n\n navigateToReturnUrl(returnUrl) {\n // It's important that we do a replace here so that we remove the callback uri with the\n // fragment containing the tokens from the browser history.\n window.location.replace(returnUrl);\n }\n}\n","import React from 'react'\nimport { Component } from 'react';\nimport authService from './AuthorizeService';\nimport { AuthenticationResultStatus } from './AuthorizeService';\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\n\n// The main responsibility of this component is to handle the user's logout process.\n// This is the starting point for the logout process, which is usually initiated when a\n// user clicks on the logout button on the LoginMenu component.\nexport class Logout extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n message: undefined,\n isReady: false,\n authenticated: false\n };\n }\n\n componentDidMount() {\n const action = this.props.action;\n switch (action) {\n case LogoutActions.Logout:\n if (!!window.history.state.state.local) {\n this.logout(this.getReturnUrl());\n } else {\n // This prevents regular links to /authentication/logout from triggering a logout\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\n }\n break;\n case LogoutActions.LogoutCallback:\n this.processLogoutCallback();\n break;\n case LogoutActions.LoggedOut:\n this.setState({ isReady: true, message: \"You successfully logged out!\" });\n break;\n default:\n throw new Error(`Invalid action '${action}'`);\n }\n\n this.populateAuthenticationState();\n }\n\n render() {\n const { isReady, message } = this.state;\n if (!isReady) {\n return
    \n }\n if (!!message) {\n return (
    {message}
    );\n } else {\n const action = this.props.action;\n switch (action) {\n case LogoutActions.Logout:\n return (
    Processing logout
    );\n case LogoutActions.LogoutCallback:\n return (
    Processing logout callback
    );\n case LogoutActions.LoggedOut:\n return (
    {message}
    );\n default:\n throw new Error(`Invalid action '${action}'`);\n }\n }\n }\n\n async logout(returnUrl) {\n const state = { returnUrl };\n const isauthenticated = await authService.isAuthenticated();\n if (isauthenticated) {\n const result = await authService.signOut(state);\n switch (result.status) {\n case AuthenticationResultStatus.Redirect:\n break;\n case AuthenticationResultStatus.Success:\n await this.navigateToReturnUrl(returnUrl);\n break;\n case AuthenticationResultStatus.Fail:\n this.setState({ message: result.message });\n break;\n default:\n throw new Error(\"Invalid authentication result status.\");\n }\n } else {\n this.setState({ message: \"You successfully logged out!\" });\n }\n }\n\n async processLogoutCallback() {\n const url = window.location.href;\n const result = await authService.completeSignOut(url);\n switch (result.status) {\n case AuthenticationResultStatus.Redirect:\n // There should not be any redirects as the only time completeAuthentication finishes\n // is when we are doing a redirect sign in flow.\n throw new Error('Should not redirect.');\n case AuthenticationResultStatus.Success:\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\n break;\n case AuthenticationResultStatus.Fail:\n this.setState({ message: result.message });\n break;\n default:\n throw new Error(\"Invalid authentication result status.\");\n }\n }\n\n async populateAuthenticationState() {\n const authenticated = await authService.isAuthenticated();\n this.setState({ isReady: true, authenticated });\n }\n\n getReturnUrl(state) {\n const params = new URLSearchParams(window.location.search);\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\n // This is an extra check to prevent open redirects.\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\n }\n return (state && state.returnUrl) ||\n fromQuery ||\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\n }\n\n navigateToReturnUrl(returnUrl) {\n return window.location.replace(returnUrl);\n }\n}\n","import React, { Component, Fragment } from 'react';\nimport { Route } from 'react-router';\nimport { Login } from './Login'\nimport { Logout } from './Logout'\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\n\nexport default class ApiAuthorizationRoutes extends Component {\n\n render () {\n return(\n \n loginAction(LoginActions.Login)} />\n loginAction(LoginActions.LoginFailed)} />\n loginAction(LoginActions.LoginCallback)} />\n loginAction(LoginActions.Profile)} />\n loginAction(LoginActions.Register)} />\n logoutAction(LogoutActions.Logout)} />\n logoutAction(LogoutActions.LogoutCallback)} />\n logoutAction(LogoutActions.LoggedOut)} />\n );\n }\n}\n\nfunction loginAction(name){\n return ();\n}\n\nfunction logoutAction(name) {\n return ();\n}\n","import React, { Component } from 'react';\nimport { Route } from 'react-router';\nimport { Layout } from './components/Layout';\nimport { Home } from './components/Home';\nimport { FetchData } from './components/FetchData';\nimport { Counter } from './components/Counter';\nimport AuthorizeRoute from './components/api-authorization/AuthorizeRoute';\nimport ApiAuthorizationRoutes from './components/api-authorization/ApiAuthorizationRoutes';\nimport { ApplicationPaths } from './components/api-authorization/ApiAuthorizationConstants';\n\nimport './custom.css'\n//import './bootstrap-icons.css'\n\nexport default class App extends Component {\n static displayName = App.name;\n\n render () {\n return (\n \n \n \n \n \n );\n }\n}\n","import 'bootstrap/dist/css/bootstrap.css';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport App from './App';\n//import registerServiceWorker from './registerServiceWorker';\n\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nconst rootElement = document.getElementById('root');\n\nReactDOM.render(\n \n \n ,\n rootElement);\n\n// Uncomment the line above that imports the registerServiceWorker function\n// and the line below to register the generated service worker.\n// By default create-react-app includes a service worker to improve the\n// performance of the application by caching static assets. This service\n// worker can interfere with the Identity UI, so it is\n// disabled by default when Identity is being used.\n//\n//registerServiceWorker();\n\n"],"sourceRoot":""}