12 #include <basic/IProgressDelegate.h> 13 #include <model/IProject.h> 14 #include <model/IObject.h> 16 #include <domainDocuments/DocumentProject.h> 17 #include <domainDocuments/Document.h> 19 #include <domainQTO/QTOProject.h> 20 #include <domainQTO/ConstructionElement.h> 53 class CoreAPI :
public QObject,
public basic::IProgressDelegate
62 CoreAPI::CoreAPI( BimProject* bimPrj, QObject* parent = 0);
65 BimProject* getBimProject()
const {
return _bimProject; }
87 QString addDays(QString dateStr,
int nrDays);
96 QString timeStamp( QString format = QString() );
110 int getCalendarWeek( QDateTime dt );
125 QString
format(
double v,
int dec = 2, QString frmt =
"%L1",
int fieldWidth = 10, QChar fillChar = QChar::Nbsp ) {
return frmt.arg(v,fieldWidth,
'f',dec,fillChar); }
151 QString formatDateTime( QDateTime dt, QString formatstr =
"iso" );
163 long calcHashcode( QString str );
183 QString compressToIfcGuid(QString
id);
191 QString uncompressFromIfcGuid(QString ifcGuid);
211 bool checkRegExp( QString value, QString pattern );
225 double calcSlantedArea(QString objId,
double angleMin = 0.0,
double angleMax = 45.0);
259 QVariantMap calcGpsCoordsByStation( QString objId,
double station );
283 QVariantMap calcGpsCoordsByModelCoords(
double x,
double y );
305 QVariantMap calcModelCoordsByGpsCoords(
double lat,
double lon );
333 QVariantMap calcGkCoordsByModelCoords(
double x,
double y,
double z );
339 QVariantMap calcModelCoordsByGkCoords(
double r,
double h );
362 QVariantMap calcGkCoordsByGpsCoords(
double lat,
double lon );
386 QVariantMap calcGpsCoordsByGkCoords(
double rw,
double hw );
392 QString idListToStr( QStringList idList );
398 QStringList strToIdList( QString strIDList );
405 #pragma region TOOLS - FILES 421 QVariantMap getFileInfo( QString filePath );
430 QString
getAbsolutePath( QString filePath ) {
return QFileInfo(filePath).absolutePath(); }
440 QString
getBaseName( QString filePath ) {
return QFileInfo(filePath).baseName(); }
449 QString
getFileName( QString filePath ) {
return QFileInfo(filePath).fileName(); }
457 #ifdef ENABLE_READJSON 458 QVariantMap readJsonFromTextFile( QString filename,
bool useCache =
true, QString codec = QString() );
464 #pragma region APPLICATION 470 QString getApplicationDirectory();
476 QString getApplicationFilename();
482 virtual QString getApplicationLanguage();
489 QString getVersionAsString();
501 int getVersionMAJOR();
513 int getVersionMINOR();
525 int getVersionBUILD();
537 QVariantMap getVersion();
544 bool requireVersion(
int major,
int minor,
int patch );
551 #pragma region PROJECT 557 QString getUserName();
562 QString getProjectID();
568 int getProjectVariantNumber();
579 int getProjectVersionNumber();
585 QString getProjectNumber();
590 int setProjectNumber(QString s,
bool overwriteExisting =
false);
595 QString getProjectName();
600 QString getProjectShortDescription();
605 int setProjectShortDescription(QString s,
bool overwriteExisting =
false);
610 QString getProjectLongDescription();
615 int setProjectLongDescription(QString s,
bool overwriteExisting =
false);
620 QString getProjectDirectory();
641 QString getLocation();
655 QVariantMap getProjectLocation()
const;
670 QVariantMap getCloudSettings();
697 QVariantMap getProjectInfo();
703 #pragma region DOMAINS 731 QString getDomainByElement( QString objId );
737 #pragma region PROPERTIES 773 QVariant getPropertyValue(QString objId, QString propName, QString propType,
bool inh =
true );
822 QList<QVariant> getPropertyValuesByObject( QString objId, QString filterpattern =
"*" );
829 QVariant getPropertySource( QString objId, QString propName, QString propType,
bool inh =
true );
842 QString getPropertyUnit(QString objId, QString propName, QString propType,
bool inh =
true );
849 QString getPropertyUnit( QString propName, QString propType );
871 QVariant getPropertyValueByDate(QString objId, QString propName, QString propType,
bool inh =
true );
891 QDateTime getPropertyLastDate(QString objId, QString propName, QString propType,
bool inh =
true );
908 QDateTime getPropertyFirstDate(QString objId, QString propName, QString propType,
bool inh );
976 QVariantMap getPropertyDateListAsJSON( QString objId, QString propName, QString propType,
bool inh =
true );
1013 QVariantList getPropertyDateList(QString objectId, QString propertyBaseName, QString propertyType );
1050 QVariantMap getPropertyTypesByObject( QString objId, QString filterPattern =
"*" );
1086 QVariantMap getPropertyTypesByDomain( QString domainName, QString filterPattern =
"*" );
1112 QVariantMap getPropertyTypeMetaData( QString propName, QString propType );
1149 QList<QVariant> getPropertyTypeList( QString domain =
"all", QString filterPattern =
"*",
bool activeOnly =
false );
1190 QList<QVariant> getPropertyTypeListByObject( QString objId, QString filterPattern =
"*" );
1198 bool isPropertyInherited(QString objId, QString propName, QString propType );
1210 QString getPropertyValueRange(QString idList, QString propName, QString propType, QString domainFilter =
"geometry" );
1223 QStringList getPropertyValueList( QString propName, QString propType,
int maxValues );
1237 QString getPropertyValueAsString(QString objId, QString propName, QString propType,
bool inh =
true );
1278 QVariant evaluateFormula( QString code, QString
id, QString id_otherdomain = QString() );
1293 QString prepareJsCode( QString code, QString
id,
int dec = -1, QString frmt =
"%L1",
int fieldWidth = 10, QChar fillChar = QChar() );
1314 QStringList extractPropertyNames(
const QString& code,
const QString& startTag =
"[[",
const QString& endTag =
"]]" );
1320 #pragma region LINKS BETWEEN OBJECTS 1363 QStringList getLinkedObjects(QString objectIDList, QString resultDomains =
"all", QString objectLookupDomains =
"all");
1379 QStringList getTasksByObjectList(QString idList);
1390 QStringList getObjectsByTaskList(QString idList);
1402 QStringList getDocumentsByObjectList(QString idList);
1413 QStringList getObjectsByDocumentList(QString idList);
1425 QStringList getSectionsByObjectList(QString idList);
1436 QStringList getObjectsBySectionList(QString idList);
1448 QStringList getTypesByObjectList(QString idList);
1460 QStringList getObjectsByTypeList(QString idList);
1472 QStringList getResourcesByObjectList(QString idList);
1483 QStringList getObjectsByResourcesList(QString idList);
1493 QStringList getBoQItemsByObjectList(QString idList);
1501 QStringList getObjectsByBoQItemList(QString idList);
1512 QStringList getPcItemsByObjectList(QString idList);
1522 QStringList getObjectsByPcItemList(QString idList);
1528 #pragma region OBJECT HIERARCHY 1544 QStringList getContainedElements(QString containerId,
int maxDepth,
bool loadExternal =
true);
1557 int countContainedElements(QString containerId,
int maxDepth,
bool loadExternal =
true);
1565 QString getParent(QString objId);
1576 QStringList getOpenings(QString objId);
1587 QStringList getParts(QString objId);
1593 #pragma region STATUS 1603 bool isVisible(QString objId);
1609 bool isSelected(QString objId);
1615 bool isLocked(QString objId);
1621 bool isWired(QString objId);
1627 #pragma region GEOMETRY 1644 QVariantList getPointList( QString objId );
1650 #pragma region ALIGNMENTS / REGIONS 1671 QVariantMap getPointOnAlignmentAtStation( QString objId,
double d );
1689 double getStationOfProjectedPoint( QString objId,
double x,
double y,
double z = 0.0 );
1701 QStringList getRegionsOfAlignment( QString alignmentId );
1714 QVariantList getRangesOfRegion( QString alignmentID, QString regionID );
1728 double getValueOfAlignmentRegion( QString alignmentID, QString regionID );
1735 #pragma region ACTIVITIES 1746 int getTaskMode( QString taskId );
1754 QString getTaskVisualisation( QString taskId );
1759 #pragma region LINKRULES 1770 int updateRuleBasedLinks(QString domainName,
bool visibleOnly =
false);
1779 int removeRuleBasedLinks(QString domainName);
1791 model::IContainerObject* getIContainerObject(
const QString&
id, model::eDomainType domainFilter = model::typeDomainAll );
1792 model::IContainer* getIContainer(
const QString&
id, model::eDomainType domainFilter = model::typeDomainAll );
1793 model::Element* getElement(
const QString&
id, model::eDomainType domainFilter = model::typeDomainAll );
1795 model::IProperty* _getProperty( QString objId, QString propName, QString propType,
bool inh );
1796 QVariant _getPropertyValue(
const QString& objId,
const QString& propName,
const QString& propType,
bool inh,
bool evaluate,
bool formatAsString );
1801 void collectGeoObjects(
const QString& idList, QList<model::IObject*>& list );
1806 QList<QDateTime> _getPropertyDateList(
const QString& objId,
const QString& propBaseName,
const QString& propType,
const QTime& defaultTime );
1811 BimProject* _bimProject;
1815 #ifdef ENABLE_READJSON 1817 QVariantMap _fileCache;
QString getBaseName(QString filePath)
Definition: CoreAPI.h:440
QString getFileName(QString filePath)
Definition: CoreAPI.h:449
QString format(double v, int dec=2, QString frmt="%L1", int fieldWidth=10, QChar fillChar=QChar::Nbsp)
Definition: CoreAPI.h:125
QString getAbsolutePath(QString filePath)
Definition: CoreAPI.h:430